5030 lines
5.8 MiB
5030 lines
5.8 MiB
/*
|
||
* ATTENTION: An "eval-source-map" devtool has been used.
|
||
* This devtool is neither made for production nor for readable output files.
|
||
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
||
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
||
* or disable the default devtool with "devtool: false".
|
||
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
||
*/
|
||
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["app/page"],{
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/AuthAdminApi.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/AuthAdminApi.js ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GoTrueAdminApi */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.js\");\n\r\nconst AuthAdminApi = _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\r\n/* harmony default export */ __webpack_exports__[\"default\"] = (AuthAdminApi);\r\n//# sourceMappingURL=AuthAdminApi.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9BdXRoQWRtaW5BcGkuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7QUFDOUMscUJBQXFCLHVEQUFjO0FBQ25DLCtEQUFlLFlBQVksRUFBQztBQUM1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2F1dGgtanMvZGlzdC9tb2R1bGUvQXV0aEFkbWluQXBpLmpzPzk5NTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEdvVHJ1ZUFkbWluQXBpIGZyb20gJy4vR29UcnVlQWRtaW5BcGknO1xyXG5jb25zdCBBdXRoQWRtaW5BcGkgPSBHb1RydWVBZG1pbkFwaTtcclxuZXhwb3J0IGRlZmF1bHQgQXV0aEFkbWluQXBpO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1BdXRoQWRtaW5BcGkuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/AuthAdminApi.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/AuthClient.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/AuthClient.js ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _GoTrueClient__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GoTrueClient */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/GoTrueClient.js\");\n\r\nconst AuthClient = _GoTrueClient__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\r\n/* harmony default export */ __webpack_exports__[\"default\"] = (AuthClient);\r\n//# sourceMappingURL=AuthClient.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9BdXRoQ2xpZW50LmpzIiwibWFwcGluZ3MiOiI7O0FBQTBDO0FBQzFDLG1CQUFtQixxREFBWTtBQUMvQiwrREFBZSxVQUFVLEVBQUM7QUFDMUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9hdXRoLWpzL2Rpc3QvbW9kdWxlL0F1dGhDbGllbnQuanM/N2Y5YiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR29UcnVlQ2xpZW50IGZyb20gJy4vR29UcnVlQ2xpZW50JztcclxuY29uc3QgQXV0aENsaWVudCA9IEdvVHJ1ZUNsaWVudDtcclxuZXhwb3J0IGRlZmF1bHQgQXV0aENsaWVudDtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QXV0aENsaWVudC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/AuthClient.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.js ***!
|
||
\**********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ GoTrueAdminApi; }\n/* harmony export */ });\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/fetch */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/helpers */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/helpers.js\");\n/* harmony import */ var _lib_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/types */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/types.js\");\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/errors */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/errors.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\n\r\n\r\n\r\n\r\nclass GoTrueAdminApi {\r\n constructor({ url = '', headers = {}, fetch, }) {\r\n this.url = url;\r\n this.headers = headers;\r\n this.fetch = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_1__.resolveFetch)(fetch);\r\n this.mfa = {\r\n listFactors: this._listFactors.bind(this),\r\n deleteFactor: this._deleteFactor.bind(this),\r\n };\r\n }\r\n /**\r\n * Removes a logged-in session.\r\n * @param jwt A valid, logged-in JWT.\r\n * @param scope The logout sope.\r\n */\r\n async signOut(jwt, scope = _lib_types__WEBPACK_IMPORTED_MODULE_2__.SIGN_OUT_SCOPES[0]) {\r\n if (_lib_types__WEBPACK_IMPORTED_MODULE_2__.SIGN_OUT_SCOPES.indexOf(scope) < 0) {\r\n throw new Error(`@supabase/auth-js: Parameter scope must be one of ${_lib_types__WEBPACK_IMPORTED_MODULE_2__.SIGN_OUT_SCOPES.join(', ')}`);\r\n }\r\n try {\r\n await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, 'POST', `${this.url}/logout?scope=${scope}`, {\r\n headers: this.headers,\r\n jwt,\r\n noResolveJson: true,\r\n });\r\n return { data: null, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isAuthError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Sends an invite link to an email address.\r\n * @param email The email address of the user.\r\n * @param options Additional options to be included when inviting.\r\n */\r\n async inviteUserByEmail(email, options = {}) {\r\n try {\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, 'POST', `${this.url}/invite`, {\r\n body: { email, data: options.data },\r\n headers: this.headers,\r\n redirectTo: options.redirectTo,\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse,\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isAuthError)(error)) {\r\n return { data: { user: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Generates email links and OTPs to be sent via a custom email provider.\r\n * @param email The user's email.\r\n * @param options.password User password. For signup only.\r\n * @param options.data Optional user metadata. For signup only.\r\n * @param options.redirectTo The redirect url which should be appended to the generated link\r\n */\r\n async generateLink(params) {\r\n try {\r\n const { options } = params, rest = __rest(params, [\"options\"]);\r\n const body = Object.assign(Object.assign({}, rest), options);\r\n if ('newEmail' in rest) {\r\n // replace newEmail with new_email in request body\r\n body.new_email = rest === null || rest === void 0 ? void 0 : rest.newEmail;\r\n delete body['newEmail'];\r\n }\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, 'POST', `${this.url}/admin/generate_link`, {\r\n body: body,\r\n headers: this.headers,\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._generateLinkResponse,\r\n redirectTo: options === null || options === void 0 ? void 0 : options.redirectTo,\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isAuthError)(error)) {\r\n return {\r\n data: {\r\n properties: null,\r\n user: null,\r\n },\r\n error,\r\n };\r\n }\r\n throw error;\r\n }\r\n }\r\n // User Admin API\r\n /**\r\n * Creates a new user.\r\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\r\n */\r\n async createUser(attributes) {\r\n try {\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, 'POST', `${this.url}/admin/users`, {\r\n body: attributes,\r\n headers: this.headers,\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse,\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isAuthError)(error)) {\r\n return { data: { user: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Get a list of users.\r\n *\r\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\r\n * @param params An object which supports `page` and `perPage` as numbers, to alter the paginated results.\r\n */\r\n async listUsers(params) {\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n try {\r\n const pagination = { nextPage: null, lastPage: 0, total: 0 };\r\n const response = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, 'GET', `${this.url}/admin/users`, {\r\n headers: this.headers,\r\n noResolveJson: true,\r\n query: {\r\n page: (_b = (_a = params === null || params === void 0 ? void 0 : params.page) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '',\r\n per_page: (_d = (_c = params === null || params === void 0 ? void 0 : params.perPage) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : '',\r\n },\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._noResolveJsonResponse,\r\n });\r\n if (response.error)\r\n throw response.error;\r\n const users = await response.json();\r\n const total = (_e = response.headers.get('x-total-count')) !== null && _e !== void 0 ? _e : 0;\r\n const links = (_g = (_f = response.headers.get('link')) === null || _f === void 0 ? void 0 : _f.split(',')) !== null && _g !== void 0 ? _g : [];\r\n if (links.length > 0) {\r\n links.forEach((link) => {\r\n const page = parseInt(link.split(';')[0].split('=')[1].substring(0, 1));\r\n const rel = JSON.parse(link.split(';')[1].split('=')[1]);\r\n pagination[`${rel}Page`] = page;\r\n });\r\n pagination.total = parseInt(total);\r\n }\r\n return { data: Object.assign(Object.assign({}, users), pagination), error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isAuthError)(error)) {\r\n return { data: { users: [] }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Get user by id.\r\n *\r\n * @param uid The user's unique identifier\r\n *\r\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\r\n */\r\n async getUserById(uid) {\r\n (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_1__.validateUUID)(uid);\r\n try {\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, 'GET', `${this.url}/admin/users/${uid}`, {\r\n headers: this.headers,\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse,\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isAuthError)(error)) {\r\n return { data: { user: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Updates the user data.\r\n *\r\n * @param attributes The data you want to update.\r\n *\r\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\r\n */\r\n async updateUserById(uid, attributes) {\r\n (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_1__.validateUUID)(uid);\r\n try {\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, 'PUT', `${this.url}/admin/users/${uid}`, {\r\n body: attributes,\r\n headers: this.headers,\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse,\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isAuthError)(error)) {\r\n return { data: { user: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Delete a user. Requires a `service_role` key.\r\n *\r\n * @param id The user id you want to remove.\r\n * @param shouldSoftDelete If true, then the user will be soft-deleted from the auth schema. Soft deletion allows user identification from the hashed user ID but is not reversible.\r\n * Defaults to false for backward compatibility.\r\n *\r\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\r\n */\r\n async deleteUser(id, shouldSoftDelete = false) {\r\n (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_1__.validateUUID)(id);\r\n try {\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, 'DELETE', `${this.url}/admin/users/${id}`, {\r\n headers: this.headers,\r\n body: {\r\n should_soft_delete: shouldSoftDelete,\r\n },\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_0__._userResponse,\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isAuthError)(error)) {\r\n return { data: { user: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n async _listFactors(params) {\r\n (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_1__.validateUUID)(params.userId);\r\n try {\r\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, 'GET', `${this.url}/admin/users/${params.userId}/factors`, {\r\n headers: this.headers,\r\n xform: (factors) => {\r\n return { data: { factors }, error: null };\r\n },\r\n });\r\n return { data, error };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isAuthError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n async _deleteFactor(params) {\r\n (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_1__.validateUUID)(params.userId);\r\n (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_1__.validateUUID)(params.id);\r\n try {\r\n const data = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_0__._request)(this.fetch, 'DELETE', `${this.url}/admin/users/${params.userId}/factors/${params.id}`, {\r\n headers: this.headers,\r\n });\r\n return { data, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isAuthError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=GoTrueAdminApi.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9Hb1RydWVBZG1pbkFwaS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLGNBQWMsU0FBSSxJQUFJLFNBQUk7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2REFBNkQsY0FBYztBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3NHO0FBQzNDO0FBQ1o7QUFDSjtBQUM1QjtBQUNmLGtCQUFrQixzQkFBc0IsVUFBVTtBQUNsRDtBQUNBO0FBQ0EscUJBQXFCLDBEQUFZO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLHVEQUFlO0FBQzlDLFlBQVksdURBQWU7QUFDM0IsaUZBQWlGLHVEQUFlLFlBQVk7QUFDNUc7QUFDQTtBQUNBLGtCQUFrQixvREFBUSx3QkFBd0IsU0FBUyxnQkFBZ0IsTUFBTTtBQUNqRjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQSxnQkFBZ0Isd0RBQVc7QUFDM0IseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQztBQUMvQztBQUNBLHlCQUF5QixvREFBUSx3QkFBd0IsU0FBUztBQUNsRSx3QkFBd0IsMkJBQTJCO0FBQ25EO0FBQ0E7QUFDQSx1QkFBdUIscURBQWE7QUFDcEMsYUFBYTtBQUNiO0FBQ0E7QUFDQSxnQkFBZ0Isd0RBQVc7QUFDM0IseUJBQXlCLFFBQVEsWUFBWTtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixVQUFVO0FBQzlCLHVEQUF1RDtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLG9EQUFRLHdCQUF3QixTQUFTO0FBQ2xF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bGUvR29UcnVlQWRtaW5BcGkuanM/MzcxYyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufTtcclxuaW1wb3J0IHsgX2dlbmVyYXRlTGlua1Jlc3BvbnNlLCBfbm9SZXNvbHZlSnNvblJlc3BvbnNlLCBfcmVxdWVzdCwgX3VzZXJSZXNwb25zZSwgfSBmcm9tICcuL2xpYi9mZXRjaCc7XHJcbmltcG9ydCB7IHJlc29sdmVGZXRjaCwgdmFsaWRhdGVVVUlEIH0gZnJvbSAnLi9saWIvaGVscGVycyc7XHJcbmltcG9ydCB7IFNJR05fT1VUX1NDT1BFUywgfSBmcm9tICcuL2xpYi90eXBlcyc7XHJcbmltcG9ydCB7IGlzQXV0aEVycm9yIH0gZnJvbSAnLi9saWIvZXJyb3JzJztcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgR29UcnVlQWRtaW5BcGkge1xyXG4gICAgY29uc3RydWN0b3IoeyB1cmwgPSAnJywgaGVhZGVycyA9IHt9LCBmZXRjaCwgfSkge1xyXG4gICAgICAgIHRoaXMudXJsID0gdXJsO1xyXG4gICAgICAgIHRoaXMuaGVhZGVycyA9IGhlYWRlcnM7XHJcbiAgICAgICAgdGhpcy5mZXRjaCA9IHJlc29sdmVGZXRjaChmZXRjaCk7XHJcbiAgICAgICAgdGhpcy5tZmEgPSB7XHJcbiAgICAgICAgICAgIGxpc3RGYWN0b3JzOiB0aGlzLl9saXN0RmFjdG9ycy5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICBkZWxldGVGYWN0b3I6IHRoaXMuX2RlbGV0ZUZhY3Rvci5iaW5kKHRoaXMpLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgYSBsb2dnZWQtaW4gc2Vzc2lvbi5cclxuICAgICAqIEBwYXJhbSBqd3QgQSB2YWxpZCwgbG9nZ2VkLWluIEpXVC5cclxuICAgICAqIEBwYXJhbSBzY29wZSBUaGUgbG9nb3V0IHNvcGUuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHNpZ25PdXQoand0LCBzY29wZSA9IFNJR05fT1VUX1NDT1BFU1swXSkge1xyXG4gICAgICAgIGlmIChTSUdOX09VVF9TQ09QRVMuaW5kZXhPZihzY29wZSkgPCAwKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQHN1cGFiYXNlL2F1dGgtanM6IFBhcmFtZXRlciBzY29wZSBtdXN0IGJlIG9uZSBvZiAke1NJR05fT1VUX1NDT1BFUy5qb2luKCcsICcpfWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS9sb2dvdXQ/c2NvcGU9JHtzY29wZX1gLCB7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICBqd3QsXHJcbiAgICAgICAgICAgICAgICBub1Jlc29sdmVKc29uOiB0cnVlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3I6IG51bGwgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBTZW5kcyBhbiBpbnZpdGUgbGluayB0byBhbiBlbWFpbCBhZGRyZXNzLlxyXG4gICAgICogQHBhcmFtIGVtYWlsIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSB1c2VyLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQWRkaXRpb25hbCBvcHRpb25zIHRvIGJlIGluY2x1ZGVkIHdoZW4gaW52aXRpbmcuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGludml0ZVVzZXJCeUVtYWlsKGVtYWlsLCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vaW52aXRlYCwge1xyXG4gICAgICAgICAgICAgICAgYm9keTogeyBlbWFpbCwgZGF0YTogb3B0aW9ucy5kYXRhIH0sXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICByZWRpcmVjdFRvOiBvcHRpb25zLnJlZGlyZWN0VG8sXHJcbiAgICAgICAgICAgICAgICB4Zm9ybTogX3VzZXJSZXNwb25zZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwgfSwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBlbWFpbCBsaW5rcyBhbmQgT1RQcyB0byBiZSBzZW50IHZpYSBhIGN1c3RvbSBlbWFpbCBwcm92aWRlci5cclxuICAgICAqIEBwYXJhbSBlbWFpbCBUaGUgdXNlcidzIGVtYWlsLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMucGFzc3dvcmQgVXNlciBwYXNzd29yZC4gRm9yIHNpZ251cCBvbmx5LlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZGF0YSBPcHRpb25hbCB1c2VyIG1ldGFkYXRhLiBGb3Igc2lnbnVwIG9ubHkuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5yZWRpcmVjdFRvIFRoZSByZWRpcmVjdCB1cmwgd2hpY2ggc2hvdWxkIGJlIGFwcGVuZGVkIHRvIHRoZSBnZW5lcmF0ZWQgbGlua1xyXG4gICAgICovXHJcbiAgICBhc3luYyBnZW5lcmF0ZUxpbmsocGFyYW1zKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgeyBvcHRpb25zIH0gPSBwYXJhbXMsIHJlc3QgPSBfX3Jlc3QocGFyYW1zLCBbXCJvcHRpb25zXCJdKTtcclxuICAgICAgICAgICAgY29uc3QgYm9keSA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcmVzdCksIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICBpZiAoJ25ld0VtYWlsJyBpbiByZXN0KSB7XHJcbiAgICAgICAgICAgICAgICAvLyByZXBsYWNlIG5ld0VtYWlsIHdpdGggbmV3X2VtYWlsIGluIHJlcXVlc3QgYm9keVxyXG4gICAgICAgICAgICAgICAgYm9keS5uZXdfZW1haWwgPSByZXN0ID09PSBudWxsIHx8IHJlc3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3QubmV3RW1haWw7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgYm9keVsnbmV3RW1haWwnXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vYWRtaW4vZ2VuZXJhdGVfbGlua2AsIHtcclxuICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICB4Zm9ybTogX2dlbmVyYXRlTGlua1Jlc3BvbnNlLFxyXG4gICAgICAgICAgICAgICAgcmVkaXJlY3RUbzogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnJlZGlyZWN0VG8sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBlcnJvcixcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gVXNlciBBZG1pbiBBUElcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyB1c2VyLlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBjYWxsZWQgb24gYSBzZXJ2ZXIuIE5ldmVyIGV4cG9zZSB5b3VyIGBzZXJ2aWNlX3JvbGVgIGtleSBpbiB0aGUgYnJvd3Nlci5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgY3JlYXRlVXNlcihhdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L2FkbWluL3VzZXJzYCwge1xyXG4gICAgICAgICAgICAgICAgYm9keTogYXR0cmlidXRlcyxcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICAgICAgICAgIHhmb3JtOiBfdXNlclJlc3BvbnNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCB9LCBlcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogR2V0IGEgbGlzdCBvZiB1c2Vycy5cclxuICAgICAqXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbiBhIHNlcnZlci4gTmV2ZXIgZXhwb3NlIHlvdXIgYHNlcnZpY2Vfcm9sZWAga2V5IGluIHRoZSBicm93c2VyLlxyXG4gICAgICogQHBhcmFtIHBhcmFtcyBBbiBvYmplY3Qgd2hpY2ggc3VwcG9ydHMgYHBhZ2VgIGFuZCBgcGVyUGFnZWAgYXMgbnVtYmVycywgdG8gYWx0ZXIgdGhlIHBhZ2luYXRlZCByZXN1bHRzLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBsaXN0VXNlcnMocGFyYW1zKSB7XHJcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhZ2luYXRpb24gPSB7IG5leHRQYWdlOiBudWxsLCBsYXN0UGFnZTogMCwgdG90YWw6IDAgfTtcclxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnR0VUJywgYCR7dGhpcy51cmx9L2FkbWluL3VzZXJzYCwge1xyXG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgbm9SZXNvbHZlSnNvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFnZTogKF9iID0gKF9hID0gcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLnBhZ2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICBwZXJfcGFnZTogKF9kID0gKF9jID0gcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLnBlclBhZ2UpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy50b1N0cmluZygpKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAnJyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB4Zm9ybTogX25vUmVzb2x2ZUpzb25SZXNwb25zZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5lcnJvcilcclxuICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlLmVycm9yO1xyXG4gICAgICAgICAgICBjb25zdCB1c2VycyA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuICAgICAgICAgICAgY29uc3QgdG90YWwgPSAoX2UgPSByZXNwb25zZS5oZWFkZXJzLmdldCgneC10b3RhbC1jb3VudCcpKSAhPT0gbnVsbCAmJiBfZSAhPT0gdm9pZCAwID8gX2UgOiAwO1xyXG4gICAgICAgICAgICBjb25zdCBsaW5rcyA9IChfZyA9IChfZiA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdsaW5rJykpID09PSBudWxsIHx8IF9mID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZi5zcGxpdCgnLCcpKSAhPT0gbnVsbCAmJiBfZyAhPT0gdm9pZCAwID8gX2cgOiBbXTtcclxuICAgICAgICAgICAgaWYgKGxpbmtzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGxpbmtzLmZvckVhY2goKGxpbmspID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlID0gcGFyc2VJbnQobGluay5zcGxpdCgnOycpWzBdLnNwbGl0KCc9JylbMV0uc3Vic3RyaW5nKDAsIDEpKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWwgPSBKU09OLnBhcnNlKGxpbmsuc3BsaXQoJzsnKVsxXS5zcGxpdCgnPScpWzFdKTtcclxuICAgICAgICAgICAgICAgICAgICBwYWdpbmF0aW9uW2Ake3JlbH1QYWdlYF0gPSBwYWdlO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uLnRvdGFsID0gcGFyc2VJbnQodG90YWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdXNlcnMpLCBwYWdpbmF0aW9uKSwgZXJyb3I6IG51bGwgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcnM6IFtdIH0sIGVycm9yIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdXNlciBieSBpZC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdWlkIFRoZSB1c2VyJ3MgdW5pcXVlIGlkZW50aWZpZXJcclxuICAgICAqXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbiBhIHNlcnZlci4gTmV2ZXIgZXhwb3NlIHlvdXIgYHNlcnZpY2Vfcm9sZWAga2V5IGluIHRoZSBicm93c2VyLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBnZXRVc2VyQnlJZCh1aWQpIHtcclxuICAgICAgICB2YWxpZGF0ZVVVSUQodWlkKTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ0dFVCcsIGAke3RoaXMudXJsfS9hZG1pbi91c2Vycy8ke3VpZH1gLCB7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICB4Zm9ybTogX3VzZXJSZXNwb25zZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwgfSwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIHVzZXIgZGF0YS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gYXR0cmlidXRlcyBUaGUgZGF0YSB5b3Ugd2FudCB0byB1cGRhdGUuXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBjYWxsZWQgb24gYSBzZXJ2ZXIuIE5ldmVyIGV4cG9zZSB5b3VyIGBzZXJ2aWNlX3JvbGVgIGtleSBpbiB0aGUgYnJvd3Nlci5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgdXBkYXRlVXNlckJ5SWQodWlkLCBhdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgdmFsaWRhdGVVVUlEKHVpZCk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQVVQnLCBgJHt0aGlzLnVybH0vYWRtaW4vdXNlcnMvJHt1aWR9YCwge1xyXG4gICAgICAgICAgICAgICAgYm9keTogYXR0cmlidXRlcyxcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICAgICAgICAgIHhmb3JtOiBfdXNlclJlc3BvbnNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCB9LCBlcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogRGVsZXRlIGEgdXNlci4gUmVxdWlyZXMgYSBgc2VydmljZV9yb2xlYCBrZXkuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGlkIFRoZSB1c2VyIGlkIHlvdSB3YW50IHRvIHJlbW92ZS5cclxuICAgICAqIEBwYXJhbSBzaG91bGRTb2Z0RGVsZXRlIElmIHRydWUsIHRoZW4gdGhlIHVzZXIgd2lsbCBiZSBzb2Z0LWRlbGV0ZWQgZnJvbSB0aGUgYXV0aCBzY2hlbWEuIFNvZnQgZGVsZXRpb24gYWxsb3dzIHVzZXIgaWRlbnRpZmljYXRpb24gZnJvbSB0aGUgaGFzaGVkIHVzZXIgSUQgYnV0IGlzIG5vdCByZXZlcnNpYmxlLlxyXG4gICAgICogRGVmYXVsdHMgdG8gZmFsc2UgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBjYWxsZWQgb24gYSBzZXJ2ZXIuIE5ldmVyIGV4cG9zZSB5b3VyIGBzZXJ2aWNlX3JvbGVgIGtleSBpbiB0aGUgYnJvd3Nlci5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZGVsZXRlVXNlcihpZCwgc2hvdWxkU29mdERlbGV0ZSA9IGZhbHNlKSB7XHJcbiAgICAgICAgdmFsaWRhdGVVVUlEKGlkKTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ0RFTEVURScsIGAke3RoaXMudXJsfS9hZG1pbi91c2Vycy8ke2lkfWAsIHtcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICAgICAgICAgIGJvZHk6IHtcclxuICAgICAgICAgICAgICAgICAgICBzaG91bGRfc29mdF9kZWxldGU6IHNob3VsZFNvZnREZWxldGUsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgeGZvcm06IF91c2VyUmVzcG9uc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsIH0sIGVycm9yIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgYXN5bmMgX2xpc3RGYWN0b3JzKHBhcmFtcykge1xyXG4gICAgICAgIHZhbGlkYXRlVVVJRChwYXJhbXMudXNlcklkKTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnR0VUJywgYCR7dGhpcy51cmx9L2FkbWluL3VzZXJzLyR7cGFyYW1zLnVzZXJJZH0vZmFjdG9yc2AsIHtcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICAgICAgICAgIHhmb3JtOiAoZmFjdG9ycykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgZmFjdG9ycyB9LCBlcnJvcjogbnVsbCB9O1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGRhdGEsIGVycm9yIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGFzeW5jIF9kZWxldGVGYWN0b3IocGFyYW1zKSB7XHJcbiAgICAgICAgdmFsaWRhdGVVVUlEKHBhcmFtcy51c2VySWQpO1xyXG4gICAgICAgIHZhbGlkYXRlVVVJRChwYXJhbXMuaWQpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnREVMRVRFJywgYCR7dGhpcy51cmx9L2FkbWluL3VzZXJzLyR7cGFyYW1zLnVzZXJJZH0vZmFjdG9ycy8ke3BhcmFtcy5pZH1gLCB7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9R29UcnVlQWRtaW5BcGkuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/GoTrueClient.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/GoTrueClient.js ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ GoTrueClient; }\n/* harmony export */ });\n/* harmony import */ var _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GoTrueAdminApi */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/constants */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/errors */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/errors.js\");\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/fetch */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/helpers */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/helpers.js\");\n/* harmony import */ var _lib_local_storage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/local-storage */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/local-storage.js\");\n/* harmony import */ var _lib_polyfills__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/polyfills */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/polyfills.js\");\n/* harmony import */ var _lib_version__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./lib/version */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/version.js\");\n/* harmony import */ var _lib_locks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./lib/locks */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/locks.js\");\n/* harmony import */ var _lib_base64url__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./lib/base64url */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/base64url.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n(0,_lib_polyfills__WEBPACK_IMPORTED_MODULE_6__.polyfillGlobalThis)(); // Make \"globalThis\" available\r\nconst DEFAULT_OPTIONS = {\r\n url: _lib_constants__WEBPACK_IMPORTED_MODULE_1__.GOTRUE_URL,\r\n storageKey: _lib_constants__WEBPACK_IMPORTED_MODULE_1__.STORAGE_KEY,\r\n autoRefreshToken: true,\r\n persistSession: true,\r\n detectSessionInUrl: true,\r\n headers: _lib_constants__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_HEADERS,\r\n flowType: 'implicit',\r\n debug: false,\r\n hasCustomAuthorizationHeader: false,\r\n};\r\nasync function lockNoOp(name, acquireTimeout, fn) {\r\n return await fn();\r\n}\r\n/**\r\n * Caches JWKS values for all clients created in the same environment. This is\r\n * especially useful for shared-memory execution environments such as Vercel's\r\n * Fluid Compute, AWS Lambda or Supabase's Edge Functions. Regardless of how\r\n * many clients are created, if they share the same storage key they will use\r\n * the same JWKS cache, significantly speeding up getClaims() with asymmetric\r\n * JWTs.\r\n */\r\nconst GLOBAL_JWKS = {};\r\nclass GoTrueClient {\r\n /**\r\n * Create a new client for use in the browser.\r\n */\r\n constructor(options) {\r\n var _a, _b;\r\n /**\r\n * @experimental\r\n */\r\n this.userStorage = null;\r\n this.memoryStorage = null;\r\n this.stateChangeEmitters = new Map();\r\n this.autoRefreshTicker = null;\r\n this.visibilityChangedCallback = null;\r\n this.refreshingDeferred = null;\r\n /**\r\n * Keeps track of the async client initialization.\r\n * When null or not yet resolved the auth state is `unknown`\r\n * Once resolved the the auth state is known and it's save to call any further client methods.\r\n * Keep extra care to never reject or throw uncaught errors\r\n */\r\n this.initializePromise = null;\r\n this.detectSessionInUrl = true;\r\n this.hasCustomAuthorizationHeader = false;\r\n this.suppressGetSessionWarning = false;\r\n this.lockAcquired = false;\r\n this.pendingInLock = [];\r\n /**\r\n * Used to broadcast state change events to other tabs listening.\r\n */\r\n this.broadcastChannel = null;\r\n this.logger = console.log;\r\n this.instanceID = GoTrueClient.nextInstanceID;\r\n GoTrueClient.nextInstanceID += 1;\r\n if (this.instanceID > 0 && (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)()) {\r\n console.warn('Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.');\r\n }\r\n const settings = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);\r\n this.logDebugMessages = !!settings.debug;\r\n if (typeof settings.debug === 'function') {\r\n this.logger = settings.debug;\r\n }\r\n this.persistSession = settings.persistSession;\r\n this.storageKey = settings.storageKey;\r\n this.autoRefreshToken = settings.autoRefreshToken;\r\n this.admin = new _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\r\n url: settings.url,\r\n headers: settings.headers,\r\n fetch: settings.fetch,\r\n });\r\n this.url = settings.url;\r\n this.headers = settings.headers;\r\n this.fetch = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.resolveFetch)(settings.fetch);\r\n this.lock = settings.lock || lockNoOp;\r\n this.detectSessionInUrl = settings.detectSessionInUrl;\r\n this.flowType = settings.flowType;\r\n this.hasCustomAuthorizationHeader = settings.hasCustomAuthorizationHeader;\r\n if (settings.lock) {\r\n this.lock = settings.lock;\r\n }\r\n else if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && ((_a = globalThis === null || globalThis === void 0 ? void 0 : globalThis.navigator) === null || _a === void 0 ? void 0 : _a.locks)) {\r\n this.lock = _lib_locks__WEBPACK_IMPORTED_MODULE_8__.navigatorLock;\r\n }\r\n else {\r\n this.lock = lockNoOp;\r\n }\r\n if (!this.jwks) {\r\n this.jwks = { keys: [] };\r\n this.jwks_cached_at = Number.MIN_SAFE_INTEGER;\r\n }\r\n this.mfa = {\r\n verify: this._verify.bind(this),\r\n enroll: this._enroll.bind(this),\r\n unenroll: this._unenroll.bind(this),\r\n challenge: this._challenge.bind(this),\r\n listFactors: this._listFactors.bind(this),\r\n challengeAndVerify: this._challengeAndVerify.bind(this),\r\n getAuthenticatorAssuranceLevel: this._getAuthenticatorAssuranceLevel.bind(this),\r\n };\r\n if (this.persistSession) {\r\n if (settings.storage) {\r\n this.storage = settings.storage;\r\n }\r\n else {\r\n if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.supportsLocalStorage)()) {\r\n this.storage = globalThis.localStorage;\r\n }\r\n else {\r\n this.memoryStorage = {};\r\n this.storage = (0,_lib_local_storage__WEBPACK_IMPORTED_MODULE_5__.memoryLocalStorageAdapter)(this.memoryStorage);\r\n }\r\n }\r\n if (settings.userStorage) {\r\n this.userStorage = settings.userStorage;\r\n }\r\n }\r\n else {\r\n this.memoryStorage = {};\r\n this.storage = (0,_lib_local_storage__WEBPACK_IMPORTED_MODULE_5__.memoryLocalStorageAdapter)(this.memoryStorage);\r\n }\r\n if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && globalThis.BroadcastChannel && this.persistSession && this.storageKey) {\r\n try {\r\n this.broadcastChannel = new globalThis.BroadcastChannel(this.storageKey);\r\n }\r\n catch (e) {\r\n console.error('Failed to create a new BroadcastChannel, multi-tab state changes will not be available', e);\r\n }\r\n (_b = this.broadcastChannel) === null || _b === void 0 ? void 0 : _b.addEventListener('message', async (event) => {\r\n this._debug('received broadcast notification from other tab or client', event);\r\n await this._notifyAllSubscribers(event.data.event, event.data.session, false); // broadcast = false so we don't get an endless loop of messages\r\n });\r\n }\r\n this.initialize();\r\n }\r\n /**\r\n * The JWKS used for verifying asymmetric JWTs\r\n */\r\n get jwks() {\r\n var _a, _b;\r\n return (_b = (_a = GLOBAL_JWKS[this.storageKey]) === null || _a === void 0 ? void 0 : _a.jwks) !== null && _b !== void 0 ? _b : { keys: [] };\r\n }\r\n set jwks(value) {\r\n GLOBAL_JWKS[this.storageKey] = Object.assign(Object.assign({}, GLOBAL_JWKS[this.storageKey]), { jwks: value });\r\n }\r\n get jwks_cached_at() {\r\n var _a, _b;\r\n return (_b = (_a = GLOBAL_JWKS[this.storageKey]) === null || _a === void 0 ? void 0 : _a.cachedAt) !== null && _b !== void 0 ? _b : Number.MIN_SAFE_INTEGER;\r\n }\r\n set jwks_cached_at(value) {\r\n GLOBAL_JWKS[this.storageKey] = Object.assign(Object.assign({}, GLOBAL_JWKS[this.storageKey]), { cachedAt: value });\r\n }\r\n _debug(...args) {\r\n if (this.logDebugMessages) {\r\n this.logger(`GoTrueClient@${this.instanceID} (${_lib_version__WEBPACK_IMPORTED_MODULE_7__.version}) ${new Date().toISOString()}`, ...args);\r\n }\r\n return this;\r\n }\r\n /**\r\n * Initializes the client session either from the url or from storage.\r\n * This method is automatically called when instantiating the client, but should also be called\r\n * manually when checking for an error from an auth redirect (oauth, magiclink, password recovery, etc).\r\n */\r\n async initialize() {\r\n if (this.initializePromise) {\r\n return await this.initializePromise;\r\n }\r\n this.initializePromise = (async () => {\r\n return await this._acquireLock(-1, async () => {\r\n return await this._initialize();\r\n });\r\n })();\r\n return await this.initializePromise;\r\n }\r\n /**\r\n * IMPORTANT:\r\n * 1. Never throw in this method, as it is called from the constructor\r\n * 2. Never return a session from this method as it would be cached over\r\n * the whole lifetime of the client\r\n */\r\n async _initialize() {\r\n var _a;\r\n try {\r\n const params = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.parseParametersFromURL)(window.location.href);\r\n let callbackUrlType = 'none';\r\n if (this._isImplicitGrantCallback(params)) {\r\n callbackUrlType = 'implicit';\r\n }\r\n else if (await this._isPKCECallback(params)) {\r\n callbackUrlType = 'pkce';\r\n }\r\n /**\r\n * Attempt to get the session from the URL only if these conditions are fulfilled\r\n *\r\n * Note: If the URL isn't one of the callback url types (implicit or pkce),\r\n * then there could be an existing session so we don't want to prematurely remove it\r\n */\r\n if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && this.detectSessionInUrl && callbackUrlType !== 'none') {\r\n const { data, error } = await this._getSessionFromURL(params, callbackUrlType);\r\n if (error) {\r\n this._debug('#_initialize()', 'error detecting session from URL', error);\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthImplicitGrantRedirectError)(error)) {\r\n const errorCode = (_a = error.details) === null || _a === void 0 ? void 0 : _a.code;\r\n if (errorCode === 'identity_already_exists' ||\r\n errorCode === 'identity_not_found' ||\r\n errorCode === 'single_identity_not_deletable') {\r\n return { error };\r\n }\r\n }\r\n // failed login attempt via url,\r\n // remove old session as in verifyOtp, signUp and signInWith*\r\n await this._removeSession();\r\n return { error };\r\n }\r\n const { session, redirectType } = data;\r\n this._debug('#_initialize()', 'detected session in URL', session, 'redirect type', redirectType);\r\n await this._saveSession(session);\r\n setTimeout(async () => {\r\n if (redirectType === 'recovery') {\r\n await this._notifyAllSubscribers('PASSWORD_RECOVERY', session);\r\n }\r\n else {\r\n await this._notifyAllSubscribers('SIGNED_IN', session);\r\n }\r\n }, 0);\r\n return { error: null };\r\n }\r\n // no login attempt via callback url try to recover session from storage\r\n await this._recoverAndRefresh();\r\n return { error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { error };\r\n }\r\n return {\r\n error: new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthUnknownError('Unexpected error during initialization', error),\r\n };\r\n }\r\n finally {\r\n await this._handleVisibilityChange();\r\n this._debug('#_initialize()', 'end');\r\n }\r\n }\r\n /**\r\n * Creates a new anonymous user.\r\n *\r\n * @returns A session where the is_anonymous claim in the access token JWT set to true\r\n */\r\n async signInAnonymously(credentials) {\r\n var _a, _b, _c;\r\n try {\r\n const res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/signup`, {\r\n headers: this.headers,\r\n body: {\r\n data: (_b = (_a = credentials === null || credentials === void 0 ? void 0 : credentials.options) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : {},\r\n gotrue_meta_security: { captcha_token: (_c = credentials === null || credentials === void 0 ? void 0 : credentials.options) === null || _c === void 0 ? void 0 : _c.captchaToken },\r\n },\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse,\r\n });\r\n const { data, error } = res;\r\n if (error || !data) {\r\n return { data: { user: null, session: null }, error: error };\r\n }\r\n const session = data.session;\r\n const user = data.user;\r\n if (data.session) {\r\n await this._saveSession(data.session);\r\n await this._notifyAllSubscribers('SIGNED_IN', session);\r\n }\r\n return { data: { user, session }, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { user: null, session: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Creates a new user.\r\n *\r\n * Be aware that if a user account exists in the system you may get back an\r\n * error message that attempts to hide this information from the user.\r\n * This method has support for PKCE via email signups. The PKCE flow cannot be used when autoconfirm is enabled.\r\n *\r\n * @returns A logged-in session if the server has \"autoconfirm\" ON\r\n * @returns A user if the server has \"autoconfirm\" OFF\r\n */\r\n async signUp(credentials) {\r\n var _a, _b, _c;\r\n try {\r\n let res;\r\n if ('email' in credentials) {\r\n const { email, password, options } = credentials;\r\n let codeChallenge = null;\r\n let codeChallengeMethod = null;\r\n if (this.flowType === 'pkce') {\r\n ;\r\n [codeChallenge, codeChallengeMethod] = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getCodeChallengeAndMethod)(this.storage, this.storageKey);\r\n }\r\n res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/signup`, {\r\n headers: this.headers,\r\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,\r\n body: {\r\n email,\r\n password,\r\n data: (_a = options === null || options === void 0 ? void 0 : options.data) !== null && _a !== void 0 ? _a : {},\r\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\r\n code_challenge: codeChallenge,\r\n code_challenge_method: codeChallengeMethod,\r\n },\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse,\r\n });\r\n }\r\n else if ('phone' in credentials) {\r\n const { phone, password, options } = credentials;\r\n res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/signup`, {\r\n headers: this.headers,\r\n body: {\r\n phone,\r\n password,\r\n data: (_b = options === null || options === void 0 ? void 0 : options.data) !== null && _b !== void 0 ? _b : {},\r\n channel: (_c = options === null || options === void 0 ? void 0 : options.channel) !== null && _c !== void 0 ? _c : 'sms',\r\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\r\n },\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse,\r\n });\r\n }\r\n else {\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidCredentialsError('You must provide either an email or phone number and a password');\r\n }\r\n const { data, error } = res;\r\n if (error || !data) {\r\n return { data: { user: null, session: null }, error: error };\r\n }\r\n const session = data.session;\r\n const user = data.user;\r\n if (data.session) {\r\n await this._saveSession(data.session);\r\n await this._notifyAllSubscribers('SIGNED_IN', session);\r\n }\r\n return { data: { user, session }, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { user: null, session: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Log in an existing user with an email and password or phone and password.\r\n *\r\n * Be aware that you may get back an error message that will not distinguish\r\n * between the cases where the account does not exist or that the\r\n * email/phone and password combination is wrong or that the account can only\r\n * be accessed via social login.\r\n */\r\n async signInWithPassword(credentials) {\r\n try {\r\n let res;\r\n if ('email' in credentials) {\r\n const { email, password, options } = credentials;\r\n res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/token?grant_type=password`, {\r\n headers: this.headers,\r\n body: {\r\n email,\r\n password,\r\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\r\n },\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponsePassword,\r\n });\r\n }\r\n else if ('phone' in credentials) {\r\n const { phone, password, options } = credentials;\r\n res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/token?grant_type=password`, {\r\n headers: this.headers,\r\n body: {\r\n phone,\r\n password,\r\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\r\n },\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponsePassword,\r\n });\r\n }\r\n else {\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidCredentialsError('You must provide either an email or phone number and a password');\r\n }\r\n const { data, error } = res;\r\n if (error) {\r\n return { data: { user: null, session: null }, error };\r\n }\r\n else if (!data || !data.session || !data.user) {\r\n return { data: { user: null, session: null }, error: new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidTokenResponseError() };\r\n }\r\n if (data.session) {\r\n await this._saveSession(data.session);\r\n await this._notifyAllSubscribers('SIGNED_IN', data.session);\r\n }\r\n return {\r\n data: Object.assign({ user: data.user, session: data.session }, (data.weak_password ? { weakPassword: data.weak_password } : null)),\r\n error,\r\n };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { user: null, session: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Log in an existing user via a third-party provider.\r\n * This method supports the PKCE flow.\r\n */\r\n async signInWithOAuth(credentials) {\r\n var _a, _b, _c, _d;\r\n return await this._handleProviderSignIn(credentials.provider, {\r\n redirectTo: (_a = credentials.options) === null || _a === void 0 ? void 0 : _a.redirectTo,\r\n scopes: (_b = credentials.options) === null || _b === void 0 ? void 0 : _b.scopes,\r\n queryParams: (_c = credentials.options) === null || _c === void 0 ? void 0 : _c.queryParams,\r\n skipBrowserRedirect: (_d = credentials.options) === null || _d === void 0 ? void 0 : _d.skipBrowserRedirect,\r\n });\r\n }\r\n /**\r\n * Log in an existing user by exchanging an Auth Code issued during the PKCE flow.\r\n */\r\n async exchangeCodeForSession(authCode) {\r\n await this.initializePromise;\r\n return this._acquireLock(-1, async () => {\r\n return this._exchangeCodeForSession(authCode);\r\n });\r\n }\r\n /**\r\n * Signs in a user by verifying a message signed by the user's private key.\r\n * Only Solana supported at this time, using the Sign in with Solana standard.\r\n */\r\n async signInWithWeb3(credentials) {\r\n const { chain } = credentials;\r\n if (chain === 'solana') {\r\n return await this.signInWithSolana(credentials);\r\n }\r\n throw new Error(`@supabase/auth-js: Unsupported chain \"${chain}\"`);\r\n }\r\n async signInWithSolana(credentials) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\r\n let message;\r\n let signature;\r\n if ('message' in credentials) {\r\n message = credentials.message;\r\n signature = credentials.signature;\r\n }\r\n else {\r\n const { chain, wallet, statement, options } = credentials;\r\n let resolvedWallet;\r\n if (!(0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)()) {\r\n if (typeof wallet !== 'object' || !(options === null || options === void 0 ? void 0 : options.url)) {\r\n throw new Error('@supabase/auth-js: Both wallet and url must be specified in non-browser environments.');\r\n }\r\n resolvedWallet = wallet;\r\n }\r\n else if (typeof wallet === 'object') {\r\n resolvedWallet = wallet;\r\n }\r\n else {\r\n const windowAny = window;\r\n if ('solana' in windowAny &&\r\n typeof windowAny.solana === 'object' &&\r\n (('signIn' in windowAny.solana && typeof windowAny.solana.signIn === 'function') ||\r\n ('signMessage' in windowAny.solana &&\r\n typeof windowAny.solana.signMessage === 'function'))) {\r\n resolvedWallet = windowAny.solana;\r\n }\r\n else {\r\n throw new Error(`@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.`);\r\n }\r\n }\r\n const url = new URL((_a = options === null || options === void 0 ? void 0 : options.url) !== null && _a !== void 0 ? _a : window.location.href);\r\n if ('signIn' in resolvedWallet && resolvedWallet.signIn) {\r\n const output = await resolvedWallet.signIn(Object.assign(Object.assign(Object.assign({ issuedAt: new Date().toISOString() }, options === null || options === void 0 ? void 0 : options.signInWithSolana), { \r\n // non-overridable properties\r\n version: '1', domain: url.host, uri: url.href }), (statement ? { statement } : null)));\r\n let outputToProcess;\r\n if (Array.isArray(output) && output[0] && typeof output[0] === 'object') {\r\n outputToProcess = output[0];\r\n }\r\n else if (output &&\r\n typeof output === 'object' &&\r\n 'signedMessage' in output &&\r\n 'signature' in output) {\r\n outputToProcess = output;\r\n }\r\n else {\r\n throw new Error('@supabase/auth-js: Wallet method signIn() returned unrecognized value');\r\n }\r\n if ('signedMessage' in outputToProcess &&\r\n 'signature' in outputToProcess &&\r\n (typeof outputToProcess.signedMessage === 'string' ||\r\n outputToProcess.signedMessage instanceof Uint8Array) &&\r\n outputToProcess.signature instanceof Uint8Array) {\r\n message =\r\n typeof outputToProcess.signedMessage === 'string'\r\n ? outputToProcess.signedMessage\r\n : new TextDecoder().decode(outputToProcess.signedMessage);\r\n signature = outputToProcess.signature;\r\n }\r\n else {\r\n throw new Error('@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields');\r\n }\r\n }\r\n else {\r\n if (!('signMessage' in resolvedWallet) ||\r\n typeof resolvedWallet.signMessage !== 'function' ||\r\n !('publicKey' in resolvedWallet) ||\r\n typeof resolvedWallet !== 'object' ||\r\n !resolvedWallet.publicKey ||\r\n !('toBase58' in resolvedWallet.publicKey) ||\r\n typeof resolvedWallet.publicKey.toBase58 !== 'function') {\r\n throw new Error('@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API');\r\n }\r\n message = [\r\n `${url.host} wants you to sign in with your Solana account:`,\r\n resolvedWallet.publicKey.toBase58(),\r\n ...(statement ? ['', statement, ''] : ['']),\r\n 'Version: 1',\r\n `URI: ${url.href}`,\r\n `Issued At: ${(_c = (_b = options === null || options === void 0 ? void 0 : options.signInWithSolana) === null || _b === void 0 ? void 0 : _b.issuedAt) !== null && _c !== void 0 ? _c : new Date().toISOString()}`,\r\n ...(((_d = options === null || options === void 0 ? void 0 : options.signInWithSolana) === null || _d === void 0 ? void 0 : _d.notBefore)\r\n ? [`Not Before: ${options.signInWithSolana.notBefore}`]\r\n : []),\r\n ...(((_e = options === null || options === void 0 ? void 0 : options.signInWithSolana) === null || _e === void 0 ? void 0 : _e.expirationTime)\r\n ? [`Expiration Time: ${options.signInWithSolana.expirationTime}`]\r\n : []),\r\n ...(((_f = options === null || options === void 0 ? void 0 : options.signInWithSolana) === null || _f === void 0 ? void 0 : _f.chainId)\r\n ? [`Chain ID: ${options.signInWithSolana.chainId}`]\r\n : []),\r\n ...(((_g = options === null || options === void 0 ? void 0 : options.signInWithSolana) === null || _g === void 0 ? void 0 : _g.nonce) ? [`Nonce: ${options.signInWithSolana.nonce}`] : []),\r\n ...(((_h = options === null || options === void 0 ? void 0 : options.signInWithSolana) === null || _h === void 0 ? void 0 : _h.requestId)\r\n ? [`Request ID: ${options.signInWithSolana.requestId}`]\r\n : []),\r\n ...(((_k = (_j = options === null || options === void 0 ? void 0 : options.signInWithSolana) === null || _j === void 0 ? void 0 : _j.resources) === null || _k === void 0 ? void 0 : _k.length)\r\n ? [\r\n 'Resources',\r\n ...options.signInWithSolana.resources.map((resource) => `- ${resource}`),\r\n ]\r\n : []),\r\n ].join('\\n');\r\n const maybeSignature = await resolvedWallet.signMessage(new TextEncoder().encode(message), 'utf8');\r\n if (!maybeSignature || !(maybeSignature instanceof Uint8Array)) {\r\n throw new Error('@supabase/auth-js: Wallet signMessage() API returned an recognized value');\r\n }\r\n signature = maybeSignature;\r\n }\r\n }\r\n try {\r\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/token?grant_type=web3`, {\r\n headers: this.headers,\r\n body: Object.assign({ chain: 'solana', message, signature: (0,_lib_base64url__WEBPACK_IMPORTED_MODULE_9__.bytesToBase64URL)(signature) }, (((_l = credentials.options) === null || _l === void 0 ? void 0 : _l.captchaToken)\r\n ? { gotrue_meta_security: { captcha_token: (_m = credentials.options) === null || _m === void 0 ? void 0 : _m.captchaToken } }\r\n : null)),\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse,\r\n });\r\n if (error) {\r\n throw error;\r\n }\r\n if (!data || !data.session || !data.user) {\r\n return {\r\n data: { user: null, session: null },\r\n error: new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidTokenResponseError(),\r\n };\r\n }\r\n if (data.session) {\r\n await this._saveSession(data.session);\r\n await this._notifyAllSubscribers('SIGNED_IN', data.session);\r\n }\r\n return { data: Object.assign({}, data), error };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { user: null, session: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n async _exchangeCodeForSession(authCode) {\r\n const storageItem = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.storage, `${this.storageKey}-code-verifier`);\r\n const [codeVerifier, redirectType] = (storageItem !== null && storageItem !== void 0 ? storageItem : '').split('/');\r\n try {\r\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/token?grant_type=pkce`, {\r\n headers: this.headers,\r\n body: {\r\n auth_code: authCode,\r\n code_verifier: codeVerifier,\r\n },\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse,\r\n });\r\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.removeItemAsync)(this.storage, `${this.storageKey}-code-verifier`);\r\n if (error) {\r\n throw error;\r\n }\r\n if (!data || !data.session || !data.user) {\r\n return {\r\n data: { user: null, session: null, redirectType: null },\r\n error: new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidTokenResponseError(),\r\n };\r\n }\r\n if (data.session) {\r\n await this._saveSession(data.session);\r\n await this._notifyAllSubscribers('SIGNED_IN', data.session);\r\n }\r\n return { data: Object.assign(Object.assign({}, data), { redirectType: redirectType !== null && redirectType !== void 0 ? redirectType : null }), error };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { user: null, session: null, redirectType: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Allows signing in with an OIDC ID token. The authentication provider used\r\n * should be enabled and configured.\r\n */\r\n async signInWithIdToken(credentials) {\r\n try {\r\n const { options, provider, token, access_token, nonce } = credentials;\r\n const res = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/token?grant_type=id_token`, {\r\n headers: this.headers,\r\n body: {\r\n provider,\r\n id_token: token,\r\n access_token,\r\n nonce,\r\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\r\n },\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse,\r\n });\r\n const { data, error } = res;\r\n if (error) {\r\n return { data: { user: null, session: null }, error };\r\n }\r\n else if (!data || !data.session || !data.user) {\r\n return {\r\n data: { user: null, session: null },\r\n error: new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidTokenResponseError(),\r\n };\r\n }\r\n if (data.session) {\r\n await this._saveSession(data.session);\r\n await this._notifyAllSubscribers('SIGNED_IN', data.session);\r\n }\r\n return { data, error };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { user: null, session: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Log in a user using magiclink or a one-time password (OTP).\r\n *\r\n * If the `{{ .ConfirmationURL }}` variable is specified in the email template, a magiclink will be sent.\r\n * If the `{{ .Token }}` variable is specified in the email template, an OTP will be sent.\r\n * If you're using phone sign-ins, only an OTP will be sent. You won't be able to send a magiclink for phone sign-ins.\r\n *\r\n * Be aware that you may get back an error message that will not distinguish\r\n * between the cases where the account does not exist or, that the account\r\n * can only be accessed via social login.\r\n *\r\n * Do note that you will need to configure a Whatsapp sender on Twilio\r\n * if you are using phone sign in with the 'whatsapp' channel. The whatsapp\r\n * channel is not supported on other providers\r\n * at this time.\r\n * This method supports PKCE when an email is passed.\r\n */\r\n async signInWithOtp(credentials) {\r\n var _a, _b, _c, _d, _e;\r\n try {\r\n if ('email' in credentials) {\r\n const { email, options } = credentials;\r\n let codeChallenge = null;\r\n let codeChallengeMethod = null;\r\n if (this.flowType === 'pkce') {\r\n ;\r\n [codeChallenge, codeChallengeMethod] = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getCodeChallengeAndMethod)(this.storage, this.storageKey);\r\n }\r\n const { error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/otp`, {\r\n headers: this.headers,\r\n body: {\r\n email,\r\n data: (_a = options === null || options === void 0 ? void 0 : options.data) !== null && _a !== void 0 ? _a : {},\r\n create_user: (_b = options === null || options === void 0 ? void 0 : options.shouldCreateUser) !== null && _b !== void 0 ? _b : true,\r\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\r\n code_challenge: codeChallenge,\r\n code_challenge_method: codeChallengeMethod,\r\n },\r\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,\r\n });\r\n return { data: { user: null, session: null }, error };\r\n }\r\n if ('phone' in credentials) {\r\n const { phone, options } = credentials;\r\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/otp`, {\r\n headers: this.headers,\r\n body: {\r\n phone,\r\n data: (_c = options === null || options === void 0 ? void 0 : options.data) !== null && _c !== void 0 ? _c : {},\r\n create_user: (_d = options === null || options === void 0 ? void 0 : options.shouldCreateUser) !== null && _d !== void 0 ? _d : true,\r\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\r\n channel: (_e = options === null || options === void 0 ? void 0 : options.channel) !== null && _e !== void 0 ? _e : 'sms',\r\n },\r\n });\r\n return { data: { user: null, session: null, messageId: data === null || data === void 0 ? void 0 : data.message_id }, error };\r\n }\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidCredentialsError('You must provide either an email or phone number.');\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { user: null, session: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Log in a user given a User supplied OTP or TokenHash received through mobile or email.\r\n */\r\n async verifyOtp(params) {\r\n var _a, _b;\r\n try {\r\n let redirectTo = undefined;\r\n let captchaToken = undefined;\r\n if ('options' in params) {\r\n redirectTo = (_a = params.options) === null || _a === void 0 ? void 0 : _a.redirectTo;\r\n captchaToken = (_b = params.options) === null || _b === void 0 ? void 0 : _b.captchaToken;\r\n }\r\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/verify`, {\r\n headers: this.headers,\r\n body: Object.assign(Object.assign({}, params), { gotrue_meta_security: { captcha_token: captchaToken } }),\r\n redirectTo,\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse,\r\n });\r\n if (error) {\r\n throw error;\r\n }\r\n if (!data) {\r\n throw new Error('An error occurred on token verification.');\r\n }\r\n const session = data.session;\r\n const user = data.user;\r\n if (session === null || session === void 0 ? void 0 : session.access_token) {\r\n await this._saveSession(session);\r\n await this._notifyAllSubscribers(params.type == 'recovery' ? 'PASSWORD_RECOVERY' : 'SIGNED_IN', session);\r\n }\r\n return { data: { user, session }, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { user: null, session: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Attempts a single-sign on using an enterprise Identity Provider. A\r\n * successful SSO attempt will redirect the current page to the identity\r\n * provider authorization page. The redirect URL is implementation and SSO\r\n * protocol specific.\r\n *\r\n * You can use it by providing a SSO domain. Typically you can extract this\r\n * domain by asking users for their email address. If this domain is\r\n * registered on the Auth instance the redirect will use that organization's\r\n * currently active SSO Identity Provider for the login.\r\n *\r\n * If you have built an organization-specific login page, you can use the\r\n * organization's SSO Identity Provider UUID directly instead.\r\n */\r\n async signInWithSSO(params) {\r\n var _a, _b, _c;\r\n try {\r\n let codeChallenge = null;\r\n let codeChallengeMethod = null;\r\n if (this.flowType === 'pkce') {\r\n ;\r\n [codeChallenge, codeChallengeMethod] = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getCodeChallengeAndMethod)(this.storage, this.storageKey);\r\n }\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/sso`, {\r\n body: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, ('providerId' in params ? { provider_id: params.providerId } : null)), ('domain' in params ? { domain: params.domain } : null)), { redirect_to: (_b = (_a = params.options) === null || _a === void 0 ? void 0 : _a.redirectTo) !== null && _b !== void 0 ? _b : undefined }), (((_c = params === null || params === void 0 ? void 0 : params.options) === null || _c === void 0 ? void 0 : _c.captchaToken)\r\n ? { gotrue_meta_security: { captcha_token: params.options.captchaToken } }\r\n : null)), { skip_http_redirect: true, code_challenge: codeChallenge, code_challenge_method: codeChallengeMethod }),\r\n headers: this.headers,\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._ssoResponse,\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Sends a reauthentication OTP to the user's email or phone number.\r\n * Requires the user to be signed-in.\r\n */\r\n async reauthenticate() {\r\n await this.initializePromise;\r\n return await this._acquireLock(-1, async () => {\r\n return await this._reauthenticate();\r\n });\r\n }\r\n async _reauthenticate() {\r\n try {\r\n return await this._useSession(async (result) => {\r\n const { data: { session }, error: sessionError, } = result;\r\n if (sessionError)\r\n throw sessionError;\r\n if (!session)\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\r\n const { error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'GET', `${this.url}/reauthenticate`, {\r\n headers: this.headers,\r\n jwt: session.access_token,\r\n });\r\n return { data: { user: null, session: null }, error };\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { user: null, session: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Resends an existing signup confirmation email, email change email, SMS OTP or phone change OTP.\r\n */\r\n async resend(credentials) {\r\n try {\r\n const endpoint = `${this.url}/resend`;\r\n if ('email' in credentials) {\r\n const { email, type, options } = credentials;\r\n const { error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', endpoint, {\r\n headers: this.headers,\r\n body: {\r\n email,\r\n type,\r\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\r\n },\r\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,\r\n });\r\n return { data: { user: null, session: null }, error };\r\n }\r\n else if ('phone' in credentials) {\r\n const { phone, type, options } = credentials;\r\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', endpoint, {\r\n headers: this.headers,\r\n body: {\r\n phone,\r\n type,\r\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\r\n },\r\n });\r\n return { data: { user: null, session: null, messageId: data === null || data === void 0 ? void 0 : data.message_id }, error };\r\n }\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidCredentialsError('You must provide either an email or phone number and a type');\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { user: null, session: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Returns the session, refreshing it if necessary.\r\n *\r\n * The session returned can be null if the session is not detected which can happen in the event a user is not signed-in or has logged out.\r\n *\r\n * **IMPORTANT:** This method loads values directly from the storage attached\r\n * to the client. If that storage is based on request cookies for example,\r\n * the values in it may not be authentic and therefore it's strongly advised\r\n * against using this method and its results in such circumstances. A warning\r\n * will be emitted if this is detected. Use {@link #getUser()} instead.\r\n */\r\n async getSession() {\r\n await this.initializePromise;\r\n const result = await this._acquireLock(-1, async () => {\r\n return this._useSession(async (result) => {\r\n return result;\r\n });\r\n });\r\n return result;\r\n }\r\n /**\r\n * Acquires a global lock based on the storage key.\r\n */\r\n async _acquireLock(acquireTimeout, fn) {\r\n this._debug('#_acquireLock', 'begin', acquireTimeout);\r\n try {\r\n if (this.lockAcquired) {\r\n const last = this.pendingInLock.length\r\n ? this.pendingInLock[this.pendingInLock.length - 1]\r\n : Promise.resolve();\r\n const result = (async () => {\r\n await last;\r\n return await fn();\r\n })();\r\n this.pendingInLock.push((async () => {\r\n try {\r\n await result;\r\n }\r\n catch (e) {\r\n // we just care if it finished\r\n }\r\n })());\r\n return result;\r\n }\r\n return await this.lock(`lock:${this.storageKey}`, acquireTimeout, async () => {\r\n this._debug('#_acquireLock', 'lock acquired for storage key', this.storageKey);\r\n try {\r\n this.lockAcquired = true;\r\n const result = fn();\r\n this.pendingInLock.push((async () => {\r\n try {\r\n await result;\r\n }\r\n catch (e) {\r\n // we just care if it finished\r\n }\r\n })());\r\n await result;\r\n // keep draining the queue until there's nothing to wait on\r\n while (this.pendingInLock.length) {\r\n const waitOn = [...this.pendingInLock];\r\n await Promise.all(waitOn);\r\n this.pendingInLock.splice(0, waitOn.length);\r\n }\r\n return await result;\r\n }\r\n finally {\r\n this._debug('#_acquireLock', 'lock released for storage key', this.storageKey);\r\n this.lockAcquired = false;\r\n }\r\n });\r\n }\r\n finally {\r\n this._debug('#_acquireLock', 'end');\r\n }\r\n }\r\n /**\r\n * Use instead of {@link #getSession} inside the library. It is\r\n * semantically usually what you want, as getting a session involves some\r\n * processing afterwards that requires only one client operating on the\r\n * session at once across multiple tabs or processes.\r\n */\r\n async _useSession(fn) {\r\n this._debug('#_useSession', 'begin');\r\n try {\r\n // the use of __loadSession here is the only correct use of the function!\r\n const result = await this.__loadSession();\r\n return await fn(result);\r\n }\r\n finally {\r\n this._debug('#_useSession', 'end');\r\n }\r\n }\r\n /**\r\n * NEVER USE DIRECTLY!\r\n *\r\n * Always use {@link #_useSession}.\r\n */\r\n async __loadSession() {\r\n this._debug('#__loadSession()', 'begin');\r\n if (!this.lockAcquired) {\r\n this._debug('#__loadSession()', 'used outside of an acquired lock!', new Error().stack);\r\n }\r\n try {\r\n let currentSession = null;\r\n const maybeSession = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.storage, this.storageKey);\r\n this._debug('#getSession()', 'session from storage', maybeSession);\r\n if (maybeSession !== null) {\r\n if (this._isValidSession(maybeSession)) {\r\n currentSession = maybeSession;\r\n }\r\n else {\r\n this._debug('#getSession()', 'session from storage is not valid');\r\n await this._removeSession();\r\n }\r\n }\r\n if (!currentSession) {\r\n return { data: { session: null }, error: null };\r\n }\r\n // A session is considered expired before the access token _actually_\r\n // expires. When the autoRefreshToken option is off (or when the tab is\r\n // in the background), very eager users of getSession() -- like\r\n // realtime-js -- might send a valid JWT which will expire by the time it\r\n // reaches the server.\r\n const hasExpired = currentSession.expires_at\r\n ? currentSession.expires_at * 1000 - Date.now() < _lib_constants__WEBPACK_IMPORTED_MODULE_1__.EXPIRY_MARGIN_MS\r\n : false;\r\n this._debug('#__loadSession()', `session has${hasExpired ? '' : ' not'} expired`, 'expires_at', currentSession.expires_at);\r\n if (!hasExpired) {\r\n if (this.userStorage) {\r\n const maybeUser = (await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.userStorage, this.storageKey + '-user'));\r\n if (maybeUser === null || maybeUser === void 0 ? void 0 : maybeUser.user) {\r\n currentSession.user = maybeUser.user;\r\n }\r\n else {\r\n currentSession.user = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.userNotAvailableProxy)();\r\n }\r\n }\r\n if (this.storage.isServer && currentSession.user) {\r\n let suppressWarning = this.suppressGetSessionWarning;\r\n const proxySession = new Proxy(currentSession, {\r\n get: (target, prop, receiver) => {\r\n if (!suppressWarning && prop === 'user') {\r\n // only show warning when the user object is being accessed from the server\r\n console.warn('Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.');\r\n suppressWarning = true; // keeps this proxy instance from logging additional warnings\r\n this.suppressGetSessionWarning = true; // keeps this client's future proxy instances from warning\r\n }\r\n return Reflect.get(target, prop, receiver);\r\n },\r\n });\r\n currentSession = proxySession;\r\n }\r\n return { data: { session: currentSession }, error: null };\r\n }\r\n const { session, error } = await this._callRefreshToken(currentSession.refresh_token);\r\n if (error) {\r\n return { data: { session: null }, error };\r\n }\r\n return { data: { session }, error: null };\r\n }\r\n finally {\r\n this._debug('#__loadSession()', 'end');\r\n }\r\n }\r\n /**\r\n * Gets the current user details if there is an existing session. This method\r\n * performs a network request to the Supabase Auth server, so the returned\r\n * value is authentic and can be used to base authorization rules on.\r\n *\r\n * @param jwt Takes in an optional access token JWT. If no JWT is provided, the JWT from the current session is used.\r\n */\r\n async getUser(jwt) {\r\n if (jwt) {\r\n return await this._getUser(jwt);\r\n }\r\n await this.initializePromise;\r\n const result = await this._acquireLock(-1, async () => {\r\n return await this._getUser();\r\n });\r\n return result;\r\n }\r\n async _getUser(jwt) {\r\n try {\r\n if (jwt) {\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'GET', `${this.url}/user`, {\r\n headers: this.headers,\r\n jwt: jwt,\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._userResponse,\r\n });\r\n }\r\n return await this._useSession(async (result) => {\r\n var _a, _b, _c;\r\n const { data, error } = result;\r\n if (error) {\r\n throw error;\r\n }\r\n // returns an error if there is no access_token or custom authorization header\r\n if (!((_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) && !this.hasCustomAuthorizationHeader) {\r\n return { data: { user: null }, error: new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError() };\r\n }\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'GET', `${this.url}/user`, {\r\n headers: this.headers,\r\n jwt: (_c = (_b = data.session) === null || _b === void 0 ? void 0 : _b.access_token) !== null && _c !== void 0 ? _c : undefined,\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._userResponse,\r\n });\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthSessionMissingError)(error)) {\r\n // JWT contains a `session_id` which does not correspond to an active\r\n // session in the database, indicating the user is signed out.\r\n await this._removeSession();\r\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.removeItemAsync)(this.storage, `${this.storageKey}-code-verifier`);\r\n }\r\n return { data: { user: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Updates user data for a logged in user.\r\n */\r\n async updateUser(attributes, options = {}) {\r\n await this.initializePromise;\r\n return await this._acquireLock(-1, async () => {\r\n return await this._updateUser(attributes, options);\r\n });\r\n }\r\n async _updateUser(attributes, options = {}) {\r\n try {\r\n return await this._useSession(async (result) => {\r\n const { data: sessionData, error: sessionError } = result;\r\n if (sessionError) {\r\n throw sessionError;\r\n }\r\n if (!sessionData.session) {\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\r\n }\r\n const session = sessionData.session;\r\n let codeChallenge = null;\r\n let codeChallengeMethod = null;\r\n if (this.flowType === 'pkce' && attributes.email != null) {\r\n ;\r\n [codeChallenge, codeChallengeMethod] = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getCodeChallengeAndMethod)(this.storage, this.storageKey);\r\n }\r\n const { data, error: userError } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'PUT', `${this.url}/user`, {\r\n headers: this.headers,\r\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,\r\n body: Object.assign(Object.assign({}, attributes), { code_challenge: codeChallenge, code_challenge_method: codeChallengeMethod }),\r\n jwt: session.access_token,\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._userResponse,\r\n });\r\n if (userError)\r\n throw userError;\r\n session.user = data.user;\r\n await this._saveSession(session);\r\n await this._notifyAllSubscribers('USER_UPDATED', session);\r\n return { data: { user: session.user }, error: null };\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { user: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Sets the session data from the current session. If the current session is expired, setSession will take care of refreshing it to obtain a new session.\r\n * If the refresh token or access token in the current session is invalid, an error will be thrown.\r\n * @param currentSession The current session that minimally contains an access token and refresh token.\r\n */\r\n async setSession(currentSession) {\r\n await this.initializePromise;\r\n return await this._acquireLock(-1, async () => {\r\n return await this._setSession(currentSession);\r\n });\r\n }\r\n async _setSession(currentSession) {\r\n try {\r\n if (!currentSession.access_token || !currentSession.refresh_token) {\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\r\n }\r\n const timeNow = Date.now() / 1000;\r\n let expiresAt = timeNow;\r\n let hasExpired = true;\r\n let session = null;\r\n const { payload } = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.decodeJWT)(currentSession.access_token);\r\n if (payload.exp) {\r\n expiresAt = payload.exp;\r\n hasExpired = expiresAt <= timeNow;\r\n }\r\n if (hasExpired) {\r\n const { session: refreshedSession, error } = await this._callRefreshToken(currentSession.refresh_token);\r\n if (error) {\r\n return { data: { user: null, session: null }, error: error };\r\n }\r\n if (!refreshedSession) {\r\n return { data: { user: null, session: null }, error: null };\r\n }\r\n session = refreshedSession;\r\n }\r\n else {\r\n const { data, error } = await this._getUser(currentSession.access_token);\r\n if (error) {\r\n throw error;\r\n }\r\n session = {\r\n access_token: currentSession.access_token,\r\n refresh_token: currentSession.refresh_token,\r\n user: data.user,\r\n token_type: 'bearer',\r\n expires_in: expiresAt - timeNow,\r\n expires_at: expiresAt,\r\n };\r\n await this._saveSession(session);\r\n await this._notifyAllSubscribers('SIGNED_IN', session);\r\n }\r\n return { data: { user: session.user, session }, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { session: null, user: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Returns a new session, regardless of expiry status.\r\n * Takes in an optional current session. If not passed in, then refreshSession() will attempt to retrieve it from getSession().\r\n * If the current session's refresh token is invalid, an error will be thrown.\r\n * @param currentSession The current session. If passed in, it must contain a refresh token.\r\n */\r\n async refreshSession(currentSession) {\r\n await this.initializePromise;\r\n return await this._acquireLock(-1, async () => {\r\n return await this._refreshSession(currentSession);\r\n });\r\n }\r\n async _refreshSession(currentSession) {\r\n try {\r\n return await this._useSession(async (result) => {\r\n var _a;\r\n if (!currentSession) {\r\n const { data, error } = result;\r\n if (error) {\r\n throw error;\r\n }\r\n currentSession = (_a = data.session) !== null && _a !== void 0 ? _a : undefined;\r\n }\r\n if (!(currentSession === null || currentSession === void 0 ? void 0 : currentSession.refresh_token)) {\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\r\n }\r\n const { session, error } = await this._callRefreshToken(currentSession.refresh_token);\r\n if (error) {\r\n return { data: { user: null, session: null }, error: error };\r\n }\r\n if (!session) {\r\n return { data: { user: null, session: null }, error: null };\r\n }\r\n return { data: { user: session.user, session }, error: null };\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { user: null, session: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Gets the session data from a URL string\r\n */\r\n async _getSessionFromURL(params, callbackUrlType) {\r\n try {\r\n if (!(0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)())\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthImplicitGrantRedirectError('No browser detected.');\r\n // If there's an error in the URL, it doesn't matter what flow it is, we just return the error.\r\n if (params.error || params.error_description || params.error_code) {\r\n // The error class returned implies that the redirect is from an implicit grant flow\r\n // but it could also be from a redirect error from a PKCE flow.\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthImplicitGrantRedirectError(params.error_description || 'Error in URL with unspecified error_description', {\r\n error: params.error || 'unspecified_error',\r\n code: params.error_code || 'unspecified_code',\r\n });\r\n }\r\n // Checks for mismatches between the flowType initialised in the client and the URL parameters\r\n switch (callbackUrlType) {\r\n case 'implicit':\r\n if (this.flowType === 'pkce') {\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthPKCEGrantCodeExchangeError('Not a valid PKCE flow url.');\r\n }\r\n break;\r\n case 'pkce':\r\n if (this.flowType === 'implicit') {\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthImplicitGrantRedirectError('Not a valid implicit grant flow url.');\r\n }\r\n break;\r\n default:\r\n // there's no mismatch so we continue\r\n }\r\n // Since this is a redirect for PKCE, we attempt to retrieve the code from the URL for the code exchange\r\n if (callbackUrlType === 'pkce') {\r\n this._debug('#_initialize()', 'begin', 'is PKCE flow', true);\r\n if (!params.code)\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthPKCEGrantCodeExchangeError('No code detected.');\r\n const { data, error } = await this._exchangeCodeForSession(params.code);\r\n if (error)\r\n throw error;\r\n const url = new URL(window.location.href);\r\n url.searchParams.delete('code');\r\n window.history.replaceState(window.history.state, '', url.toString());\r\n return { data: { session: data.session, redirectType: null }, error: null };\r\n }\r\n const { provider_token, provider_refresh_token, access_token, refresh_token, expires_in, expires_at, token_type, } = params;\r\n if (!access_token || !expires_in || !refresh_token || !token_type) {\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthImplicitGrantRedirectError('No session defined in URL');\r\n }\r\n const timeNow = Math.round(Date.now() / 1000);\r\n const expiresIn = parseInt(expires_in);\r\n let expiresAt = timeNow + expiresIn;\r\n if (expires_at) {\r\n expiresAt = parseInt(expires_at);\r\n }\r\n const actuallyExpiresIn = expiresAt - timeNow;\r\n if (actuallyExpiresIn * 1000 <= _lib_constants__WEBPACK_IMPORTED_MODULE_1__.AUTO_REFRESH_TICK_DURATION_MS) {\r\n console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${actuallyExpiresIn}s, should have been closer to ${expiresIn}s`);\r\n }\r\n const issuedAt = expiresAt - expiresIn;\r\n if (timeNow - issuedAt >= 120) {\r\n console.warn('@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale', issuedAt, expiresAt, timeNow);\r\n }\r\n else if (timeNow - issuedAt < 0) {\r\n console.warn('@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew', issuedAt, expiresAt, timeNow);\r\n }\r\n const { data, error } = await this._getUser(access_token);\r\n if (error)\r\n throw error;\r\n const session = {\r\n provider_token,\r\n provider_refresh_token,\r\n access_token,\r\n expires_in: expiresIn,\r\n expires_at: expiresAt,\r\n refresh_token,\r\n token_type,\r\n user: data.user,\r\n };\r\n // Remove tokens from URL\r\n window.location.hash = '';\r\n this._debug('#_getSessionFromURL()', 'clearing window.location.hash');\r\n return { data: { session, redirectType: params.type }, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { session: null, redirectType: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Checks if the current URL contains parameters given by an implicit oauth grant flow (https://www.rfc-editor.org/rfc/rfc6749.html#section-4.2)\r\n */\r\n _isImplicitGrantCallback(params) {\r\n return Boolean(params.access_token || params.error_description);\r\n }\r\n /**\r\n * Checks if the current URL and backing storage contain parameters given by a PKCE flow\r\n */\r\n async _isPKCECallback(params) {\r\n const currentStorageContent = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.storage, `${this.storageKey}-code-verifier`);\r\n return !!(params.code && currentStorageContent);\r\n }\r\n /**\r\n * Inside a browser context, `signOut()` will remove the logged in user from the browser session and log them out - removing all items from localstorage and then trigger a `\"SIGNED_OUT\"` event.\r\n *\r\n * For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`.\r\n * There is no way to revoke a user's access token jwt until it expires. It is recommended to set a shorter expiry on the jwt for this reason.\r\n *\r\n * If using `others` scope, no `SIGNED_OUT` event is fired!\r\n */\r\n async signOut(options = { scope: 'global' }) {\r\n await this.initializePromise;\r\n return await this._acquireLock(-1, async () => {\r\n return await this._signOut(options);\r\n });\r\n }\r\n async _signOut({ scope } = { scope: 'global' }) {\r\n return await this._useSession(async (result) => {\r\n var _a;\r\n const { data, error: sessionError } = result;\r\n if (sessionError) {\r\n return { error: sessionError };\r\n }\r\n const accessToken = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token;\r\n if (accessToken) {\r\n const { error } = await this.admin.signOut(accessToken, scope);\r\n if (error) {\r\n // ignore 404s since user might not exist anymore\r\n // ignore 401s since an invalid or expired JWT should sign out the current session\r\n if (!((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthApiError)(error) &&\r\n (error.status === 404 || error.status === 401 || error.status === 403))) {\r\n return { error };\r\n }\r\n }\r\n }\r\n if (scope !== 'others') {\r\n await this._removeSession();\r\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.removeItemAsync)(this.storage, `${this.storageKey}-code-verifier`);\r\n }\r\n return { error: null };\r\n });\r\n }\r\n /**\r\n * Receive a notification every time an auth event happens.\r\n * @param callback A callback function to be invoked when an auth event happens.\r\n */\r\n onAuthStateChange(callback) {\r\n const id = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.uuid)();\r\n const subscription = {\r\n id,\r\n callback,\r\n unsubscribe: () => {\r\n this._debug('#unsubscribe()', 'state change callback with id removed', id);\r\n this.stateChangeEmitters.delete(id);\r\n },\r\n };\r\n this._debug('#onAuthStateChange()', 'registered callback with id', id);\r\n this.stateChangeEmitters.set(id, subscription);\r\n (async () => {\r\n await this.initializePromise;\r\n await this._acquireLock(-1, async () => {\r\n this._emitInitialSession(id);\r\n });\r\n })();\r\n return { data: { subscription } };\r\n }\r\n async _emitInitialSession(id) {\r\n return await this._useSession(async (result) => {\r\n var _a, _b;\r\n try {\r\n const { data: { session }, error, } = result;\r\n if (error)\r\n throw error;\r\n await ((_a = this.stateChangeEmitters.get(id)) === null || _a === void 0 ? void 0 : _a.callback('INITIAL_SESSION', session));\r\n this._debug('INITIAL_SESSION', 'callback id', id, 'session', session);\r\n }\r\n catch (err) {\r\n await ((_b = this.stateChangeEmitters.get(id)) === null || _b === void 0 ? void 0 : _b.callback('INITIAL_SESSION', null));\r\n this._debug('INITIAL_SESSION', 'callback id', id, 'error', err);\r\n console.error(err);\r\n }\r\n });\r\n }\r\n /**\r\n * Sends a password reset request to an email address. This method supports the PKCE flow.\r\n *\r\n * @param email The email address of the user.\r\n * @param options.redirectTo The URL to send the user to after they click the password reset link.\r\n * @param options.captchaToken Verification token received when the user completes the captcha on the site.\r\n */\r\n async resetPasswordForEmail(email, options = {}) {\r\n let codeChallenge = null;\r\n let codeChallengeMethod = null;\r\n if (this.flowType === 'pkce') {\r\n ;\r\n [codeChallenge, codeChallengeMethod] = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getCodeChallengeAndMethod)(this.storage, this.storageKey, true // isPasswordRecovery\r\n );\r\n }\r\n try {\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/recover`, {\r\n body: {\r\n email,\r\n code_challenge: codeChallenge,\r\n code_challenge_method: codeChallengeMethod,\r\n gotrue_meta_security: { captcha_token: options.captchaToken },\r\n },\r\n headers: this.headers,\r\n redirectTo: options.redirectTo,\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Gets all the identities linked to a user.\r\n */\r\n async getUserIdentities() {\r\n var _a;\r\n try {\r\n const { data, error } = await this.getUser();\r\n if (error)\r\n throw error;\r\n return { data: { identities: (_a = data.user.identities) !== null && _a !== void 0 ? _a : [] }, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Links an oauth identity to an existing user.\r\n * This method supports the PKCE flow.\r\n */\r\n async linkIdentity(credentials) {\r\n var _a;\r\n try {\r\n const { data, error } = await this._useSession(async (result) => {\r\n var _a, _b, _c, _d, _e;\r\n const { data, error } = result;\r\n if (error)\r\n throw error;\r\n const url = await this._getUrlForProvider(`${this.url}/user/identities/authorize`, credentials.provider, {\r\n redirectTo: (_a = credentials.options) === null || _a === void 0 ? void 0 : _a.redirectTo,\r\n scopes: (_b = credentials.options) === null || _b === void 0 ? void 0 : _b.scopes,\r\n queryParams: (_c = credentials.options) === null || _c === void 0 ? void 0 : _c.queryParams,\r\n skipBrowserRedirect: true,\r\n });\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'GET', url, {\r\n headers: this.headers,\r\n jwt: (_e = (_d = data.session) === null || _d === void 0 ? void 0 : _d.access_token) !== null && _e !== void 0 ? _e : undefined,\r\n });\r\n });\r\n if (error)\r\n throw error;\r\n if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && !((_a = credentials.options) === null || _a === void 0 ? void 0 : _a.skipBrowserRedirect)) {\r\n window.location.assign(data === null || data === void 0 ? void 0 : data.url);\r\n }\r\n return { data: { provider: credentials.provider, url: data === null || data === void 0 ? void 0 : data.url }, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { provider: credentials.provider, url: null }, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Unlinks an identity from a user by deleting it. The user will no longer be able to sign in with that identity once it's unlinked.\r\n */\r\n async unlinkIdentity(identity) {\r\n try {\r\n return await this._useSession(async (result) => {\r\n var _a, _b;\r\n const { data, error } = result;\r\n if (error) {\r\n throw error;\r\n }\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'DELETE', `${this.url}/user/identities/${identity.identity_id}`, {\r\n headers: this.headers,\r\n jwt: (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : undefined,\r\n });\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Generates a new JWT.\r\n * @param refreshToken A valid refresh token that was returned on login.\r\n */\r\n async _refreshAccessToken(refreshToken) {\r\n const debugName = `#_refreshAccessToken(${refreshToken.substring(0, 5)}...)`;\r\n this._debug(debugName, 'begin');\r\n try {\r\n const startedAt = Date.now();\r\n // will attempt to refresh the token with exponential backoff\r\n return await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.retryable)(async (attempt) => {\r\n if (attempt > 0) {\r\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.sleep)(200 * Math.pow(2, attempt - 1)); // 200, 400, 800, ...\r\n }\r\n this._debug(debugName, 'refreshing attempt', attempt);\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/token?grant_type=refresh_token`, {\r\n body: { refresh_token: refreshToken },\r\n headers: this.headers,\r\n xform: _lib_fetch__WEBPACK_IMPORTED_MODULE_3__._sessionResponse,\r\n });\r\n }, (attempt, error) => {\r\n const nextBackOffInterval = 200 * Math.pow(2, attempt);\r\n return (error &&\r\n (0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthRetryableFetchError)(error) &&\r\n // retryable only if the request can be sent before the backoff overflows the tick duration\r\n Date.now() + nextBackOffInterval - startedAt < _lib_constants__WEBPACK_IMPORTED_MODULE_1__.AUTO_REFRESH_TICK_DURATION_MS);\r\n });\r\n }\r\n catch (error) {\r\n this._debug(debugName, 'error', error);\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: { session: null, user: null }, error };\r\n }\r\n throw error;\r\n }\r\n finally {\r\n this._debug(debugName, 'end');\r\n }\r\n }\r\n _isValidSession(maybeSession) {\r\n const isValidSession = typeof maybeSession === 'object' &&\r\n maybeSession !== null &&\r\n 'access_token' in maybeSession &&\r\n 'refresh_token' in maybeSession &&\r\n 'expires_at' in maybeSession;\r\n return isValidSession;\r\n }\r\n async _handleProviderSignIn(provider, options) {\r\n const url = await this._getUrlForProvider(`${this.url}/authorize`, provider, {\r\n redirectTo: options.redirectTo,\r\n scopes: options.scopes,\r\n queryParams: options.queryParams,\r\n });\r\n this._debug('#_handleProviderSignIn()', 'provider', provider, 'options', options, 'url', url);\r\n // try to open on the browser\r\n if ((0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && !options.skipBrowserRedirect) {\r\n window.location.assign(url);\r\n }\r\n return { data: { provider, url }, error: null };\r\n }\r\n /**\r\n * Recovers the session from LocalStorage and refreshes the token\r\n * Note: this method is async to accommodate for AsyncStorage e.g. in React native.\r\n */\r\n async _recoverAndRefresh() {\r\n var _a, _b;\r\n const debugName = '#_recoverAndRefresh()';\r\n this._debug(debugName, 'begin');\r\n try {\r\n const currentSession = (await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.storage, this.storageKey));\r\n if (currentSession && this.userStorage) {\r\n let maybeUser = (await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.userStorage, this.storageKey + '-user'));\r\n if (!this.storage.isServer && Object.is(this.storage, this.userStorage) && !maybeUser) {\r\n // storage and userStorage are the same storage medium, for example\r\n // window.localStorage if userStorage does not have the user from\r\n // storage stored, store it first thereby migrating the user object\r\n // from storage -> userStorage\r\n maybeUser = { user: currentSession.user };\r\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.userStorage, this.storageKey + '-user', maybeUser);\r\n }\r\n currentSession.user = (_a = maybeUser === null || maybeUser === void 0 ? void 0 : maybeUser.user) !== null && _a !== void 0 ? _a : (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.userNotAvailableProxy)();\r\n }\r\n else if (currentSession && !currentSession.user) {\r\n // user storage is not set, let's check if it was previously enabled so\r\n // we bring back the storage as it should be\r\n if (!currentSession.user) {\r\n // test if userStorage was previously enabled and the storage medium was the same, to move the user back under the same key\r\n const separateUser = (await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getItemAsync)(this.storage, this.storageKey + '-user'));\r\n if (separateUser && (separateUser === null || separateUser === void 0 ? void 0 : separateUser.user)) {\r\n currentSession.user = separateUser.user;\r\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.removeItemAsync)(this.storage, this.storageKey + '-user');\r\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, this.storageKey, currentSession);\r\n }\r\n else {\r\n currentSession.user = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.userNotAvailableProxy)();\r\n }\r\n }\r\n }\r\n this._debug(debugName, 'session from storage', currentSession);\r\n if (!this._isValidSession(currentSession)) {\r\n this._debug(debugName, 'session is not valid');\r\n if (currentSession !== null) {\r\n await this._removeSession();\r\n }\r\n return;\r\n }\r\n const expiresWithMargin = ((_b = currentSession.expires_at) !== null && _b !== void 0 ? _b : Infinity) * 1000 - Date.now() < _lib_constants__WEBPACK_IMPORTED_MODULE_1__.EXPIRY_MARGIN_MS;\r\n this._debug(debugName, `session has${expiresWithMargin ? '' : ' not'} expired with margin of ${_lib_constants__WEBPACK_IMPORTED_MODULE_1__.EXPIRY_MARGIN_MS}s`);\r\n if (expiresWithMargin) {\r\n if (this.autoRefreshToken && currentSession.refresh_token) {\r\n const { error } = await this._callRefreshToken(currentSession.refresh_token);\r\n if (error) {\r\n console.error(error);\r\n if (!(0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthRetryableFetchError)(error)) {\r\n this._debug(debugName, 'refresh failed with a non-retryable error, removing the session', error);\r\n await this._removeSession();\r\n }\r\n }\r\n }\r\n }\r\n else if (currentSession.user &&\r\n currentSession.user.__isUserNotAvailableProxy === true) {\r\n // If we have a proxy user, try to get the real user data\r\n try {\r\n const { data, error: userError } = await this._getUser(currentSession.access_token);\r\n if (!userError && (data === null || data === void 0 ? void 0 : data.user)) {\r\n currentSession.user = data.user;\r\n await this._saveSession(currentSession);\r\n await this._notifyAllSubscribers('SIGNED_IN', currentSession);\r\n }\r\n else {\r\n this._debug(debugName, 'could not get user data, skipping SIGNED_IN notification');\r\n }\r\n }\r\n catch (getUserError) {\r\n console.error('Error getting user data:', getUserError);\r\n this._debug(debugName, 'error getting user data, skipping SIGNED_IN notification', getUserError);\r\n }\r\n }\r\n else {\r\n // no need to persist currentSession again, as we just loaded it from\r\n // local storage; persisting it again may overwrite a value saved by\r\n // another client with access to the same local storage\r\n await this._notifyAllSubscribers('SIGNED_IN', currentSession);\r\n }\r\n }\r\n catch (err) {\r\n this._debug(debugName, 'error', err);\r\n console.error(err);\r\n return;\r\n }\r\n finally {\r\n this._debug(debugName, 'end');\r\n }\r\n }\r\n async _callRefreshToken(refreshToken) {\r\n var _a, _b;\r\n if (!refreshToken) {\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\r\n }\r\n // refreshing is already in progress\r\n if (this.refreshingDeferred) {\r\n return this.refreshingDeferred.promise;\r\n }\r\n const debugName = `#_callRefreshToken(${refreshToken.substring(0, 5)}...)`;\r\n this._debug(debugName, 'begin');\r\n try {\r\n this.refreshingDeferred = new _lib_helpers__WEBPACK_IMPORTED_MODULE_4__.Deferred();\r\n const { data, error } = await this._refreshAccessToken(refreshToken);\r\n if (error)\r\n throw error;\r\n if (!data.session)\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\r\n await this._saveSession(data.session);\r\n await this._notifyAllSubscribers('TOKEN_REFRESHED', data.session);\r\n const result = { session: data.session, error: null };\r\n this.refreshingDeferred.resolve(result);\r\n return result;\r\n }\r\n catch (error) {\r\n this._debug(debugName, 'error', error);\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n const result = { session: null, error };\r\n if (!(0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthRetryableFetchError)(error)) {\r\n await this._removeSession();\r\n }\r\n (_a = this.refreshingDeferred) === null || _a === void 0 ? void 0 : _a.resolve(result);\r\n return result;\r\n }\r\n (_b = this.refreshingDeferred) === null || _b === void 0 ? void 0 : _b.reject(error);\r\n throw error;\r\n }\r\n finally {\r\n this.refreshingDeferred = null;\r\n this._debug(debugName, 'end');\r\n }\r\n }\r\n async _notifyAllSubscribers(event, session, broadcast = true) {\r\n const debugName = `#_notifyAllSubscribers(${event})`;\r\n this._debug(debugName, 'begin', session, `broadcast = ${broadcast}`);\r\n try {\r\n if (this.broadcastChannel && broadcast) {\r\n this.broadcastChannel.postMessage({ event, session });\r\n }\r\n const errors = [];\r\n const promises = Array.from(this.stateChangeEmitters.values()).map(async (x) => {\r\n try {\r\n await x.callback(event, session);\r\n }\r\n catch (e) {\r\n errors.push(e);\r\n }\r\n });\r\n await Promise.all(promises);\r\n if (errors.length > 0) {\r\n for (let i = 0; i < errors.length; i += 1) {\r\n console.error(errors[i]);\r\n }\r\n throw errors[0];\r\n }\r\n }\r\n finally {\r\n this._debug(debugName, 'end');\r\n }\r\n }\r\n /**\r\n * set currentSession and currentUser\r\n * process to _startAutoRefreshToken if possible\r\n */\r\n async _saveSession(session) {\r\n this._debug('#_saveSession()', session);\r\n // _saveSession is always called whenever a new session has been acquired\r\n // so we can safely suppress the warning returned by future getSession calls\r\n this.suppressGetSessionWarning = true;\r\n // Create a shallow copy to work with, to avoid mutating the original session object if it's used elsewhere\r\n const sessionToProcess = Object.assign({}, session);\r\n const userIsProxy = sessionToProcess.user && sessionToProcess.user.__isUserNotAvailableProxy === true;\r\n if (this.userStorage) {\r\n if (!userIsProxy && sessionToProcess.user) {\r\n // If it's a real user object, save it to userStorage.\r\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.userStorage, this.storageKey + '-user', {\r\n user: sessionToProcess.user,\r\n });\r\n }\r\n else if (userIsProxy) {\r\n // If it's the proxy, it means user was not found in userStorage.\r\n // We should ensure no stale user data for this key exists in userStorage if we were to save null,\r\n // or simply not save the proxy. For now, we don't save the proxy here.\r\n // If there's a need to clear userStorage if user becomes proxy, that logic would go here.\r\n }\r\n // Prepare the main session data for primary storage: remove the user property before cloning\r\n // This is important because the original session.user might be the proxy\r\n const mainSessionData = Object.assign({}, sessionToProcess);\r\n delete mainSessionData.user; // Remove user (real or proxy) before cloning for main storage\r\n const clonedMainSessionData = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.deepClone)(mainSessionData);\r\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, this.storageKey, clonedMainSessionData);\r\n }\r\n else {\r\n // No userStorage is configured.\r\n // In this case, session.user should ideally not be a proxy.\r\n // If it were, structuredClone would fail. This implies an issue elsewhere if user is a proxy here\r\n const clonedSession = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.deepClone)(sessionToProcess); // sessionToProcess still has its original user property\r\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.setItemAsync)(this.storage, this.storageKey, clonedSession);\r\n }\r\n }\r\n async _removeSession() {\r\n this._debug('#_removeSession()');\r\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.removeItemAsync)(this.storage, this.storageKey);\r\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.removeItemAsync)(this.storage, this.storageKey + '-code-verifier');\r\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.removeItemAsync)(this.storage, this.storageKey + '-user');\r\n if (this.userStorage) {\r\n await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.removeItemAsync)(this.userStorage, this.storageKey + '-user');\r\n }\r\n await this._notifyAllSubscribers('SIGNED_OUT', null);\r\n }\r\n /**\r\n * Removes any registered visibilitychange callback.\r\n *\r\n * {@see #startAutoRefresh}\r\n * {@see #stopAutoRefresh}\r\n */\r\n _removeVisibilityChangedCallback() {\r\n this._debug('#_removeVisibilityChangedCallback()');\r\n const callback = this.visibilityChangedCallback;\r\n this.visibilityChangedCallback = null;\r\n try {\r\n if (callback && (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() && (window === null || window === void 0 ? void 0 : window.removeEventListener)) {\r\n window.removeEventListener('visibilitychange', callback);\r\n }\r\n }\r\n catch (e) {\r\n console.error('removing visibilitychange callback failed', e);\r\n }\r\n }\r\n /**\r\n * This is the private implementation of {@link #startAutoRefresh}. Use this\r\n * within the library.\r\n */\r\n async _startAutoRefresh() {\r\n await this._stopAutoRefresh();\r\n this._debug('#_startAutoRefresh()');\r\n const ticker = setInterval(() => this._autoRefreshTokenTick(), _lib_constants__WEBPACK_IMPORTED_MODULE_1__.AUTO_REFRESH_TICK_DURATION_MS);\r\n this.autoRefreshTicker = ticker;\r\n if (ticker && typeof ticker === 'object' && typeof ticker.unref === 'function') {\r\n // ticker is a NodeJS Timeout object that has an `unref` method\r\n // https://nodejs.org/api/timers.html#timeoutunref\r\n // When auto refresh is used in NodeJS (like for testing) the\r\n // `setInterval` is preventing the process from being marked as\r\n // finished and tests run endlessly. This can be prevented by calling\r\n // `unref()` on the returned object.\r\n ticker.unref();\r\n // @ts-expect-error TS has no context of Deno\r\n }\r\n else if (typeof Deno !== 'undefined' && typeof Deno.unrefTimer === 'function') {\r\n // similar like for NodeJS, but with the Deno API\r\n // https://deno.land/api@latest?unstable&s=Deno.unrefTimer\r\n // @ts-expect-error TS has no context of Deno\r\n Deno.unrefTimer(ticker);\r\n }\r\n // run the tick immediately, but in the next pass of the event loop so that\r\n // #_initialize can be allowed to complete without recursively waiting on\r\n // itself\r\n setTimeout(async () => {\r\n await this.initializePromise;\r\n await this._autoRefreshTokenTick();\r\n }, 0);\r\n }\r\n /**\r\n * This is the private implementation of {@link #stopAutoRefresh}. Use this\r\n * within the library.\r\n */\r\n async _stopAutoRefresh() {\r\n this._debug('#_stopAutoRefresh()');\r\n const ticker = this.autoRefreshTicker;\r\n this.autoRefreshTicker = null;\r\n if (ticker) {\r\n clearInterval(ticker);\r\n }\r\n }\r\n /**\r\n * Starts an auto-refresh process in the background. The session is checked\r\n * every few seconds. Close to the time of expiration a process is started to\r\n * refresh the session. If refreshing fails it will be retried for as long as\r\n * necessary.\r\n *\r\n * If you set the {@link GoTrueClientOptions#autoRefreshToken} you don't need\r\n * to call this function, it will be called for you.\r\n *\r\n * On browsers the refresh process works only when the tab/window is in the\r\n * foreground to conserve resources as well as prevent race conditions and\r\n * flooding auth with requests. If you call this method any managed\r\n * visibility change callback will be removed and you must manage visibility\r\n * changes on your own.\r\n *\r\n * On non-browser platforms the refresh process works *continuously* in the\r\n * background, which may not be desirable. You should hook into your\r\n * platform's foreground indication mechanism and call these methods\r\n * appropriately to conserve resources.\r\n *\r\n * {@see #stopAutoRefresh}\r\n */\r\n async startAutoRefresh() {\r\n this._removeVisibilityChangedCallback();\r\n await this._startAutoRefresh();\r\n }\r\n /**\r\n * Stops an active auto refresh process running in the background (if any).\r\n *\r\n * If you call this method any managed visibility change callback will be\r\n * removed and you must manage visibility changes on your own.\r\n *\r\n * See {@link #startAutoRefresh} for more details.\r\n */\r\n async stopAutoRefresh() {\r\n this._removeVisibilityChangedCallback();\r\n await this._stopAutoRefresh();\r\n }\r\n /**\r\n * Runs the auto refresh token tick.\r\n */\r\n async _autoRefreshTokenTick() {\r\n this._debug('#_autoRefreshTokenTick()', 'begin');\r\n try {\r\n await this._acquireLock(0, async () => {\r\n try {\r\n const now = Date.now();\r\n try {\r\n return await this._useSession(async (result) => {\r\n const { data: { session }, } = result;\r\n if (!session || !session.refresh_token || !session.expires_at) {\r\n this._debug('#_autoRefreshTokenTick()', 'no session');\r\n return;\r\n }\r\n // session will expire in this many ticks (or has already expired if <= 0)\r\n const expiresInTicks = Math.floor((session.expires_at * 1000 - now) / _lib_constants__WEBPACK_IMPORTED_MODULE_1__.AUTO_REFRESH_TICK_DURATION_MS);\r\n this._debug('#_autoRefreshTokenTick()', `access token expires in ${expiresInTicks} ticks, a tick lasts ${_lib_constants__WEBPACK_IMPORTED_MODULE_1__.AUTO_REFRESH_TICK_DURATION_MS}ms, refresh threshold is ${_lib_constants__WEBPACK_IMPORTED_MODULE_1__.AUTO_REFRESH_TICK_THRESHOLD} ticks`);\r\n if (expiresInTicks <= _lib_constants__WEBPACK_IMPORTED_MODULE_1__.AUTO_REFRESH_TICK_THRESHOLD) {\r\n await this._callRefreshToken(session.refresh_token);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n console.error('Auto refresh tick failed with error. This is likely a transient error.', e);\r\n }\r\n }\r\n finally {\r\n this._debug('#_autoRefreshTokenTick()', 'end');\r\n }\r\n });\r\n }\r\n catch (e) {\r\n if (e.isAcquireTimeout || e instanceof _lib_locks__WEBPACK_IMPORTED_MODULE_8__.LockAcquireTimeoutError) {\r\n this._debug('auto refresh token tick lock not available');\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n /**\r\n * Registers callbacks on the browser / platform, which in-turn run\r\n * algorithms when the browser window/tab are in foreground. On non-browser\r\n * platforms it assumes always foreground.\r\n */\r\n async _handleVisibilityChange() {\r\n this._debug('#_handleVisibilityChange()');\r\n if (!(0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.isBrowser)() || !(window === null || window === void 0 ? void 0 : window.addEventListener)) {\r\n if (this.autoRefreshToken) {\r\n // in non-browser environments the refresh token ticker runs always\r\n this.startAutoRefresh();\r\n }\r\n return false;\r\n }\r\n try {\r\n this.visibilityChangedCallback = async () => await this._onVisibilityChanged(false);\r\n window === null || window === void 0 ? void 0 : window.addEventListener('visibilitychange', this.visibilityChangedCallback);\r\n // now immediately call the visbility changed callback to setup with the\r\n // current visbility state\r\n await this._onVisibilityChanged(true); // initial call\r\n }\r\n catch (error) {\r\n console.error('_handleVisibilityChange', error);\r\n }\r\n }\r\n /**\r\n * Callback registered with `window.addEventListener('visibilitychange')`.\r\n */\r\n async _onVisibilityChanged(calledFromInitialize) {\r\n const methodName = `#_onVisibilityChanged(${calledFromInitialize})`;\r\n this._debug(methodName, 'visibilityState', document.visibilityState);\r\n if (document.visibilityState === 'visible') {\r\n if (this.autoRefreshToken) {\r\n // in browser environments the refresh token ticker runs only on focused tabs\r\n // which prevents race conditions\r\n this._startAutoRefresh();\r\n }\r\n if (!calledFromInitialize) {\r\n // called when the visibility has changed, i.e. the browser\r\n // transitioned from hidden -> visible so we need to see if the session\r\n // should be recovered immediately... but to do that we need to acquire\r\n // the lock first asynchronously\r\n await this.initializePromise;\r\n await this._acquireLock(-1, async () => {\r\n if (document.visibilityState !== 'visible') {\r\n this._debug(methodName, 'acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting');\r\n // visibility has changed while waiting for the lock, abort\r\n return;\r\n }\r\n // recover the session\r\n await this._recoverAndRefresh();\r\n });\r\n }\r\n }\r\n else if (document.visibilityState === 'hidden') {\r\n if (this.autoRefreshToken) {\r\n this._stopAutoRefresh();\r\n }\r\n }\r\n }\r\n /**\r\n * Generates the relevant login URL for a third-party provider.\r\n * @param options.redirectTo A URL or mobile address to send the user to after they are confirmed.\r\n * @param options.scopes A space-separated list of scopes granted to the OAuth application.\r\n * @param options.queryParams An object of key-value pairs containing query parameters granted to the OAuth application.\r\n */\r\n async _getUrlForProvider(url, provider, options) {\r\n const urlParams = [`provider=${encodeURIComponent(provider)}`];\r\n if (options === null || options === void 0 ? void 0 : options.redirectTo) {\r\n urlParams.push(`redirect_to=${encodeURIComponent(options.redirectTo)}`);\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.scopes) {\r\n urlParams.push(`scopes=${encodeURIComponent(options.scopes)}`);\r\n }\r\n if (this.flowType === 'pkce') {\r\n const [codeChallenge, codeChallengeMethod] = await (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getCodeChallengeAndMethod)(this.storage, this.storageKey);\r\n const flowParams = new URLSearchParams({\r\n code_challenge: `${encodeURIComponent(codeChallenge)}`,\r\n code_challenge_method: `${encodeURIComponent(codeChallengeMethod)}`,\r\n });\r\n urlParams.push(flowParams.toString());\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.queryParams) {\r\n const query = new URLSearchParams(options.queryParams);\r\n urlParams.push(query.toString());\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.skipBrowserRedirect) {\r\n urlParams.push(`skip_http_redirect=${options.skipBrowserRedirect}`);\r\n }\r\n return `${url}?${urlParams.join('&')}`;\r\n }\r\n async _unenroll(params) {\r\n try {\r\n return await this._useSession(async (result) => {\r\n var _a;\r\n const { data: sessionData, error: sessionError } = result;\r\n if (sessionError) {\r\n return { data: null, error: sessionError };\r\n }\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'DELETE', `${this.url}/factors/${params.factorId}`, {\r\n headers: this.headers,\r\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,\r\n });\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n async _enroll(params) {\r\n try {\r\n return await this._useSession(async (result) => {\r\n var _a, _b;\r\n const { data: sessionData, error: sessionError } = result;\r\n if (sessionError) {\r\n return { data: null, error: sessionError };\r\n }\r\n const body = Object.assign({ friendly_name: params.friendlyName, factor_type: params.factorType }, (params.factorType === 'phone' ? { phone: params.phone } : { issuer: params.issuer }));\r\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/factors`, {\r\n body,\r\n headers: this.headers,\r\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,\r\n });\r\n if (error) {\r\n return { data: null, error };\r\n }\r\n if (params.factorType === 'totp' && ((_b = data === null || data === void 0 ? void 0 : data.totp) === null || _b === void 0 ? void 0 : _b.qr_code)) {\r\n data.totp.qr_code = `data:image/svg+xml;utf-8,${data.totp.qr_code}`;\r\n }\r\n return { data, error: null };\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * {@see GoTrueMFAApi#verify}\r\n */\r\n async _verify(params) {\r\n return this._acquireLock(-1, async () => {\r\n try {\r\n return await this._useSession(async (result) => {\r\n var _a;\r\n const { data: sessionData, error: sessionError } = result;\r\n if (sessionError) {\r\n return { data: null, error: sessionError };\r\n }\r\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/factors/${params.factorId}/verify`, {\r\n body: { code: params.code, challenge_id: params.challengeId },\r\n headers: this.headers,\r\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,\r\n });\r\n if (error) {\r\n return { data: null, error };\r\n }\r\n await this._saveSession(Object.assign({ expires_at: Math.round(Date.now() / 1000) + data.expires_in }, data));\r\n await this._notifyAllSubscribers('MFA_CHALLENGE_VERIFIED', data);\r\n return { data, error };\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * {@see GoTrueMFAApi#challenge}\r\n */\r\n async _challenge(params) {\r\n return this._acquireLock(-1, async () => {\r\n try {\r\n return await this._useSession(async (result) => {\r\n var _a;\r\n const { data: sessionData, error: sessionError } = result;\r\n if (sessionError) {\r\n return { data: null, error: sessionError };\r\n }\r\n return await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'POST', `${this.url}/factors/${params.factorId}/challenge`, {\r\n body: { channel: params.channel },\r\n headers: this.headers,\r\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,\r\n });\r\n });\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * {@see GoTrueMFAApi#challengeAndVerify}\r\n */\r\n async _challengeAndVerify(params) {\r\n // both _challenge and _verify independently acquire the lock, so no need\r\n // to acquire it here\r\n const { data: challengeData, error: challengeError } = await this._challenge({\r\n factorId: params.factorId,\r\n });\r\n if (challengeError) {\r\n return { data: null, error: challengeError };\r\n }\r\n return await this._verify({\r\n factorId: params.factorId,\r\n challengeId: challengeData.id,\r\n code: params.code,\r\n });\r\n }\r\n /**\r\n * {@see GoTrueMFAApi#listFactors}\r\n */\r\n async _listFactors() {\r\n // use #getUser instead of #_getUser as the former acquires a lock\r\n const { data: { user }, error: userError, } = await this.getUser();\r\n if (userError) {\r\n return { data: null, error: userError };\r\n }\r\n const factors = (user === null || user === void 0 ? void 0 : user.factors) || [];\r\n const totp = factors.filter((factor) => factor.factor_type === 'totp' && factor.status === 'verified');\r\n const phone = factors.filter((factor) => factor.factor_type === 'phone' && factor.status === 'verified');\r\n return {\r\n data: {\r\n all: factors,\r\n totp,\r\n phone,\r\n },\r\n error: null,\r\n };\r\n }\r\n /**\r\n * {@see GoTrueMFAApi#getAuthenticatorAssuranceLevel}\r\n */\r\n async _getAuthenticatorAssuranceLevel() {\r\n return this._acquireLock(-1, async () => {\r\n return await this._useSession(async (result) => {\r\n var _a, _b;\r\n const { data: { session }, error: sessionError, } = result;\r\n if (sessionError) {\r\n return { data: null, error: sessionError };\r\n }\r\n if (!session) {\r\n return {\r\n data: { currentLevel: null, nextLevel: null, currentAuthenticationMethods: [] },\r\n error: null,\r\n };\r\n }\r\n const { payload } = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.decodeJWT)(session.access_token);\r\n let currentLevel = null;\r\n if (payload.aal) {\r\n currentLevel = payload.aal;\r\n }\r\n let nextLevel = currentLevel;\r\n const verifiedFactors = (_b = (_a = session.user.factors) === null || _a === void 0 ? void 0 : _a.filter((factor) => factor.status === 'verified')) !== null && _b !== void 0 ? _b : [];\r\n if (verifiedFactors.length > 0) {\r\n nextLevel = 'aal2';\r\n }\r\n const currentAuthenticationMethods = payload.amr || [];\r\n return { data: { currentLevel, nextLevel, currentAuthenticationMethods }, error: null };\r\n });\r\n });\r\n }\r\n async fetchJwk(kid, jwks = { keys: [] }) {\r\n // try fetching from the supplied jwks\r\n let jwk = jwks.keys.find((key) => key.kid === kid);\r\n if (jwk) {\r\n return jwk;\r\n }\r\n const now = Date.now();\r\n // try fetching from cache\r\n jwk = this.jwks.keys.find((key) => key.kid === kid);\r\n // jwk exists and jwks isn't stale\r\n if (jwk && this.jwks_cached_at + _lib_constants__WEBPACK_IMPORTED_MODULE_1__.JWKS_TTL > now) {\r\n return jwk;\r\n }\r\n // jwk isn't cached in memory so we need to fetch it from the well-known endpoint\r\n const { data, error } = await (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_3__._request)(this.fetch, 'GET', `${this.url}/.well-known/jwks.json`, {\r\n headers: this.headers,\r\n });\r\n if (error) {\r\n throw error;\r\n }\r\n if (!data.keys || data.keys.length === 0) {\r\n return null;\r\n }\r\n this.jwks = data;\r\n this.jwks_cached_at = now;\r\n // Find the signing key\r\n jwk = data.keys.find((key) => key.kid === kid);\r\n if (!jwk) {\r\n return null;\r\n }\r\n return jwk;\r\n }\r\n /**\r\n * Extracts the JWT claims present in the access token by first verifying the\r\n * JWT against the server's JSON Web Key Set endpoint\r\n * `/.well-known/jwks.json` which is often cached, resulting in significantly\r\n * faster responses. Prefer this method over {@link #getUser} which always\r\n * sends a request to the Auth server for each JWT.\r\n *\r\n * If the project is not using an asymmetric JWT signing key (like ECC or\r\n * RSA) it always sends a request to the Auth server (similar to {@link\r\n * #getUser}) to verify the JWT.\r\n *\r\n * @param jwt An optional specific JWT you wish to verify, not the one you\r\n * can obtain from {@link #getSession}.\r\n * @param options Various additional options that allow you to customize the\r\n * behavior of this method.\r\n */\r\n async getClaims(jwt, options = {}) {\r\n try {\r\n let token = jwt;\r\n if (!token) {\r\n const { data, error } = await this.getSession();\r\n if (error || !data.session) {\r\n return { data: null, error };\r\n }\r\n token = data.session.access_token;\r\n }\r\n const { header, payload, signature, raw: { header: rawHeader, payload: rawPayload }, } = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.decodeJWT)(token);\r\n if (!(options === null || options === void 0 ? void 0 : options.allowExpired)) {\r\n // Reject expired JWTs should only happen if jwt argument was passed\r\n (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.validateExp)(payload.exp);\r\n }\r\n const signingKey = !header.alg ||\r\n header.alg.startsWith('HS') ||\r\n !header.kid ||\r\n !('crypto' in globalThis && 'subtle' in globalThis.crypto)\r\n ? null\r\n : await this.fetchJwk(header.kid, (options === null || options === void 0 ? void 0 : options.keys) ? { keys: options.keys } : options === null || options === void 0 ? void 0 : options.jwks);\r\n // If symmetric algorithm or WebCrypto API is unavailable, fallback to getUser()\r\n if (!signingKey) {\r\n const { error } = await this.getUser(token);\r\n if (error) {\r\n throw error;\r\n }\r\n // getUser succeeds so the claims in the JWT can be trusted\r\n return {\r\n data: {\r\n claims: payload,\r\n header,\r\n signature,\r\n },\r\n error: null,\r\n };\r\n }\r\n const algorithm = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_4__.getAlgorithm)(header.alg);\r\n // Convert JWK to CryptoKey\r\n const publicKey = await crypto.subtle.importKey('jwk', signingKey, algorithm, true, [\r\n 'verify',\r\n ]);\r\n // Verify the signature\r\n const isValid = await crypto.subtle.verify(algorithm, publicKey, signature, (0,_lib_base64url__WEBPACK_IMPORTED_MODULE_9__.stringToUint8Array)(`${rawHeader}.${rawPayload}`));\r\n if (!isValid) {\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_2__.AuthInvalidJwtError('Invalid JWT signature');\r\n }\r\n // If verification succeeds, decode and return claims\r\n return {\r\n data: {\r\n claims: payload,\r\n header,\r\n signature,\r\n },\r\n error: null,\r\n };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_2__.isAuthError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n }\r\n}\r\nGoTrueClient.nextInstanceID = 0;\r\n//# sourceMappingURL=GoTrueClient.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9Hb1RydWVDbGllbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBOEM7QUFDc0g7QUFDNEs7QUFDL047QUFDNko7QUFDOU07QUFDWDtBQUNiO0FBQzZCO0FBQ0U7QUFDN0I7QUFDMUMsa0VBQWtCLElBQUk7QUFDdEI7QUFDQSxTQUFTLHNEQUFVO0FBQ25CLGdCQUFnQix1REFBVztBQUMzQjtBQUNBO0FBQ0E7QUFDQSxhQUFhLDJEQUFlO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2U7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsdURBQVM7QUFDNUM7QUFDQTtBQUNBLHVEQUF1RDtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5Qix1REFBYztBQUN2QztBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLHFCQUFxQiwwREFBWTtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQix1REFBUztBQUMxQix3QkFBd0IscURBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixrRUFBb0I7QUFDeEM7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STtBQUNBO0FBQ0Esd0JBQXdCLFFBQVE7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QiwwREFBWTtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0ZBQXdGLGtFQUFrQixJQUFJLFVBQVUsR0FBRyxXQUFXO0FBQ3RJO0FBQ0EsMEJBQTBCLDREQUFtQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQix3REFBVztBQUMzQix5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9hdXRoLWpzL2Rpc3QvbW9kdWxlL0dvVHJ1ZUNsaWVudC5qcz9lMDI1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBHb1RydWVBZG1pbkFwaSBmcm9tICcuL0dvVHJ1ZUFkbWluQXBpJztcclxuaW1wb3J0IHsgREVGQVVMVF9IRUFERVJTLCBFWFBJUllfTUFSR0lOX01TLCBBVVRPX1JFRlJFU0hfVElDS19EVVJBVElPTl9NUywgQVVUT19SRUZSRVNIX1RJQ0tfVEhSRVNIT0xELCBHT1RSVUVfVVJMLCBTVE9SQUdFX0tFWSwgSldLU19UVEwsIH0gZnJvbSAnLi9saWIvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yLCBBdXRoUEtDRUdyYW50Q29kZUV4Y2hhbmdlRXJyb3IsIEF1dGhJbnZhbGlkQ3JlZGVudGlhbHNFcnJvciwgQXV0aFNlc3Npb25NaXNzaW5nRXJyb3IsIEF1dGhJbnZhbGlkVG9rZW5SZXNwb25zZUVycm9yLCBBdXRoVW5rbm93bkVycm9yLCBpc0F1dGhBcGlFcnJvciwgaXNBdXRoRXJyb3IsIGlzQXV0aFJldHJ5YWJsZUZldGNoRXJyb3IsIGlzQXV0aFNlc3Npb25NaXNzaW5nRXJyb3IsIGlzQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yLCBBdXRoSW52YWxpZEp3dEVycm9yLCB9IGZyb20gJy4vbGliL2Vycm9ycyc7XHJcbmltcG9ydCB7IF9yZXF1ZXN0LCBfc2Vzc2lvblJlc3BvbnNlLCBfc2Vzc2lvblJlc3BvbnNlUGFzc3dvcmQsIF91c2VyUmVzcG9uc2UsIF9zc29SZXNwb25zZSwgfSBmcm9tICcuL2xpYi9mZXRjaCc7XHJcbmltcG9ydCB7IERlZmVycmVkLCBnZXRJdGVtQXN5bmMsIGlzQnJvd3NlciwgcmVtb3ZlSXRlbUFzeW5jLCByZXNvbHZlRmV0Y2gsIHNldEl0ZW1Bc3luYywgdXVpZCwgcmV0cnlhYmxlLCBzbGVlcCwgcGFyc2VQYXJhbWV0ZXJzRnJvbVVSTCwgZ2V0Q29kZUNoYWxsZW5nZUFuZE1ldGhvZCwgZ2V0QWxnb3JpdGhtLCB2YWxpZGF0ZUV4cCwgZGVjb2RlSldULCB1c2VyTm90QXZhaWxhYmxlUHJveHksIHN1cHBvcnRzTG9jYWxTdG9yYWdlLCB9IGZyb20gJy4vbGliL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBtZW1vcnlMb2NhbFN0b3JhZ2VBZGFwdGVyIH0gZnJvbSAnLi9saWIvbG9jYWwtc3RvcmFnZSc7XHJcbmltcG9ydCB7IHBvbHlmaWxsR2xvYmFsVGhpcyB9IGZyb20gJy4vbGliL3BvbHlmaWxscyc7XHJcbmltcG9ydCB7IHZlcnNpb24gfSBmcm9tICcuL2xpYi92ZXJzaW9uJztcclxuaW1wb3J0IHsgTG9ja0FjcXVpcmVUaW1lb3V0RXJyb3IsIG5hdmlnYXRvckxvY2sgfSBmcm9tICcuL2xpYi9sb2Nrcyc7XHJcbmltcG9ydCB7IHN0cmluZ1RvVWludDhBcnJheSwgYnl0ZXNUb0Jhc2U2NFVSTCB9IGZyb20gJy4vbGliL2Jhc2U2NHVybCc7XHJcbmltcG9ydCB7IGRlZXBDbG9uZSB9IGZyb20gJy4vbGliL2hlbHBlcnMnO1xyXG5wb2x5ZmlsbEdsb2JhbFRoaXMoKTsgLy8gTWFrZSBcImdsb2JhbFRoaXNcIiBhdmFpbGFibGVcclxuY29uc3QgREVGQVVMVF9PUFRJT05TID0ge1xyXG4gICAgdXJsOiBHT1RSVUVfVVJMLFxyXG4gICAgc3RvcmFnZUtleTogU1RPUkFHRV9LRVksXHJcbiAgICBhdXRvUmVmcmVzaFRva2VuOiB0cnVlLFxyXG4gICAgcGVyc2lzdFNlc3Npb246IHRydWUsXHJcbiAgICBkZXRlY3RTZXNzaW9uSW5Vcmw6IHRydWUsXHJcbiAgICBoZWFkZXJzOiBERUZBVUxUX0hFQURFUlMsXHJcbiAgICBmbG93VHlwZTogJ2ltcGxpY2l0JyxcclxuICAgIGRlYnVnOiBmYWxzZSxcclxuICAgIGhhc0N1c3RvbUF1dGhvcml6YXRpb25IZWFkZXI6IGZhbHNlLFxyXG59O1xyXG5hc3luYyBmdW5jdGlvbiBsb2NrTm9PcChuYW1lLCBhY3F1aXJlVGltZW91dCwgZm4pIHtcclxuICAgIHJldHVybiBhd2FpdCBmbigpO1xyXG59XHJcbi8qKlxyXG4gKiBDYWNoZXMgSldLUyB2YWx1ZXMgZm9yIGFsbCBjbGllbnRzIGNyZWF0ZWQgaW4gdGhlIHNhbWUgZW52aXJvbm1lbnQuIFRoaXMgaXNcclxuICogZXNwZWNpYWxseSB1c2VmdWwgZm9yIHNoYXJlZC1tZW1vcnkgZXhlY3V0aW9uIGVudmlyb25tZW50cyBzdWNoIGFzIFZlcmNlbCdzXHJcbiAqIEZsdWlkIENvbXB1dGUsIEFXUyBMYW1iZGEgb3IgU3VwYWJhc2UncyBFZGdlIEZ1bmN0aW9ucy4gUmVnYXJkbGVzcyBvZiBob3dcclxuICogbWFueSBjbGllbnRzIGFyZSBjcmVhdGVkLCBpZiB0aGV5IHNoYXJlIHRoZSBzYW1lIHN0b3JhZ2Uga2V5IHRoZXkgd2lsbCB1c2VcclxuICogdGhlIHNhbWUgSldLUyBjYWNoZSwgc2lnbmlmaWNhbnRseSBzcGVlZGluZyB1cCBnZXRDbGFpbXMoKSB3aXRoIGFzeW1tZXRyaWNcclxuICogSldUcy5cclxuICovXHJcbmNvbnN0IEdMT0JBTF9KV0tTID0ge307XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdvVHJ1ZUNsaWVudCB7XHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZSBhIG5ldyBjbGllbnQgZm9yIHVzZSBpbiB0aGUgYnJvd3Nlci5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xyXG4gICAgICAgIHZhciBfYSwgX2I7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGV4cGVyaW1lbnRhbFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudXNlclN0b3JhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMubWVtb3J5U3RvcmFnZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZUVtaXR0ZXJzID0gbmV3IE1hcCgpO1xyXG4gICAgICAgIHRoaXMuYXV0b1JlZnJlc2hUaWNrZXIgPSBudWxsO1xyXG4gICAgICAgIHRoaXMudmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjayA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoaW5nRGVmZXJyZWQgPSBudWxsO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEtlZXBzIHRyYWNrIG9mIHRoZSBhc3luYyBjbGllbnQgaW5pdGlhbGl6YXRpb24uXHJcbiAgICAgICAgICogV2hlbiBudWxsIG9yIG5vdCB5ZXQgcmVzb2x2ZWQgdGhlIGF1dGggc3RhdGUgaXMgYHVua25vd25gXHJcbiAgICAgICAgICogT25jZSByZXNvbHZlZCB0aGUgdGhlIGF1dGggc3RhdGUgaXMga25vd24gYW5kIGl0J3Mgc2F2ZSB0byBjYWxsIGFueSBmdXJ0aGVyIGNsaWVudCBtZXRob2RzLlxyXG4gICAgICAgICAqIEtlZXAgZXh0cmEgY2FyZSB0byBuZXZlciByZWplY3Qgb3IgdGhyb3cgdW5jYXVnaHQgZXJyb3JzXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pbml0aWFsaXplUHJvbWlzZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5kZXRlY3RTZXNzaW9uSW5VcmwgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaGFzQ3VzdG9tQXV0aG9yaXphdGlvbkhlYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3VwcHJlc3NHZXRTZXNzaW9uV2FybmluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubG9ja0FjcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5wZW5kaW5nSW5Mb2NrID0gW107XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVXNlZCB0byBicm9hZGNhc3Qgc3RhdGUgY2hhbmdlIGV2ZW50cyB0byBvdGhlciB0YWJzIGxpc3RlbmluZy5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJyb2FkY2FzdENoYW5uZWwgPSBudWxsO1xyXG4gICAgICAgIHRoaXMubG9nZ2VyID0gY29uc29sZS5sb2c7XHJcbiAgICAgICAgdGhpcy5pbnN0YW5jZUlEID0gR29UcnVlQ2xpZW50Lm5leHRJbnN0YW5jZUlEO1xyXG4gICAgICAgIEdvVHJ1ZUNsaWVudC5uZXh0SW5zdGFuY2VJRCArPSAxO1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlSUQgPiAwICYmIGlzQnJvd3NlcigpKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignTXVsdGlwbGUgR29UcnVlQ2xpZW50IGluc3RhbmNlcyBkZXRlY3RlZCBpbiB0aGUgc2FtZSBicm93c2VyIGNvbnRleHQuIEl0IGlzIG5vdCBhbiBlcnJvciwgYnV0IHRoaXMgc2hvdWxkIGJlIGF2b2lkZWQgYXMgaXQgbWF5IHByb2R1Y2UgdW5kZWZpbmVkIGJlaGF2aW9yIHdoZW4gdXNlZCBjb25jdXJyZW50bHkgdW5kZXIgdGhlIHNhbWUgc3RvcmFnZSBrZXkuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX09QVElPTlMpLCBvcHRpb25zKTtcclxuICAgICAgICB0aGlzLmxvZ0RlYnVnTWVzc2FnZXMgPSAhIXNldHRpbmdzLmRlYnVnO1xyXG4gICAgICAgIGlmICh0eXBlb2Ygc2V0dGluZ3MuZGVidWcgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2dnZXIgPSBzZXR0aW5ncy5kZWJ1ZztcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5wZXJzaXN0U2Vzc2lvbiA9IHNldHRpbmdzLnBlcnNpc3RTZXNzaW9uO1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZUtleSA9IHNldHRpbmdzLnN0b3JhZ2VLZXk7XHJcbiAgICAgICAgdGhpcy5hdXRvUmVmcmVzaFRva2VuID0gc2V0dGluZ3MuYXV0b1JlZnJlc2hUb2tlbjtcclxuICAgICAgICB0aGlzLmFkbWluID0gbmV3IEdvVHJ1ZUFkbWluQXBpKHtcclxuICAgICAgICAgICAgdXJsOiBzZXR0aW5ncy51cmwsXHJcbiAgICAgICAgICAgIGhlYWRlcnM6IHNldHRpbmdzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgIGZldGNoOiBzZXR0aW5ncy5mZXRjaCxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnVybCA9IHNldHRpbmdzLnVybDtcclxuICAgICAgICB0aGlzLmhlYWRlcnMgPSBzZXR0aW5ncy5oZWFkZXJzO1xyXG4gICAgICAgIHRoaXMuZmV0Y2ggPSByZXNvbHZlRmV0Y2goc2V0dGluZ3MuZmV0Y2gpO1xyXG4gICAgICAgIHRoaXMubG9jayA9IHNldHRpbmdzLmxvY2sgfHwgbG9ja05vT3A7XHJcbiAgICAgICAgdGhpcy5kZXRlY3RTZXNzaW9uSW5VcmwgPSBzZXR0aW5ncy5kZXRlY3RTZXNzaW9uSW5Vcmw7XHJcbiAgICAgICAgdGhpcy5mbG93VHlwZSA9IHNldHRpbmdzLmZsb3dUeXBlO1xyXG4gICAgICAgIHRoaXMuaGFzQ3VzdG9tQXV0aG9yaXphdGlvbkhlYWRlciA9IHNldHRpbmdzLmhhc0N1c3RvbUF1dGhvcml6YXRpb25IZWFkZXI7XHJcbiAgICAgICAgaWYgKHNldHRpbmdzLmxvY2spIHtcclxuICAgICAgICAgICAgdGhpcy5sb2NrID0gc2V0dGluZ3MubG9jaztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaXNCcm93c2VyKCkgJiYgKChfYSA9IGdsb2JhbFRoaXMgPT09IG51bGwgfHwgZ2xvYmFsVGhpcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZ2xvYmFsVGhpcy5uYXZpZ2F0b3IpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sb2NrcykpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2NrID0gbmF2aWdhdG9yTG9jaztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9jayA9IGxvY2tOb09wO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMuandrcykge1xyXG4gICAgICAgICAgICB0aGlzLmp3a3MgPSB7IGtleXM6IFtdIH07XHJcbiAgICAgICAgICAgIHRoaXMuandrc19jYWNoZWRfYXQgPSBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tZmEgPSB7XHJcbiAgICAgICAgICAgIHZlcmlmeTogdGhpcy5fdmVyaWZ5LmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgIGVucm9sbDogdGhpcy5fZW5yb2xsLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgIHVuZW5yb2xsOiB0aGlzLl91bmVucm9sbC5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICBjaGFsbGVuZ2U6IHRoaXMuX2NoYWxsZW5nZS5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICBsaXN0RmFjdG9yczogdGhpcy5fbGlzdEZhY3RvcnMuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgY2hhbGxlbmdlQW5kVmVyaWZ5OiB0aGlzLl9jaGFsbGVuZ2VBbmRWZXJpZnkuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgZ2V0QXV0aGVudGljYXRvckFzc3VyYW5jZUxldmVsOiB0aGlzLl9nZXRBdXRoZW50aWNhdG9yQXNzdXJhbmNlTGV2ZWwuYmluZCh0aGlzKSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmICh0aGlzLnBlcnNpc3RTZXNzaW9uKSB7XHJcbiAgICAgICAgICAgIGlmIChzZXR0aW5ncy5zdG9yYWdlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2UgPSBzZXR0aW5ncy5zdG9yYWdlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHN1cHBvcnRzTG9jYWxTdG9yYWdlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2UgPSBnbG9iYWxUaGlzLmxvY2FsU3RvcmFnZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVtb3J5U3RvcmFnZSA9IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZSA9IG1lbW9yeUxvY2FsU3RvcmFnZUFkYXB0ZXIodGhpcy5tZW1vcnlTdG9yYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoc2V0dGluZ3MudXNlclN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXNlclN0b3JhZ2UgPSBzZXR0aW5ncy51c2VyU3RvcmFnZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tZW1vcnlTdG9yYWdlID0ge307XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZSA9IG1lbW9yeUxvY2FsU3RvcmFnZUFkYXB0ZXIodGhpcy5tZW1vcnlTdG9yYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlzQnJvd3NlcigpICYmIGdsb2JhbFRoaXMuQnJvYWRjYXN0Q2hhbm5lbCAmJiB0aGlzLnBlcnNpc3RTZXNzaW9uICYmIHRoaXMuc3RvcmFnZUtleSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5icm9hZGNhc3RDaGFubmVsID0gbmV3IGdsb2JhbFRoaXMuQnJvYWRjYXN0Q2hhbm5lbCh0aGlzLnN0b3JhZ2VLZXkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIGEgbmV3IEJyb2FkY2FzdENoYW5uZWwsIG11bHRpLXRhYiBzdGF0ZSBjaGFuZ2VzIHdpbGwgbm90IGJlIGF2YWlsYWJsZScsIGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIChfYiA9IHRoaXMuYnJvYWRjYXN0Q2hhbm5lbCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBhc3luYyAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKCdyZWNlaXZlZCBicm9hZGNhc3Qgbm90aWZpY2F0aW9uIGZyb20gb3RoZXIgdGFiIG9yIGNsaWVudCcsIGV2ZW50KTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKGV2ZW50LmRhdGEuZXZlbnQsIGV2ZW50LmRhdGEuc2Vzc2lvbiwgZmFsc2UpOyAvLyBicm9hZGNhc3QgPSBmYWxzZSBzbyB3ZSBkb24ndCBnZXQgYW4gZW5kbGVzcyBsb29wIG9mIG1lc3NhZ2VzXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmluaXRpYWxpemUoKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVGhlIEpXS1MgdXNlZCBmb3IgdmVyaWZ5aW5nIGFzeW1tZXRyaWMgSldUc1xyXG4gICAgICovXHJcbiAgICBnZXQgandrcygpIHtcclxuICAgICAgICB2YXIgX2EsIF9iO1xyXG4gICAgICAgIHJldHVybiAoX2IgPSAoX2EgPSBHTE9CQUxfSldLU1t0aGlzLnN0b3JhZ2VLZXldKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuandrcykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogeyBrZXlzOiBbXSB9O1xyXG4gICAgfVxyXG4gICAgc2V0IGp3a3ModmFsdWUpIHtcclxuICAgICAgICBHTE9CQUxfSldLU1t0aGlzLnN0b3JhZ2VLZXldID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBHTE9CQUxfSldLU1t0aGlzLnN0b3JhZ2VLZXldKSwgeyBqd2tzOiB2YWx1ZSB9KTtcclxuICAgIH1cclxuICAgIGdldCBqd2tzX2NhY2hlZF9hdCgpIHtcclxuICAgICAgICB2YXIgX2EsIF9iO1xyXG4gICAgICAgIHJldHVybiAoX2IgPSAoX2EgPSBHTE9CQUxfSldLU1t0aGlzLnN0b3JhZ2VLZXldKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FjaGVkQXQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSO1xyXG4gICAgfVxyXG4gICAgc2V0IGp3a3NfY2FjaGVkX2F0KHZhbHVlKSB7XHJcbiAgICAgICAgR0xPQkFMX0pXS1NbdGhpcy5zdG9yYWdlS2V5XSA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgR0xPQkFMX0pXS1NbdGhpcy5zdG9yYWdlS2V5XSksIHsgY2FjaGVkQXQ6IHZhbHVlIH0pO1xyXG4gICAgfVxyXG4gICAgX2RlYnVnKC4uLmFyZ3MpIHtcclxuICAgICAgICBpZiAodGhpcy5sb2dEZWJ1Z01lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyKGBHb1RydWVDbGllbnRAJHt0aGlzLmluc3RhbmNlSUR9ICgke3ZlcnNpb259KSAke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX1gLCAuLi5hcmdzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIHRoZSBjbGllbnQgc2Vzc2lvbiBlaXRoZXIgZnJvbSB0aGUgdXJsIG9yIGZyb20gc3RvcmFnZS5cclxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGF1dG9tYXRpY2FsbHkgY2FsbGVkIHdoZW4gaW5zdGFudGlhdGluZyB0aGUgY2xpZW50LCBidXQgc2hvdWxkIGFsc28gYmUgY2FsbGVkXHJcbiAgICAgKiBtYW51YWxseSB3aGVuIGNoZWNraW5nIGZvciBhbiBlcnJvciBmcm9tIGFuIGF1dGggcmVkaXJlY3QgKG9hdXRoLCBtYWdpY2xpbmssIHBhc3N3b3JkIHJlY292ZXJ5LCBldGMpLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBpbml0aWFsaXplKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVQcm9taXNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmluaXRpYWxpemVQcm9taXNlID0gKGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5faW5pdGlhbGl6ZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KSgpO1xyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBJTVBPUlRBTlQ6XHJcbiAgICAgKiAxLiBOZXZlciB0aHJvdyBpbiB0aGlzIG1ldGhvZCwgYXMgaXQgaXMgY2FsbGVkIGZyb20gdGhlIGNvbnN0cnVjdG9yXHJcbiAgICAgKiAyLiBOZXZlciByZXR1cm4gYSBzZXNzaW9uIGZyb20gdGhpcyBtZXRob2QgYXMgaXQgd291bGQgYmUgY2FjaGVkIG92ZXJcclxuICAgICAqICAgIHRoZSB3aG9sZSBsaWZldGltZSBvZiB0aGUgY2xpZW50XHJcbiAgICAgKi9cclxuICAgIGFzeW5jIF9pbml0aWFsaXplKCkge1xyXG4gICAgICAgIHZhciBfYTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSBwYXJzZVBhcmFtZXRlcnNGcm9tVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcclxuICAgICAgICAgICAgbGV0IGNhbGxiYWNrVXJsVHlwZSA9ICdub25lJztcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2lzSW1wbGljaXRHcmFudENhbGxiYWNrKHBhcmFtcykpIHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrVXJsVHlwZSA9ICdpbXBsaWNpdCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYXdhaXQgdGhpcy5faXNQS0NFQ2FsbGJhY2socGFyYW1zKSkge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2tVcmxUeXBlID0gJ3BrY2UnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBBdHRlbXB0IHRvIGdldCB0aGUgc2Vzc2lvbiBmcm9tIHRoZSBVUkwgb25seSBpZiB0aGVzZSBjb25kaXRpb25zIGFyZSBmdWxmaWxsZWRcclxuICAgICAgICAgICAgICpcclxuICAgICAgICAgICAgICogTm90ZTogSWYgdGhlIFVSTCBpc24ndCBvbmUgb2YgdGhlIGNhbGxiYWNrIHVybCB0eXBlcyAoaW1wbGljaXQgb3IgcGtjZSksXHJcbiAgICAgICAgICAgICAqIHRoZW4gdGhlcmUgY291bGQgYmUgYW4gZXhpc3Rpbmcgc2Vzc2lvbiBzbyB3ZSBkb24ndCB3YW50IHRvIHByZW1hdHVyZWx5IHJlbW92ZSBpdFxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKGlzQnJvd3NlcigpICYmIHRoaXMuZGV0ZWN0U2Vzc2lvbkluVXJsICYmIGNhbGxiYWNrVXJsVHlwZSAhPT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCB0aGlzLl9nZXRTZXNzaW9uRnJvbVVSTChwYXJhbXMsIGNhbGxiYWNrVXJsVHlwZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI19pbml0aWFsaXplKCknLCAnZXJyb3IgZGV0ZWN0aW5nIHNlc3Npb24gZnJvbSBVUkwnLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvckNvZGUgPSAoX2EgPSBlcnJvci5kZXRhaWxzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yQ29kZSA9PT0gJ2lkZW50aXR5X2FscmVhZHlfZXhpc3RzJyB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JDb2RlID09PSAnaWRlbnRpdHlfbm90X2ZvdW5kJyB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JDb2RlID09PSAnc2luZ2xlX2lkZW50aXR5X25vdF9kZWxldGFibGUnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBlcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGZhaWxlZCBsb2dpbiBhdHRlbXB0IHZpYSB1cmwsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIG9sZCBzZXNzaW9uIGFzIGluIHZlcmlmeU90cCwgc2lnblVwIGFuZCBzaWduSW5XaXRoKlxyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBlcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBzZXNzaW9uLCByZWRpcmVjdFR5cGUgfSA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI19pbml0aWFsaXplKCknLCAnZGV0ZWN0ZWQgc2Vzc2lvbiBpbiBVUkwnLCBzZXNzaW9uLCAncmVkaXJlY3QgdHlwZScsIHJlZGlyZWN0VHlwZSk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbihzZXNzaW9uKTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZWRpcmVjdFR5cGUgPT09ICdyZWNvdmVyeScpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1BBU1NXT1JEX1JFQ09WRVJZJywgc2Vzc2lvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygnU0lHTkVEX0lOJywgc2Vzc2lvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBlcnJvcjogbnVsbCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIG5vIGxvZ2luIGF0dGVtcHQgdmlhIGNhbGxiYWNrIHVybCB0cnkgdG8gcmVjb3ZlciBzZXNzaW9uIGZyb20gc3RvcmFnZVxyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9yZWNvdmVyQW5kUmVmcmVzaCgpO1xyXG4gICAgICAgICAgICByZXR1cm4geyBlcnJvcjogbnVsbCB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgZXJyb3I6IG5ldyBBdXRoVW5rbm93bkVycm9yKCdVbmV4cGVjdGVkIGVycm9yIGR1cmluZyBpbml0aWFsaXphdGlvbicsIGVycm9yKSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2hhbmRsZVZpc2liaWxpdHlDaGFuZ2UoKTtcclxuICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfaW5pdGlhbGl6ZSgpJywgJ2VuZCcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBhbm9ueW1vdXMgdXNlci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBIHNlc3Npb24gd2hlcmUgdGhlIGlzX2Fub255bW91cyBjbGFpbSBpbiB0aGUgYWNjZXNzIHRva2VuIEpXVCBzZXQgdG8gdHJ1ZVxyXG4gICAgICovXHJcbiAgICBhc3luYyBzaWduSW5Bbm9ueW1vdXNseShjcmVkZW50aWFscykge1xyXG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L3NpZ251cGAsIHtcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICAgICAgICAgIGJvZHk6IHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiAoX2IgPSAoX2EgPSBjcmVkZW50aWFscyA9PT0gbnVsbCB8fCBjcmVkZW50aWFscyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3JlZGVudGlhbHMub3B0aW9ucykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRhdGEpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHt9LFxyXG4gICAgICAgICAgICAgICAgICAgIGdvdHJ1ZV9tZXRhX3NlY3VyaXR5OiB7IGNhcHRjaGFfdG9rZW46IChfYyA9IGNyZWRlbnRpYWxzID09PSBudWxsIHx8IGNyZWRlbnRpYWxzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuY2FwdGNoYVRva2VuIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgeGZvcm06IF9zZXNzaW9uUmVzcG9uc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSByZXM7XHJcbiAgICAgICAgICAgIGlmIChlcnJvciB8fCAhZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yOiBlcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHNlc3Npb24gPSBkYXRhLnNlc3Npb247XHJcbiAgICAgICAgICAgIGNvbnN0IHVzZXIgPSBkYXRhLnVzZXI7XHJcbiAgICAgICAgICAgIGlmIChkYXRhLnNlc3Npb24pIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKGRhdGEuc2Vzc2lvbik7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygnU0lHTkVEX0lOJywgc2Vzc2lvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyLCBzZXNzaW9uIH0sIGVycm9yOiBudWxsIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYSBuZXcgdXNlci5cclxuICAgICAqXHJcbiAgICAgKiBCZSBhd2FyZSB0aGF0IGlmIGEgdXNlciBhY2NvdW50IGV4aXN0cyBpbiB0aGUgc3lzdGVtIHlvdSBtYXkgZ2V0IGJhY2sgYW5cclxuICAgICAqIGVycm9yIG1lc3NhZ2UgdGhhdCBhdHRlbXB0cyB0byBoaWRlIHRoaXMgaW5mb3JtYXRpb24gZnJvbSB0aGUgdXNlci5cclxuICAgICAqIFRoaXMgbWV0aG9kIGhhcyBzdXBwb3J0IGZvciBQS0NFIHZpYSBlbWFpbCBzaWdudXBzLiBUaGUgUEtDRSBmbG93IGNhbm5vdCBiZSB1c2VkIHdoZW4gYXV0b2NvbmZpcm0gaXMgZW5hYmxlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBIGxvZ2dlZC1pbiBzZXNzaW9uIGlmIHRoZSBzZXJ2ZXIgaGFzIFwiYXV0b2NvbmZpcm1cIiBPTlxyXG4gICAgICogQHJldHVybnMgQSB1c2VyIGlmIHRoZSBzZXJ2ZXIgaGFzIFwiYXV0b2NvbmZpcm1cIiBPRkZcclxuICAgICAqL1xyXG4gICAgYXN5bmMgc2lnblVwKGNyZWRlbnRpYWxzKSB7XHJcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IHJlcztcclxuICAgICAgICAgICAgaWYgKCdlbWFpbCcgaW4gY3JlZGVudGlhbHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZW1haWwsIHBhc3N3b3JkLCBvcHRpb25zIH0gPSBjcmVkZW50aWFscztcclxuICAgICAgICAgICAgICAgIGxldCBjb2RlQ2hhbGxlbmdlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGxldCBjb2RlQ2hhbGxlbmdlTWV0aG9kID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZsb3dUeXBlID09PSAncGtjZScpIHtcclxuICAgICAgICAgICAgICAgICAgICA7XHJcbiAgICAgICAgICAgICAgICAgICAgW2NvZGVDaGFsbGVuZ2UsIGNvZGVDaGFsbGVuZ2VNZXRob2RdID0gYXdhaXQgZ2V0Q29kZUNoYWxsZW5nZUFuZE1ldGhvZCh0aGlzLnN0b3JhZ2UsIHRoaXMuc3RvcmFnZUtleSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXMgPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS9zaWdudXBgLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0VG86IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5lbWFpbFJlZGlyZWN0VG8sXHJcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbWFpbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IChfYSA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5kYXRhKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB7fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmNhcHRjaGFUb2tlbiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlX2NoYWxsZW5nZTogY29kZUNoYWxsZW5nZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZV9jaGFsbGVuZ2VfbWV0aG9kOiBjb2RlQ2hhbGxlbmdlTWV0aG9kLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeGZvcm06IF9zZXNzaW9uUmVzcG9uc2UsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICgncGhvbmUnIGluIGNyZWRlbnRpYWxzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IHBob25lLCBwYXNzd29yZCwgb3B0aW9ucyB9ID0gY3JlZGVudGlhbHM7XHJcbiAgICAgICAgICAgICAgICByZXMgPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS9zaWdudXBgLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiAoX2IgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZGF0YSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDoge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWw6IChfYyA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5jaGFubmVsKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAnc21zJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmNhcHRjaGFUb2tlbiB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeGZvcm06IF9zZXNzaW9uUmVzcG9uc2UsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBBdXRoSW52YWxpZENyZWRlbnRpYWxzRXJyb3IoJ1lvdSBtdXN0IHByb3ZpZGUgZWl0aGVyIGFuIGVtYWlsIG9yIHBob25lIG51bWJlciBhbmQgYSBwYXNzd29yZCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IHJlcztcclxuICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3I6IGVycm9yIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IGRhdGEuc2Vzc2lvbjtcclxuICAgICAgICAgICAgY29uc3QgdXNlciA9IGRhdGEudXNlcjtcclxuICAgICAgICAgICAgaWYgKGRhdGEuc2Vzc2lvbikge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2F2ZVNlc3Npb24oZGF0YS5zZXNzaW9uKTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCdTSUdORURfSU4nLCBzZXNzaW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXIsIHNlc3Npb24gfSwgZXJyb3I6IG51bGwgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogTG9nIGluIGFuIGV4aXN0aW5nIHVzZXIgd2l0aCBhbiBlbWFpbCBhbmQgcGFzc3dvcmQgb3IgcGhvbmUgYW5kIHBhc3N3b3JkLlxyXG4gICAgICpcclxuICAgICAqIEJlIGF3YXJlIHRoYXQgeW91IG1heSBnZXQgYmFjayBhbiBlcnJvciBtZXNzYWdlIHRoYXQgd2lsbCBub3QgZGlzdGluZ3Vpc2hcclxuICAgICAqIGJldHdlZW4gdGhlIGNhc2VzIHdoZXJlIHRoZSBhY2NvdW50IGRvZXMgbm90IGV4aXN0IG9yIHRoYXQgdGhlXHJcbiAgICAgKiBlbWFpbC9waG9uZSBhbmQgcGFzc3dvcmQgY29tYmluYXRpb24gaXMgd3Jvbmcgb3IgdGhhdCB0aGUgYWNjb3VudCBjYW4gb25seVxyXG4gICAgICogYmUgYWNjZXNzZWQgdmlhIHNvY2lhbCBsb2dpbi5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgc2lnbkluV2l0aFBhc3N3b3JkKGNyZWRlbnRpYWxzKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IHJlcztcclxuICAgICAgICAgICAgaWYgKCdlbWFpbCcgaW4gY3JlZGVudGlhbHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZW1haWwsIHBhc3N3b3JkLCBvcHRpb25zIH0gPSBjcmVkZW50aWFscztcclxuICAgICAgICAgICAgICAgIHJlcyA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L3Rva2VuP2dyYW50X3R5cGU9cGFzc3dvcmRgLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBnb3RydWVfbWV0YV9zZWN1cml0eTogeyBjYXB0Y2hhX3Rva2VuOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuY2FwdGNoYVRva2VuIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB4Zm9ybTogX3Nlc3Npb25SZXNwb25zZVBhc3N3b3JkLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoJ3Bob25lJyBpbiBjcmVkZW50aWFscykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBwaG9uZSwgcGFzc3dvcmQsIG9wdGlvbnMgfSA9IGNyZWRlbnRpYWxzO1xyXG4gICAgICAgICAgICAgICAgcmVzID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vdG9rZW4/Z3JhbnRfdHlwZT1wYXNzd29yZGAsIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwaG9uZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdvdHJ1ZV9tZXRhX3NlY3VyaXR5OiB7IGNhcHRjaGFfdG9rZW46IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5jYXB0Y2hhVG9rZW4gfSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHhmb3JtOiBfc2Vzc2lvblJlc3BvbnNlUGFzc3dvcmQsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBBdXRoSW52YWxpZENyZWRlbnRpYWxzRXJyb3IoJ1lvdSBtdXN0IHByb3ZpZGUgZWl0aGVyIGFuIGVtYWlsIG9yIHBob25lIG51bWJlciBhbmQgYSBwYXNzd29yZCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IHJlcztcclxuICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICghZGF0YSB8fCAhZGF0YS5zZXNzaW9uIHx8ICFkYXRhLnVzZXIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvcjogbmV3IEF1dGhJbnZhbGlkVG9rZW5SZXNwb25zZUVycm9yKCkgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZGF0YS5zZXNzaW9uKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbihkYXRhLnNlc3Npb24pO1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1NJR05FRF9JTicsIGRhdGEuc2Vzc2lvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGRhdGE6IE9iamVjdC5hc3NpZ24oeyB1c2VyOiBkYXRhLnVzZXIsIHNlc3Npb246IGRhdGEuc2Vzc2lvbiB9LCAoZGF0YS53ZWFrX3Bhc3N3b3JkID8geyB3ZWFrUGFzc3dvcmQ6IGRhdGEud2Vha19wYXNzd29yZCB9IDogbnVsbCkpLFxyXG4gICAgICAgICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIExvZyBpbiBhbiBleGlzdGluZyB1c2VyIHZpYSBhIHRoaXJkLXBhcnR5IHByb3ZpZGVyLlxyXG4gICAgICogVGhpcyBtZXRob2Qgc3VwcG9ydHMgdGhlIFBLQ0UgZmxvdy5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgc2lnbkluV2l0aE9BdXRoKGNyZWRlbnRpYWxzKSB7XHJcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9oYW5kbGVQcm92aWRlclNpZ25JbihjcmVkZW50aWFscy5wcm92aWRlciwge1xyXG4gICAgICAgICAgICByZWRpcmVjdFRvOiAoX2EgPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVkaXJlY3RUbyxcclxuICAgICAgICAgICAgc2NvcGVzOiAoX2IgPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Iuc2NvcGVzLFxyXG4gICAgICAgICAgICBxdWVyeVBhcmFtczogKF9jID0gY3JlZGVudGlhbHMub3B0aW9ucykgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnF1ZXJ5UGFyYW1zLFxyXG4gICAgICAgICAgICBza2lwQnJvd3NlclJlZGlyZWN0OiAoX2QgPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Quc2tpcEJyb3dzZXJSZWRpcmVjdCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogTG9nIGluIGFuIGV4aXN0aW5nIHVzZXIgYnkgZXhjaGFuZ2luZyBhbiBBdXRoIENvZGUgaXNzdWVkIGR1cmluZyB0aGUgUEtDRSBmbG93LlxyXG4gICAgICovXHJcbiAgICBhc3luYyBleGNoYW5nZUNvZGVGb3JTZXNzaW9uKGF1dGhDb2RlKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYWNxdWlyZUxvY2soLTEsIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2V4Y2hhbmdlQ29kZUZvclNlc3Npb24oYXV0aENvZGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBTaWducyBpbiBhIHVzZXIgYnkgdmVyaWZ5aW5nIGEgbWVzc2FnZSBzaWduZWQgYnkgdGhlIHVzZXIncyBwcml2YXRlIGtleS5cclxuICAgICAqIE9ubHkgU29sYW5hIHN1cHBvcnRlZCBhdCB0aGlzIHRpbWUsIHVzaW5nIHRoZSBTaWduIGluIHdpdGggU29sYW5hIHN0YW5kYXJkLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBzaWduSW5XaXRoV2ViMyhjcmVkZW50aWFscykge1xyXG4gICAgICAgIGNvbnN0IHsgY2hhaW4gfSA9IGNyZWRlbnRpYWxzO1xyXG4gICAgICAgIGlmIChjaGFpbiA9PT0gJ3NvbGFuYScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2lnbkluV2l0aFNvbGFuYShjcmVkZW50aWFscyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQHN1cGFiYXNlL2F1dGgtanM6IFVuc3VwcG9ydGVkIGNoYWluIFwiJHtjaGFpbn1cImApO1xyXG4gICAgfVxyXG4gICAgYXN5bmMgc2lnbkluV2l0aFNvbGFuYShjcmVkZW50aWFscykge1xyXG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qLCBfaywgX2wsIF9tO1xyXG4gICAgICAgIGxldCBtZXNzYWdlO1xyXG4gICAgICAgIGxldCBzaWduYXR1cmU7XHJcbiAgICAgICAgaWYgKCdtZXNzYWdlJyBpbiBjcmVkZW50aWFscykge1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gY3JlZGVudGlhbHMubWVzc2FnZTtcclxuICAgICAgICAgICAgc2lnbmF0dXJlID0gY3JlZGVudGlhbHMuc2lnbmF0dXJlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgeyBjaGFpbiwgd2FsbGV0LCBzdGF0ZW1lbnQsIG9wdGlvbnMgfSA9IGNyZWRlbnRpYWxzO1xyXG4gICAgICAgICAgICBsZXQgcmVzb2x2ZWRXYWxsZXQ7XHJcbiAgICAgICAgICAgIGlmICghaXNCcm93c2VyKCkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygd2FsbGV0ICE9PSAnb2JqZWN0JyB8fCAhKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy51cmwpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdAc3VwYWJhc2UvYXV0aC1qczogQm90aCB3YWxsZXQgYW5kIHVybCBtdXN0IGJlIHNwZWNpZmllZCBpbiBub24tYnJvd3NlciBlbnZpcm9ubWVudHMuJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlZFdhbGxldCA9IHdhbGxldDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2Ygd2FsbGV0ID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRXYWxsZXQgPSB3YWxsZXQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB3aW5kb3dBbnkgPSB3aW5kb3c7XHJcbiAgICAgICAgICAgICAgICBpZiAoJ3NvbGFuYScgaW4gd2luZG93QW55ICYmXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHdpbmRvd0FueS5zb2xhbmEgPT09ICdvYmplY3QnICYmXHJcbiAgICAgICAgICAgICAgICAgICAgKCgnc2lnbkluJyBpbiB3aW5kb3dBbnkuc29sYW5hICYmIHR5cGVvZiB3aW5kb3dBbnkuc29sYW5hLnNpZ25JbiA9PT0gJ2Z1bmN0aW9uJykgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKCdzaWduTWVzc2FnZScgaW4gd2luZG93QW55LnNvbGFuYSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHdpbmRvd0FueS5zb2xhbmEuc2lnbk1lc3NhZ2UgPT09ICdmdW5jdGlvbicpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkV2FsbGV0ID0gd2luZG93QW55LnNvbGFuYTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQHN1cGFiYXNlL2F1dGgtanM6IE5vIGNvbXBhdGlibGUgU29sYW5hIHdhbGxldCBpbnRlcmZhY2Ugb24gdGhlIHdpbmRvdyBvYmplY3QgKHdpbmRvdy5zb2xhbmEpIGRldGVjdGVkLiBNYWtlIHN1cmUgdGhlIHVzZXIgYWxyZWFkeSBoYXMgYSB3YWxsZXQgaW5zdGFsbGVkIGFuZCBjb25uZWN0ZWQgZm9yIHRoaXMgYXBwLiBQcmVmZXIgcGFzc2luZyB0aGUgd2FsbGV0IGludGVyZmFjZSBvYmplY3QgZGlyZWN0bHkgdG8gc2lnbkluV2l0aFdlYjMoeyBjaGFpbjogJ3NvbGFuYScsIHdhbGxldDogcmVzb2x2ZWRVc2VyV2FsbGV0IH0pIGluc3RlYWQuYCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCgoX2EgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMudXJsKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB3aW5kb3cubG9jYXRpb24uaHJlZik7XHJcbiAgICAgICAgICAgIGlmICgnc2lnbkluJyBpbiByZXNvbHZlZFdhbGxldCAmJiByZXNvbHZlZFdhbGxldC5zaWduSW4pIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IHJlc29sdmVkV2FsbGV0LnNpZ25JbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IGlzc3VlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgfSwgb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnNpZ25JbldpdGhTb2xhbmEpLCB7IFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIG5vbi1vdmVycmlkYWJsZSBwcm9wZXJ0aWVzXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjogJzEnLCBkb21haW46IHVybC5ob3N0LCB1cmk6IHVybC5ocmVmIH0pLCAoc3RhdGVtZW50ID8geyBzdGF0ZW1lbnQgfSA6IG51bGwpKSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgb3V0cHV0VG9Qcm9jZXNzO1xyXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3V0cHV0KSAmJiBvdXRwdXRbMF0gJiYgdHlwZW9mIG91dHB1dFswXSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBvdXRwdXRUb1Byb2Nlc3MgPSBvdXRwdXRbMF07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChvdXRwdXQgJiZcclxuICAgICAgICAgICAgICAgICAgICB0eXBlb2Ygb3V0cHV0ID09PSAnb2JqZWN0JyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICdzaWduZWRNZXNzYWdlJyBpbiBvdXRwdXQgJiZcclxuICAgICAgICAgICAgICAgICAgICAnc2lnbmF0dXJlJyBpbiBvdXRwdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBvdXRwdXRUb1Byb2Nlc3MgPSBvdXRwdXQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0BzdXBhYmFzZS9hdXRoLWpzOiBXYWxsZXQgbWV0aG9kIHNpZ25JbigpIHJldHVybmVkIHVucmVjb2duaXplZCB2YWx1ZScpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKCdzaWduZWRNZXNzYWdlJyBpbiBvdXRwdXRUb1Byb2Nlc3MgJiZcclxuICAgICAgICAgICAgICAgICAgICAnc2lnbmF0dXJlJyBpbiBvdXRwdXRUb1Byb2Nlc3MgJiZcclxuICAgICAgICAgICAgICAgICAgICAodHlwZW9mIG91dHB1dFRvUHJvY2Vzcy5zaWduZWRNZXNzYWdlID09PSAnc3RyaW5nJyB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRUb1Byb2Nlc3Muc2lnbmVkTWVzc2FnZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0VG9Qcm9jZXNzLnNpZ25hdHVyZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcclxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIG91dHB1dFRvUHJvY2Vzcy5zaWduZWRNZXNzYWdlID09PSAnc3RyaW5nJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBvdXRwdXRUb1Byb2Nlc3Muc2lnbmVkTWVzc2FnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUob3V0cHV0VG9Qcm9jZXNzLnNpZ25lZE1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZSA9IG91dHB1dFRvUHJvY2Vzcy5zaWduYXR1cmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0BzdXBhYmFzZS9hdXRoLWpzOiBXYWxsZXQgbWV0aG9kIHNpZ25JbigpIEFQSSByZXR1cm5lZCBvYmplY3Qgd2l0aG91dCBzaWduZWRNZXNzYWdlIGFuZCBzaWduYXR1cmUgZmllbGRzJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoISgnc2lnbk1lc3NhZ2UnIGluIHJlc29sdmVkV2FsbGV0KSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiByZXNvbHZlZFdhbGxldC5zaWduTWVzc2FnZSAhPT0gJ2Z1bmN0aW9uJyB8fFxyXG4gICAgICAgICAgICAgICAgICAgICEoJ3B1YmxpY0tleScgaW4gcmVzb2x2ZWRXYWxsZXQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHJlc29sdmVkV2FsbGV0ICE9PSAnb2JqZWN0JyB8fFxyXG4gICAgICAgICAgICAgICAgICAgICFyZXNvbHZlZFdhbGxldC5wdWJsaWNLZXkgfHxcclxuICAgICAgICAgICAgICAgICAgICAhKCd0b0Jhc2U1OCcgaW4gcmVzb2x2ZWRXYWxsZXQucHVibGljS2V5KSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiByZXNvbHZlZFdhbGxldC5wdWJsaWNLZXkudG9CYXNlNTggIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0BzdXBhYmFzZS9hdXRoLWpzOiBXYWxsZXQgZG9lcyBub3QgaGF2ZSBhIGNvbXBhdGlibGUgc2lnbk1lc3NhZ2UoKSBhbmQgcHVibGljS2V5LnRvQmFzZTU4KCkgQVBJJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gW1xyXG4gICAgICAgICAgICAgICAgICAgIGAke3VybC5ob3N0fSB3YW50cyB5b3UgdG8gc2lnbiBpbiB3aXRoIHlvdXIgU29sYW5hIGFjY291bnQ6YCxcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlZFdhbGxldC5wdWJsaWNLZXkudG9CYXNlNTgoKSxcclxuICAgICAgICAgICAgICAgICAgICAuLi4oc3RhdGVtZW50ID8gWycnLCBzdGF0ZW1lbnQsICcnXSA6IFsnJ10pLFxyXG4gICAgICAgICAgICAgICAgICAgICdWZXJzaW9uOiAxJyxcclxuICAgICAgICAgICAgICAgICAgICBgVVJJOiAke3VybC5ocmVmfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgYElzc3VlZCBBdDogJHsoX2MgPSAoX2IgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuc2lnbkluV2l0aFNvbGFuYSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmlzc3VlZEF0KSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9YCxcclxuICAgICAgICAgICAgICAgICAgICAuLi4oKChfZCA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5zaWduSW5XaXRoU29sYW5hKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Qubm90QmVmb3JlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFtgTm90IEJlZm9yZTogJHtvcHRpb25zLnNpZ25JbldpdGhTb2xhbmEubm90QmVmb3JlfWBdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogW10pLFxyXG4gICAgICAgICAgICAgICAgICAgIC4uLigoKF9lID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnNpZ25JbldpdGhTb2xhbmEpID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS5leHBpcmF0aW9uVGltZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBbYEV4cGlyYXRpb24gVGltZTogJHtvcHRpb25zLnNpZ25JbldpdGhTb2xhbmEuZXhwaXJhdGlvblRpbWV9YF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBbXSksXHJcbiAgICAgICAgICAgICAgICAgICAgLi4uKCgoX2YgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuc2lnbkluV2l0aFNvbGFuYSkgPT09IG51bGwgfHwgX2YgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9mLmNoYWluSWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gW2BDaGFpbiBJRDogJHtvcHRpb25zLnNpZ25JbldpdGhTb2xhbmEuY2hhaW5JZH1gXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFtdKSxcclxuICAgICAgICAgICAgICAgICAgICAuLi4oKChfZyA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5zaWduSW5XaXRoU29sYW5hKSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cubm9uY2UpID8gW2BOb25jZTogJHtvcHRpb25zLnNpZ25JbldpdGhTb2xhbmEubm9uY2V9YF0gOiBbXSksXHJcbiAgICAgICAgICAgICAgICAgICAgLi4uKCgoX2ggPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuc2lnbkluV2l0aFNvbGFuYSkgPT09IG51bGwgfHwgX2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9oLnJlcXVlc3RJZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBbYFJlcXVlc3QgSUQ6ICR7b3B0aW9ucy5zaWduSW5XaXRoU29sYW5hLnJlcXVlc3RJZH1gXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFtdKSxcclxuICAgICAgICAgICAgICAgICAgICAuLi4oKChfayA9IChfaiA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5zaWduSW5XaXRoU29sYW5hKSA9PT0gbnVsbCB8fCBfaiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2oucmVzb3VyY2VzKSA9PT0gbnVsbCB8fCBfayA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2subGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZXNvdXJjZXMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ub3B0aW9ucy5zaWduSW5XaXRoU29sYW5hLnJlc291cmNlcy5tYXAoKHJlc291cmNlKSA9PiBgLSAke3Jlc291cmNlfWApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogW10pLFxyXG4gICAgICAgICAgICAgICAgXS5qb2luKCdcXG4nKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1heWJlU2lnbmF0dXJlID0gYXdhaXQgcmVzb2x2ZWRXYWxsZXQuc2lnbk1lc3NhZ2UobmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKG1lc3NhZ2UpLCAndXRmOCcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFtYXliZVNpZ25hdHVyZSB8fCAhKG1heWJlU2lnbmF0dXJlIGluc3RhbmNlb2YgVWludDhBcnJheSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0BzdXBhYmFzZS9hdXRoLWpzOiBXYWxsZXQgc2lnbk1lc3NhZ2UoKSBBUEkgcmV0dXJuZWQgYW4gcmVjb2duaXplZCB2YWx1ZScpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc2lnbmF0dXJlID0gbWF5YmVTaWduYXR1cmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vdG9rZW4/Z3JhbnRfdHlwZT13ZWIzYCwge1xyXG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgYm9keTogT2JqZWN0LmFzc2lnbih7IGNoYWluOiAnc29sYW5hJywgbWVzc2FnZSwgc2lnbmF0dXJlOiBieXRlc1RvQmFzZTY0VVJMKHNpZ25hdHVyZSkgfSwgKCgoX2wgPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2wuY2FwdGNoYVRva2VuKVxyXG4gICAgICAgICAgICAgICAgICAgID8geyBnb3RydWVfbWV0YV9zZWN1cml0eTogeyBjYXB0Y2hhX3Rva2VuOiAoX20gPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfbSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX20uY2FwdGNoYVRva2VuIH0gfVxyXG4gICAgICAgICAgICAgICAgICAgIDogbnVsbCkpLFxyXG4gICAgICAgICAgICAgICAgeGZvcm06IF9zZXNzaW9uUmVzcG9uc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghZGF0YSB8fCAhZGF0YS5zZXNzaW9uIHx8ICFkYXRhLnVzZXIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IG5ldyBBdXRoSW52YWxpZFRva2VuUmVzcG9uc2VFcnJvcigpLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZGF0YS5zZXNzaW9uKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbihkYXRhLnNlc3Npb24pO1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1NJR05FRF9JTicsIGRhdGEuc2Vzc2lvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogT2JqZWN0LmFzc2lnbih7fSwgZGF0YSksIGVycm9yIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBhc3luYyBfZXhjaGFuZ2VDb2RlRm9yU2Vzc2lvbihhdXRoQ29kZSkge1xyXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VJdGVtID0gYXdhaXQgZ2V0SXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgYCR7dGhpcy5zdG9yYWdlS2V5fS1jb2RlLXZlcmlmaWVyYCk7XHJcbiAgICAgICAgY29uc3QgW2NvZGVWZXJpZmllciwgcmVkaXJlY3RUeXBlXSA9IChzdG9yYWdlSXRlbSAhPT0gbnVsbCAmJiBzdG9yYWdlSXRlbSAhPT0gdm9pZCAwID8gc3RvcmFnZUl0ZW0gOiAnJykuc3BsaXQoJy8nKTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS90b2tlbj9ncmFudF90eXBlPXBrY2VgLCB7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICBib2R5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXV0aF9jb2RlOiBhdXRoQ29kZSxcclxuICAgICAgICAgICAgICAgICAgICBjb2RlX3ZlcmlmaWVyOiBjb2RlVmVyaWZpZXIsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgeGZvcm06IF9zZXNzaW9uUmVzcG9uc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBhd2FpdCByZW1vdmVJdGVtQXN5bmModGhpcy5zdG9yYWdlLCBgJHt0aGlzLnN0b3JhZ2VLZXl9LWNvZGUtdmVyaWZpZXJgKTtcclxuICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIWRhdGEgfHwgIWRhdGEuc2Vzc2lvbiB8fCAhZGF0YS51c2VyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCwgcmVkaXJlY3RUeXBlOiBudWxsIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IG5ldyBBdXRoSW52YWxpZFRva2VuUmVzcG9uc2VFcnJvcigpLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZGF0YS5zZXNzaW9uKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbihkYXRhLnNlc3Npb24pO1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1NJR05FRF9JTicsIGRhdGEuc2Vzc2lvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBkYXRhKSwgeyByZWRpcmVjdFR5cGU6IHJlZGlyZWN0VHlwZSAhPT0gbnVsbCAmJiByZWRpcmVjdFR5cGUgIT09IHZvaWQgMCA/IHJlZGlyZWN0VHlwZSA6IG51bGwgfSksIGVycm9yIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwsIHJlZGlyZWN0VHlwZTogbnVsbCB9LCBlcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQWxsb3dzIHNpZ25pbmcgaW4gd2l0aCBhbiBPSURDIElEIHRva2VuLiBUaGUgYXV0aGVudGljYXRpb24gcHJvdmlkZXIgdXNlZFxyXG4gICAgICogc2hvdWxkIGJlIGVuYWJsZWQgYW5kIGNvbmZpZ3VyZWQuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHNpZ25JbldpdGhJZFRva2VuKGNyZWRlbnRpYWxzKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgeyBvcHRpb25zLCBwcm92aWRlciwgdG9rZW4sIGFjY2Vzc190b2tlbiwgbm9uY2UgfSA9IGNyZWRlbnRpYWxzO1xyXG4gICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS90b2tlbj9ncmFudF90eXBlPWlkX3Rva2VuYCwge1xyXG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgYm9keToge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGlkX3Rva2VuOiB0b2tlbixcclxuICAgICAgICAgICAgICAgICAgICBhY2Nlc3NfdG9rZW4sXHJcbiAgICAgICAgICAgICAgICAgICAgbm9uY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmNhcHRjaGFUb2tlbiB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHhmb3JtOiBfc2Vzc2lvblJlc3BvbnNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gcmVzO1xyXG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKCFkYXRhIHx8ICFkYXRhLnNlc3Npb24gfHwgIWRhdGEudXNlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSxcclxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogbmV3IEF1dGhJbnZhbGlkVG9rZW5SZXNwb25zZUVycm9yKCksXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChkYXRhLnNlc3Npb24pIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKGRhdGEuc2Vzc2lvbik7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygnU0lHTkVEX0lOJywgZGF0YS5zZXNzaW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvciB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBMb2cgaW4gYSB1c2VyIHVzaW5nIG1hZ2ljbGluayBvciBhIG9uZS10aW1lIHBhc3N3b3JkIChPVFApLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBge3sgLkNvbmZpcm1hdGlvblVSTCB9fWAgdmFyaWFibGUgaXMgc3BlY2lmaWVkIGluIHRoZSBlbWFpbCB0ZW1wbGF0ZSwgYSBtYWdpY2xpbmsgd2lsbCBiZSBzZW50LlxyXG4gICAgICogSWYgdGhlIGB7eyAuVG9rZW4gfX1gIHZhcmlhYmxlIGlzIHNwZWNpZmllZCBpbiB0aGUgZW1haWwgdGVtcGxhdGUsIGFuIE9UUCB3aWxsIGJlIHNlbnQuXHJcbiAgICAgKiBJZiB5b3UncmUgdXNpbmcgcGhvbmUgc2lnbi1pbnMsIG9ubHkgYW4gT1RQIHdpbGwgYmUgc2VudC4gWW91IHdvbid0IGJlIGFibGUgdG8gc2VuZCBhIG1hZ2ljbGluayBmb3IgcGhvbmUgc2lnbi1pbnMuXHJcbiAgICAgKlxyXG4gICAgICogQmUgYXdhcmUgdGhhdCB5b3UgbWF5IGdldCBiYWNrIGFuIGVycm9yIG1lc3NhZ2UgdGhhdCB3aWxsIG5vdCBkaXN0aW5ndWlzaFxyXG4gICAgICogYmV0d2VlbiB0aGUgY2FzZXMgd2hlcmUgdGhlIGFjY291bnQgZG9lcyBub3QgZXhpc3Qgb3IsIHRoYXQgdGhlIGFjY291bnRcclxuICAgICAqIGNhbiBvbmx5IGJlIGFjY2Vzc2VkIHZpYSBzb2NpYWwgbG9naW4uXHJcbiAgICAgKlxyXG4gICAgICogRG8gbm90ZSB0aGF0IHlvdSB3aWxsIG5lZWQgdG8gY29uZmlndXJlIGEgV2hhdHNhcHAgc2VuZGVyIG9uIFR3aWxpb1xyXG4gICAgICogaWYgeW91IGFyZSB1c2luZyBwaG9uZSBzaWduIGluIHdpdGggdGhlICd3aGF0c2FwcCcgY2hhbm5lbC4gVGhlIHdoYXRzYXBwXHJcbiAgICAgKiBjaGFubmVsIGlzIG5vdCBzdXBwb3J0ZWQgb24gb3RoZXIgcHJvdmlkZXJzXHJcbiAgICAgKiBhdCB0aGlzIHRpbWUuXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBzdXBwb3J0cyBQS0NFIHdoZW4gYW4gZW1haWwgaXMgcGFzc2VkLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBzaWduSW5XaXRoT3RwKGNyZWRlbnRpYWxzKSB7XHJcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAoJ2VtYWlsJyBpbiBjcmVkZW50aWFscykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBlbWFpbCwgb3B0aW9ucyB9ID0gY3JlZGVudGlhbHM7XHJcbiAgICAgICAgICAgICAgICBsZXQgY29kZUNoYWxsZW5nZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBsZXQgY29kZUNoYWxsZW5nZU1ldGhvZCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mbG93VHlwZSA9PT0gJ3BrY2UnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgO1xyXG4gICAgICAgICAgICAgICAgICAgIFtjb2RlQ2hhbGxlbmdlLCBjb2RlQ2hhbGxlbmdlTWV0aG9kXSA9IGF3YWl0IGdldENvZGVDaGFsbGVuZ2VBbmRNZXRob2QodGhpcy5zdG9yYWdlLCB0aGlzLnN0b3JhZ2VLZXkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvciB9ID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vb3RwYCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICAgICAgICAgICAgICBib2R5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiAoX2EgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZGF0YSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDoge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZV91c2VyOiAoX2IgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuc2hvdWxkQ3JlYXRlVXNlcikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmNhcHRjaGFUb2tlbiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlX2NoYWxsZW5nZTogY29kZUNoYWxsZW5nZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZV9jaGFsbGVuZ2VfbWV0aG9kOiBjb2RlQ2hhbGxlbmdlTWV0aG9kLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3RUbzogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmVtYWlsUmVkaXJlY3RUbyxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCdwaG9uZScgaW4gY3JlZGVudGlhbHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgcGhvbmUsIG9wdGlvbnMgfSA9IGNyZWRlbnRpYWxzO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vb3RwYCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICAgICAgICAgICAgICBib2R5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBob25lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiAoX2MgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZGF0YSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDoge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZV91c2VyOiAoX2QgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuc2hvdWxkQ3JlYXRlVXNlcikgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmNhcHRjaGFUb2tlbiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsOiAoX2UgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuY2hhbm5lbCkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogJ3NtcycsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsLCBtZXNzYWdlSWQ6IGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS5tZXNzYWdlX2lkIH0sIGVycm9yIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhJbnZhbGlkQ3JlZGVudGlhbHNFcnJvcignWW91IG11c3QgcHJvdmlkZSBlaXRoZXIgYW4gZW1haWwgb3IgcGhvbmUgbnVtYmVyLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBMb2cgaW4gYSB1c2VyIGdpdmVuIGEgVXNlciBzdXBwbGllZCBPVFAgb3IgVG9rZW5IYXNoIHJlY2VpdmVkIHRocm91Z2ggbW9iaWxlIG9yIGVtYWlsLlxyXG4gICAgICovXHJcbiAgICBhc3luYyB2ZXJpZnlPdHAocGFyYW1zKSB7XHJcbiAgICAgICAgdmFyIF9hLCBfYjtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBsZXQgcmVkaXJlY3RUbyA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgbGV0IGNhcHRjaGFUb2tlbiA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgaWYgKCdvcHRpb25zJyBpbiBwYXJhbXMpIHtcclxuICAgICAgICAgICAgICAgIHJlZGlyZWN0VG8gPSAoX2EgPSBwYXJhbXMub3B0aW9ucykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlZGlyZWN0VG87XHJcbiAgICAgICAgICAgICAgICBjYXB0Y2hhVG9rZW4gPSAoX2IgPSBwYXJhbXMub3B0aW9ucykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhcHRjaGFUb2tlbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCBfcmVxdWVzdCh0aGlzLmZldGNoLCAnUE9TVCcsIGAke3RoaXMudXJsfS92ZXJpZnlgLCB7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICBib2R5OiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHBhcmFtcyksIHsgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogY2FwdGNoYVRva2VuIH0gfSksXHJcbiAgICAgICAgICAgICAgICByZWRpcmVjdFRvLFxyXG4gICAgICAgICAgICAgICAgeGZvcm06IF9zZXNzaW9uUmVzcG9uc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBbiBlcnJvciBvY2N1cnJlZCBvbiB0b2tlbiB2ZXJpZmljYXRpb24uJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IGRhdGEuc2Vzc2lvbjtcclxuICAgICAgICAgICAgY29uc3QgdXNlciA9IGRhdGEudXNlcjtcclxuICAgICAgICAgICAgaWYgKHNlc3Npb24gPT09IG51bGwgfHwgc2Vzc2lvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2Vzc2lvbi5hY2Nlc3NfdG9rZW4pIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKHNlc3Npb24pO1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMocGFyYW1zLnR5cGUgPT0gJ3JlY292ZXJ5JyA/ICdQQVNTV09SRF9SRUNPVkVSWScgOiAnU0lHTkVEX0lOJywgc2Vzc2lvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyLCBzZXNzaW9uIH0sIGVycm9yOiBudWxsIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEF0dGVtcHRzIGEgc2luZ2xlLXNpZ24gb24gdXNpbmcgYW4gZW50ZXJwcmlzZSBJZGVudGl0eSBQcm92aWRlci4gQVxyXG4gICAgICogc3VjY2Vzc2Z1bCBTU08gYXR0ZW1wdCB3aWxsIHJlZGlyZWN0IHRoZSBjdXJyZW50IHBhZ2UgdG8gdGhlIGlkZW50aXR5XHJcbiAgICAgKiBwcm92aWRlciBhdXRob3JpemF0aW9uIHBhZ2UuIFRoZSByZWRpcmVjdCBVUkwgaXMgaW1wbGVtZW50YXRpb24gYW5kIFNTT1xyXG4gICAgICogcHJvdG9jb2wgc3BlY2lmaWMuXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiB1c2UgaXQgYnkgcHJvdmlkaW5nIGEgU1NPIGRvbWFpbi4gVHlwaWNhbGx5IHlvdSBjYW4gZXh0cmFjdCB0aGlzXHJcbiAgICAgKiBkb21haW4gYnkgYXNraW5nIHVzZXJzIGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBJZiB0aGlzIGRvbWFpbiBpc1xyXG4gICAgICogcmVnaXN0ZXJlZCBvbiB0aGUgQXV0aCBpbnN0YW5jZSB0aGUgcmVkaXJlY3Qgd2lsbCB1c2UgdGhhdCBvcmdhbml6YXRpb24nc1xyXG4gICAgICogY3VycmVudGx5IGFjdGl2ZSBTU08gSWRlbnRpdHkgUHJvdmlkZXIgZm9yIHRoZSBsb2dpbi5cclxuICAgICAqXHJcbiAgICAgKiBJZiB5b3UgaGF2ZSBidWlsdCBhbiBvcmdhbml6YXRpb24tc3BlY2lmaWMgbG9naW4gcGFnZSwgeW91IGNhbiB1c2UgdGhlXHJcbiAgICAgKiBvcmdhbml6YXRpb24ncyBTU08gSWRlbnRpdHkgUHJvdmlkZXIgVVVJRCBkaXJlY3RseSBpbnN0ZWFkLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBzaWduSW5XaXRoU1NPKHBhcmFtcykge1xyXG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGxldCBjb2RlQ2hhbGxlbmdlID0gbnVsbDtcclxuICAgICAgICAgICAgbGV0IGNvZGVDaGFsbGVuZ2VNZXRob2QgPSBudWxsO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mbG93VHlwZSA9PT0gJ3BrY2UnKSB7XHJcbiAgICAgICAgICAgICAgICA7XHJcbiAgICAgICAgICAgICAgICBbY29kZUNoYWxsZW5nZSwgY29kZUNoYWxsZW5nZU1ldGhvZF0gPSBhd2FpdCBnZXRDb2RlQ2hhbGxlbmdlQW5kTWV0aG9kKHRoaXMuc3RvcmFnZSwgdGhpcy5zdG9yYWdlS2V5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vc3NvYCwge1xyXG4gICAgICAgICAgICAgICAgYm9keTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCAoJ3Byb3ZpZGVySWQnIGluIHBhcmFtcyA/IHsgcHJvdmlkZXJfaWQ6IHBhcmFtcy5wcm92aWRlcklkIH0gOiBudWxsKSksICgnZG9tYWluJyBpbiBwYXJhbXMgPyB7IGRvbWFpbjogcGFyYW1zLmRvbWFpbiB9IDogbnVsbCkpLCB7IHJlZGlyZWN0X3RvOiAoX2IgPSAoX2EgPSBwYXJhbXMub3B0aW9ucykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlZGlyZWN0VG8pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHVuZGVmaW5lZCB9KSwgKCgoX2MgPSBwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMub3B0aW9ucykgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmNhcHRjaGFUb2tlbilcclxuICAgICAgICAgICAgICAgICAgICA/IHsgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogcGFyYW1zLm9wdGlvbnMuY2FwdGNoYVRva2VuIH0gfVxyXG4gICAgICAgICAgICAgICAgICAgIDogbnVsbCkpLCB7IHNraXBfaHR0cF9yZWRpcmVjdDogdHJ1ZSwgY29kZV9jaGFsbGVuZ2U6IGNvZGVDaGFsbGVuZ2UsIGNvZGVfY2hhbGxlbmdlX21ldGhvZDogY29kZUNoYWxsZW5nZU1ldGhvZCB9KSxcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICAgICAgICAgIHhmb3JtOiBfc3NvUmVzcG9uc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNlbmRzIGEgcmVhdXRoZW50aWNhdGlvbiBPVFAgdG8gdGhlIHVzZXIncyBlbWFpbCBvciBwaG9uZSBudW1iZXIuXHJcbiAgICAgKiBSZXF1aXJlcyB0aGUgdXNlciB0byBiZSBzaWduZWQtaW4uXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHJlYXV0aGVudGljYXRlKCkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9yZWF1dGhlbnRpY2F0ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgYXN5bmMgX3JlYXV0aGVudGljYXRlKCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogeyBzZXNzaW9uIH0sIGVycm9yOiBzZXNzaW9uRXJyb3IsIH0gPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2Vzc2lvbkVycm9yKVxyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHNlc3Npb25FcnJvcjtcclxuICAgICAgICAgICAgICAgIGlmICghc2Vzc2lvbilcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aFNlc3Npb25NaXNzaW5nRXJyb3IoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3IgfSA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdHRVQnLCBgJHt0aGlzLnVybH0vcmVhdXRoZW50aWNhdGVgLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgIGp3dDogc2Vzc2lvbi5hY2Nlc3NfdG9rZW4sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUmVzZW5kcyBhbiBleGlzdGluZyBzaWdudXAgY29uZmlybWF0aW9uIGVtYWlsLCBlbWFpbCBjaGFuZ2UgZW1haWwsIFNNUyBPVFAgb3IgcGhvbmUgY2hhbmdlIE9UUC5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgcmVzZW5kKGNyZWRlbnRpYWxzKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSBgJHt0aGlzLnVybH0vcmVzZW5kYDtcclxuICAgICAgICAgICAgaWYgKCdlbWFpbCcgaW4gY3JlZGVudGlhbHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZW1haWwsIHR5cGUsIG9wdGlvbnMgfSA9IGNyZWRlbnRpYWxzO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvciB9ID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBlbmRwb2ludCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICAgICAgICAgICAgICBib2R5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBnb3RydWVfbWV0YV9zZWN1cml0eTogeyBjYXB0Y2hhX3Rva2VuOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuY2FwdGNoYVRva2VuIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByZWRpcmVjdFRvOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZW1haWxSZWRpcmVjdFRvLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICgncGhvbmUnIGluIGNyZWRlbnRpYWxzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IHBob25lLCB0eXBlLCBvcHRpb25zIH0gPSBjcmVkZW50aWFscztcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgZW5kcG9pbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwaG9uZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmNhcHRjaGFUb2tlbiB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCwgbWVzc2FnZUlkOiBkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEubWVzc2FnZV9pZCB9LCBlcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBBdXRoSW52YWxpZENyZWRlbnRpYWxzRXJyb3IoJ1lvdSBtdXN0IHByb3ZpZGUgZWl0aGVyIGFuIGVtYWlsIG9yIHBob25lIG51bWJlciBhbmQgYSB0eXBlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwsIHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIHNlc3Npb24sIHJlZnJlc2hpbmcgaXQgaWYgbmVjZXNzYXJ5LlxyXG4gICAgICpcclxuICAgICAqIFRoZSBzZXNzaW9uIHJldHVybmVkIGNhbiBiZSBudWxsIGlmIHRoZSBzZXNzaW9uIGlzIG5vdCBkZXRlY3RlZCB3aGljaCBjYW4gaGFwcGVuIGluIHRoZSBldmVudCBhIHVzZXIgaXMgbm90IHNpZ25lZC1pbiBvciBoYXMgbG9nZ2VkIG91dC5cclxuICAgICAqXHJcbiAgICAgKiAqKklNUE9SVEFOVDoqKiBUaGlzIG1ldGhvZCBsb2FkcyB2YWx1ZXMgZGlyZWN0bHkgZnJvbSB0aGUgc3RvcmFnZSBhdHRhY2hlZFxyXG4gICAgICogdG8gdGhlIGNsaWVudC4gSWYgdGhhdCBzdG9yYWdlIGlzIGJhc2VkIG9uIHJlcXVlc3QgY29va2llcyBmb3IgZXhhbXBsZSxcclxuICAgICAqIHRoZSB2YWx1ZXMgaW4gaXQgbWF5IG5vdCBiZSBhdXRoZW50aWMgYW5kIHRoZXJlZm9yZSBpdCdzIHN0cm9uZ2x5IGFkdmlzZWRcclxuICAgICAqIGFnYWluc3QgdXNpbmcgdGhpcyBtZXRob2QgYW5kIGl0cyByZXN1bHRzIGluIHN1Y2ggY2lyY3Vtc3RhbmNlcy4gQSB3YXJuaW5nXHJcbiAgICAgKiB3aWxsIGJlIGVtaXR0ZWQgaWYgdGhpcyBpcyBkZXRlY3RlZC4gVXNlIHtAbGluayAjZ2V0VXNlcigpfSBpbnN0ZWFkLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBnZXRTZXNzaW9uKCkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fYWNxdWlyZUxvY2soLTEsIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQWNxdWlyZXMgYSBnbG9iYWwgbG9jayBiYXNlZCBvbiB0aGUgc3RvcmFnZSBrZXkuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIF9hY3F1aXJlTG9jayhhY3F1aXJlVGltZW91dCwgZm4pIHtcclxuICAgICAgICB0aGlzLl9kZWJ1ZygnI19hY3F1aXJlTG9jaycsICdiZWdpbicsIGFjcXVpcmVUaW1lb3V0KTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5sb2NrQWNxdWlyZWQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxhc3QgPSB0aGlzLnBlbmRpbmdJbkxvY2subGVuZ3RoXHJcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnBlbmRpbmdJbkxvY2tbdGhpcy5wZW5kaW5nSW5Mb2NrLmxlbmd0aCAtIDFdXHJcbiAgICAgICAgICAgICAgICAgICAgOiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgbGFzdDtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgZm4oKTtcclxuICAgICAgICAgICAgICAgIH0pKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdJbkxvY2sucHVzaCgoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHJlc3VsdDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UganVzdCBjYXJlIGlmIGl0IGZpbmlzaGVkXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSkoKSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmxvY2soYGxvY2s6JHt0aGlzLnN0b3JhZ2VLZXl9YCwgYWNxdWlyZVRpbWVvdXQsIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX2FjcXVpcmVMb2NrJywgJ2xvY2sgYWNxdWlyZWQgZm9yIHN0b3JhZ2Uga2V5JywgdGhpcy5zdG9yYWdlS2V5KTtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NrQWNxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGZuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nSW5Mb2NrLnB1c2goKGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHJlc3VsdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UganVzdCBjYXJlIGlmIGl0IGZpbmlzaGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KSgpKTtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8ga2VlcCBkcmFpbmluZyB0aGUgcXVldWUgdW50aWwgdGhlcmUncyBub3RoaW5nIHRvIHdhaXQgb25cclxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGhpcy5wZW5kaW5nSW5Mb2NrLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3YWl0T24gPSBbLi4udGhpcy5wZW5kaW5nSW5Mb2NrXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwod2FpdE9uKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nSW5Mb2NrLnNwbGljZSgwLCB3YWl0T24ubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX2FjcXVpcmVMb2NrJywgJ2xvY2sgcmVsZWFzZWQgZm9yIHN0b3JhZ2Uga2V5JywgdGhpcy5zdG9yYWdlS2V5KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2tBY3F1aXJlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX2FjcXVpcmVMb2NrJywgJ2VuZCcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVXNlIGluc3RlYWQgb2Yge0BsaW5rICNnZXRTZXNzaW9ufSBpbnNpZGUgdGhlIGxpYnJhcnkuIEl0IGlzXHJcbiAgICAgKiBzZW1hbnRpY2FsbHkgdXN1YWxseSB3aGF0IHlvdSB3YW50LCBhcyBnZXR0aW5nIGEgc2Vzc2lvbiBpbnZvbHZlcyBzb21lXHJcbiAgICAgKiBwcm9jZXNzaW5nIGFmdGVyd2FyZHMgdGhhdCByZXF1aXJlcyBvbmx5IG9uZSBjbGllbnQgb3BlcmF0aW5nIG9uIHRoZVxyXG4gICAgICogc2Vzc2lvbiBhdCBvbmNlIGFjcm9zcyBtdWx0aXBsZSB0YWJzIG9yIHByb2Nlc3Nlcy5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgX3VzZVNlc3Npb24oZm4pIHtcclxuICAgICAgICB0aGlzLl9kZWJ1ZygnI191c2VTZXNzaW9uJywgJ2JlZ2luJyk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gdGhlIHVzZSBvZiBfX2xvYWRTZXNzaW9uIGhlcmUgaXMgdGhlIG9ubHkgY29ycmVjdCB1c2Ugb2YgdGhlIGZ1bmN0aW9uIVxyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9fbG9hZFNlc3Npb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGZuKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI191c2VTZXNzaW9uJywgJ2VuZCcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogTkVWRVIgVVNFIERJUkVDVExZIVxyXG4gICAgICpcclxuICAgICAqIEFsd2F5cyB1c2Uge0BsaW5rICNfdXNlU2Vzc2lvbn0uXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIF9fbG9hZFNlc3Npb24oKSB7XHJcbiAgICAgICAgdGhpcy5fZGVidWcoJyNfX2xvYWRTZXNzaW9uKCknLCAnYmVnaW4nKTtcclxuICAgICAgICBpZiAoIXRoaXMubG9ja0FjcXVpcmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX19sb2FkU2Vzc2lvbigpJywgJ3VzZWQgb3V0c2lkZSBvZiBhbiBhY3F1aXJlZCBsb2NrIScsIG5ldyBFcnJvcigpLnN0YWNrKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IGN1cnJlbnRTZXNzaW9uID0gbnVsbDtcclxuICAgICAgICAgICAgY29uc3QgbWF5YmVTZXNzaW9uID0gYXdhaXQgZ2V0SXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgdGhpcy5zdG9yYWdlS2V5KTtcclxuICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNnZXRTZXNzaW9uKCknLCAnc2Vzc2lvbiBmcm9tIHN0b3JhZ2UnLCBtYXliZVNlc3Npb24pO1xyXG4gICAgICAgICAgICBpZiAobWF5YmVTZXNzaW9uICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faXNWYWxpZFNlc3Npb24obWF5YmVTZXNzaW9uKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZXNzaW9uID0gbWF5YmVTZXNzaW9uO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNnZXRTZXNzaW9uKCknLCAnc2Vzc2lvbiBmcm9tIHN0b3JhZ2UgaXMgbm90IHZhbGlkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghY3VycmVudFNlc3Npb24pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgc2Vzc2lvbjogbnVsbCB9LCBlcnJvcjogbnVsbCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIEEgc2Vzc2lvbiBpcyBjb25zaWRlcmVkIGV4cGlyZWQgYmVmb3JlIHRoZSBhY2Nlc3MgdG9rZW4gX2FjdHVhbGx5X1xyXG4gICAgICAgICAgICAvLyBleHBpcmVzLiBXaGVuIHRoZSBhdXRvUmVmcmVzaFRva2VuIG9wdGlvbiBpcyBvZmYgKG9yIHdoZW4gdGhlIHRhYiBpc1xyXG4gICAgICAgICAgICAvLyBpbiB0aGUgYmFja2dyb3VuZCksIHZlcnkgZWFnZXIgdXNlcnMgb2YgZ2V0U2Vzc2lvbigpIC0tIGxpa2VcclxuICAgICAgICAgICAgLy8gcmVhbHRpbWUtanMgLS0gbWlnaHQgc2VuZCBhIHZhbGlkIEpXVCB3aGljaCB3aWxsIGV4cGlyZSBieSB0aGUgdGltZSBpdFxyXG4gICAgICAgICAgICAvLyByZWFjaGVzIHRoZSBzZXJ2ZXIuXHJcbiAgICAgICAgICAgIGNvbnN0IGhhc0V4cGlyZWQgPSBjdXJyZW50U2Vzc2lvbi5leHBpcmVzX2F0XHJcbiAgICAgICAgICAgICAgICA/IGN1cnJlbnRTZXNzaW9uLmV4cGlyZXNfYXQgKiAxMDAwIC0gRGF0ZS5ub3coKSA8IEVYUElSWV9NQVJHSU5fTVNcclxuICAgICAgICAgICAgICAgIDogZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX19sb2FkU2Vzc2lvbigpJywgYHNlc3Npb24gaGFzJHtoYXNFeHBpcmVkID8gJycgOiAnIG5vdCd9IGV4cGlyZWRgLCAnZXhwaXJlc19hdCcsIGN1cnJlbnRTZXNzaW9uLmV4cGlyZXNfYXQpO1xyXG4gICAgICAgICAgICBpZiAoIWhhc0V4cGlyZWQpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnVzZXJTdG9yYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF5YmVVc2VyID0gKGF3YWl0IGdldEl0ZW1Bc3luYyh0aGlzLnVzZXJTdG9yYWdlLCB0aGlzLnN0b3JhZ2VLZXkgKyAnLXVzZXInKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1heWJlVXNlciA9PT0gbnVsbCB8fCBtYXliZVVzZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG1heWJlVXNlci51c2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZXNzaW9uLnVzZXIgPSBtYXliZVVzZXIudXNlcjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZXNzaW9uLnVzZXIgPSB1c2VyTm90QXZhaWxhYmxlUHJveHkoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdG9yYWdlLmlzU2VydmVyICYmIGN1cnJlbnRTZXNzaW9uLnVzZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3VwcHJlc3NXYXJuaW5nID0gdGhpcy5zdXBwcmVzc0dldFNlc3Npb25XYXJuaW5nO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb3h5U2Vzc2lvbiA9IG5ldyBQcm94eShjdXJyZW50U2Vzc2lvbiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXQ6ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXN1cHByZXNzV2FybmluZyAmJiBwcm9wID09PSAndXNlcicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IHNob3cgd2FybmluZyB3aGVuIHRoZSB1c2VyIG9iamVjdCBpcyBiZWluZyBhY2Nlc3NlZCBmcm9tIHRoZSBzZXJ2ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1VzaW5nIHRoZSB1c2VyIG9iamVjdCBhcyByZXR1cm5lZCBmcm9tIHN1cGFiYXNlLmF1dGguZ2V0U2Vzc2lvbigpIG9yIGZyb20gc29tZSBzdXBhYmFzZS5hdXRoLm9uQXV0aFN0YXRlQ2hhbmdlKCkgZXZlbnRzIGNvdWxkIGJlIGluc2VjdXJlISBUaGlzIHZhbHVlIGNvbWVzIGRpcmVjdGx5IGZyb20gdGhlIHN0b3JhZ2UgbWVkaXVtICh1c3VhbGx5IGNvb2tpZXMgb24gdGhlIHNlcnZlcikgYW5kIG1heSBub3QgYmUgYXV0aGVudGljLiBVc2Ugc3VwYWJhc2UuYXV0aC5nZXRVc2VyKCkgaW5zdGVhZCB3aGljaCBhdXRoZW50aWNhdGVzIHRoZSBkYXRhIGJ5IGNvbnRhY3RpbmcgdGhlIFN1cGFiYXNlIEF1dGggc2VydmVyLicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHByZXNzV2FybmluZyA9IHRydWU7IC8vIGtlZXBzIHRoaXMgcHJveHkgaW5zdGFuY2UgZnJvbSBsb2dnaW5nIGFkZGl0aW9uYWwgd2FybmluZ3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1cHByZXNzR2V0U2Vzc2lvbldhcm5pbmcgPSB0cnVlOyAvLyBrZWVwcyB0aGlzIGNsaWVudCdzIGZ1dHVyZSBwcm94eSBpbnN0YW5jZXMgZnJvbSB3YXJuaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFNlc3Npb24gPSBwcm94eVNlc3Npb247XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHNlc3Npb246IGN1cnJlbnRTZXNzaW9uIH0sIGVycm9yOiBudWxsIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgeyBzZXNzaW9uLCBlcnJvciB9ID0gYXdhaXQgdGhpcy5fY2FsbFJlZnJlc2hUb2tlbihjdXJyZW50U2Vzc2lvbi5yZWZyZXNoX3Rva2VuKTtcclxuICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHNlc3Npb246IG51bGwgfSwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHNlc3Npb24gfSwgZXJyb3I6IG51bGwgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX19sb2FkU2Vzc2lvbigpJywgJ2VuZCcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgY3VycmVudCB1c2VyIGRldGFpbHMgaWYgdGhlcmUgaXMgYW4gZXhpc3Rpbmcgc2Vzc2lvbi4gVGhpcyBtZXRob2RcclxuICAgICAqIHBlcmZvcm1zIGEgbmV0d29yayByZXF1ZXN0IHRvIHRoZSBTdXBhYmFzZSBBdXRoIHNlcnZlciwgc28gdGhlIHJldHVybmVkXHJcbiAgICAgKiB2YWx1ZSBpcyBhdXRoZW50aWMgYW5kIGNhbiBiZSB1c2VkIHRvIGJhc2UgYXV0aG9yaXphdGlvbiBydWxlcyBvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gand0IFRha2VzIGluIGFuIG9wdGlvbmFsIGFjY2VzcyB0b2tlbiBKV1QuIElmIG5vIEpXVCBpcyBwcm92aWRlZCwgdGhlIEpXVCBmcm9tIHRoZSBjdXJyZW50IHNlc3Npb24gaXMgdXNlZC5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZ2V0VXNlcihqd3QpIHtcclxuICAgICAgICBpZiAoand0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9nZXRVc2VyKGp3dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fYWNxdWlyZUxvY2soLTEsIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2dldFVzZXIoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgYXN5bmMgX2dldFVzZXIoand0KSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGp3dCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdHRVQnLCBgJHt0aGlzLnVybH0vdXNlcmAsIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgand0OiBqd3QsXHJcbiAgICAgICAgICAgICAgICAgICAgeGZvcm06IF91c2VyUmVzcG9uc2UsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iLCBfYztcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gcmV0dXJucyBhbiBlcnJvciBpZiB0aGVyZSBpcyBubyBhY2Nlc3NfdG9rZW4gb3IgY3VzdG9tIGF1dGhvcml6YXRpb24gaGVhZGVyXHJcbiAgICAgICAgICAgICAgICBpZiAoISgoX2EgPSBkYXRhLnNlc3Npb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hY2Nlc3NfdG9rZW4pICYmICF0aGlzLmhhc0N1c3RvbUF1dGhvcml6YXRpb25IZWFkZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwgfSwgZXJyb3I6IG5ldyBBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvcigpIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ0dFVCcsIGAke3RoaXMudXJsfS91c2VyYCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICAgICAgICAgICAgICBqd3Q6IChfYyA9IChfYiA9IGRhdGEuc2Vzc2lvbikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmFjY2Vzc190b2tlbikgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgIHhmb3JtOiBfdXNlclJlc3BvbnNlLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzQXV0aFNlc3Npb25NaXNzaW5nRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSldUIGNvbnRhaW5zIGEgYHNlc3Npb25faWRgIHdoaWNoIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW4gYWN0aXZlXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gc2Vzc2lvbiBpbiB0aGUgZGF0YWJhc2UsIGluZGljYXRpbmcgdGhlIHVzZXIgaXMgc2lnbmVkIG91dC5cclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9yZW1vdmVTZXNzaW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgcmVtb3ZlSXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgYCR7dGhpcy5zdG9yYWdlS2V5fS1jb2RlLXZlcmlmaWVyYCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwgfSwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdXNlciBkYXRhIGZvciBhIGxvZ2dlZCBpbiB1c2VyLlxyXG4gICAgICovXHJcbiAgICBhc3luYyB1cGRhdGVVc2VyKGF0dHJpYnV0ZXMsIG9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91cGRhdGVVc2VyKGF0dHJpYnV0ZXMsIG9wdGlvbnMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgYXN5bmMgX3VwZGF0ZVVzZXIoYXR0cmlidXRlcywgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhOiBzZXNzaW9uRGF0YSwgZXJyb3I6IHNlc3Npb25FcnJvciB9ID0gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgaWYgKHNlc3Npb25FcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHNlc3Npb25FcnJvcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghc2Vzc2lvbkRhdGEuc2Vzc2lvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IHNlc3Npb25EYXRhLnNlc3Npb247XHJcbiAgICAgICAgICAgICAgICBsZXQgY29kZUNoYWxsZW5nZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBsZXQgY29kZUNoYWxsZW5nZU1ldGhvZCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mbG93VHlwZSA9PT0gJ3BrY2UnICYmIGF0dHJpYnV0ZXMuZW1haWwgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDtcclxuICAgICAgICAgICAgICAgICAgICBbY29kZUNoYWxsZW5nZSwgY29kZUNoYWxsZW5nZU1ldGhvZF0gPSBhd2FpdCBnZXRDb2RlQ2hhbGxlbmdlQW5kTWV0aG9kKHRoaXMuc3RvcmFnZSwgdGhpcy5zdG9yYWdlS2V5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3I6IHVzZXJFcnJvciB9ID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BVVCcsIGAke3RoaXMudXJsfS91c2VyYCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICAgICAgICAgICAgICByZWRpcmVjdFRvOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZW1haWxSZWRpcmVjdFRvLFxyXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXR0cmlidXRlcyksIHsgY29kZV9jaGFsbGVuZ2U6IGNvZGVDaGFsbGVuZ2UsIGNvZGVfY2hhbGxlbmdlX21ldGhvZDogY29kZUNoYWxsZW5nZU1ldGhvZCB9KSxcclxuICAgICAgICAgICAgICAgICAgICBqd3Q6IHNlc3Npb24uYWNjZXNzX3Rva2VuLFxyXG4gICAgICAgICAgICAgICAgICAgIHhmb3JtOiBfdXNlclJlc3BvbnNlLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBpZiAodXNlckVycm9yKVxyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHVzZXJFcnJvcjtcclxuICAgICAgICAgICAgICAgIHNlc3Npb24udXNlciA9IGRhdGEudXNlcjtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKHNlc3Npb24pO1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1VTRVJfVVBEQVRFRCcsIHNlc3Npb24pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBzZXNzaW9uLnVzZXIgfSwgZXJyb3I6IG51bGwgfTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IG51bGwgfSwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHNlc3Npb24gZGF0YSBmcm9tIHRoZSBjdXJyZW50IHNlc3Npb24uIElmIHRoZSBjdXJyZW50IHNlc3Npb24gaXMgZXhwaXJlZCwgc2V0U2Vzc2lvbiB3aWxsIHRha2UgY2FyZSBvZiByZWZyZXNoaW5nIGl0IHRvIG9idGFpbiBhIG5ldyBzZXNzaW9uLlxyXG4gICAgICogSWYgdGhlIHJlZnJlc2ggdG9rZW4gb3IgYWNjZXNzIHRva2VuIGluIHRoZSBjdXJyZW50IHNlc3Npb24gaXMgaW52YWxpZCwgYW4gZXJyb3Igd2lsbCBiZSB0aHJvd24uXHJcbiAgICAgKiBAcGFyYW0gY3VycmVudFNlc3Npb24gVGhlIGN1cnJlbnQgc2Vzc2lvbiB0aGF0IG1pbmltYWxseSBjb250YWlucyBhbiBhY2Nlc3MgdG9rZW4gYW5kIHJlZnJlc2ggdG9rZW4uXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHNldFNlc3Npb24oY3VycmVudFNlc3Npb24pIHtcclxuICAgICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlO1xyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9hY3F1aXJlTG9jaygtMSwgYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fc2V0U2Vzc2lvbihjdXJyZW50U2Vzc2lvbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBhc3luYyBfc2V0U2Vzc2lvbihjdXJyZW50U2Vzc2lvbikge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmICghY3VycmVudFNlc3Npb24uYWNjZXNzX3Rva2VuIHx8ICFjdXJyZW50U2Vzc2lvbi5yZWZyZXNoX3Rva2VuKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aFNlc3Npb25NaXNzaW5nRXJyb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB0aW1lTm93ID0gRGF0ZS5ub3coKSAvIDEwMDA7XHJcbiAgICAgICAgICAgIGxldCBleHBpcmVzQXQgPSB0aW1lTm93O1xyXG4gICAgICAgICAgICBsZXQgaGFzRXhwaXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGxldCBzZXNzaW9uID0gbnVsbDtcclxuICAgICAgICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkZWNvZGVKV1QoY3VycmVudFNlc3Npb24uYWNjZXNzX3Rva2VuKTtcclxuICAgICAgICAgICAgaWYgKHBheWxvYWQuZXhwKSB7XHJcbiAgICAgICAgICAgICAgICBleHBpcmVzQXQgPSBwYXlsb2FkLmV4cDtcclxuICAgICAgICAgICAgICAgIGhhc0V4cGlyZWQgPSBleHBpcmVzQXQgPD0gdGltZU5vdztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaGFzRXhwaXJlZCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBzZXNzaW9uOiByZWZyZXNoZWRTZXNzaW9uLCBlcnJvciB9ID0gYXdhaXQgdGhpcy5fY2FsbFJlZnJlc2hUb2tlbihjdXJyZW50U2Vzc2lvbi5yZWZyZXNoX3Rva2VuKTtcclxuICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvcjogZXJyb3IgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghcmVmcmVzaGVkU2Vzc2lvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvcjogbnVsbCB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc2Vzc2lvbiA9IHJlZnJlc2hlZFNlc3Npb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCB0aGlzLl9nZXRVc2VyKGN1cnJlbnRTZXNzaW9uLmFjY2Vzc190b2tlbik7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHNlc3Npb24gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzX3Rva2VuOiBjdXJyZW50U2Vzc2lvbi5hY2Nlc3NfdG9rZW4sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaF90b2tlbjogY3VycmVudFNlc3Npb24ucmVmcmVzaF90b2tlbixcclxuICAgICAgICAgICAgICAgICAgICB1c2VyOiBkYXRhLnVzZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgdG9rZW5fdHlwZTogJ2JlYXJlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgZXhwaXJlc19pbjogZXhwaXJlc0F0IC0gdGltZU5vdyxcclxuICAgICAgICAgICAgICAgICAgICBleHBpcmVzX2F0OiBleHBpcmVzQXQsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2F2ZVNlc3Npb24oc2Vzc2lvbik7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygnU0lHTkVEX0lOJywgc2Vzc2lvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBzZXNzaW9uLnVzZXIsIHNlc3Npb24gfSwgZXJyb3I6IG51bGwgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgc2Vzc2lvbjogbnVsbCwgdXNlcjogbnVsbCB9LCBlcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIG5ldyBzZXNzaW9uLCByZWdhcmRsZXNzIG9mIGV4cGlyeSBzdGF0dXMuXHJcbiAgICAgKiBUYWtlcyBpbiBhbiBvcHRpb25hbCBjdXJyZW50IHNlc3Npb24uIElmIG5vdCBwYXNzZWQgaW4sIHRoZW4gcmVmcmVzaFNlc3Npb24oKSB3aWxsIGF0dGVtcHQgdG8gcmV0cmlldmUgaXQgZnJvbSBnZXRTZXNzaW9uKCkuXHJcbiAgICAgKiBJZiB0aGUgY3VycmVudCBzZXNzaW9uJ3MgcmVmcmVzaCB0b2tlbiBpcyBpbnZhbGlkLCBhbiBlcnJvciB3aWxsIGJlIHRocm93bi5cclxuICAgICAqIEBwYXJhbSBjdXJyZW50U2Vzc2lvbiBUaGUgY3VycmVudCBzZXNzaW9uLiBJZiBwYXNzZWQgaW4sIGl0IG11c3QgY29udGFpbiBhIHJlZnJlc2ggdG9rZW4uXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHJlZnJlc2hTZXNzaW9uKGN1cnJlbnRTZXNzaW9uKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZTtcclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fYWNxdWlyZUxvY2soLTEsIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3JlZnJlc2hTZXNzaW9uKGN1cnJlbnRTZXNzaW9uKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGFzeW5jIF9yZWZyZXNoU2Vzc2lvbihjdXJyZW50U2Vzc2lvbikge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIHZhciBfYTtcclxuICAgICAgICAgICAgICAgIGlmICghY3VycmVudFNlc3Npb24pIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2Vzc2lvbiA9IChfYSA9IGRhdGEuc2Vzc2lvbikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKCEoY3VycmVudFNlc3Npb24gPT09IG51bGwgfHwgY3VycmVudFNlc3Npb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN1cnJlbnRTZXNzaW9uLnJlZnJlc2hfdG9rZW4pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhTZXNzaW9uTWlzc2luZ0Vycm9yKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IHNlc3Npb24sIGVycm9yIH0gPSBhd2FpdCB0aGlzLl9jYWxsUmVmcmVzaFRva2VuKGN1cnJlbnRTZXNzaW9uLnJlZnJlc2hfdG9rZW4pO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yOiBlcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKCFzZXNzaW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB1c2VyOiBudWxsLCBzZXNzaW9uOiBudWxsIH0sIGVycm9yOiBudWxsIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHVzZXI6IHNlc3Npb24udXNlciwgc2Vzc2lvbiB9LCBlcnJvcjogbnVsbCB9O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgdXNlcjogbnVsbCwgc2Vzc2lvbjogbnVsbCB9LCBlcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgc2Vzc2lvbiBkYXRhIGZyb20gYSBVUkwgc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIF9nZXRTZXNzaW9uRnJvbVVSTChwYXJhbXMsIGNhbGxiYWNrVXJsVHlwZSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmICghaXNCcm93c2VyKCkpXHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yKCdObyBicm93c2VyIGRldGVjdGVkLicpO1xyXG4gICAgICAgICAgICAvLyBJZiB0aGVyZSdzIGFuIGVycm9yIGluIHRoZSBVUkwsIGl0IGRvZXNuJ3QgbWF0dGVyIHdoYXQgZmxvdyBpdCBpcywgd2UganVzdCByZXR1cm4gdGhlIGVycm9yLlxyXG4gICAgICAgICAgICBpZiAocGFyYW1zLmVycm9yIHx8IHBhcmFtcy5lcnJvcl9kZXNjcmlwdGlvbiB8fCBwYXJhbXMuZXJyb3JfY29kZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gVGhlIGVycm9yIGNsYXNzIHJldHVybmVkIGltcGxpZXMgdGhhdCB0aGUgcmVkaXJlY3QgaXMgZnJvbSBhbiBpbXBsaWNpdCBncmFudCBmbG93XHJcbiAgICAgICAgICAgICAgICAvLyBidXQgaXQgY291bGQgYWxzbyBiZSBmcm9tIGEgcmVkaXJlY3QgZXJyb3IgZnJvbSBhIFBLQ0UgZmxvdy5cclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBBdXRoSW1wbGljaXRHcmFudFJlZGlyZWN0RXJyb3IocGFyYW1zLmVycm9yX2Rlc2NyaXB0aW9uIHx8ICdFcnJvciBpbiBVUkwgd2l0aCB1bnNwZWNpZmllZCBlcnJvcl9kZXNjcmlwdGlvbicsIHtcclxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogcGFyYW1zLmVycm9yIHx8ICd1bnNwZWNpZmllZF9lcnJvcicsXHJcbiAgICAgICAgICAgICAgICAgICAgY29kZTogcGFyYW1zLmVycm9yX2NvZGUgfHwgJ3Vuc3BlY2lmaWVkX2NvZGUnLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gQ2hlY2tzIGZvciBtaXNtYXRjaGVzIGJldHdlZW4gdGhlIGZsb3dUeXBlIGluaXRpYWxpc2VkIGluIHRoZSBjbGllbnQgYW5kIHRoZSBVUkwgcGFyYW1ldGVyc1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGNhbGxiYWNrVXJsVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnaW1wbGljaXQnOlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZsb3dUeXBlID09PSAncGtjZScpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhQS0NFR3JhbnRDb2RlRXhjaGFuZ2VFcnJvcignTm90IGEgdmFsaWQgUEtDRSBmbG93IHVybC4nKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdwa2NlJzpcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5mbG93VHlwZSA9PT0gJ2ltcGxpY2l0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yKCdOb3QgYSB2YWxpZCBpbXBsaWNpdCBncmFudCBmbG93IHVybC4nKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgLy8gdGhlcmUncyBubyBtaXNtYXRjaCBzbyB3ZSBjb250aW51ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIFNpbmNlIHRoaXMgaXMgYSByZWRpcmVjdCBmb3IgUEtDRSwgd2UgYXR0ZW1wdCB0byByZXRyaWV2ZSB0aGUgY29kZSBmcm9tIHRoZSBVUkwgZm9yIHRoZSBjb2RlIGV4Y2hhbmdlXHJcbiAgICAgICAgICAgIGlmIChjYWxsYmFja1VybFR5cGUgPT09ICdwa2NlJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfaW5pdGlhbGl6ZSgpJywgJ2JlZ2luJywgJ2lzIFBLQ0UgZmxvdycsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFwYXJhbXMuY29kZSlcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aFBLQ0VHcmFudENvZGVFeGNoYW5nZUVycm9yKCdObyBjb2RlIGRldGVjdGVkLicpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgdGhpcy5fZXhjaGFuZ2VDb2RlRm9yU2Vzc2lvbihwYXJhbXMuY29kZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcclxuICAgICAgICAgICAgICAgIHVybC5zZWFyY2hQYXJhbXMuZGVsZXRlKCdjb2RlJyk7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUod2luZG93Lmhpc3Rvcnkuc3RhdGUsICcnLCB1cmwudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHNlc3Npb246IGRhdGEuc2Vzc2lvbiwgcmVkaXJlY3RUeXBlOiBudWxsIH0sIGVycm9yOiBudWxsIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgeyBwcm92aWRlcl90b2tlbiwgcHJvdmlkZXJfcmVmcmVzaF90b2tlbiwgYWNjZXNzX3Rva2VuLCByZWZyZXNoX3Rva2VuLCBleHBpcmVzX2luLCBleHBpcmVzX2F0LCB0b2tlbl90eXBlLCB9ID0gcGFyYW1zO1xyXG4gICAgICAgICAgICBpZiAoIWFjY2Vzc190b2tlbiB8fCAhZXhwaXJlc19pbiB8fCAhcmVmcmVzaF90b2tlbiB8fCAhdG9rZW5fdHlwZSkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhJbXBsaWNpdEdyYW50UmVkaXJlY3RFcnJvcignTm8gc2Vzc2lvbiBkZWZpbmVkIGluIFVSTCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHRpbWVOb3cgPSBNYXRoLnJvdW5kKERhdGUubm93KCkgLyAxMDAwKTtcclxuICAgICAgICAgICAgY29uc3QgZXhwaXJlc0luID0gcGFyc2VJbnQoZXhwaXJlc19pbik7XHJcbiAgICAgICAgICAgIGxldCBleHBpcmVzQXQgPSB0aW1lTm93ICsgZXhwaXJlc0luO1xyXG4gICAgICAgICAgICBpZiAoZXhwaXJlc19hdCkge1xyXG4gICAgICAgICAgICAgICAgZXhwaXJlc0F0ID0gcGFyc2VJbnQoZXhwaXJlc19hdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgYWN0dWFsbHlFeHBpcmVzSW4gPSBleHBpcmVzQXQgLSB0aW1lTm93O1xyXG4gICAgICAgICAgICBpZiAoYWN0dWFsbHlFeHBpcmVzSW4gKiAxMDAwIDw9IEFVVE9fUkVGUkVTSF9USUNLX0RVUkFUSU9OX01TKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYEBzdXBhYmFzZS9nb3RydWUtanM6IFNlc3Npb24gYXMgcmV0cmlldmVkIGZyb20gVVJMIGV4cGlyZXMgaW4gJHthY3R1YWxseUV4cGlyZXNJbn1zLCBzaG91bGQgaGF2ZSBiZWVuIGNsb3NlciB0byAke2V4cGlyZXNJbn1zYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgaXNzdWVkQXQgPSBleHBpcmVzQXQgLSBleHBpcmVzSW47XHJcbiAgICAgICAgICAgIGlmICh0aW1lTm93IC0gaXNzdWVkQXQgPj0gMTIwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0BzdXBhYmFzZS9nb3RydWUtanM6IFNlc3Npb24gYXMgcmV0cmlldmVkIGZyb20gVVJMIHdhcyBpc3N1ZWQgb3ZlciAxMjBzIGFnbywgVVJMIGNvdWxkIGJlIHN0YWxlJywgaXNzdWVkQXQsIGV4cGlyZXNBdCwgdGltZU5vdyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodGltZU5vdyAtIGlzc3VlZEF0IDwgMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdAc3VwYWJhc2UvZ290cnVlLWpzOiBTZXNzaW9uIGFzIHJldHJpZXZlZCBmcm9tIFVSTCB3YXMgaXNzdWVkIGluIHRoZSBmdXR1cmU/IENoZWNrIHRoZSBkZXZpY2UgY2xvY2sgZm9yIHNrZXcnLCBpc3N1ZWRBdCwgZXhwaXJlc0F0LCB0aW1lTm93KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCB0aGlzLl9nZXRVc2VyKGFjY2Vzc190b2tlbik7XHJcbiAgICAgICAgICAgIGlmIChlcnJvcilcclxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgICAgICBjb25zdCBzZXNzaW9uID0ge1xyXG4gICAgICAgICAgICAgICAgcHJvdmlkZXJfdG9rZW4sXHJcbiAgICAgICAgICAgICAgICBwcm92aWRlcl9yZWZyZXNoX3Rva2VuLFxyXG4gICAgICAgICAgICAgICAgYWNjZXNzX3Rva2VuLFxyXG4gICAgICAgICAgICAgICAgZXhwaXJlc19pbjogZXhwaXJlc0luLFxyXG4gICAgICAgICAgICAgICAgZXhwaXJlc19hdDogZXhwaXJlc0F0LFxyXG4gICAgICAgICAgICAgICAgcmVmcmVzaF90b2tlbixcclxuICAgICAgICAgICAgICAgIHRva2VuX3R5cGUsXHJcbiAgICAgICAgICAgICAgICB1c2VyOiBkYXRhLnVzZXIsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8vIFJlbW92ZSB0b2tlbnMgZnJvbSBVUkxcclxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSAnJztcclxuICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfZ2V0U2Vzc2lvbkZyb21VUkwoKScsICdjbGVhcmluZyB3aW5kb3cubG9jYXRpb24uaGFzaCcpO1xyXG4gICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHNlc3Npb24sIHJlZGlyZWN0VHlwZTogcGFyYW1zLnR5cGUgfSwgZXJyb3I6IG51bGwgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgc2Vzc2lvbjogbnVsbCwgcmVkaXJlY3RUeXBlOiBudWxsIH0sIGVycm9yIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgVVJMIGNvbnRhaW5zIHBhcmFtZXRlcnMgZ2l2ZW4gYnkgYW4gaW1wbGljaXQgb2F1dGggZ3JhbnQgZmxvdyAoaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzY3NDkuaHRtbCNzZWN0aW9uLTQuMilcclxuICAgICAqL1xyXG4gICAgX2lzSW1wbGljaXRHcmFudENhbGxiYWNrKHBhcmFtcykge1xyXG4gICAgICAgIHJldHVybiBCb29sZWFuKHBhcmFtcy5hY2Nlc3NfdG9rZW4gfHwgcGFyYW1zLmVycm9yX2Rlc2NyaXB0aW9uKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IFVSTCBhbmQgYmFja2luZyBzdG9yYWdlIGNvbnRhaW4gcGFyYW1ldGVycyBnaXZlbiBieSBhIFBLQ0UgZmxvd1xyXG4gICAgICovXHJcbiAgICBhc3luYyBfaXNQS0NFQ2FsbGJhY2socGFyYW1zKSB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFN0b3JhZ2VDb250ZW50ID0gYXdhaXQgZ2V0SXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgYCR7dGhpcy5zdG9yYWdlS2V5fS1jb2RlLXZlcmlmaWVyYCk7XHJcbiAgICAgICAgcmV0dXJuICEhKHBhcmFtcy5jb2RlICYmIGN1cnJlbnRTdG9yYWdlQ29udGVudCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEluc2lkZSBhIGJyb3dzZXIgY29udGV4dCwgYHNpZ25PdXQoKWAgd2lsbCByZW1vdmUgdGhlIGxvZ2dlZCBpbiB1c2VyIGZyb20gdGhlIGJyb3dzZXIgc2Vzc2lvbiBhbmQgbG9nIHRoZW0gb3V0IC0gcmVtb3ZpbmcgYWxsIGl0ZW1zIGZyb20gbG9jYWxzdG9yYWdlIGFuZCB0aGVuIHRyaWdnZXIgYSBgXCJTSUdORURfT1VUXCJgIGV2ZW50LlxyXG4gICAgICpcclxuICAgICAqIEZvciBzZXJ2ZXItc2lkZSBtYW5hZ2VtZW50LCB5b3UgY2FuIHJldm9rZSBhbGwgcmVmcmVzaCB0b2tlbnMgZm9yIGEgdXNlciBieSBwYXNzaW5nIGEgdXNlcidzIEpXVCB0aHJvdWdoIHRvIGBhdXRoLmFwaS5zaWduT3V0KEpXVDogc3RyaW5nKWAuXHJcbiAgICAgKiBUaGVyZSBpcyBubyB3YXkgdG8gcmV2b2tlIGEgdXNlcidzIGFjY2VzcyB0b2tlbiBqd3QgdW50aWwgaXQgZXhwaXJlcy4gSXQgaXMgcmVjb21tZW5kZWQgdG8gc2V0IGEgc2hvcnRlciBleHBpcnkgb24gdGhlIGp3dCBmb3IgdGhpcyByZWFzb24uXHJcbiAgICAgKlxyXG4gICAgICogSWYgdXNpbmcgYG90aGVyc2Agc2NvcGUsIG5vIGBTSUdORURfT1VUYCBldmVudCBpcyBmaXJlZCFcclxuICAgICAqL1xyXG4gICAgYXN5bmMgc2lnbk91dChvcHRpb25zID0geyBzY29wZTogJ2dsb2JhbCcgfSkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9zaWduT3V0KG9wdGlvbnMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgYXN5bmMgX3NpZ25PdXQoeyBzY29wZSB9ID0geyBzY29wZTogJ2dsb2JhbCcgfSkge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yOiBzZXNzaW9uRXJyb3IgfSA9IHJlc3VsdDtcclxuICAgICAgICAgICAgaWYgKHNlc3Npb25FcnJvcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3I6IHNlc3Npb25FcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gKF9hID0gZGF0YS5zZXNzaW9uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYWNjZXNzX3Rva2VuO1xyXG4gICAgICAgICAgICBpZiAoYWNjZXNzVG9rZW4pIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3IgfSA9IGF3YWl0IHRoaXMuYWRtaW4uc2lnbk91dChhY2Nlc3NUb2tlbiwgc2NvcGUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gaWdub3JlIDQwNHMgc2luY2UgdXNlciBtaWdodCBub3QgZXhpc3QgYW55bW9yZVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZSA0MDFzIHNpbmNlIGFuIGludmFsaWQgb3IgZXhwaXJlZCBKV1Qgc2hvdWxkIHNpZ24gb3V0IHRoZSBjdXJyZW50IHNlc3Npb25cclxuICAgICAgICAgICAgICAgICAgICBpZiAoIShpc0F1dGhBcGlFcnJvcihlcnJvcikgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yLnN0YXR1cyA9PT0gNDA0IHx8IGVycm9yLnN0YXR1cyA9PT0gNDAxIHx8IGVycm9yLnN0YXR1cyA9PT0gNDAzKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3IgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHNjb3BlICE9PSAnb3RoZXJzJykge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgcmVtb3ZlSXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgYCR7dGhpcy5zdG9yYWdlS2V5fS1jb2RlLXZlcmlmaWVyYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3I6IG51bGwgfTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUmVjZWl2ZSBhIG5vdGlmaWNhdGlvbiBldmVyeSB0aW1lIGFuIGF1dGggZXZlbnQgaGFwcGVucy5cclxuICAgICAqIEBwYXJhbSBjYWxsYmFjayBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgd2hlbiBhbiBhdXRoIGV2ZW50IGhhcHBlbnMuXHJcbiAgICAgKi9cclxuICAgIG9uQXV0aFN0YXRlQ2hhbmdlKGNhbGxiYWNrKSB7XHJcbiAgICAgICAgY29uc3QgaWQgPSB1dWlkKCk7XHJcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0ge1xyXG4gICAgICAgICAgICBpZCxcclxuICAgICAgICAgICAgY2FsbGJhY2ssXHJcbiAgICAgICAgICAgIHVuc3Vic2NyaWJlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI3Vuc3Vic2NyaWJlKCknLCAnc3RhdGUgY2hhbmdlIGNhbGxiYWNrIHdpdGggaWQgcmVtb3ZlZCcsIGlkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VFbWl0dGVycy5kZWxldGUoaWQpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5fZGVidWcoJyNvbkF1dGhTdGF0ZUNoYW5nZSgpJywgJ3JlZ2lzdGVyZWQgY2FsbGJhY2sgd2l0aCBpZCcsIGlkKTtcclxuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlRW1pdHRlcnMuc2V0KGlkLCBzdWJzY3JpcHRpb24pO1xyXG4gICAgICAgIChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0SW5pdGlhbFNlc3Npb24oaWQpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KSgpO1xyXG4gICAgICAgIHJldHVybiB7IGRhdGE6IHsgc3Vic2NyaXB0aW9uIH0gfTtcclxuICAgIH1cclxuICAgIGFzeW5jIF9lbWl0SW5pdGlhbFNlc3Npb24oaWQpIHtcclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGE6IHsgc2Vzc2lvbiB9LCBlcnJvciwgfSA9IHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIGlmIChlcnJvcilcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICAgICAgICAgIGF3YWl0ICgoX2EgPSB0aGlzLnN0YXRlQ2hhbmdlRW1pdHRlcnMuZ2V0KGlkKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGxiYWNrKCdJTklUSUFMX1NFU1NJT04nLCBzZXNzaW9uKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1ZygnSU5JVElBTF9TRVNTSU9OJywgJ2NhbGxiYWNrIGlkJywgaWQsICdzZXNzaW9uJywgc2Vzc2lvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgKChfYiA9IHRoaXMuc3RhdGVDaGFuZ2VFbWl0dGVycy5nZXQoaWQpKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbGJhY2soJ0lOSVRJQUxfU0VTU0lPTicsIG51bGwpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKCdJTklUSUFMX1NFU1NJT04nLCAnY2FsbGJhY2sgaWQnLCBpZCwgJ2Vycm9yJywgZXJyKTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBTZW5kcyBhIHBhc3N3b3JkIHJlc2V0IHJlcXVlc3QgdG8gYW4gZW1haWwgYWRkcmVzcy4gVGhpcyBtZXRob2Qgc3VwcG9ydHMgdGhlIFBLQ0UgZmxvdy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gZW1haWwgVGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5yZWRpcmVjdFRvIFRoZSBVUkwgdG8gc2VuZCB0aGUgdXNlciB0byBhZnRlciB0aGV5IGNsaWNrIHRoZSBwYXNzd29yZCByZXNldCBsaW5rLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuY2FwdGNoYVRva2VuIFZlcmlmaWNhdGlvbiB0b2tlbiByZWNlaXZlZCB3aGVuIHRoZSB1c2VyIGNvbXBsZXRlcyB0aGUgY2FwdGNoYSBvbiB0aGUgc2l0ZS5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgcmVzZXRQYXNzd29yZEZvckVtYWlsKGVtYWlsLCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICBsZXQgY29kZUNoYWxsZW5nZSA9IG51bGw7XHJcbiAgICAgICAgbGV0IGNvZGVDaGFsbGVuZ2VNZXRob2QgPSBudWxsO1xyXG4gICAgICAgIGlmICh0aGlzLmZsb3dUeXBlID09PSAncGtjZScpIHtcclxuICAgICAgICAgICAgO1xyXG4gICAgICAgICAgICBbY29kZUNoYWxsZW5nZSwgY29kZUNoYWxsZW5nZU1ldGhvZF0gPSBhd2FpdCBnZXRDb2RlQ2hhbGxlbmdlQW5kTWV0aG9kKHRoaXMuc3RvcmFnZSwgdGhpcy5zdG9yYWdlS2V5LCB0cnVlIC8vIGlzUGFzc3dvcmRSZWNvdmVyeVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vcmVjb3ZlcmAsIHtcclxuICAgICAgICAgICAgICAgIGJvZHk6IHtcclxuICAgICAgICAgICAgICAgICAgICBlbWFpbCxcclxuICAgICAgICAgICAgICAgICAgICBjb2RlX2NoYWxsZW5nZTogY29kZUNoYWxsZW5nZSxcclxuICAgICAgICAgICAgICAgICAgICBjb2RlX2NoYWxsZW5nZV9tZXRob2Q6IGNvZGVDaGFsbGVuZ2VNZXRob2QsXHJcbiAgICAgICAgICAgICAgICAgICAgZ290cnVlX21ldGFfc2VjdXJpdHk6IHsgY2FwdGNoYV90b2tlbjogb3B0aW9ucy5jYXB0Y2hhVG9rZW4gfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICByZWRpcmVjdFRvOiBvcHRpb25zLnJlZGlyZWN0VG8sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYWxsIHRoZSBpZGVudGl0aWVzIGxpbmtlZCB0byBhIHVzZXIuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGdldFVzZXJJZGVudGl0aWVzKCkge1xyXG4gICAgICAgIHZhciBfYTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCB0aGlzLmdldFVzZXIoKTtcclxuICAgICAgICAgICAgaWYgKGVycm9yKVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgaWRlbnRpdGllczogKF9hID0gZGF0YS51c2VyLmlkZW50aXRpZXMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFtdIH0sIGVycm9yOiBudWxsIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogTGlua3MgYW4gb2F1dGggaWRlbnRpdHkgdG8gYW4gZXhpc3RpbmcgdXNlci5cclxuICAgICAqIFRoaXMgbWV0aG9kIHN1cHBvcnRzIHRoZSBQS0NFIGZsb3cuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGxpbmtJZGVudGl0eShjcmVkZW50aWFscykge1xyXG4gICAgICAgIHZhciBfYTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2U7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBhd2FpdCB0aGlzLl9nZXRVcmxGb3JQcm92aWRlcihgJHt0aGlzLnVybH0vdXNlci9pZGVudGl0aWVzL2F1dGhvcml6ZWAsIGNyZWRlbnRpYWxzLnByb3ZpZGVyLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3RUbzogKF9hID0gY3JlZGVudGlhbHMub3B0aW9ucykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlZGlyZWN0VG8sXHJcbiAgICAgICAgICAgICAgICAgICAgc2NvcGVzOiAoX2IgPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Iuc2NvcGVzLFxyXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiAoX2MgPSBjcmVkZW50aWFscy5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MucXVlcnlQYXJhbXMsXHJcbiAgICAgICAgICAgICAgICAgICAgc2tpcEJyb3dzZXJSZWRpcmVjdDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdHRVQnLCB1cmwsIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgand0OiAoX2UgPSAoX2QgPSBkYXRhLnNlc3Npb24pID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5hY2Nlc3NfdG9rZW4pICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKGVycm9yKVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgIGlmIChpc0Jyb3dzZXIoKSAmJiAhKChfYSA9IGNyZWRlbnRpYWxzLm9wdGlvbnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5za2lwQnJvd3NlclJlZGlyZWN0KSkge1xyXG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmFzc2lnbihkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEudXJsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHByb3ZpZGVyOiBjcmVkZW50aWFscy5wcm92aWRlciwgdXJsOiBkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEudXJsIH0sIGVycm9yOiBudWxsIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHByb3ZpZGVyOiBjcmVkZW50aWFscy5wcm92aWRlciwgdXJsOiBudWxsIH0sIGVycm9yIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBVbmxpbmtzIGFuIGlkZW50aXR5IGZyb20gYSB1c2VyIGJ5IGRlbGV0aW5nIGl0LiBUaGUgdXNlciB3aWxsIG5vIGxvbmdlciBiZSBhYmxlIHRvIHNpZ24gaW4gd2l0aCB0aGF0IGlkZW50aXR5IG9uY2UgaXQncyB1bmxpbmtlZC5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgdW5saW5rSWRlbnRpdHkoaWRlbnRpdHkpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ0RFTEVURScsIGAke3RoaXMudXJsfS91c2VyL2lkZW50aXRpZXMvJHtpZGVudGl0eS5pZGVudGl0eV9pZH1gLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgIGp3dDogKF9iID0gKF9hID0gZGF0YS5zZXNzaW9uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYWNjZXNzX3Rva2VuKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogR2VuZXJhdGVzIGEgbmV3IEpXVC5cclxuICAgICAqIEBwYXJhbSByZWZyZXNoVG9rZW4gQSB2YWxpZCByZWZyZXNoIHRva2VuIHRoYXQgd2FzIHJldHVybmVkIG9uIGxvZ2luLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBfcmVmcmVzaEFjY2Vzc1Rva2VuKHJlZnJlc2hUb2tlbikge1xyXG4gICAgICAgIGNvbnN0IGRlYnVnTmFtZSA9IGAjX3JlZnJlc2hBY2Nlc3NUb2tlbigke3JlZnJlc2hUb2tlbi5zdWJzdHJpbmcoMCwgNSl9Li4uKWA7XHJcbiAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAnYmVnaW4nKTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBzdGFydGVkQXQgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICAvLyB3aWxsIGF0dGVtcHQgdG8gcmVmcmVzaCB0aGUgdG9rZW4gd2l0aCBleHBvbmVudGlhbCBiYWNrb2ZmXHJcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCByZXRyeWFibGUoYXN5bmMgKGF0dGVtcHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChhdHRlbXB0ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNsZWVwKDIwMCAqIE1hdGgucG93KDIsIGF0dGVtcHQgLSAxKSk7IC8vIDIwMCwgNDAwLCA4MDAsIC4uLlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAncmVmcmVzaGluZyBhdHRlbXB0JywgYXR0ZW1wdCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vdG9rZW4/Z3JhbnRfdHlwZT1yZWZyZXNoX3Rva2VuYCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IHsgcmVmcmVzaF90b2tlbjogcmVmcmVzaFRva2VuIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgIHhmb3JtOiBfc2Vzc2lvblJlc3BvbnNlLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sIChhdHRlbXB0LCBlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dEJhY2tPZmZJbnRlcnZhbCA9IDIwMCAqIE1hdGgucG93KDIsIGF0dGVtcHQpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChlcnJvciAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGlzQXV0aFJldHJ5YWJsZUZldGNoRXJyb3IoZXJyb3IpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcmV0cnlhYmxlIG9ubHkgaWYgdGhlIHJlcXVlc3QgY2FuIGJlIHNlbnQgYmVmb3JlIHRoZSBiYWNrb2ZmIG92ZXJmbG93cyB0aGUgdGljayBkdXJhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIERhdGUubm93KCkgKyBuZXh0QmFja09mZkludGVydmFsIC0gc3RhcnRlZEF0IDwgQVVUT19SRUZSRVNIX1RJQ0tfRFVSQVRJT05fTVMpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ2Vycm9yJywgZXJyb3IpO1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHNlc3Npb246IG51bGwsIHVzZXI6IG51bGwgfSwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ2VuZCcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIF9pc1ZhbGlkU2Vzc2lvbihtYXliZVNlc3Npb24pIHtcclxuICAgICAgICBjb25zdCBpc1ZhbGlkU2Vzc2lvbiA9IHR5cGVvZiBtYXliZVNlc3Npb24gPT09ICdvYmplY3QnICYmXHJcbiAgICAgICAgICAgIG1heWJlU2Vzc2lvbiAhPT0gbnVsbCAmJlxyXG4gICAgICAgICAgICAnYWNjZXNzX3Rva2VuJyBpbiBtYXliZVNlc3Npb24gJiZcclxuICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW4nIGluIG1heWJlU2Vzc2lvbiAmJlxyXG4gICAgICAgICAgICAnZXhwaXJlc19hdCcgaW4gbWF5YmVTZXNzaW9uO1xyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkU2Vzc2lvbjtcclxuICAgIH1cclxuICAgIGFzeW5jIF9oYW5kbGVQcm92aWRlclNpZ25Jbihwcm92aWRlciwgb3B0aW9ucykge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGF3YWl0IHRoaXMuX2dldFVybEZvclByb3ZpZGVyKGAke3RoaXMudXJsfS9hdXRob3JpemVgLCBwcm92aWRlciwge1xyXG4gICAgICAgICAgICByZWRpcmVjdFRvOiBvcHRpb25zLnJlZGlyZWN0VG8sXHJcbiAgICAgICAgICAgIHNjb3Blczogb3B0aW9ucy5zY29wZXMsXHJcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiBvcHRpb25zLnF1ZXJ5UGFyYW1zLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX2RlYnVnKCcjX2hhbmRsZVByb3ZpZGVyU2lnbkluKCknLCAncHJvdmlkZXInLCBwcm92aWRlciwgJ29wdGlvbnMnLCBvcHRpb25zLCAndXJsJywgdXJsKTtcclxuICAgICAgICAvLyB0cnkgdG8gb3BlbiBvbiB0aGUgYnJvd3NlclxyXG4gICAgICAgIGlmIChpc0Jyb3dzZXIoKSAmJiAhb3B0aW9ucy5za2lwQnJvd3NlclJlZGlyZWN0KSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24odXJsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogeyBwcm92aWRlciwgdXJsIH0sIGVycm9yOiBudWxsIH07XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJlY292ZXJzIHRoZSBzZXNzaW9uIGZyb20gTG9jYWxTdG9yYWdlIGFuZCByZWZyZXNoZXMgdGhlIHRva2VuXHJcbiAgICAgKiBOb3RlOiB0aGlzIG1ldGhvZCBpcyBhc3luYyB0byBhY2NvbW1vZGF0ZSBmb3IgQXN5bmNTdG9yYWdlIGUuZy4gaW4gUmVhY3QgbmF0aXZlLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBfcmVjb3ZlckFuZFJlZnJlc2goKSB7XHJcbiAgICAgICAgdmFyIF9hLCBfYjtcclxuICAgICAgICBjb25zdCBkZWJ1Z05hbWUgPSAnI19yZWNvdmVyQW5kUmVmcmVzaCgpJztcclxuICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdiZWdpbicpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTZXNzaW9uID0gKGF3YWl0IGdldEl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIHRoaXMuc3RvcmFnZUtleSkpO1xyXG4gICAgICAgICAgICBpZiAoY3VycmVudFNlc3Npb24gJiYgdGhpcy51c2VyU3RvcmFnZSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IG1heWJlVXNlciA9IChhd2FpdCBnZXRJdGVtQXN5bmModGhpcy51c2VyU3RvcmFnZSwgdGhpcy5zdG9yYWdlS2V5ICsgJy11c2VyJykpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnN0b3JhZ2UuaXNTZXJ2ZXIgJiYgT2JqZWN0LmlzKHRoaXMuc3RvcmFnZSwgdGhpcy51c2VyU3RvcmFnZSkgJiYgIW1heWJlVXNlcikge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHN0b3JhZ2UgYW5kIHVzZXJTdG9yYWdlIGFyZSB0aGUgc2FtZSBzdG9yYWdlIG1lZGl1bSwgZm9yIGV4YW1wbGVcclxuICAgICAgICAgICAgICAgICAgICAvLyB3aW5kb3cubG9jYWxTdG9yYWdlIGlmIHVzZXJTdG9yYWdlIGRvZXMgbm90IGhhdmUgdGhlIHVzZXIgZnJvbVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHN0b3JhZ2Ugc3RvcmVkLCBzdG9yZSBpdCBmaXJzdCB0aGVyZWJ5IG1pZ3JhdGluZyB0aGUgdXNlciBvYmplY3RcclxuICAgICAgICAgICAgICAgICAgICAvLyBmcm9tIHN0b3JhZ2UgLT4gdXNlclN0b3JhZ2VcclxuICAgICAgICAgICAgICAgICAgICBtYXliZVVzZXIgPSB7IHVzZXI6IGN1cnJlbnRTZXNzaW9uLnVzZXIgfTtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzZXRJdGVtQXN5bmModGhpcy51c2VyU3RvcmFnZSwgdGhpcy5zdG9yYWdlS2V5ICsgJy11c2VyJywgbWF5YmVVc2VyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGN1cnJlbnRTZXNzaW9uLnVzZXIgPSAoX2EgPSBtYXliZVVzZXIgPT09IG51bGwgfHwgbWF5YmVVc2VyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtYXliZVVzZXIudXNlcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdXNlck5vdEF2YWlsYWJsZVByb3h5KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudFNlc3Npb24gJiYgIWN1cnJlbnRTZXNzaW9uLnVzZXIpIHtcclxuICAgICAgICAgICAgICAgIC8vIHVzZXIgc3RvcmFnZSBpcyBub3Qgc2V0LCBsZXQncyBjaGVjayBpZiBpdCB3YXMgcHJldmlvdXNseSBlbmFibGVkIHNvXHJcbiAgICAgICAgICAgICAgICAvLyB3ZSBicmluZyBiYWNrIHRoZSBzdG9yYWdlIGFzIGl0IHNob3VsZCBiZVxyXG4gICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50U2Vzc2lvbi51c2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGVzdCBpZiB1c2VyU3RvcmFnZSB3YXMgcHJldmlvdXNseSBlbmFibGVkIGFuZCB0aGUgc3RvcmFnZSBtZWRpdW0gd2FzIHRoZSBzYW1lLCB0byBtb3ZlIHRoZSB1c2VyIGJhY2sgdW5kZXIgdGhlIHNhbWUga2V5XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VwYXJhdGVVc2VyID0gKGF3YWl0IGdldEl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIHRoaXMuc3RvcmFnZUtleSArICctdXNlcicpKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoc2VwYXJhdGVVc2VyICYmIChzZXBhcmF0ZVVzZXIgPT09IG51bGwgfHwgc2VwYXJhdGVVc2VyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZXBhcmF0ZVVzZXIudXNlcikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNlc3Npb24udXNlciA9IHNlcGFyYXRlVXNlci51c2VyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCByZW1vdmVJdGVtQXN5bmModGhpcy5zdG9yYWdlLCB0aGlzLnN0b3JhZ2VLZXkgKyAnLXVzZXInKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2V0SXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgdGhpcy5zdG9yYWdlS2V5LCBjdXJyZW50U2Vzc2lvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2Vzc2lvbi51c2VyID0gdXNlck5vdEF2YWlsYWJsZVByb3h5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ3Nlc3Npb24gZnJvbSBzdG9yYWdlJywgY3VycmVudFNlc3Npb24pO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2lzVmFsaWRTZXNzaW9uKGN1cnJlbnRTZXNzaW9uKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAnc2Vzc2lvbiBpcyBub3QgdmFsaWQnKTtcclxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U2Vzc2lvbiAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBleHBpcmVzV2l0aE1hcmdpbiA9ICgoX2IgPSBjdXJyZW50U2Vzc2lvbi5leHBpcmVzX2F0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBJbmZpbml0eSkgKiAxMDAwIC0gRGF0ZS5ub3coKSA8IEVYUElSWV9NQVJHSU5fTVM7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgYHNlc3Npb24gaGFzJHtleHBpcmVzV2l0aE1hcmdpbiA/ICcnIDogJyBub3QnfSBleHBpcmVkIHdpdGggbWFyZ2luIG9mICR7RVhQSVJZX01BUkdJTl9NU31zYCk7XHJcbiAgICAgICAgICAgIGlmIChleHBpcmVzV2l0aE1hcmdpbikge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYXV0b1JlZnJlc2hUb2tlbiAmJiBjdXJyZW50U2Vzc2lvbi5yZWZyZXNoX3Rva2VuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvciB9ID0gYXdhaXQgdGhpcy5fY2FsbFJlZnJlc2hUb2tlbihjdXJyZW50U2Vzc2lvbi5yZWZyZXNoX3Rva2VuKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ3JlZnJlc2ggZmFpbGVkIHdpdGggYSBub24tcmV0cnlhYmxlIGVycm9yLCByZW1vdmluZyB0aGUgc2Vzc2lvbicsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChjdXJyZW50U2Vzc2lvbi51c2VyICYmXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50U2Vzc2lvbi51c2VyLl9faXNVc2VyTm90QXZhaWxhYmxlUHJveHkgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBwcm94eSB1c2VyLCB0cnkgdG8gZ2V0IHRoZSByZWFsIHVzZXIgZGF0YVxyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yOiB1c2VyRXJyb3IgfSA9IGF3YWl0IHRoaXMuX2dldFVzZXIoY3VycmVudFNlc3Npb24uYWNjZXNzX3Rva2VuKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXVzZXJFcnJvciAmJiAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhLnVzZXIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZXNzaW9uLnVzZXIgPSBkYXRhLnVzZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKGN1cnJlbnRTZXNzaW9uKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1NJR05FRF9JTicsIGN1cnJlbnRTZXNzaW9uKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ2NvdWxkIG5vdCBnZXQgdXNlciBkYXRhLCBza2lwcGluZyBTSUdORURfSU4gbm90aWZpY2F0aW9uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGdldFVzZXJFcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGdldHRpbmcgdXNlciBkYXRhOicsIGdldFVzZXJFcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAnZXJyb3IgZ2V0dGluZyB1c2VyIGRhdGEsIHNraXBwaW5nIFNJR05FRF9JTiBub3RpZmljYXRpb24nLCBnZXRVc2VyRXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gbm8gbmVlZCB0byBwZXJzaXN0IGN1cnJlbnRTZXNzaW9uIGFnYWluLCBhcyB3ZSBqdXN0IGxvYWRlZCBpdCBmcm9tXHJcbiAgICAgICAgICAgICAgICAvLyBsb2NhbCBzdG9yYWdlOyBwZXJzaXN0aW5nIGl0IGFnYWluIG1heSBvdmVyd3JpdGUgYSB2YWx1ZSBzYXZlZCBieVxyXG4gICAgICAgICAgICAgICAgLy8gYW5vdGhlciBjbGllbnQgd2l0aCBhY2Nlc3MgdG8gdGhlIHNhbWUgbG9jYWwgc3RvcmFnZVxyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ1NJR05FRF9JTicsIGN1cnJlbnRTZXNzaW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ2Vycm9yJywgZXJyKTtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdlbmQnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBhc3luYyBfY2FsbFJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW4pIHtcclxuICAgICAgICB2YXIgX2EsIF9iO1xyXG4gICAgICAgIGlmICghcmVmcmVzaFRva2VuKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyByZWZyZXNoaW5nIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3NcclxuICAgICAgICBpZiAodGhpcy5yZWZyZXNoaW5nRGVmZXJyZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVmcmVzaGluZ0RlZmVycmVkLnByb21pc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRlYnVnTmFtZSA9IGAjX2NhbGxSZWZyZXNoVG9rZW4oJHtyZWZyZXNoVG9rZW4uc3Vic3RyaW5nKDAsIDUpfS4uLilgO1xyXG4gICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ2JlZ2luJyk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoaW5nRGVmZXJyZWQgPSBuZXcgRGVmZXJyZWQoKTtcclxuICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgdGhpcy5fcmVmcmVzaEFjY2Vzc1Rva2VuKHJlZnJlc2hUb2tlbik7XHJcbiAgICAgICAgICAgIGlmIChlcnJvcilcclxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgICAgICBpZiAoIWRhdGEuc2Vzc2lvbilcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvcigpO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbihkYXRhLnNlc3Npb24pO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygnVE9LRU5fUkVGUkVTSEVEJywgZGF0YS5zZXNzaW9uKTtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geyBzZXNzaW9uOiBkYXRhLnNlc3Npb24sIGVycm9yOiBudWxsIH07XHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaGluZ0RlZmVycmVkLnJlc29sdmUocmVzdWx0KTtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ2Vycm9yJywgZXJyb3IpO1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7IHNlc3Npb246IG51bGwsIGVycm9yIH07XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzQXV0aFJldHJ5YWJsZUZldGNoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgKF9hID0gdGhpcy5yZWZyZXNoaW5nRGVmZXJyZWQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXNvbHZlKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIChfYiA9IHRoaXMucmVmcmVzaGluZ0RlZmVycmVkKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucmVqZWN0KGVycm9yKTtcclxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdEZWZlcnJlZCA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlYnVnKGRlYnVnTmFtZSwgJ2VuZCcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGFzeW5jIF9ub3RpZnlBbGxTdWJzY3JpYmVycyhldmVudCwgc2Vzc2lvbiwgYnJvYWRjYXN0ID0gdHJ1ZSkge1xyXG4gICAgICAgIGNvbnN0IGRlYnVnTmFtZSA9IGAjX25vdGlmeUFsbFN1YnNjcmliZXJzKCR7ZXZlbnR9KWA7XHJcbiAgICAgICAgdGhpcy5fZGVidWcoZGVidWdOYW1lLCAnYmVnaW4nLCBzZXNzaW9uLCBgYnJvYWRjYXN0ID0gJHticm9hZGNhc3R9YCk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYnJvYWRjYXN0Q2hhbm5lbCAmJiBicm9hZGNhc3QpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZSh7IGV2ZW50LCBzZXNzaW9uIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9IFtdO1xyXG4gICAgICAgICAgICBjb25zdCBwcm9taXNlcyA9IEFycmF5LmZyb20odGhpcy5zdGF0ZUNoYW5nZUVtaXR0ZXJzLnZhbHVlcygpKS5tYXAoYXN5bmMgKHgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgeC5jYWxsYmFjayhldmVudCwgc2Vzc2lvbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVycm9ycy5wdXNoKGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xyXG4gICAgICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZXJyb3JzLmxlbmd0aDsgaSArPSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcnNbaV0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3JzWzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICB0aGlzLl9kZWJ1ZyhkZWJ1Z05hbWUsICdlbmQnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIHNldCBjdXJyZW50U2Vzc2lvbiBhbmQgY3VycmVudFVzZXJcclxuICAgICAqIHByb2Nlc3MgdG8gX3N0YXJ0QXV0b1JlZnJlc2hUb2tlbiBpZiBwb3NzaWJsZVxyXG4gICAgICovXHJcbiAgICBhc3luYyBfc2F2ZVNlc3Npb24oc2Vzc2lvbikge1xyXG4gICAgICAgIHRoaXMuX2RlYnVnKCcjX3NhdmVTZXNzaW9uKCknLCBzZXNzaW9uKTtcclxuICAgICAgICAvLyBfc2F2ZVNlc3Npb24gaXMgYWx3YXlzIGNhbGxlZCB3aGVuZXZlciBhIG5ldyBzZXNzaW9uIGhhcyBiZWVuIGFjcXVpcmVkXHJcbiAgICAgICAgLy8gc28gd2UgY2FuIHNhZmVseSBzdXBwcmVzcyB0aGUgd2FybmluZyByZXR1cm5lZCBieSBmdXR1cmUgZ2V0U2Vzc2lvbiBjYWxsc1xyXG4gICAgICAgIHRoaXMuc3VwcHJlc3NHZXRTZXNzaW9uV2FybmluZyA9IHRydWU7XHJcbiAgICAgICAgLy8gQ3JlYXRlIGEgc2hhbGxvdyBjb3B5IHRvIHdvcmsgd2l0aCwgdG8gYXZvaWQgbXV0YXRpbmcgdGhlIG9yaWdpbmFsIHNlc3Npb24gb2JqZWN0IGlmIGl0J3MgdXNlZCBlbHNld2hlcmVcclxuICAgICAgICBjb25zdCBzZXNzaW9uVG9Qcm9jZXNzID0gT2JqZWN0LmFzc2lnbih7fSwgc2Vzc2lvbik7XHJcbiAgICAgICAgY29uc3QgdXNlcklzUHJveHkgPSBzZXNzaW9uVG9Qcm9jZXNzLnVzZXIgJiYgc2Vzc2lvblRvUHJvY2Vzcy51c2VyLl9faXNVc2VyTm90QXZhaWxhYmxlUHJveHkgPT09IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMudXNlclN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgaWYgKCF1c2VySXNQcm94eSAmJiBzZXNzaW9uVG9Qcm9jZXNzLnVzZXIpIHtcclxuICAgICAgICAgICAgICAgIC8vIElmIGl0J3MgYSByZWFsIHVzZXIgb2JqZWN0LCBzYXZlIGl0IHRvIHVzZXJTdG9yYWdlLlxyXG4gICAgICAgICAgICAgICAgYXdhaXQgc2V0SXRlbUFzeW5jKHRoaXMudXNlclN0b3JhZ2UsIHRoaXMuc3RvcmFnZUtleSArICctdXNlcicsIHtcclxuICAgICAgICAgICAgICAgICAgICB1c2VyOiBzZXNzaW9uVG9Qcm9jZXNzLnVzZXIsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh1c2VySXNQcm94eSkge1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgaXQncyB0aGUgcHJveHksIGl0IG1lYW5zIHVzZXIgd2FzIG5vdCBmb3VuZCBpbiB1c2VyU3RvcmFnZS5cclxuICAgICAgICAgICAgICAgIC8vIFdlIHNob3VsZCBlbnN1cmUgbm8gc3RhbGUgdXNlciBkYXRhIGZvciB0aGlzIGtleSBleGlzdHMgaW4gdXNlclN0b3JhZ2UgaWYgd2Ugd2VyZSB0byBzYXZlIG51bGwsXHJcbiAgICAgICAgICAgICAgICAvLyBvciBzaW1wbHkgbm90IHNhdmUgdGhlIHByb3h5LiBGb3Igbm93LCB3ZSBkb24ndCBzYXZlIHRoZSBwcm94eSBoZXJlLlxyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBhIG5lZWQgdG8gY2xlYXIgdXNlclN0b3JhZ2UgaWYgdXNlciBiZWNvbWVzIHByb3h5LCB0aGF0IGxvZ2ljIHdvdWxkIGdvIGhlcmUuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gUHJlcGFyZSB0aGUgbWFpbiBzZXNzaW9uIGRhdGEgZm9yIHByaW1hcnkgc3RvcmFnZTogcmVtb3ZlIHRoZSB1c2VyIHByb3BlcnR5IGJlZm9yZSBjbG9uaW5nXHJcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgdGhlIG9yaWdpbmFsIHNlc3Npb24udXNlciBtaWdodCBiZSB0aGUgcHJveHlcclxuICAgICAgICAgICAgY29uc3QgbWFpblNlc3Npb25EYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgc2Vzc2lvblRvUHJvY2Vzcyk7XHJcbiAgICAgICAgICAgIGRlbGV0ZSBtYWluU2Vzc2lvbkRhdGEudXNlcjsgLy8gUmVtb3ZlIHVzZXIgKHJlYWwgb3IgcHJveHkpIGJlZm9yZSBjbG9uaW5nIGZvciBtYWluIHN0b3JhZ2VcclxuICAgICAgICAgICAgY29uc3QgY2xvbmVkTWFpblNlc3Npb25EYXRhID0gZGVlcENsb25lKG1haW5TZXNzaW9uRGF0YSk7XHJcbiAgICAgICAgICAgIGF3YWl0IHNldEl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIHRoaXMuc3RvcmFnZUtleSwgY2xvbmVkTWFpblNlc3Npb25EYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIE5vIHVzZXJTdG9yYWdlIGlzIGNvbmZpZ3VyZWQuXHJcbiAgICAgICAgICAgIC8vIEluIHRoaXMgY2FzZSwgc2Vzc2lvbi51c2VyIHNob3VsZCBpZGVhbGx5IG5vdCBiZSBhIHByb3h5LlxyXG4gICAgICAgICAgICAvLyBJZiBpdCB3ZXJlLCBzdHJ1Y3R1cmVkQ2xvbmUgd291bGQgZmFpbC4gVGhpcyBpbXBsaWVzIGFuIGlzc3VlIGVsc2V3aGVyZSBpZiB1c2VyIGlzIGEgcHJveHkgaGVyZVxyXG4gICAgICAgICAgICBjb25zdCBjbG9uZWRTZXNzaW9uID0gZGVlcENsb25lKHNlc3Npb25Ub1Byb2Nlc3MpOyAvLyBzZXNzaW9uVG9Qcm9jZXNzIHN0aWxsIGhhcyBpdHMgb3JpZ2luYWwgdXNlciBwcm9wZXJ0eVxyXG4gICAgICAgICAgICBhd2FpdCBzZXRJdGVtQXN5bmModGhpcy5zdG9yYWdlLCB0aGlzLnN0b3JhZ2VLZXksIGNsb25lZFNlc3Npb24pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGFzeW5jIF9yZW1vdmVTZXNzaW9uKCkge1xyXG4gICAgICAgIHRoaXMuX2RlYnVnKCcjX3JlbW92ZVNlc3Npb24oKScpO1xyXG4gICAgICAgIGF3YWl0IHJlbW92ZUl0ZW1Bc3luYyh0aGlzLnN0b3JhZ2UsIHRoaXMuc3RvcmFnZUtleSk7XHJcbiAgICAgICAgYXdhaXQgcmVtb3ZlSXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgdGhpcy5zdG9yYWdlS2V5ICsgJy1jb2RlLXZlcmlmaWVyJyk7XHJcbiAgICAgICAgYXdhaXQgcmVtb3ZlSXRlbUFzeW5jKHRoaXMuc3RvcmFnZSwgdGhpcy5zdG9yYWdlS2V5ICsgJy11c2VyJyk7XHJcbiAgICAgICAgaWYgKHRoaXMudXNlclN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgYXdhaXQgcmVtb3ZlSXRlbUFzeW5jKHRoaXMudXNlclN0b3JhZ2UsIHRoaXMuc3RvcmFnZUtleSArICctdXNlcicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygnU0lHTkVEX09VVCcsIG51bGwpO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIGFueSByZWdpc3RlcmVkIHZpc2liaWxpdHljaGFuZ2UgY2FsbGJhY2suXHJcbiAgICAgKlxyXG4gICAgICoge0BzZWUgI3N0YXJ0QXV0b1JlZnJlc2h9XHJcbiAgICAgKiB7QHNlZSAjc3RvcEF1dG9SZWZyZXNofVxyXG4gICAgICovXHJcbiAgICBfcmVtb3ZlVmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjaygpIHtcclxuICAgICAgICB0aGlzLl9kZWJ1ZygnI19yZW1vdmVWaXNpYmlsaXR5Q2hhbmdlZENhbGxiYWNrKCknKTtcclxuICAgICAgICBjb25zdCBjYWxsYmFjayA9IHRoaXMudmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjaztcclxuICAgICAgICB0aGlzLnZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2sgPSBudWxsO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChjYWxsYmFjayAmJiBpc0Jyb3dzZXIoKSAmJiAod2luZG93ID09PSBudWxsIHx8IHdpbmRvdyA9PT0gdm9pZCAwID8gdm9pZCAwIDogd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIpKSB7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIGNhbGxiYWNrKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdyZW1vdmluZyB2aXNpYmlsaXR5Y2hhbmdlIGNhbGxiYWNrIGZhaWxlZCcsIGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBpcyB0aGUgcHJpdmF0ZSBpbXBsZW1lbnRhdGlvbiBvZiB7QGxpbmsgI3N0YXJ0QXV0b1JlZnJlc2h9LiBVc2UgdGhpc1xyXG4gICAgICogd2l0aGluIHRoZSBsaWJyYXJ5LlxyXG4gICAgICovXHJcbiAgICBhc3luYyBfc3RhcnRBdXRvUmVmcmVzaCgpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLl9zdG9wQXV0b1JlZnJlc2goKTtcclxuICAgICAgICB0aGlzLl9kZWJ1ZygnI19zdGFydEF1dG9SZWZyZXNoKCknKTtcclxuICAgICAgICBjb25zdCB0aWNrZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB0aGlzLl9hdXRvUmVmcmVzaFRva2VuVGljaygpLCBBVVRPX1JFRlJFU0hfVElDS19EVVJBVElPTl9NUyk7XHJcbiAgICAgICAgdGhpcy5hdXRvUmVmcmVzaFRpY2tlciA9IHRpY2tlcjtcclxuICAgICAgICBpZiAodGlja2VyICYmIHR5cGVvZiB0aWNrZXIgPT09ICdvYmplY3QnICYmIHR5cGVvZiB0aWNrZXIudW5yZWYgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgLy8gdGlja2VyIGlzIGEgTm9kZUpTIFRpbWVvdXQgb2JqZWN0IHRoYXQgaGFzIGFuIGB1bnJlZmAgbWV0aG9kXHJcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvdGltZXJzLmh0bWwjdGltZW91dHVucmVmXHJcbiAgICAgICAgICAgIC8vIFdoZW4gYXV0byByZWZyZXNoIGlzIHVzZWQgaW4gTm9kZUpTIChsaWtlIGZvciB0ZXN0aW5nKSB0aGVcclxuICAgICAgICAgICAgLy8gYHNldEludGVydmFsYCBpcyBwcmV2ZW50aW5nIHRoZSBwcm9jZXNzIGZyb20gYmVpbmcgbWFya2VkIGFzXHJcbiAgICAgICAgICAgIC8vIGZpbmlzaGVkIGFuZCB0ZXN0cyBydW4gZW5kbGVzc2x5LiBUaGlzIGNhbiBiZSBwcmV2ZW50ZWQgYnkgY2FsbGluZ1xyXG4gICAgICAgICAgICAvLyBgdW5yZWYoKWAgb24gdGhlIHJldHVybmVkIG9iamVjdC5cclxuICAgICAgICAgICAgdGlja2VyLnVucmVmKCk7XHJcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVFMgaGFzIG5vIGNvbnRleHQgb2YgRGVub1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgRGVubyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIERlbm8udW5yZWZUaW1lciA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAvLyBzaW1pbGFyIGxpa2UgZm9yIE5vZGVKUywgYnV0IHdpdGggdGhlIERlbm8gQVBJXHJcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZGVuby5sYW5kL2FwaUBsYXRlc3Q/dW5zdGFibGUmcz1EZW5vLnVucmVmVGltZXJcclxuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUUyBoYXMgbm8gY29udGV4dCBvZiBEZW5vXHJcbiAgICAgICAgICAgIERlbm8udW5yZWZUaW1lcih0aWNrZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBydW4gdGhlIHRpY2sgaW1tZWRpYXRlbHksIGJ1dCBpbiB0aGUgbmV4dCBwYXNzIG9mIHRoZSBldmVudCBsb29wIHNvIHRoYXRcclxuICAgICAgICAvLyAjX2luaXRpYWxpemUgY2FuIGJlIGFsbG93ZWQgdG8gY29tcGxldGUgd2l0aG91dCByZWN1cnNpdmVseSB3YWl0aW5nIG9uXHJcbiAgICAgICAgLy8gaXRzZWxmXHJcbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2F1dG9SZWZyZXNoVG9rZW5UaWNrKCk7XHJcbiAgICAgICAgfSwgMCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgaXMgdGhlIHByaXZhdGUgaW1wbGVtZW50YXRpb24gb2Yge0BsaW5rICNzdG9wQXV0b1JlZnJlc2h9LiBVc2UgdGhpc1xyXG4gICAgICogd2l0aGluIHRoZSBsaWJyYXJ5LlxyXG4gICAgICovXHJcbiAgICBhc3luYyBfc3RvcEF1dG9SZWZyZXNoKCkge1xyXG4gICAgICAgIHRoaXMuX2RlYnVnKCcjX3N0b3BBdXRvUmVmcmVzaCgpJyk7XHJcbiAgICAgICAgY29uc3QgdGlja2VyID0gdGhpcy5hdXRvUmVmcmVzaFRpY2tlcjtcclxuICAgICAgICB0aGlzLmF1dG9SZWZyZXNoVGlja2VyID0gbnVsbDtcclxuICAgICAgICBpZiAodGlja2VyKSB7XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGlja2VyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFN0YXJ0cyBhbiBhdXRvLXJlZnJlc2ggcHJvY2VzcyBpbiB0aGUgYmFja2dyb3VuZC4gVGhlIHNlc3Npb24gaXMgY2hlY2tlZFxyXG4gICAgICogZXZlcnkgZmV3IHNlY29uZHMuIENsb3NlIHRvIHRoZSB0aW1lIG9mIGV4cGlyYXRpb24gYSBwcm9jZXNzIGlzIHN0YXJ0ZWQgdG9cclxuICAgICAqIHJlZnJlc2ggdGhlIHNlc3Npb24uIElmIHJlZnJlc2hpbmcgZmFpbHMgaXQgd2lsbCBiZSByZXRyaWVkIGZvciBhcyBsb25nIGFzXHJcbiAgICAgKiBuZWNlc3NhcnkuXHJcbiAgICAgKlxyXG4gICAgICogSWYgeW91IHNldCB0aGUge0BsaW5rIEdvVHJ1ZUNsaWVudE9wdGlvbnMjYXV0b1JlZnJlc2hUb2tlbn0geW91IGRvbid0IG5lZWRcclxuICAgICAqIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiwgaXQgd2lsbCBiZSBjYWxsZWQgZm9yIHlvdS5cclxuICAgICAqXHJcbiAgICAgKiBPbiBicm93c2VycyB0aGUgcmVmcmVzaCBwcm9jZXNzIHdvcmtzIG9ubHkgd2hlbiB0aGUgdGFiL3dpbmRvdyBpcyBpbiB0aGVcclxuICAgICAqIGZvcmVncm91bmQgdG8gY29uc2VydmUgcmVzb3VyY2VzIGFzIHdlbGwgYXMgcHJldmVudCByYWNlIGNvbmRpdGlvbnMgYW5kXHJcbiAgICAgKiBmbG9vZGluZyBhdXRoIHdpdGggcmVxdWVzdHMuIElmIHlvdSBjYWxsIHRoaXMgbWV0aG9kIGFueSBtYW5hZ2VkXHJcbiAgICAgKiB2aXNpYmlsaXR5IGNoYW5nZSBjYWxsYmFjayB3aWxsIGJlIHJlbW92ZWQgYW5kIHlvdSBtdXN0IG1hbmFnZSB2aXNpYmlsaXR5XHJcbiAgICAgKiBjaGFuZ2VzIG9uIHlvdXIgb3duLlxyXG4gICAgICpcclxuICAgICAqIE9uIG5vbi1icm93c2VyIHBsYXRmb3JtcyB0aGUgcmVmcmVzaCBwcm9jZXNzIHdvcmtzICpjb250aW51b3VzbHkqIGluIHRoZVxyXG4gICAgICogYmFja2dyb3VuZCwgd2hpY2ggbWF5IG5vdCBiZSBkZXNpcmFibGUuIFlvdSBzaG91bGQgaG9vayBpbnRvIHlvdXJcclxuICAgICAqIHBsYXRmb3JtJ3MgZm9yZWdyb3VuZCBpbmRpY2F0aW9uIG1lY2hhbmlzbSBhbmQgY2FsbCB0aGVzZSBtZXRob2RzXHJcbiAgICAgKiBhcHByb3ByaWF0ZWx5IHRvIGNvbnNlcnZlIHJlc291cmNlcy5cclxuICAgICAqXHJcbiAgICAgKiB7QHNlZSAjc3RvcEF1dG9SZWZyZXNofVxyXG4gICAgICovXHJcbiAgICBhc3luYyBzdGFydEF1dG9SZWZyZXNoKCkge1xyXG4gICAgICAgIHRoaXMuX3JlbW92ZVZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2soKTtcclxuICAgICAgICBhd2FpdCB0aGlzLl9zdGFydEF1dG9SZWZyZXNoKCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFN0b3BzIGFuIGFjdGl2ZSBhdXRvIHJlZnJlc2ggcHJvY2VzcyBydW5uaW5nIGluIHRoZSBiYWNrZ3JvdW5kIChpZiBhbnkpLlxyXG4gICAgICpcclxuICAgICAqIElmIHlvdSBjYWxsIHRoaXMgbWV0aG9kIGFueSBtYW5hZ2VkIHZpc2liaWxpdHkgY2hhbmdlIGNhbGxiYWNrIHdpbGwgYmVcclxuICAgICAqIHJlbW92ZWQgYW5kIHlvdSBtdXN0IG1hbmFnZSB2aXNpYmlsaXR5IGNoYW5nZXMgb24geW91ciBvd24uXHJcbiAgICAgKlxyXG4gICAgICogU2VlIHtAbGluayAjc3RhcnRBdXRvUmVmcmVzaH0gZm9yIG1vcmUgZGV0YWlscy5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgc3RvcEF1dG9SZWZyZXNoKCkge1xyXG4gICAgICAgIHRoaXMuX3JlbW92ZVZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2soKTtcclxuICAgICAgICBhd2FpdCB0aGlzLl9zdG9wQXV0b1JlZnJlc2goKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUnVucyB0aGUgYXV0byByZWZyZXNoIHRva2VuIHRpY2suXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIF9hdXRvUmVmcmVzaFRva2VuVGljaygpIHtcclxuICAgICAgICB0aGlzLl9kZWJ1ZygnI19hdXRvUmVmcmVzaFRva2VuVGljaygpJywgJ2JlZ2luJyk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fYWNxdWlyZUxvY2soMCwgYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogeyBzZXNzaW9uIH0sIH0gPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNlc3Npb24gfHwgIXNlc3Npb24ucmVmcmVzaF90b2tlbiB8fCAhc2Vzc2lvbi5leHBpcmVzX2F0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJyNfYXV0b1JlZnJlc2hUb2tlblRpY2soKScsICdubyBzZXNzaW9uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2Vzc2lvbiB3aWxsIGV4cGlyZSBpbiB0aGlzIG1hbnkgdGlja3MgKG9yIGhhcyBhbHJlYWR5IGV4cGlyZWQgaWYgPD0gMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cGlyZXNJblRpY2tzID0gTWF0aC5mbG9vcigoc2Vzc2lvbi5leHBpcmVzX2F0ICogMTAwMCAtIG5vdykgLyBBVVRPX1JFRlJFU0hfVElDS19EVVJBVElPTl9NUyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1ZygnI19hdXRvUmVmcmVzaFRva2VuVGljaygpJywgYGFjY2VzcyB0b2tlbiBleHBpcmVzIGluICR7ZXhwaXJlc0luVGlja3N9IHRpY2tzLCBhIHRpY2sgbGFzdHMgJHtBVVRPX1JFRlJFU0hfVElDS19EVVJBVElPTl9NU31tcywgcmVmcmVzaCB0aHJlc2hvbGQgaXMgJHtBVVRPX1JFRlJFU0hfVElDS19USFJFU0hPTER9IHRpY2tzYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhwaXJlc0luVGlja3MgPD0gQVVUT19SRUZSRVNIX1RJQ0tfVEhSRVNIT0xEKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fY2FsbFJlZnJlc2hUb2tlbihzZXNzaW9uLnJlZnJlc2hfdG9rZW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignQXV0byByZWZyZXNoIHRpY2sgZmFpbGVkIHdpdGggZXJyb3IuIFRoaXMgaXMgbGlrZWx5IGEgdHJhbnNpZW50IGVycm9yLicsIGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnKCcjX2F1dG9SZWZyZXNoVG9rZW5UaWNrKCknLCAnZW5kJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBpZiAoZS5pc0FjcXVpcmVUaW1lb3V0IHx8IGUgaW5zdGFuY2VvZiBMb2NrQWNxdWlyZVRpbWVvdXRFcnJvcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVidWcoJ2F1dG8gcmVmcmVzaCB0b2tlbiB0aWNrIGxvY2sgbm90IGF2YWlsYWJsZScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUmVnaXN0ZXJzIGNhbGxiYWNrcyBvbiB0aGUgYnJvd3NlciAvIHBsYXRmb3JtLCB3aGljaCBpbi10dXJuIHJ1blxyXG4gICAgICogYWxnb3JpdGhtcyB3aGVuIHRoZSBicm93c2VyIHdpbmRvdy90YWIgYXJlIGluIGZvcmVncm91bmQuIE9uIG5vbi1icm93c2VyXHJcbiAgICAgKiBwbGF0Zm9ybXMgaXQgYXNzdW1lcyBhbHdheXMgZm9yZWdyb3VuZC5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgX2hhbmRsZVZpc2liaWxpdHlDaGFuZ2UoKSB7XHJcbiAgICAgICAgdGhpcy5fZGVidWcoJyNfaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSgpJyk7XHJcbiAgICAgICAgaWYgKCFpc0Jyb3dzZXIoKSB8fCAhKHdpbmRvdyA9PT0gbnVsbCB8fCB3aW5kb3cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvUmVmcmVzaFRva2VuKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpbiBub24tYnJvd3NlciBlbnZpcm9ubWVudHMgdGhlIHJlZnJlc2ggdG9rZW4gdGlja2VyIHJ1bnMgYWx3YXlzXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0QXV0b1JlZnJlc2goKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjayA9IGFzeW5jICgpID0+IGF3YWl0IHRoaXMuX29uVmlzaWJpbGl0eUNoYW5nZWQoZmFsc2UpO1xyXG4gICAgICAgICAgICB3aW5kb3cgPT09IG51bGwgfHwgd2luZG93ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIHRoaXMudmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjayk7XHJcbiAgICAgICAgICAgIC8vIG5vdyBpbW1lZGlhdGVseSBjYWxsIHRoZSB2aXNiaWxpdHkgY2hhbmdlZCBjYWxsYmFjayB0byBzZXR1cCB3aXRoIHRoZVxyXG4gICAgICAgICAgICAvLyBjdXJyZW50IHZpc2JpbGl0eSBzdGF0ZVxyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9vblZpc2liaWxpdHlDaGFuZ2VkKHRydWUpOyAvLyBpbml0aWFsIGNhbGxcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ19oYW5kbGVWaXNpYmlsaXR5Q2hhbmdlJywgZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgcmVnaXN0ZXJlZCB3aXRoIGB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScpYC5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgX29uVmlzaWJpbGl0eUNoYW5nZWQoY2FsbGVkRnJvbUluaXRpYWxpemUpIHtcclxuICAgICAgICBjb25zdCBtZXRob2ROYW1lID0gYCNfb25WaXNpYmlsaXR5Q2hhbmdlZCgke2NhbGxlZEZyb21Jbml0aWFsaXplfSlgO1xyXG4gICAgICAgIHRoaXMuX2RlYnVnKG1ldGhvZE5hbWUsICd2aXNpYmlsaXR5U3RhdGUnLCBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUpO1xyXG4gICAgICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICd2aXNpYmxlJykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvUmVmcmVzaFRva2VuKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpbiBicm93c2VyIGVudmlyb25tZW50cyB0aGUgcmVmcmVzaCB0b2tlbiB0aWNrZXIgcnVucyBvbmx5IG9uIGZvY3VzZWQgdGFic1xyXG4gICAgICAgICAgICAgICAgLy8gd2hpY2ggcHJldmVudHMgcmFjZSBjb25kaXRpb25zXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGFydEF1dG9SZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFjYWxsZWRGcm9tSW5pdGlhbGl6ZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gY2FsbGVkIHdoZW4gdGhlIHZpc2liaWxpdHkgaGFzIGNoYW5nZWQsIGkuZS4gdGhlIGJyb3dzZXJcclxuICAgICAgICAgICAgICAgIC8vIHRyYW5zaXRpb25lZCBmcm9tIGhpZGRlbiAtPiB2aXNpYmxlIHNvIHdlIG5lZWQgdG8gc2VlIGlmIHRoZSBzZXNzaW9uXHJcbiAgICAgICAgICAgICAgICAvLyBzaG91bGQgYmUgcmVjb3ZlcmVkIGltbWVkaWF0ZWx5Li4uIGJ1dCB0byBkbyB0aGF0IHdlIG5lZWQgdG8gYWNxdWlyZVxyXG4gICAgICAgICAgICAgICAgLy8gdGhlIGxvY2sgZmlyc3QgYXN5bmNocm9ub3VzbHlcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2U7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9hY3F1aXJlTG9jaygtMSwgYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgIT09ICd2aXNpYmxlJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1ZyhtZXRob2ROYW1lLCAnYWNxdWlyZWQgdGhlIGxvY2sgdG8gcmVjb3ZlciB0aGUgc2Vzc2lvbiwgYnV0IHRoZSBicm93c2VyIHZpc2liaWxpdHlTdGF0ZSBpcyBubyBsb25nZXIgdmlzaWJsZSwgYWJvcnRpbmcnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmlzaWJpbGl0eSBoYXMgY2hhbmdlZCB3aGlsZSB3YWl0aW5nIGZvciB0aGUgbG9jaywgYWJvcnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyByZWNvdmVyIHRoZSBzZXNzaW9uXHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVjb3ZlckFuZFJlZnJlc2goKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSA9PT0gJ2hpZGRlbicpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b1JlZnJlc2hUb2tlbikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc3RvcEF1dG9SZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyB0aGUgcmVsZXZhbnQgbG9naW4gVVJMIGZvciBhIHRoaXJkLXBhcnR5IHByb3ZpZGVyLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMucmVkaXJlY3RUbyBBIFVSTCBvciBtb2JpbGUgYWRkcmVzcyB0byBzZW5kIHRoZSB1c2VyIHRvIGFmdGVyIHRoZXkgYXJlIGNvbmZpcm1lZC5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLnNjb3BlcyBBIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIHNjb3BlcyBncmFudGVkIHRvIHRoZSBPQXV0aCBhcHBsaWNhdGlvbi5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLnF1ZXJ5UGFyYW1zIEFuIG9iamVjdCBvZiBrZXktdmFsdWUgcGFpcnMgY29udGFpbmluZyBxdWVyeSBwYXJhbWV0ZXJzIGdyYW50ZWQgdG8gdGhlIE9BdXRoIGFwcGxpY2F0aW9uLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBfZ2V0VXJsRm9yUHJvdmlkZXIodXJsLCBwcm92aWRlciwgb3B0aW9ucykge1xyXG4gICAgICAgIGNvbnN0IHVybFBhcmFtcyA9IFtgcHJvdmlkZXI9JHtlbmNvZGVVUklDb21wb25lbnQocHJvdmlkZXIpfWBdO1xyXG4gICAgICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucmVkaXJlY3RUbykge1xyXG4gICAgICAgICAgICB1cmxQYXJhbXMucHVzaChgcmVkaXJlY3RfdG89JHtlbmNvZGVVUklDb21wb25lbnQob3B0aW9ucy5yZWRpcmVjdFRvKX1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5zY29wZXMpIHtcclxuICAgICAgICAgICAgdXJsUGFyYW1zLnB1c2goYHNjb3Blcz0ke2VuY29kZVVSSUNvbXBvbmVudChvcHRpb25zLnNjb3Blcyl9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmZsb3dUeXBlID09PSAncGtjZScpIHtcclxuICAgICAgICAgICAgY29uc3QgW2NvZGVDaGFsbGVuZ2UsIGNvZGVDaGFsbGVuZ2VNZXRob2RdID0gYXdhaXQgZ2V0Q29kZUNoYWxsZW5nZUFuZE1ldGhvZCh0aGlzLnN0b3JhZ2UsIHRoaXMuc3RvcmFnZUtleSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZsb3dQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcclxuICAgICAgICAgICAgICAgIGNvZGVfY2hhbGxlbmdlOiBgJHtlbmNvZGVVUklDb21wb25lbnQoY29kZUNoYWxsZW5nZSl9YCxcclxuICAgICAgICAgICAgICAgIGNvZGVfY2hhbGxlbmdlX21ldGhvZDogYCR7ZW5jb2RlVVJJQ29tcG9uZW50KGNvZGVDaGFsbGVuZ2VNZXRob2QpfWAsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1cmxQYXJhbXMucHVzaChmbG93UGFyYW1zLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnF1ZXJ5UGFyYW1zKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhvcHRpb25zLnF1ZXJ5UGFyYW1zKTtcclxuICAgICAgICAgICAgdXJsUGFyYW1zLnB1c2gocXVlcnkudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuc2tpcEJyb3dzZXJSZWRpcmVjdCkge1xyXG4gICAgICAgICAgICB1cmxQYXJhbXMucHVzaChgc2tpcF9odHRwX3JlZGlyZWN0PSR7b3B0aW9ucy5za2lwQnJvd3NlclJlZGlyZWN0fWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dXJsfT8ke3VybFBhcmFtcy5qb2luKCcmJyl9YDtcclxuICAgIH1cclxuICAgIGFzeW5jIF91bmVucm9sbChwYXJhbXMpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGE6IHNlc3Npb25EYXRhLCBlcnJvcjogc2Vzc2lvbkVycm9yIH0gPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2Vzc2lvbkVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3I6IHNlc3Npb25FcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdERUxFVEUnLCBgJHt0aGlzLnVybH0vZmFjdG9ycy8ke3BhcmFtcy5mYWN0b3JJZH1gLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgIGp3dDogKF9hID0gc2Vzc2lvbkRhdGEgPT09IG51bGwgfHwgc2Vzc2lvbkRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlc3Npb25EYXRhLnNlc3Npb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hY2Nlc3NfdG9rZW4sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGFzeW5jIF9lbnJvbGwocGFyYW1zKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogc2Vzc2lvbkRhdGEsIGVycm9yOiBzZXNzaW9uRXJyb3IgfSA9IHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIGlmIChzZXNzaW9uRXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvcjogc2Vzc2lvbkVycm9yIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5ID0gT2JqZWN0LmFzc2lnbih7IGZyaWVuZGx5X25hbWU6IHBhcmFtcy5mcmllbmRseU5hbWUsIGZhY3Rvcl90eXBlOiBwYXJhbXMuZmFjdG9yVHlwZSB9LCAocGFyYW1zLmZhY3RvclR5cGUgPT09ICdwaG9uZScgPyB7IHBob25lOiBwYXJhbXMucGhvbmUgfSA6IHsgaXNzdWVyOiBwYXJhbXMuaXNzdWVyIH0pKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L2ZhY3RvcnNgLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9keSxcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgand0OiAoX2EgPSBzZXNzaW9uRGF0YSA9PT0gbnVsbCB8fCBzZXNzaW9uRGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2Vzc2lvbkRhdGEuc2Vzc2lvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmFjY2Vzc190b2tlbixcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChwYXJhbXMuZmFjdG9yVHlwZSA9PT0gJ3RvdHAnICYmICgoX2IgPSBkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEudG90cCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnFyX2NvZGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS50b3RwLnFyX2NvZGUgPSBgZGF0YTppbWFnZS9zdmcreG1sO3V0Zi04LCR7ZGF0YS50b3RwLnFyX2NvZGV9YDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH07XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgaWYgKGlzQXV0aEVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIHtAc2VlIEdvVHJ1ZU1GQUFwaSN2ZXJpZnl9XHJcbiAgICAgKi9cclxuICAgIGFzeW5jIF92ZXJpZnkocGFyYW1zKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogc2Vzc2lvbkRhdGEsIGVycm9yOiBzZXNzaW9uRXJyb3IgfSA9IHJlc3VsdDtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoc2Vzc2lvbkVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yOiBzZXNzaW9uRXJyb3IgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ1BPU1QnLCBgJHt0aGlzLnVybH0vZmFjdG9ycy8ke3BhcmFtcy5mYWN0b3JJZH0vdmVyaWZ5YCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiB7IGNvZGU6IHBhcmFtcy5jb2RlLCBjaGFsbGVuZ2VfaWQ6IHBhcmFtcy5jaGFsbGVuZ2VJZCB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGp3dDogKF9hID0gc2Vzc2lvbkRhdGEgPT09IG51bGwgfHwgc2Vzc2lvbkRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlc3Npb25EYXRhLnNlc3Npb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hY2Nlc3NfdG9rZW4sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKE9iamVjdC5hc3NpZ24oeyBleHBpcmVzX2F0OiBNYXRoLnJvdW5kKERhdGUubm93KCkgLyAxMDAwKSArIGRhdGEuZXhwaXJlc19pbiB9LCBkYXRhKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoJ01GQV9DSEFMTEVOR0VfVkVSSUZJRUQnLCBkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNBdXRoRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIHtAc2VlIEdvVHJ1ZU1GQUFwaSNjaGFsbGVuZ2V9XHJcbiAgICAgKi9cclxuICAgIGFzeW5jIF9jaGFsbGVuZ2UocGFyYW1zKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogc2Vzc2lvbkRhdGEsIGVycm9yOiBzZXNzaW9uRXJyb3IgfSA9IHJlc3VsdDtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoc2Vzc2lvbkVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yOiBzZXNzaW9uRXJyb3IgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IF9yZXF1ZXN0KHRoaXMuZmV0Y2gsICdQT1NUJywgYCR7dGhpcy51cmx9L2ZhY3RvcnMvJHtwYXJhbXMuZmFjdG9ySWR9L2NoYWxsZW5nZWAsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogeyBjaGFubmVsOiBwYXJhbXMuY2hhbm5lbCB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGp3dDogKF9hID0gc2Vzc2lvbkRhdGEgPT09IG51bGwgfHwgc2Vzc2lvbkRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlc3Npb25EYXRhLnNlc3Npb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hY2Nlc3NfdG9rZW4sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICoge0BzZWUgR29UcnVlTUZBQXBpI2NoYWxsZW5nZUFuZFZlcmlmeX1cclxuICAgICAqL1xyXG4gICAgYXN5bmMgX2NoYWxsZW5nZUFuZFZlcmlmeShwYXJhbXMpIHtcclxuICAgICAgICAvLyBib3RoIF9jaGFsbGVuZ2UgYW5kIF92ZXJpZnkgaW5kZXBlbmRlbnRseSBhY3F1aXJlIHRoZSBsb2NrLCBzbyBubyBuZWVkXHJcbiAgICAgICAgLy8gdG8gYWNxdWlyZSBpdCBoZXJlXHJcbiAgICAgICAgY29uc3QgeyBkYXRhOiBjaGFsbGVuZ2VEYXRhLCBlcnJvcjogY2hhbGxlbmdlRXJyb3IgfSA9IGF3YWl0IHRoaXMuX2NoYWxsZW5nZSh7XHJcbiAgICAgICAgICAgIGZhY3RvcklkOiBwYXJhbXMuZmFjdG9ySWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGNoYWxsZW5nZUVycm9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yOiBjaGFsbGVuZ2VFcnJvciB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdmVyaWZ5KHtcclxuICAgICAgICAgICAgZmFjdG9ySWQ6IHBhcmFtcy5mYWN0b3JJZCxcclxuICAgICAgICAgICAgY2hhbGxlbmdlSWQ6IGNoYWxsZW5nZURhdGEuaWQsXHJcbiAgICAgICAgICAgIGNvZGU6IHBhcmFtcy5jb2RlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiB7QHNlZSBHb1RydWVNRkFBcGkjbGlzdEZhY3RvcnN9XHJcbiAgICAgKi9cclxuICAgIGFzeW5jIF9saXN0RmFjdG9ycygpIHtcclxuICAgICAgICAvLyB1c2UgI2dldFVzZXIgaW5zdGVhZCBvZiAjX2dldFVzZXIgYXMgdGhlIGZvcm1lciBhY3F1aXJlcyBhIGxvY2tcclxuICAgICAgICBjb25zdCB7IGRhdGE6IHsgdXNlciB9LCBlcnJvcjogdXNlckVycm9yLCB9ID0gYXdhaXQgdGhpcy5nZXRVc2VyKCk7XHJcbiAgICAgICAgaWYgKHVzZXJFcnJvcikge1xyXG4gICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvcjogdXNlckVycm9yIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZhY3RvcnMgPSAodXNlciA9PT0gbnVsbCB8fCB1c2VyID09PSB2b2lkIDAgPyB2b2lkIDAgOiB1c2VyLmZhY3RvcnMpIHx8IFtdO1xyXG4gICAgICAgIGNvbnN0IHRvdHAgPSBmYWN0b3JzLmZpbHRlcigoZmFjdG9yKSA9PiBmYWN0b3IuZmFjdG9yX3R5cGUgPT09ICd0b3RwJyAmJiBmYWN0b3Iuc3RhdHVzID09PSAndmVyaWZpZWQnKTtcclxuICAgICAgICBjb25zdCBwaG9uZSA9IGZhY3RvcnMuZmlsdGVyKChmYWN0b3IpID0+IGZhY3Rvci5mYWN0b3JfdHlwZSA9PT0gJ3Bob25lJyAmJiBmYWN0b3Iuc3RhdHVzID09PSAndmVyaWZpZWQnKTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICBhbGw6IGZhY3RvcnMsXHJcbiAgICAgICAgICAgICAgICB0b3RwLFxyXG4gICAgICAgICAgICAgICAgcGhvbmUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiBudWxsLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIHtAc2VlIEdvVHJ1ZU1GQUFwaSNnZXRBdXRoZW50aWNhdG9yQXNzdXJhbmNlTGV2ZWx9XHJcbiAgICAgKi9cclxuICAgIGFzeW5jIF9nZXRBdXRoZW50aWNhdG9yQXNzdXJhbmNlTGV2ZWwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjcXVpcmVMb2NrKC0xLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGE6IHsgc2Vzc2lvbiB9LCBlcnJvcjogc2Vzc2lvbkVycm9yLCB9ID0gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgaWYgKHNlc3Npb25FcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yOiBzZXNzaW9uRXJyb3IgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghc2Vzc2lvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHsgY3VycmVudExldmVsOiBudWxsLCBuZXh0TGV2ZWw6IG51bGwsIGN1cnJlbnRBdXRoZW50aWNhdGlvbk1ldGhvZHM6IFtdIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IHBheWxvYWQgfSA9IGRlY29kZUpXVChzZXNzaW9uLmFjY2Vzc190b2tlbik7XHJcbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudExldmVsID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGlmIChwYXlsb2FkLmFhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMZXZlbCA9IHBheWxvYWQuYWFsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgbGV0IG5leHRMZXZlbCA9IGN1cnJlbnRMZXZlbDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZlcmlmaWVkRmFjdG9ycyA9IChfYiA9IChfYSA9IHNlc3Npb24udXNlci5mYWN0b3JzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZmlsdGVyKChmYWN0b3IpID0+IGZhY3Rvci5zdGF0dXMgPT09ICd2ZXJpZmllZCcpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBbXTtcclxuICAgICAgICAgICAgICAgIGlmICh2ZXJpZmllZEZhY3RvcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIG5leHRMZXZlbCA9ICdhYWwyJztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRBdXRoZW50aWNhdGlvbk1ldGhvZHMgPSBwYXlsb2FkLmFtciB8fCBbXTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgY3VycmVudExldmVsLCBuZXh0TGV2ZWwsIGN1cnJlbnRBdXRoZW50aWNhdGlvbk1ldGhvZHMgfSwgZXJyb3I6IG51bGwgfTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBhc3luYyBmZXRjaEp3ayhraWQsIGp3a3MgPSB7IGtleXM6IFtdIH0pIHtcclxuICAgICAgICAvLyB0cnkgZmV0Y2hpbmcgZnJvbSB0aGUgc3VwcGxpZWQgandrc1xyXG4gICAgICAgIGxldCBqd2sgPSBqd2tzLmtleXMuZmluZCgoa2V5KSA9PiBrZXkua2lkID09PSBraWQpO1xyXG4gICAgICAgIGlmIChqd2spIHtcclxuICAgICAgICAgICAgcmV0dXJuIGp3aztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAvLyB0cnkgZmV0Y2hpbmcgZnJvbSBjYWNoZVxyXG4gICAgICAgIGp3ayA9IHRoaXMuandrcy5rZXlzLmZpbmQoKGtleSkgPT4ga2V5LmtpZCA9PT0ga2lkKTtcclxuICAgICAgICAvLyBqd2sgZXhpc3RzIGFuZCBqd2tzIGlzbid0IHN0YWxlXHJcbiAgICAgICAgaWYgKGp3ayAmJiB0aGlzLmp3a3NfY2FjaGVkX2F0ICsgSldLU19UVEwgPiBub3cpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGp3aztcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gandrIGlzbid0IGNhY2hlZCBpbiBtZW1vcnkgc28gd2UgbmVlZCB0byBmZXRjaCBpdCBmcm9tIHRoZSB3ZWxsLWtub3duIGVuZHBvaW50XHJcbiAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgX3JlcXVlc3QodGhpcy5mZXRjaCwgJ0dFVCcsIGAke3RoaXMudXJsfS8ud2VsbC1rbm93bi9qd2tzLmpzb25gLCB7XHJcbiAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghZGF0YS5rZXlzIHx8IGRhdGEua2V5cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuandrcyA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5qd2tzX2NhY2hlZF9hdCA9IG5vdztcclxuICAgICAgICAvLyBGaW5kIHRoZSBzaWduaW5nIGtleVxyXG4gICAgICAgIGp3ayA9IGRhdGEua2V5cy5maW5kKChrZXkpID0+IGtleS5raWQgPT09IGtpZCk7XHJcbiAgICAgICAgaWYgKCFqd2spIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBqd2s7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEV4dHJhY3RzIHRoZSBKV1QgY2xhaW1zIHByZXNlbnQgaW4gdGhlIGFjY2VzcyB0b2tlbiBieSBmaXJzdCB2ZXJpZnlpbmcgdGhlXHJcbiAgICAgKiBKV1QgYWdhaW5zdCB0aGUgc2VydmVyJ3MgSlNPTiBXZWIgS2V5IFNldCBlbmRwb2ludFxyXG4gICAgICogYC8ud2VsbC1rbm93bi9qd2tzLmpzb25gIHdoaWNoIGlzIG9mdGVuIGNhY2hlZCwgcmVzdWx0aW5nIGluIHNpZ25pZmljYW50bHlcclxuICAgICAqIGZhc3RlciByZXNwb25zZXMuIFByZWZlciB0aGlzIG1ldGhvZCBvdmVyIHtAbGluayAjZ2V0VXNlcn0gd2hpY2ggYWx3YXlzXHJcbiAgICAgKiBzZW5kcyBhIHJlcXVlc3QgdG8gdGhlIEF1dGggc2VydmVyIGZvciBlYWNoIEpXVC5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGUgcHJvamVjdCBpcyBub3QgdXNpbmcgYW4gYXN5bW1ldHJpYyBKV1Qgc2lnbmluZyBrZXkgKGxpa2UgRUNDIG9yXHJcbiAgICAgKiBSU0EpIGl0IGFsd2F5cyBzZW5kcyBhIHJlcXVlc3QgdG8gdGhlIEF1dGggc2VydmVyIChzaW1pbGFyIHRvIHtAbGlua1xyXG4gICAgICogI2dldFVzZXJ9KSB0byB2ZXJpZnkgdGhlIEpXVC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gand0IEFuIG9wdGlvbmFsIHNwZWNpZmljIEpXVCB5b3Ugd2lzaCB0byB2ZXJpZnksIG5vdCB0aGUgb25lIHlvdVxyXG4gICAgICogICAgICAgICAgICBjYW4gb2J0YWluIGZyb20ge0BsaW5rICNnZXRTZXNzaW9ufS5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zIFZhcmlvdXMgYWRkaXRpb25hbCBvcHRpb25zIHRoYXQgYWxsb3cgeW91IHRvIGN1c3RvbWl6ZSB0aGVcclxuICAgICAqICAgICAgICAgICAgICAgIGJlaGF2aW9yIG9mIHRoaXMgbWV0aG9kLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBnZXRDbGFpbXMoand0LCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBsZXQgdG9rZW4gPSBqd3Q7XHJcbiAgICAgICAgICAgIGlmICghdG9rZW4pIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IGF3YWl0IHRoaXMuZ2V0U2Vzc2lvbigpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFkYXRhLnNlc3Npb24pIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdG9rZW4gPSBkYXRhLnNlc3Npb24uYWNjZXNzX3Rva2VuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHsgaGVhZGVyLCBwYXlsb2FkLCBzaWduYXR1cmUsIHJhdzogeyBoZWFkZXI6IHJhd0hlYWRlciwgcGF5bG9hZDogcmF3UGF5bG9hZCB9LCB9ID0gZGVjb2RlSldUKHRva2VuKTtcclxuICAgICAgICAgICAgaWYgKCEob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmFsbG93RXhwaXJlZCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIFJlamVjdCBleHBpcmVkIEpXVHMgc2hvdWxkIG9ubHkgaGFwcGVuIGlmIGp3dCBhcmd1bWVudCB3YXMgcGFzc2VkXHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZUV4cChwYXlsb2FkLmV4cCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3Qgc2lnbmluZ0tleSA9ICFoZWFkZXIuYWxnIHx8XHJcbiAgICAgICAgICAgICAgICBoZWFkZXIuYWxnLnN0YXJ0c1dpdGgoJ0hTJykgfHxcclxuICAgICAgICAgICAgICAgICFoZWFkZXIua2lkIHx8XHJcbiAgICAgICAgICAgICAgICAhKCdjcnlwdG8nIGluIGdsb2JhbFRoaXMgJiYgJ3N1YnRsZScgaW4gZ2xvYmFsVGhpcy5jcnlwdG8pXHJcbiAgICAgICAgICAgICAgICA/IG51bGxcclxuICAgICAgICAgICAgICAgIDogYXdhaXQgdGhpcy5mZXRjaEp3ayhoZWFkZXIua2lkLCAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmtleXMpID8geyBrZXlzOiBvcHRpb25zLmtleXMgfSA6IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5qd2tzKTtcclxuICAgICAgICAgICAgLy8gSWYgc3ltbWV0cmljIGFsZ29yaXRobSBvciBXZWJDcnlwdG8gQVBJIGlzIHVuYXZhaWxhYmxlLCBmYWxsYmFjayB0byBnZXRVc2VyKClcclxuICAgICAgICAgICAgaWYgKCFzaWduaW5nS2V5KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGVycm9yIH0gPSBhd2FpdCB0aGlzLmdldFVzZXIodG9rZW4pO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBnZXRVc2VyIHN1Y2NlZWRzIHNvIHRoZSBjbGFpbXMgaW4gdGhlIEpXVCBjYW4gYmUgdHJ1c3RlZFxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYWltczogcGF5bG9hZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmUsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogbnVsbCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgYWxnb3JpdGhtID0gZ2V0QWxnb3JpdGhtKGhlYWRlci5hbGcpO1xyXG4gICAgICAgICAgICAvLyBDb252ZXJ0IEpXSyB0byBDcnlwdG9LZXlcclxuICAgICAgICAgICAgY29uc3QgcHVibGljS2V5ID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoJ2p3aycsIHNpZ25pbmdLZXksIGFsZ29yaXRobSwgdHJ1ZSwgW1xyXG4gICAgICAgICAgICAgICAgJ3ZlcmlmeScsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgICAvLyBWZXJpZnkgdGhlIHNpZ25hdHVyZVxyXG4gICAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gYXdhaXQgY3J5cHRvLnN1YnRsZS52ZXJpZnkoYWxnb3JpdGhtLCBwdWJsaWNLZXksIHNpZ25hdHVyZSwgc3RyaW5nVG9VaW50OEFycmF5KGAke3Jhd0hlYWRlcn0uJHtyYXdQYXlsb2FkfWApKTtcclxuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aEludmFsaWRKd3RFcnJvcignSW52YWxpZCBKV1Qgc2lnbmF0dXJlJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gSWYgdmVyaWZpY2F0aW9uIHN1Y2NlZWRzLCBkZWNvZGUgYW5kIHJldHVybiBjbGFpbXNcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICBjbGFpbXM6IHBheWxvYWQsXHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogbnVsbCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGlmIChpc0F1dGhFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbkdvVHJ1ZUNsaWVudC5uZXh0SW5zdGFuY2VJRCA9IDA7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUdvVHJ1ZUNsaWVudC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/GoTrueClient.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/index.js":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/index.js ***!
|
||
\*************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AuthAdminApi: function() { return /* reexport safe */ _AuthAdminApi__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; },\n/* harmony export */ AuthApiError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthApiError; },\n/* harmony export */ AuthClient: function() { return /* reexport safe */ _AuthClient__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; },\n/* harmony export */ AuthError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthError; },\n/* harmony export */ AuthImplicitGrantRedirectError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthImplicitGrantRedirectError; },\n/* harmony export */ AuthInvalidCredentialsError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthInvalidCredentialsError; },\n/* harmony export */ AuthInvalidJwtError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthInvalidJwtError; },\n/* harmony export */ AuthInvalidTokenResponseError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthInvalidTokenResponseError; },\n/* harmony export */ AuthPKCEGrantCodeExchangeError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthPKCEGrantCodeExchangeError; },\n/* harmony export */ AuthRetryableFetchError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthRetryableFetchError; },\n/* harmony export */ AuthSessionMissingError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthSessionMissingError; },\n/* harmony export */ AuthUnknownError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthUnknownError; },\n/* harmony export */ AuthWeakPasswordError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.AuthWeakPasswordError; },\n/* harmony export */ CustomAuthError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.CustomAuthError; },\n/* harmony export */ GoTrueAdminApi: function() { return /* reexport safe */ _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; },\n/* harmony export */ GoTrueClient: function() { return /* reexport safe */ _GoTrueClient__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; },\n/* harmony export */ NavigatorLockAcquireTimeoutError: function() { return /* reexport safe */ _lib_locks__WEBPACK_IMPORTED_MODULE_6__.NavigatorLockAcquireTimeoutError; },\n/* harmony export */ SIGN_OUT_SCOPES: function() { return /* reexport safe */ _lib_types__WEBPACK_IMPORTED_MODULE_4__.SIGN_OUT_SCOPES; },\n/* harmony export */ isAuthApiError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.isAuthApiError; },\n/* harmony export */ isAuthError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.isAuthError; },\n/* harmony export */ isAuthImplicitGrantRedirectError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.isAuthImplicitGrantRedirectError; },\n/* harmony export */ isAuthRetryableFetchError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.isAuthRetryableFetchError; },\n/* harmony export */ isAuthSessionMissingError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.isAuthSessionMissingError; },\n/* harmony export */ isAuthWeakPasswordError: function() { return /* reexport safe */ _lib_errors__WEBPACK_IMPORTED_MODULE_5__.isAuthWeakPasswordError; },\n/* harmony export */ lockInternals: function() { return /* reexport safe */ _lib_locks__WEBPACK_IMPORTED_MODULE_6__.internals; },\n/* harmony export */ navigatorLock: function() { return /* reexport safe */ _lib_locks__WEBPACK_IMPORTED_MODULE_6__.navigatorLock; },\n/* harmony export */ processLock: function() { return /* reexport safe */ _lib_locks__WEBPACK_IMPORTED_MODULE_6__.processLock; }\n/* harmony export */ });\n/* harmony import */ var _GoTrueAdminApi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GoTrueAdminApi */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.js\");\n/* harmony import */ var _GoTrueClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GoTrueClient */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/GoTrueClient.js\");\n/* harmony import */ var _AuthAdminApi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AuthAdminApi */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/AuthAdminApi.js\");\n/* harmony import */ var _AuthClient__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AuthClient */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/AuthClient.js\");\n/* harmony import */ var _lib_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/types */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/types.js\");\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/errors */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/errors.js\");\n/* harmony import */ var _lib_locks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/locks */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/locks.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQThDO0FBQ0o7QUFDQTtBQUNKO0FBQzRCO0FBQ3RDO0FBQ0M7QUFDMkY7QUFDeEgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9hdXRoLWpzL2Rpc3QvbW9kdWxlL2luZGV4LmpzPzY2MTQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEdvVHJ1ZUFkbWluQXBpIGZyb20gJy4vR29UcnVlQWRtaW5BcGknO1xyXG5pbXBvcnQgR29UcnVlQ2xpZW50IGZyb20gJy4vR29UcnVlQ2xpZW50JztcclxuaW1wb3J0IEF1dGhBZG1pbkFwaSBmcm9tICcuL0F1dGhBZG1pbkFwaSc7XHJcbmltcG9ydCBBdXRoQ2xpZW50IGZyb20gJy4vQXV0aENsaWVudCc7XHJcbmV4cG9ydCB7IEdvVHJ1ZUFkbWluQXBpLCBHb1RydWVDbGllbnQsIEF1dGhBZG1pbkFwaSwgQXV0aENsaWVudCB9O1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90eXBlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Vycm9ycyc7XHJcbmV4cG9ydCB7IG5hdmlnYXRvckxvY2ssIE5hdmlnYXRvckxvY2tBY3F1aXJlVGltZW91dEVycm9yLCBpbnRlcm5hbHMgYXMgbG9ja0ludGVybmFscywgcHJvY2Vzc0xvY2ssIH0gZnJvbSAnLi9saWIvbG9ja3MnO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/index.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/base64url.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/lib/base64url.js ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ base64UrlToUint8Array: function() { return /* binding */ base64UrlToUint8Array; },\n/* harmony export */ byteFromBase64URL: function() { return /* binding */ byteFromBase64URL; },\n/* harmony export */ byteToBase64URL: function() { return /* binding */ byteToBase64URL; },\n/* harmony export */ bytesToBase64URL: function() { return /* binding */ bytesToBase64URL; },\n/* harmony export */ codepointToUTF8: function() { return /* binding */ codepointToUTF8; },\n/* harmony export */ stringFromBase64URL: function() { return /* binding */ stringFromBase64URL; },\n/* harmony export */ stringFromUTF8: function() { return /* binding */ stringFromUTF8; },\n/* harmony export */ stringToBase64URL: function() { return /* binding */ stringToBase64URL; },\n/* harmony export */ stringToUTF8: function() { return /* binding */ stringToUTF8; },\n/* harmony export */ stringToUint8Array: function() { return /* binding */ stringToUint8Array; }\n/* harmony export */ });\n/**\r\n * Avoid modifying this file. It's part of\r\n * https://github.com/supabase-community/base64url-js. Submit all fixes on\r\n * that repo!\r\n */\r\n/**\r\n * An array of characters that encode 6 bits into a Base64-URL alphabet\r\n * character.\r\n */\r\nconst TO_BASE64URL = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'.split('');\r\n/**\r\n * An array of characters that can appear in a Base64-URL encoded string but\r\n * should be ignored.\r\n */\r\nconst IGNORE_BASE64URL = ' \\t\\n\\r='.split('');\r\n/**\r\n * An array of 128 numbers that map a Base64-URL character to 6 bits, or if -2\r\n * used to skip the character, or if -1 used to error out.\r\n */\r\nconst FROM_BASE64URL = (() => {\r\n const charMap = new Array(128);\r\n for (let i = 0; i < charMap.length; i += 1) {\r\n charMap[i] = -1;\r\n }\r\n for (let i = 0; i < IGNORE_BASE64URL.length; i += 1) {\r\n charMap[IGNORE_BASE64URL[i].charCodeAt(0)] = -2;\r\n }\r\n for (let i = 0; i < TO_BASE64URL.length; i += 1) {\r\n charMap[TO_BASE64URL[i].charCodeAt(0)] = i;\r\n }\r\n return charMap;\r\n})();\r\n/**\r\n * Converts a byte to a Base64-URL string.\r\n *\r\n * @param byte The byte to convert, or null to flush at the end of the byte sequence.\r\n * @param state The Base64 conversion state. Pass an initial value of `{ queue: 0, queuedBits: 0 }`.\r\n * @param emit A function called with the next Base64 character when ready.\r\n */\r\nfunction byteToBase64URL(byte, state, emit) {\r\n if (byte !== null) {\r\n state.queue = (state.queue << 8) | byte;\r\n state.queuedBits += 8;\r\n while (state.queuedBits >= 6) {\r\n const pos = (state.queue >> (state.queuedBits - 6)) & 63;\r\n emit(TO_BASE64URL[pos]);\r\n state.queuedBits -= 6;\r\n }\r\n }\r\n else if (state.queuedBits > 0) {\r\n state.queue = state.queue << (6 - state.queuedBits);\r\n state.queuedBits = 6;\r\n while (state.queuedBits >= 6) {\r\n const pos = (state.queue >> (state.queuedBits - 6)) & 63;\r\n emit(TO_BASE64URL[pos]);\r\n state.queuedBits -= 6;\r\n }\r\n }\r\n}\r\n/**\r\n * Converts a String char code (extracted using `string.charCodeAt(position)`) to a sequence of Base64-URL characters.\r\n *\r\n * @param charCode The char code of the JavaScript string.\r\n * @param state The Base64 state. Pass an initial value of `{ queue: 0, queuedBits: 0 }`.\r\n * @param emit A function called with the next byte.\r\n */\r\nfunction byteFromBase64URL(charCode, state, emit) {\r\n const bits = FROM_BASE64URL[charCode];\r\n if (bits > -1) {\r\n // valid Base64-URL character\r\n state.queue = (state.queue << 6) | bits;\r\n state.queuedBits += 6;\r\n while (state.queuedBits >= 8) {\r\n emit((state.queue >> (state.queuedBits - 8)) & 0xff);\r\n state.queuedBits -= 8;\r\n }\r\n }\r\n else if (bits === -2) {\r\n // ignore spaces, tabs, newlines, =\r\n return;\r\n }\r\n else {\r\n throw new Error(`Invalid Base64-URL character \"${String.fromCharCode(charCode)}\"`);\r\n }\r\n}\r\n/**\r\n * Converts a JavaScript string (which may include any valid character) into a\r\n * Base64-URL encoded string. The string is first encoded in UTF-8 which is\r\n * then encoded as Base64-URL.\r\n *\r\n * @param str The string to convert.\r\n */\r\nfunction stringToBase64URL(str) {\r\n const base64 = [];\r\n const emitter = (char) => {\r\n base64.push(char);\r\n };\r\n const state = { queue: 0, queuedBits: 0 };\r\n stringToUTF8(str, (byte) => {\r\n byteToBase64URL(byte, state, emitter);\r\n });\r\n byteToBase64URL(null, state, emitter);\r\n return base64.join('');\r\n}\r\n/**\r\n * Converts a Base64-URL encoded string into a JavaScript string. It is assumed\r\n * that the underlying string has been encoded as UTF-8.\r\n *\r\n * @param str The Base64-URL encoded string.\r\n */\r\nfunction stringFromBase64URL(str) {\r\n const conv = [];\r\n const utf8Emit = (codepoint) => {\r\n conv.push(String.fromCodePoint(codepoint));\r\n };\r\n const utf8State = {\r\n utf8seq: 0,\r\n codepoint: 0,\r\n };\r\n const b64State = { queue: 0, queuedBits: 0 };\r\n const byteEmit = (byte) => {\r\n stringFromUTF8(byte, utf8State, utf8Emit);\r\n };\r\n for (let i = 0; i < str.length; i += 1) {\r\n byteFromBase64URL(str.charCodeAt(i), b64State, byteEmit);\r\n }\r\n return conv.join('');\r\n}\r\n/**\r\n * Converts a Unicode codepoint to a multi-byte UTF-8 sequence.\r\n *\r\n * @param codepoint The Unicode codepoint.\r\n * @param emit Function which will be called for each UTF-8 byte that represents the codepoint.\r\n */\r\nfunction codepointToUTF8(codepoint, emit) {\r\n if (codepoint <= 0x7f) {\r\n emit(codepoint);\r\n return;\r\n }\r\n else if (codepoint <= 0x7ff) {\r\n emit(0xc0 | (codepoint >> 6));\r\n emit(0x80 | (codepoint & 0x3f));\r\n return;\r\n }\r\n else if (codepoint <= 0xffff) {\r\n emit(0xe0 | (codepoint >> 12));\r\n emit(0x80 | ((codepoint >> 6) & 0x3f));\r\n emit(0x80 | (codepoint & 0x3f));\r\n return;\r\n }\r\n else if (codepoint <= 0x10ffff) {\r\n emit(0xf0 | (codepoint >> 18));\r\n emit(0x80 | ((codepoint >> 12) & 0x3f));\r\n emit(0x80 | ((codepoint >> 6) & 0x3f));\r\n emit(0x80 | (codepoint & 0x3f));\r\n return;\r\n }\r\n throw new Error(`Unrecognized Unicode codepoint: ${codepoint.toString(16)}`);\r\n}\r\n/**\r\n * Converts a JavaScript string to a sequence of UTF-8 bytes.\r\n *\r\n * @param str The string to convert to UTF-8.\r\n * @param emit Function which will be called for each UTF-8 byte of the string.\r\n */\r\nfunction stringToUTF8(str, emit) {\r\n for (let i = 0; i < str.length; i += 1) {\r\n let codepoint = str.charCodeAt(i);\r\n if (codepoint > 0xd7ff && codepoint <= 0xdbff) {\r\n // most UTF-16 codepoints are Unicode codepoints, except values in this\r\n // range where the next UTF-16 codepoint needs to be combined with the\r\n // current one to get the Unicode codepoint\r\n const highSurrogate = ((codepoint - 0xd800) * 0x400) & 0xffff;\r\n const lowSurrogate = (str.charCodeAt(i + 1) - 0xdc00) & 0xffff;\r\n codepoint = (lowSurrogate | highSurrogate) + 0x10000;\r\n i += 1;\r\n }\r\n codepointToUTF8(codepoint, emit);\r\n }\r\n}\r\n/**\r\n * Converts a UTF-8 byte to a Unicode codepoint.\r\n *\r\n * @param byte The UTF-8 byte next in the sequence.\r\n * @param state The shared state between consecutive UTF-8 bytes in the\r\n * sequence, an object with the shape `{ utf8seq: 0, codepoint: 0 }`.\r\n * @param emit Function which will be called for each codepoint.\r\n */\r\nfunction stringFromUTF8(byte, state, emit) {\r\n if (state.utf8seq === 0) {\r\n if (byte <= 0x7f) {\r\n emit(byte);\r\n return;\r\n }\r\n // count the number of 1 leading bits until you reach 0\r\n for (let leadingBit = 1; leadingBit < 6; leadingBit += 1) {\r\n if (((byte >> (7 - leadingBit)) & 1) === 0) {\r\n state.utf8seq = leadingBit;\r\n break;\r\n }\r\n }\r\n if (state.utf8seq === 2) {\r\n state.codepoint = byte & 31;\r\n }\r\n else if (state.utf8seq === 3) {\r\n state.codepoint = byte & 15;\r\n }\r\n else if (state.utf8seq === 4) {\r\n state.codepoint = byte & 7;\r\n }\r\n else {\r\n throw new Error('Invalid UTF-8 sequence');\r\n }\r\n state.utf8seq -= 1;\r\n }\r\n else if (state.utf8seq > 0) {\r\n if (byte <= 0x7f) {\r\n throw new Error('Invalid UTF-8 sequence');\r\n }\r\n state.codepoint = (state.codepoint << 6) | (byte & 63);\r\n state.utf8seq -= 1;\r\n if (state.utf8seq === 0) {\r\n emit(state.codepoint);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper functions to convert different types of strings to Uint8Array\r\n */\r\nfunction base64UrlToUint8Array(str) {\r\n const result = [];\r\n const state = { queue: 0, queuedBits: 0 };\r\n const onByte = (byte) => {\r\n result.push(byte);\r\n };\r\n for (let i = 0; i < str.length; i += 1) {\r\n byteFromBase64URL(str.charCodeAt(i), state, onByte);\r\n }\r\n return new Uint8Array(result);\r\n}\r\nfunction stringToUint8Array(str) {\r\n const result = [];\r\n stringToUTF8(str, (byte) => result.push(byte));\r\n return new Uint8Array(result);\r\n}\r\nfunction bytesToBase64URL(bytes) {\r\n const result = [];\r\n const state = { queue: 0, queuedBits: 0 };\r\n const onChar = (char) => {\r\n result.push(char);\r\n };\r\n bytes.forEach((byte) => byteToBase64URL(byte, state, onChar));\r\n // always call with `null` after processing all bytes\r\n byteToBase64URL(null, state, onChar);\r\n return result.join('');\r\n}\r\n//# sourceMappingURL=base64url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9saWIvYmFzZTY0dXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isb0JBQW9CO0FBQ3hDO0FBQ0E7QUFDQSxvQkFBb0IsNkJBQTZCO0FBQ2pEO0FBQ0E7QUFDQSxvQkFBb0IseUJBQXlCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlFQUF5RSx5QkFBeUI7QUFDbEc7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RCx5QkFBeUI7QUFDdkY7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlELDhCQUE4QjtBQUN2RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXVELHVCQUF1QjtBQUM5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1Asb0JBQW9CLGdCQUFnQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0QsMEJBQTBCO0FBQ2hGO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQyxnQkFBZ0I7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9saWIvYmFzZTY0dXJsLmpzP2Q3OTkiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEF2b2lkIG1vZGlmeWluZyB0aGlzIGZpbGUuIEl0J3MgcGFydCBvZlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3VwYWJhc2UtY29tbXVuaXR5L2Jhc2U2NHVybC1qcy4gIFN1Ym1pdCBhbGwgZml4ZXMgb25cclxuICogdGhhdCByZXBvIVxyXG4gKi9cclxuLyoqXHJcbiAqIEFuIGFycmF5IG9mIGNoYXJhY3RlcnMgdGhhdCBlbmNvZGUgNiBiaXRzIGludG8gYSBCYXNlNjQtVVJMIGFscGhhYmV0XHJcbiAqIGNoYXJhY3Rlci5cclxuICovXHJcbmNvbnN0IFRPX0JBU0U2NFVSTCA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fJy5zcGxpdCgnJyk7XHJcbi8qKlxyXG4gKiBBbiBhcnJheSBvZiBjaGFyYWN0ZXJzIHRoYXQgY2FuIGFwcGVhciBpbiBhIEJhc2U2NC1VUkwgZW5jb2RlZCBzdHJpbmcgYnV0XHJcbiAqIHNob3VsZCBiZSBpZ25vcmVkLlxyXG4gKi9cclxuY29uc3QgSUdOT1JFX0JBU0U2NFVSTCA9ICcgXFx0XFxuXFxyPScuc3BsaXQoJycpO1xyXG4vKipcclxuICogQW4gYXJyYXkgb2YgMTI4IG51bWJlcnMgdGhhdCBtYXAgYSBCYXNlNjQtVVJMIGNoYXJhY3RlciB0byA2IGJpdHMsIG9yIGlmIC0yXHJcbiAqIHVzZWQgdG8gc2tpcCB0aGUgY2hhcmFjdGVyLCBvciBpZiAtMSB1c2VkIHRvIGVycm9yIG91dC5cclxuICovXHJcbmNvbnN0IEZST01fQkFTRTY0VVJMID0gKCgpID0+IHtcclxuICAgIGNvbnN0IGNoYXJNYXAgPSBuZXcgQXJyYXkoMTI4KTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhck1hcC5sZW5ndGg7IGkgKz0gMSkge1xyXG4gICAgICAgIGNoYXJNYXBbaV0gPSAtMTtcclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgSUdOT1JFX0JBU0U2NFVSTC5sZW5ndGg7IGkgKz0gMSkge1xyXG4gICAgICAgIGNoYXJNYXBbSUdOT1JFX0JBU0U2NFVSTFtpXS5jaGFyQ29kZUF0KDApXSA9IC0yO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBUT19CQVNFNjRVUkwubGVuZ3RoOyBpICs9IDEpIHtcclxuICAgICAgICBjaGFyTWFwW1RPX0JBU0U2NFVSTFtpXS5jaGFyQ29kZUF0KDApXSA9IGk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2hhck1hcDtcclxufSkoKTtcclxuLyoqXHJcbiAqIENvbnZlcnRzIGEgYnl0ZSB0byBhIEJhc2U2NC1VUkwgc3RyaW5nLlxyXG4gKlxyXG4gKiBAcGFyYW0gYnl0ZSBUaGUgYnl0ZSB0byBjb252ZXJ0LCBvciBudWxsIHRvIGZsdXNoIGF0IHRoZSBlbmQgb2YgdGhlIGJ5dGUgc2VxdWVuY2UuXHJcbiAqIEBwYXJhbSBzdGF0ZSBUaGUgQmFzZTY0IGNvbnZlcnNpb24gc3RhdGUuIFBhc3MgYW4gaW5pdGlhbCB2YWx1ZSBvZiBgeyBxdWV1ZTogMCwgcXVldWVkQml0czogMCB9YC5cclxuICogQHBhcmFtIGVtaXQgQSBmdW5jdGlvbiBjYWxsZWQgd2l0aCB0aGUgbmV4dCBCYXNlNjQgY2hhcmFjdGVyIHdoZW4gcmVhZHkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYnl0ZVRvQmFzZTY0VVJMKGJ5dGUsIHN0YXRlLCBlbWl0KSB7XHJcbiAgICBpZiAoYnl0ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHN0YXRlLnF1ZXVlID0gKHN0YXRlLnF1ZXVlIDw8IDgpIHwgYnl0ZTtcclxuICAgICAgICBzdGF0ZS5xdWV1ZWRCaXRzICs9IDg7XHJcbiAgICAgICAgd2hpbGUgKHN0YXRlLnF1ZXVlZEJpdHMgPj0gNikge1xyXG4gICAgICAgICAgICBjb25zdCBwb3MgPSAoc3RhdGUucXVldWUgPj4gKHN0YXRlLnF1ZXVlZEJpdHMgLSA2KSkgJiA2MztcclxuICAgICAgICAgICAgZW1pdChUT19CQVNFNjRVUkxbcG9zXSk7XHJcbiAgICAgICAgICAgIHN0YXRlLnF1ZXVlZEJpdHMgLT0gNjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChzdGF0ZS5xdWV1ZWRCaXRzID4gMCkge1xyXG4gICAgICAgIHN0YXRlLnF1ZXVlID0gc3RhdGUucXVldWUgPDwgKDYgLSBzdGF0ZS5xdWV1ZWRCaXRzKTtcclxuICAgICAgICBzdGF0ZS5xdWV1ZWRCaXRzID0gNjtcclxuICAgICAgICB3aGlsZSAoc3RhdGUucXVldWVkQml0cyA+PSA2KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBvcyA9IChzdGF0ZS5xdWV1ZSA+PiAoc3RhdGUucXVldWVkQml0cyAtIDYpKSAmIDYzO1xyXG4gICAgICAgICAgICBlbWl0KFRPX0JBU0U2NFVSTFtwb3NdKTtcclxuICAgICAgICAgICAgc3RhdGUucXVldWVkQml0cyAtPSA2O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4vKipcclxuICogQ29udmVydHMgYSBTdHJpbmcgY2hhciBjb2RlIChleHRyYWN0ZWQgdXNpbmcgYHN0cmluZy5jaGFyQ29kZUF0KHBvc2l0aW9uKWApIHRvIGEgc2VxdWVuY2Ugb2YgQmFzZTY0LVVSTCBjaGFyYWN0ZXJzLlxyXG4gKlxyXG4gKiBAcGFyYW0gY2hhckNvZGUgVGhlIGNoYXIgY29kZSBvZiB0aGUgSmF2YVNjcmlwdCBzdHJpbmcuXHJcbiAqIEBwYXJhbSBzdGF0ZSBUaGUgQmFzZTY0IHN0YXRlLiBQYXNzIGFuIGluaXRpYWwgdmFsdWUgb2YgYHsgcXVldWU6IDAsIHF1ZXVlZEJpdHM6IDAgfWAuXHJcbiAqIEBwYXJhbSBlbWl0IEEgZnVuY3Rpb24gY2FsbGVkIHdpdGggdGhlIG5leHQgYnl0ZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBieXRlRnJvbUJhc2U2NFVSTChjaGFyQ29kZSwgc3RhdGUsIGVtaXQpIHtcclxuICAgIGNvbnN0IGJpdHMgPSBGUk9NX0JBU0U2NFVSTFtjaGFyQ29kZV07XHJcbiAgICBpZiAoYml0cyA+IC0xKSB7XHJcbiAgICAgICAgLy8gdmFsaWQgQmFzZTY0LVVSTCBjaGFyYWN0ZXJcclxuICAgICAgICBzdGF0ZS5xdWV1ZSA9IChzdGF0ZS5xdWV1ZSA8PCA2KSB8IGJpdHM7XHJcbiAgICAgICAgc3RhdGUucXVldWVkQml0cyArPSA2O1xyXG4gICAgICAgIHdoaWxlIChzdGF0ZS5xdWV1ZWRCaXRzID49IDgpIHtcclxuICAgICAgICAgICAgZW1pdCgoc3RhdGUucXVldWUgPj4gKHN0YXRlLnF1ZXVlZEJpdHMgLSA4KSkgJiAweGZmKTtcclxuICAgICAgICAgICAgc3RhdGUucXVldWVkQml0cyAtPSA4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGJpdHMgPT09IC0yKSB7XHJcbiAgICAgICAgLy8gaWdub3JlIHNwYWNlcywgdGFicywgbmV3bGluZXMsID1cclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgQmFzZTY0LVVSTCBjaGFyYWN0ZXIgXCIke1N0cmluZy5mcm9tQ2hhckNvZGUoY2hhckNvZGUpfVwiYCk7XHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIENvbnZlcnRzIGEgSmF2YVNjcmlwdCBzdHJpbmcgKHdoaWNoIG1heSBpbmNsdWRlIGFueSB2YWxpZCBjaGFyYWN0ZXIpIGludG8gYVxyXG4gKiBCYXNlNjQtVVJMIGVuY29kZWQgc3RyaW5nLiBUaGUgc3RyaW5nIGlzIGZpcnN0IGVuY29kZWQgaW4gVVRGLTggd2hpY2ggaXNcclxuICogdGhlbiBlbmNvZGVkIGFzIEJhc2U2NC1VUkwuXHJcbiAqXHJcbiAqIEBwYXJhbSBzdHIgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1RvQmFzZTY0VVJMKHN0cikge1xyXG4gICAgY29uc3QgYmFzZTY0ID0gW107XHJcbiAgICBjb25zdCBlbWl0dGVyID0gKGNoYXIpID0+IHtcclxuICAgICAgICBiYXNlNjQucHVzaChjaGFyKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBzdGF0ZSA9IHsgcXVldWU6IDAsIHF1ZXVlZEJpdHM6IDAgfTtcclxuICAgIHN0cmluZ1RvVVRGOChzdHIsIChieXRlKSA9PiB7XHJcbiAgICAgICAgYnl0ZVRvQmFzZTY0VVJMKGJ5dGUsIHN0YXRlLCBlbWl0dGVyKTtcclxuICAgIH0pO1xyXG4gICAgYnl0ZVRvQmFzZTY0VVJMKG51bGwsIHN0YXRlLCBlbWl0dGVyKTtcclxuICAgIHJldHVybiBiYXNlNjQuam9pbignJyk7XHJcbn1cclxuLyoqXHJcbiAqIENvbnZlcnRzIGEgQmFzZTY0LVVSTCBlbmNvZGVkIHN0cmluZyBpbnRvIGEgSmF2YVNjcmlwdCBzdHJpbmcuIEl0IGlzIGFzc3VtZWRcclxuICogdGhhdCB0aGUgdW5kZXJseWluZyBzdHJpbmcgaGFzIGJlZW4gZW5jb2RlZCBhcyBVVEYtOC5cclxuICpcclxuICogQHBhcmFtIHN0ciBUaGUgQmFzZTY0LVVSTCBlbmNvZGVkIHN0cmluZy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdGcm9tQmFzZTY0VVJMKHN0cikge1xyXG4gICAgY29uc3QgY29udiA9IFtdO1xyXG4gICAgY29uc3QgdXRmOEVtaXQgPSAoY29kZXBvaW50KSA9PiB7XHJcbiAgICAgICAgY29udi5wdXNoKFN0cmluZy5mcm9tQ29kZVBvaW50KGNvZGVwb2ludCkpO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IHV0ZjhTdGF0ZSA9IHtcclxuICAgICAgICB1dGY4c2VxOiAwLFxyXG4gICAgICAgIGNvZGVwb2ludDogMCxcclxuICAgIH07XHJcbiAgICBjb25zdCBiNjRTdGF0ZSA9IHsgcXVldWU6IDAsIHF1ZXVlZEJpdHM6IDAgfTtcclxuICAgIGNvbnN0IGJ5dGVFbWl0ID0gKGJ5dGUpID0+IHtcclxuICAgICAgICBzdHJpbmdGcm9tVVRGOChieXRlLCB1dGY4U3RhdGUsIHV0ZjhFbWl0KTtcclxuICAgIH07XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkgKz0gMSkge1xyXG4gICAgICAgIGJ5dGVGcm9tQmFzZTY0VVJMKHN0ci5jaGFyQ29kZUF0KGkpLCBiNjRTdGF0ZSwgYnl0ZUVtaXQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbnYuam9pbignJyk7XHJcbn1cclxuLyoqXHJcbiAqIENvbnZlcnRzIGEgVW5pY29kZSBjb2RlcG9pbnQgdG8gYSBtdWx0aS1ieXRlIFVURi04IHNlcXVlbmNlLlxyXG4gKlxyXG4gKiBAcGFyYW0gY29kZXBvaW50IFRoZSBVbmljb2RlIGNvZGVwb2ludC5cclxuICogQHBhcmFtIGVtaXQgICAgICBGdW5jdGlvbiB3aGljaCB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaCBVVEYtOCBieXRlIHRoYXQgcmVwcmVzZW50cyB0aGUgY29kZXBvaW50LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNvZGVwb2ludFRvVVRGOChjb2RlcG9pbnQsIGVtaXQpIHtcclxuICAgIGlmIChjb2RlcG9pbnQgPD0gMHg3Zikge1xyXG4gICAgICAgIGVtaXQoY29kZXBvaW50KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjb2RlcG9pbnQgPD0gMHg3ZmYpIHtcclxuICAgICAgICBlbWl0KDB4YzAgfCAoY29kZXBvaW50ID4+IDYpKTtcclxuICAgICAgICBlbWl0KDB4ODAgfCAoY29kZXBvaW50ICYgMHgzZikpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGVwb2ludCA8PSAweGZmZmYpIHtcclxuICAgICAgICBlbWl0KDB4ZTAgfCAoY29kZXBvaW50ID4+IDEyKSk7XHJcbiAgICAgICAgZW1pdCgweDgwIHwgKChjb2RlcG9pbnQgPj4gNikgJiAweDNmKSk7XHJcbiAgICAgICAgZW1pdCgweDgwIHwgKGNvZGVwb2ludCAmIDB4M2YpKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjb2RlcG9pbnQgPD0gMHgxMGZmZmYpIHtcclxuICAgICAgICBlbWl0KDB4ZjAgfCAoY29kZXBvaW50ID4+IDE4KSk7XHJcbiAgICAgICAgZW1pdCgweDgwIHwgKChjb2RlcG9pbnQgPj4gMTIpICYgMHgzZikpO1xyXG4gICAgICAgIGVtaXQoMHg4MCB8ICgoY29kZXBvaW50ID4+IDYpICYgMHgzZikpO1xyXG4gICAgICAgIGVtaXQoMHg4MCB8IChjb2RlcG9pbnQgJiAweDNmKSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgVW5pY29kZSBjb2RlcG9pbnQ6ICR7Y29kZXBvaW50LnRvU3RyaW5nKDE2KX1gKTtcclxufVxyXG4vKipcclxuICogQ29udmVydHMgYSBKYXZhU2NyaXB0IHN0cmluZyB0byBhIHNlcXVlbmNlIG9mIFVURi04IGJ5dGVzLlxyXG4gKlxyXG4gKiBAcGFyYW0gc3RyICBUaGUgc3RyaW5nIHRvIGNvbnZlcnQgdG8gVVRGLTguXHJcbiAqIEBwYXJhbSBlbWl0IEZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoIFVURi04IGJ5dGUgb2YgdGhlIHN0cmluZy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdUb1VURjgoc3RyLCBlbWl0KSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkgKz0gMSkge1xyXG4gICAgICAgIGxldCBjb2RlcG9pbnQgPSBzdHIuY2hhckNvZGVBdChpKTtcclxuICAgICAgICBpZiAoY29kZXBvaW50ID4gMHhkN2ZmICYmIGNvZGVwb2ludCA8PSAweGRiZmYpIHtcclxuICAgICAgICAgICAgLy8gbW9zdCBVVEYtMTYgY29kZXBvaW50cyBhcmUgVW5pY29kZSBjb2RlcG9pbnRzLCBleGNlcHQgdmFsdWVzIGluIHRoaXNcclxuICAgICAgICAgICAgLy8gcmFuZ2Ugd2hlcmUgdGhlIG5leHQgVVRGLTE2IGNvZGVwb2ludCBuZWVkcyB0byBiZSBjb21iaW5lZCB3aXRoIHRoZVxyXG4gICAgICAgICAgICAvLyBjdXJyZW50IG9uZSB0byBnZXQgdGhlIFVuaWNvZGUgY29kZXBvaW50XHJcbiAgICAgICAgICAgIGNvbnN0IGhpZ2hTdXJyb2dhdGUgPSAoKGNvZGVwb2ludCAtIDB4ZDgwMCkgKiAweDQwMCkgJiAweGZmZmY7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvd1N1cnJvZ2F0ZSA9IChzdHIuY2hhckNvZGVBdChpICsgMSkgLSAweGRjMDApICYgMHhmZmZmO1xyXG4gICAgICAgICAgICBjb2RlcG9pbnQgPSAobG93U3Vycm9nYXRlIHwgaGlnaFN1cnJvZ2F0ZSkgKyAweDEwMDAwO1xyXG4gICAgICAgICAgICBpICs9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvZGVwb2ludFRvVVRGOChjb2RlcG9pbnQsIGVtaXQpO1xyXG4gICAgfVxyXG59XHJcbi8qKlxyXG4gKiBDb252ZXJ0cyBhIFVURi04IGJ5dGUgdG8gYSBVbmljb2RlIGNvZGVwb2ludC5cclxuICpcclxuICogQHBhcmFtIGJ5dGUgIFRoZSBVVEYtOCBieXRlIG5leHQgaW4gdGhlIHNlcXVlbmNlLlxyXG4gKiBAcGFyYW0gc3RhdGUgVGhlIHNoYXJlZCBzdGF0ZSBiZXR3ZWVuIGNvbnNlY3V0aXZlIFVURi04IGJ5dGVzIGluIHRoZVxyXG4gKiAgICAgICAgICAgICAgc2VxdWVuY2UsIGFuIG9iamVjdCB3aXRoIHRoZSBzaGFwZSBgeyB1dGY4c2VxOiAwLCBjb2RlcG9pbnQ6IDAgfWAuXHJcbiAqIEBwYXJhbSBlbWl0ICBGdW5jdGlvbiB3aGljaCB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaCBjb2RlcG9pbnQuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nRnJvbVVURjgoYnl0ZSwgc3RhdGUsIGVtaXQpIHtcclxuICAgIGlmIChzdGF0ZS51dGY4c2VxID09PSAwKSB7XHJcbiAgICAgICAgaWYgKGJ5dGUgPD0gMHg3Zikge1xyXG4gICAgICAgICAgICBlbWl0KGJ5dGUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvdW50IHRoZSBudW1iZXIgb2YgMSBsZWFkaW5nIGJpdHMgdW50aWwgeW91IHJlYWNoIDBcclxuICAgICAgICBmb3IgKGxldCBsZWFkaW5nQml0ID0gMTsgbGVhZGluZ0JpdCA8IDY7IGxlYWRpbmdCaXQgKz0gMSkge1xyXG4gICAgICAgICAgICBpZiAoKChieXRlID4+ICg3IC0gbGVhZGluZ0JpdCkpICYgMSkgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHN0YXRlLnV0ZjhzZXEgPSBsZWFkaW5nQml0O1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHN0YXRlLnV0ZjhzZXEgPT09IDIpIHtcclxuICAgICAgICAgICAgc3RhdGUuY29kZXBvaW50ID0gYnl0ZSAmIDMxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChzdGF0ZS51dGY4c2VxID09PSAzKSB7XHJcbiAgICAgICAgICAgIHN0YXRlLmNvZGVwb2ludCA9IGJ5dGUgJiAxNTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoc3RhdGUudXRmOHNlcSA9PT0gNCkge1xyXG4gICAgICAgICAgICBzdGF0ZS5jb2RlcG9pbnQgPSBieXRlICYgNztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBVVEYtOCBzZXF1ZW5jZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdGF0ZS51dGY4c2VxIC09IDE7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChzdGF0ZS51dGY4c2VxID4gMCkge1xyXG4gICAgICAgIGlmIChieXRlIDw9IDB4N2YpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFVURi04IHNlcXVlbmNlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0YXRlLmNvZGVwb2ludCA9IChzdGF0ZS5jb2RlcG9pbnQgPDwgNikgfCAoYnl0ZSAmIDYzKTtcclxuICAgICAgICBzdGF0ZS51dGY4c2VxIC09IDE7XHJcbiAgICAgICAgaWYgKHN0YXRlLnV0ZjhzZXEgPT09IDApIHtcclxuICAgICAgICAgICAgZW1pdChzdGF0ZS5jb2RlcG9pbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4vKipcclxuICogSGVscGVyIGZ1bmN0aW9ucyB0byBjb252ZXJ0IGRpZmZlcmVudCB0eXBlcyBvZiBzdHJpbmdzIHRvIFVpbnQ4QXJyYXlcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBiYXNlNjRVcmxUb1VpbnQ4QXJyYXkoc3RyKSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcclxuICAgIGNvbnN0IHN0YXRlID0geyBxdWV1ZTogMCwgcXVldWVkQml0czogMCB9O1xyXG4gICAgY29uc3Qgb25CeXRlID0gKGJ5dGUpID0+IHtcclxuICAgICAgICByZXN1bHQucHVzaChieXRlKTtcclxuICAgIH07XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkgKz0gMSkge1xyXG4gICAgICAgIGJ5dGVGcm9tQmFzZTY0VVJMKHN0ci5jaGFyQ29kZUF0KGkpLCBzdGF0ZSwgb25CeXRlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgVWludDhBcnJheShyZXN1bHQpO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdUb1VpbnQ4QXJyYXkoc3RyKSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcclxuICAgIHN0cmluZ1RvVVRGOChzdHIsIChieXRlKSA9PiByZXN1bHQucHVzaChieXRlKSk7XHJcbiAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkocmVzdWx0KTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gYnl0ZXNUb0Jhc2U2NFVSTChieXRlcykge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gW107XHJcbiAgICBjb25zdCBzdGF0ZSA9IHsgcXVldWU6IDAsIHF1ZXVlZEJpdHM6IDAgfTtcclxuICAgIGNvbnN0IG9uQ2hhciA9IChjaGFyKSA9PiB7XHJcbiAgICAgICAgcmVzdWx0LnB1c2goY2hhcik7XHJcbiAgICB9O1xyXG4gICAgYnl0ZXMuZm9yRWFjaCgoYnl0ZSkgPT4gYnl0ZVRvQmFzZTY0VVJMKGJ5dGUsIHN0YXRlLCBvbkNoYXIpKTtcclxuICAgIC8vIGFsd2F5cyBjYWxsIHdpdGggYG51bGxgIGFmdGVyIHByb2Nlc3NpbmcgYWxsIGJ5dGVzXHJcbiAgICBieXRlVG9CYXNlNjRVUkwobnVsbCwgc3RhdGUsIG9uQ2hhcik7XHJcbiAgICByZXR1cm4gcmVzdWx0LmpvaW4oJycpO1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhc2U2NHVybC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/base64url.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/constants.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/lib/constants.js ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ API_VERSIONS: function() { return /* binding */ API_VERSIONS; },\n/* harmony export */ API_VERSION_HEADER_NAME: function() { return /* binding */ API_VERSION_HEADER_NAME; },\n/* harmony export */ AUDIENCE: function() { return /* binding */ AUDIENCE; },\n/* harmony export */ AUTO_REFRESH_TICK_DURATION_MS: function() { return /* binding */ AUTO_REFRESH_TICK_DURATION_MS; },\n/* harmony export */ AUTO_REFRESH_TICK_THRESHOLD: function() { return /* binding */ AUTO_REFRESH_TICK_THRESHOLD; },\n/* harmony export */ BASE64URL_REGEX: function() { return /* binding */ BASE64URL_REGEX; },\n/* harmony export */ DEFAULT_HEADERS: function() { return /* binding */ DEFAULT_HEADERS; },\n/* harmony export */ EXPIRY_MARGIN_MS: function() { return /* binding */ EXPIRY_MARGIN_MS; },\n/* harmony export */ GOTRUE_URL: function() { return /* binding */ GOTRUE_URL; },\n/* harmony export */ JWKS_TTL: function() { return /* binding */ JWKS_TTL; },\n/* harmony export */ NETWORK_FAILURE: function() { return /* binding */ NETWORK_FAILURE; },\n/* harmony export */ STORAGE_KEY: function() { return /* binding */ STORAGE_KEY; }\n/* harmony export */ });\n/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/version.js\");\n\r\n/** Current session will be checked for refresh at this interval. */\r\nconst AUTO_REFRESH_TICK_DURATION_MS = 30 * 1000;\r\n/**\r\n * A token refresh will be attempted this many ticks before the current session expires. */\r\nconst AUTO_REFRESH_TICK_THRESHOLD = 3;\r\n/*\r\n * Earliest time before an access token expires that the session should be refreshed.\r\n */\r\nconst EXPIRY_MARGIN_MS = AUTO_REFRESH_TICK_THRESHOLD * AUTO_REFRESH_TICK_DURATION_MS;\r\nconst GOTRUE_URL = 'http://localhost:9999';\r\nconst STORAGE_KEY = 'supabase.auth.token';\r\nconst AUDIENCE = '';\r\nconst DEFAULT_HEADERS = { 'X-Client-Info': `gotrue-js/${_version__WEBPACK_IMPORTED_MODULE_0__.version}` };\r\nconst NETWORK_FAILURE = {\r\n MAX_RETRIES: 10,\r\n RETRY_INTERVAL: 2, // in deciseconds\r\n};\r\nconst API_VERSION_HEADER_NAME = 'X-Supabase-Api-Version';\r\nconst API_VERSIONS = {\r\n '2024-01-01': {\r\n timestamp: Date.parse('2024-01-01T00:00:00.0Z'),\r\n name: '2024-01-01',\r\n },\r\n};\r\nconst BASE64URL_REGEX = /^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i;\r\nconst JWKS_TTL = 10 * 60 * 1000; // 10 minutes\r\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9saWIvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBb0M7QUFDcEM7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNPO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLDhCQUE4Qiw2Q0FBTyxDQUFDO0FBQ2hFO0FBQ1A7QUFDQTtBQUNBO0FBQ087QUFDQTtBQUNQO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNPLHNDQUFzQyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRTtBQUN6RSxpQ0FBaUM7QUFDeEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9hdXRoLWpzL2Rpc3QvbW9kdWxlL2xpYi9jb25zdGFudHMuanM/MWJhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi92ZXJzaW9uJztcclxuLyoqIEN1cnJlbnQgc2Vzc2lvbiB3aWxsIGJlIGNoZWNrZWQgZm9yIHJlZnJlc2ggYXQgdGhpcyBpbnRlcnZhbC4gKi9cclxuZXhwb3J0IGNvbnN0IEFVVE9fUkVGUkVTSF9USUNLX0RVUkFUSU9OX01TID0gMzAgKiAxMDAwO1xyXG4vKipcclxuICogQSB0b2tlbiByZWZyZXNoIHdpbGwgYmUgYXR0ZW1wdGVkIHRoaXMgbWFueSB0aWNrcyBiZWZvcmUgdGhlIGN1cnJlbnQgc2Vzc2lvbiBleHBpcmVzLiAqL1xyXG5leHBvcnQgY29uc3QgQVVUT19SRUZSRVNIX1RJQ0tfVEhSRVNIT0xEID0gMztcclxuLypcclxuICogRWFybGllc3QgdGltZSBiZWZvcmUgYW4gYWNjZXNzIHRva2VuIGV4cGlyZXMgdGhhdCB0aGUgc2Vzc2lvbiBzaG91bGQgYmUgcmVmcmVzaGVkLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEVYUElSWV9NQVJHSU5fTVMgPSBBVVRPX1JFRlJFU0hfVElDS19USFJFU0hPTEQgKiBBVVRPX1JFRlJFU0hfVElDS19EVVJBVElPTl9NUztcclxuZXhwb3J0IGNvbnN0IEdPVFJVRV9VUkwgPSAnaHR0cDovL2xvY2FsaG9zdDo5OTk5JztcclxuZXhwb3J0IGNvbnN0IFNUT1JBR0VfS0VZID0gJ3N1cGFiYXNlLmF1dGgudG9rZW4nO1xyXG5leHBvcnQgY29uc3QgQVVESUVOQ0UgPSAnJztcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSEVBREVSUyA9IHsgJ1gtQ2xpZW50LUluZm8nOiBgZ290cnVlLWpzLyR7dmVyc2lvbn1gIH07XHJcbmV4cG9ydCBjb25zdCBORVRXT1JLX0ZBSUxVUkUgPSB7XHJcbiAgICBNQVhfUkVUUklFUzogMTAsXHJcbiAgICBSRVRSWV9JTlRFUlZBTDogMiwgLy8gaW4gZGVjaXNlY29uZHNcclxufTtcclxuZXhwb3J0IGNvbnN0IEFQSV9WRVJTSU9OX0hFQURFUl9OQU1FID0gJ1gtU3VwYWJhc2UtQXBpLVZlcnNpb24nO1xyXG5leHBvcnQgY29uc3QgQVBJX1ZFUlNJT05TID0ge1xyXG4gICAgJzIwMjQtMDEtMDEnOiB7XHJcbiAgICAgICAgdGltZXN0YW1wOiBEYXRlLnBhcnNlKCcyMDI0LTAxLTAxVDAwOjAwOjAwLjBaJyksXHJcbiAgICAgICAgbmFtZTogJzIwMjQtMDEtMDEnLFxyXG4gICAgfSxcclxufTtcclxuZXhwb3J0IGNvbnN0IEJBU0U2NFVSTF9SRUdFWCA9IC9eKFthLXowLTlfLV17NH0pKigkfFthLXowLTlfLV17M30kfFthLXowLTlfLV17Mn0kKSQvaTtcclxuZXhwb3J0IGNvbnN0IEpXS1NfVFRMID0gMTAgKiA2MCAqIDEwMDA7IC8vIDEwIG1pbnV0ZXNcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/constants.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/errors.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/lib/errors.js ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AuthApiError: function() { return /* binding */ AuthApiError; },\n/* harmony export */ AuthError: function() { return /* binding */ AuthError; },\n/* harmony export */ AuthImplicitGrantRedirectError: function() { return /* binding */ AuthImplicitGrantRedirectError; },\n/* harmony export */ AuthInvalidCredentialsError: function() { return /* binding */ AuthInvalidCredentialsError; },\n/* harmony export */ AuthInvalidJwtError: function() { return /* binding */ AuthInvalidJwtError; },\n/* harmony export */ AuthInvalidTokenResponseError: function() { return /* binding */ AuthInvalidTokenResponseError; },\n/* harmony export */ AuthPKCEGrantCodeExchangeError: function() { return /* binding */ AuthPKCEGrantCodeExchangeError; },\n/* harmony export */ AuthRetryableFetchError: function() { return /* binding */ AuthRetryableFetchError; },\n/* harmony export */ AuthSessionMissingError: function() { return /* binding */ AuthSessionMissingError; },\n/* harmony export */ AuthUnknownError: function() { return /* binding */ AuthUnknownError; },\n/* harmony export */ AuthWeakPasswordError: function() { return /* binding */ AuthWeakPasswordError; },\n/* harmony export */ CustomAuthError: function() { return /* binding */ CustomAuthError; },\n/* harmony export */ isAuthApiError: function() { return /* binding */ isAuthApiError; },\n/* harmony export */ isAuthError: function() { return /* binding */ isAuthError; },\n/* harmony export */ isAuthImplicitGrantRedirectError: function() { return /* binding */ isAuthImplicitGrantRedirectError; },\n/* harmony export */ isAuthRetryableFetchError: function() { return /* binding */ isAuthRetryableFetchError; },\n/* harmony export */ isAuthSessionMissingError: function() { return /* binding */ isAuthSessionMissingError; },\n/* harmony export */ isAuthWeakPasswordError: function() { return /* binding */ isAuthWeakPasswordError; }\n/* harmony export */ });\nclass AuthError extends Error {\r\n constructor(message, status, code) {\r\n super(message);\r\n this.__isAuthError = true;\r\n this.name = 'AuthError';\r\n this.status = status;\r\n this.code = code;\r\n }\r\n}\r\nfunction isAuthError(error) {\r\n return typeof error === 'object' && error !== null && '__isAuthError' in error;\r\n}\r\nclass AuthApiError extends AuthError {\r\n constructor(message, status, code) {\r\n super(message, status, code);\r\n this.name = 'AuthApiError';\r\n this.status = status;\r\n this.code = code;\r\n }\r\n}\r\nfunction isAuthApiError(error) {\r\n return isAuthError(error) && error.name === 'AuthApiError';\r\n}\r\nclass AuthUnknownError extends AuthError {\r\n constructor(message, originalError) {\r\n super(message);\r\n this.name = 'AuthUnknownError';\r\n this.originalError = originalError;\r\n }\r\n}\r\nclass CustomAuthError extends AuthError {\r\n constructor(message, name, status, code) {\r\n super(message, status, code);\r\n this.name = name;\r\n this.status = status;\r\n }\r\n}\r\nclass AuthSessionMissingError extends CustomAuthError {\r\n constructor() {\r\n super('Auth session missing!', 'AuthSessionMissingError', 400, undefined);\r\n }\r\n}\r\nfunction isAuthSessionMissingError(error) {\r\n return isAuthError(error) && error.name === 'AuthSessionMissingError';\r\n}\r\nclass AuthInvalidTokenResponseError extends CustomAuthError {\r\n constructor() {\r\n super('Auth session or user missing', 'AuthInvalidTokenResponseError', 500, undefined);\r\n }\r\n}\r\nclass AuthInvalidCredentialsError extends CustomAuthError {\r\n constructor(message) {\r\n super(message, 'AuthInvalidCredentialsError', 400, undefined);\r\n }\r\n}\r\nclass AuthImplicitGrantRedirectError extends CustomAuthError {\r\n constructor(message, details = null) {\r\n super(message, 'AuthImplicitGrantRedirectError', 500, undefined);\r\n this.details = null;\r\n this.details = details;\r\n }\r\n toJSON() {\r\n return {\r\n name: this.name,\r\n message: this.message,\r\n status: this.status,\r\n details: this.details,\r\n };\r\n }\r\n}\r\nfunction isAuthImplicitGrantRedirectError(error) {\r\n return isAuthError(error) && error.name === 'AuthImplicitGrantRedirectError';\r\n}\r\nclass AuthPKCEGrantCodeExchangeError extends CustomAuthError {\r\n constructor(message, details = null) {\r\n super(message, 'AuthPKCEGrantCodeExchangeError', 500, undefined);\r\n this.details = null;\r\n this.details = details;\r\n }\r\n toJSON() {\r\n return {\r\n name: this.name,\r\n message: this.message,\r\n status: this.status,\r\n details: this.details,\r\n };\r\n }\r\n}\r\nclass AuthRetryableFetchError extends CustomAuthError {\r\n constructor(message, status) {\r\n super(message, 'AuthRetryableFetchError', status, undefined);\r\n }\r\n}\r\nfunction isAuthRetryableFetchError(error) {\r\n return isAuthError(error) && error.name === 'AuthRetryableFetchError';\r\n}\r\n/**\r\n * This error is thrown on certain methods when the password used is deemed\r\n * weak. Inspect the reasons to identify what password strength rules are\r\n * inadequate.\r\n */\r\nclass AuthWeakPasswordError extends CustomAuthError {\r\n constructor(message, status, reasons) {\r\n super(message, 'AuthWeakPasswordError', status, 'weak_password');\r\n this.reasons = reasons;\r\n }\r\n}\r\nfunction isAuthWeakPasswordError(error) {\r\n return isAuthError(error) && error.name === 'AuthWeakPasswordError';\r\n}\r\nclass AuthInvalidJwtError extends CustomAuthError {\r\n constructor(message) {\r\n super(message, 'AuthInvalidJwtError', 400, 'invalid_jwt');\r\n }\r\n}\r\n//# sourceMappingURL=errors.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9saWIvZXJyb3JzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9hdXRoLWpzL2Rpc3QvbW9kdWxlL2xpYi9lcnJvcnMuanM/N2ZlMSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQXV0aEVycm9yIGV4dGVuZHMgRXJyb3Ige1xyXG4gICAgY29uc3RydWN0b3IobWVzc2FnZSwgc3RhdHVzLCBjb2RlKSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XHJcbiAgICAgICAgdGhpcy5fX2lzQXV0aEVycm9yID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5hbWUgPSAnQXV0aEVycm9yJztcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcclxuICAgICAgICB0aGlzLmNvZGUgPSBjb2RlO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc0F1dGhFcnJvcihlcnJvcikge1xyXG4gICAgcmV0dXJuIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgJ19faXNBdXRoRXJyb3InIGluIGVycm9yO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBBdXRoQXBpRXJyb3IgZXh0ZW5kcyBBdXRoRXJyb3Ige1xyXG4gICAgY29uc3RydWN0b3IobWVzc2FnZSwgc3RhdHVzLCBjb2RlKSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgc3RhdHVzLCBjb2RlKTtcclxuICAgICAgICB0aGlzLm5hbWUgPSAnQXV0aEFwaUVycm9yJztcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcclxuICAgICAgICB0aGlzLmNvZGUgPSBjb2RlO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc0F1dGhBcGlFcnJvcihlcnJvcikge1xyXG4gICAgcmV0dXJuIGlzQXV0aEVycm9yKGVycm9yKSAmJiBlcnJvci5uYW1lID09PSAnQXV0aEFwaUVycm9yJztcclxufVxyXG5leHBvcnQgY2xhc3MgQXV0aFVua25vd25FcnJvciBleHRlbmRzIEF1dGhFcnJvciB7XHJcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBvcmlnaW5hbEVycm9yKSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gJ0F1dGhVbmtub3duRXJyb3InO1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxFcnJvciA9IG9yaWdpbmFsRXJyb3I7XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGNsYXNzIEN1c3RvbUF1dGhFcnJvciBleHRlbmRzIEF1dGhFcnJvciB7XHJcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBuYW1lLCBzdGF0dXMsIGNvZGUpIHtcclxuICAgICAgICBzdXBlcihtZXNzYWdlLCBzdGF0dXMsIGNvZGUpO1xyXG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGNsYXNzIEF1dGhTZXNzaW9uTWlzc2luZ0Vycm9yIGV4dGVuZHMgQ3VzdG9tQXV0aEVycm9yIHtcclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdBdXRoIHNlc3Npb24gbWlzc2luZyEnLCAnQXV0aFNlc3Npb25NaXNzaW5nRXJyb3InLCA0MDAsIHVuZGVmaW5lZCk7XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQXV0aFNlc3Npb25NaXNzaW5nRXJyb3IoZXJyb3IpIHtcclxuICAgIHJldHVybiBpc0F1dGhFcnJvcihlcnJvcikgJiYgZXJyb3IubmFtZSA9PT0gJ0F1dGhTZXNzaW9uTWlzc2luZ0Vycm9yJztcclxufVxyXG5leHBvcnQgY2xhc3MgQXV0aEludmFsaWRUb2tlblJlc3BvbnNlRXJyb3IgZXh0ZW5kcyBDdXN0b21BdXRoRXJyb3Ige1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoJ0F1dGggc2Vzc2lvbiBvciB1c2VyIG1pc3NpbmcnLCAnQXV0aEludmFsaWRUb2tlblJlc3BvbnNlRXJyb3InLCA1MDAsIHVuZGVmaW5lZCk7XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGNsYXNzIEF1dGhJbnZhbGlkQ3JlZGVudGlhbHNFcnJvciBleHRlbmRzIEN1c3RvbUF1dGhFcnJvciB7XHJcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgJ0F1dGhJbnZhbGlkQ3JlZGVudGlhbHNFcnJvcicsIDQwMCwgdW5kZWZpbmVkKTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY2xhc3MgQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yIGV4dGVuZHMgQ3VzdG9tQXV0aEVycm9yIHtcclxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIGRldGFpbHMgPSBudWxsKSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgJ0F1dGhJbXBsaWNpdEdyYW50UmVkaXJlY3RFcnJvcicsIDUwMCwgdW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLmRldGFpbHMgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZGV0YWlscyA9IGRldGFpbHM7XHJcbiAgICB9XHJcbiAgICB0b0pTT04oKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLm1lc3NhZ2UsXHJcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXHJcbiAgICAgICAgICAgIGRldGFpbHM6IHRoaXMuZGV0YWlscyxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc0F1dGhJbXBsaWNpdEdyYW50UmVkaXJlY3RFcnJvcihlcnJvcikge1xyXG4gICAgcmV0dXJuIGlzQXV0aEVycm9yKGVycm9yKSAmJiBlcnJvci5uYW1lID09PSAnQXV0aEltcGxpY2l0R3JhbnRSZWRpcmVjdEVycm9yJztcclxufVxyXG5leHBvcnQgY2xhc3MgQXV0aFBLQ0VHcmFudENvZGVFeGNoYW5nZUVycm9yIGV4dGVuZHMgQ3VzdG9tQXV0aEVycm9yIHtcclxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIGRldGFpbHMgPSBudWxsKSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgJ0F1dGhQS0NFR3JhbnRDb2RlRXhjaGFuZ2VFcnJvcicsIDUwMCwgdW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLmRldGFpbHMgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZGV0YWlscyA9IGRldGFpbHM7XHJcbiAgICB9XHJcbiAgICB0b0pTT04oKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLm1lc3NhZ2UsXHJcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXHJcbiAgICAgICAgICAgIGRldGFpbHM6IHRoaXMuZGV0YWlscyxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvciBleHRlbmRzIEN1c3RvbUF1dGhFcnJvciB7XHJcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBzdGF0dXMpIHtcclxuICAgICAgICBzdXBlcihtZXNzYWdlLCAnQXV0aFJldHJ5YWJsZUZldGNoRXJyb3InLCBzdGF0dXMsIHVuZGVmaW5lZCk7XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQXV0aFJldHJ5YWJsZUZldGNoRXJyb3IoZXJyb3IpIHtcclxuICAgIHJldHVybiBpc0F1dGhFcnJvcihlcnJvcikgJiYgZXJyb3IubmFtZSA9PT0gJ0F1dGhSZXRyeWFibGVGZXRjaEVycm9yJztcclxufVxyXG4vKipcclxuICogVGhpcyBlcnJvciBpcyB0aHJvd24gb24gY2VydGFpbiBtZXRob2RzIHdoZW4gdGhlIHBhc3N3b3JkIHVzZWQgaXMgZGVlbWVkXHJcbiAqIHdlYWsuIEluc3BlY3QgdGhlIHJlYXNvbnMgdG8gaWRlbnRpZnkgd2hhdCBwYXNzd29yZCBzdHJlbmd0aCBydWxlcyBhcmVcclxuICogaW5hZGVxdWF0ZS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBBdXRoV2Vha1Bhc3N3b3JkRXJyb3IgZXh0ZW5kcyBDdXN0b21BdXRoRXJyb3Ige1xyXG4gICAgY29uc3RydWN0b3IobWVzc2FnZSwgc3RhdHVzLCByZWFzb25zKSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgJ0F1dGhXZWFrUGFzc3dvcmRFcnJvcicsIHN0YXR1cywgJ3dlYWtfcGFzc3dvcmQnKTtcclxuICAgICAgICB0aGlzLnJlYXNvbnMgPSByZWFzb25zO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc0F1dGhXZWFrUGFzc3dvcmRFcnJvcihlcnJvcikge1xyXG4gICAgcmV0dXJuIGlzQXV0aEVycm9yKGVycm9yKSAmJiBlcnJvci5uYW1lID09PSAnQXV0aFdlYWtQYXNzd29yZEVycm9yJztcclxufVxyXG5leHBvcnQgY2xhc3MgQXV0aEludmFsaWRKd3RFcnJvciBleHRlbmRzIEN1c3RvbUF1dGhFcnJvciB7XHJcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgJ0F1dGhJbnZhbGlkSnd0RXJyb3InLCA0MDAsICdpbnZhbGlkX2p3dCcpO1xyXG4gICAgfVxyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9ycy5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/errors.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/fetch.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/lib/fetch.js ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _generateLinkResponse: function() { return /* binding */ _generateLinkResponse; },\n/* harmony export */ _noResolveJsonResponse: function() { return /* binding */ _noResolveJsonResponse; },\n/* harmony export */ _request: function() { return /* binding */ _request; },\n/* harmony export */ _sessionResponse: function() { return /* binding */ _sessionResponse; },\n/* harmony export */ _sessionResponsePassword: function() { return /* binding */ _sessionResponsePassword; },\n/* harmony export */ _ssoResponse: function() { return /* binding */ _ssoResponse; },\n/* harmony export */ _userResponse: function() { return /* binding */ _userResponse; },\n/* harmony export */ handleError: function() { return /* binding */ handleError; }\n/* harmony export */ });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/constants.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/helpers.js\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./errors */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/errors.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\n\r\n\r\n\r\nconst _getErrorMessage = (err) => err.msg || err.message || err.error_description || err.error || JSON.stringify(err);\r\nconst NETWORK_ERROR_CODES = [502, 503, 504];\r\nasync function handleError(error) {\r\n var _a;\r\n if (!(0,_helpers__WEBPACK_IMPORTED_MODULE_1__.looksLikeFetchResponse)(error)) {\r\n throw new _errors__WEBPACK_IMPORTED_MODULE_2__.AuthRetryableFetchError(_getErrorMessage(error), 0);\r\n }\r\n if (NETWORK_ERROR_CODES.includes(error.status)) {\r\n // status in 500...599 range - server had an error, request might be retryed.\r\n throw new _errors__WEBPACK_IMPORTED_MODULE_2__.AuthRetryableFetchError(_getErrorMessage(error), error.status);\r\n }\r\n let data;\r\n try {\r\n data = await error.json();\r\n }\r\n catch (e) {\r\n throw new _errors__WEBPACK_IMPORTED_MODULE_2__.AuthUnknownError(_getErrorMessage(e), e);\r\n }\r\n let errorCode = undefined;\r\n const responseAPIVersion = (0,_helpers__WEBPACK_IMPORTED_MODULE_1__.parseResponseAPIVersion)(error);\r\n if (responseAPIVersion &&\r\n responseAPIVersion.getTime() >= _constants__WEBPACK_IMPORTED_MODULE_0__.API_VERSIONS['2024-01-01'].timestamp &&\r\n typeof data === 'object' &&\r\n data &&\r\n typeof data.code === 'string') {\r\n errorCode = data.code;\r\n }\r\n else if (typeof data === 'object' && data && typeof data.error_code === 'string') {\r\n errorCode = data.error_code;\r\n }\r\n if (!errorCode) {\r\n // Legacy support for weak password errors, when there were no error codes\r\n if (typeof data === 'object' &&\r\n data &&\r\n typeof data.weak_password === 'object' &&\r\n data.weak_password &&\r\n Array.isArray(data.weak_password.reasons) &&\r\n data.weak_password.reasons.length &&\r\n data.weak_password.reasons.reduce((a, i) => a && typeof i === 'string', true)) {\r\n throw new _errors__WEBPACK_IMPORTED_MODULE_2__.AuthWeakPasswordError(_getErrorMessage(data), error.status, data.weak_password.reasons);\r\n }\r\n }\r\n else if (errorCode === 'weak_password') {\r\n throw new _errors__WEBPACK_IMPORTED_MODULE_2__.AuthWeakPasswordError(_getErrorMessage(data), error.status, ((_a = data.weak_password) === null || _a === void 0 ? void 0 : _a.reasons) || []);\r\n }\r\n else if (errorCode === 'session_not_found') {\r\n // The `session_id` inside the JWT does not correspond to a row in the\r\n // `sessions` table. This usually means the user has signed out, has been\r\n // deleted, or their session has somehow been terminated.\r\n throw new _errors__WEBPACK_IMPORTED_MODULE_2__.AuthSessionMissingError();\r\n }\r\n throw new _errors__WEBPACK_IMPORTED_MODULE_2__.AuthApiError(_getErrorMessage(data), error.status || 500, errorCode);\r\n}\r\nconst _getRequestParams = (method, options, parameters, body) => {\r\n const params = { method, headers: (options === null || options === void 0 ? void 0 : options.headers) || {} };\r\n if (method === 'GET') {\r\n return params;\r\n }\r\n params.headers = Object.assign({ 'Content-Type': 'application/json;charset=UTF-8' }, options === null || options === void 0 ? void 0 : options.headers);\r\n params.body = JSON.stringify(body);\r\n return Object.assign(Object.assign({}, params), parameters);\r\n};\r\nasync function _request(fetcher, method, url, options) {\r\n var _a;\r\n const headers = Object.assign({}, options === null || options === void 0 ? void 0 : options.headers);\r\n if (!headers[_constants__WEBPACK_IMPORTED_MODULE_0__.API_VERSION_HEADER_NAME]) {\r\n headers[_constants__WEBPACK_IMPORTED_MODULE_0__.API_VERSION_HEADER_NAME] = _constants__WEBPACK_IMPORTED_MODULE_0__.API_VERSIONS['2024-01-01'].name;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.jwt) {\r\n headers['Authorization'] = `Bearer ${options.jwt}`;\r\n }\r\n const qs = (_a = options === null || options === void 0 ? void 0 : options.query) !== null && _a !== void 0 ? _a : {};\r\n if (options === null || options === void 0 ? void 0 : options.redirectTo) {\r\n qs['redirect_to'] = options.redirectTo;\r\n }\r\n const queryString = Object.keys(qs).length ? '?' + new URLSearchParams(qs).toString() : '';\r\n const data = await _handleRequest(fetcher, method, url + queryString, {\r\n headers,\r\n noResolveJson: options === null || options === void 0 ? void 0 : options.noResolveJson,\r\n }, {}, options === null || options === void 0 ? void 0 : options.body);\r\n return (options === null || options === void 0 ? void 0 : options.xform) ? options === null || options === void 0 ? void 0 : options.xform(data) : { data: Object.assign({}, data), error: null };\r\n}\r\nasync function _handleRequest(fetcher, method, url, options, parameters, body) {\r\n const requestParams = _getRequestParams(method, options, parameters, body);\r\n let result;\r\n try {\r\n result = await fetcher(url, Object.assign({}, requestParams));\r\n }\r\n catch (e) {\r\n console.error(e);\r\n // fetch failed, likely due to a network or CORS error\r\n throw new _errors__WEBPACK_IMPORTED_MODULE_2__.AuthRetryableFetchError(_getErrorMessage(e), 0);\r\n }\r\n if (!result.ok) {\r\n await handleError(result);\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.noResolveJson) {\r\n return result;\r\n }\r\n try {\r\n return await result.json();\r\n }\r\n catch (e) {\r\n await handleError(e);\r\n }\r\n}\r\nfunction _sessionResponse(data) {\r\n var _a;\r\n let session = null;\r\n if (hasSession(data)) {\r\n session = Object.assign({}, data);\r\n if (!data.expires_at) {\r\n session.expires_at = (0,_helpers__WEBPACK_IMPORTED_MODULE_1__.expiresAt)(data.expires_in);\r\n }\r\n }\r\n const user = (_a = data.user) !== null && _a !== void 0 ? _a : data;\r\n return { data: { session, user }, error: null };\r\n}\r\nfunction _sessionResponsePassword(data) {\r\n const response = _sessionResponse(data);\r\n if (!response.error &&\r\n data.weak_password &&\r\n typeof data.weak_password === 'object' &&\r\n Array.isArray(data.weak_password.reasons) &&\r\n data.weak_password.reasons.length &&\r\n data.weak_password.message &&\r\n typeof data.weak_password.message === 'string' &&\r\n data.weak_password.reasons.reduce((a, i) => a && typeof i === 'string', true)) {\r\n response.data.weak_password = data.weak_password;\r\n }\r\n return response;\r\n}\r\nfunction _userResponse(data) {\r\n var _a;\r\n const user = (_a = data.user) !== null && _a !== void 0 ? _a : data;\r\n return { data: { user }, error: null };\r\n}\r\nfunction _ssoResponse(data) {\r\n return { data, error: null };\r\n}\r\nfunction _generateLinkResponse(data) {\r\n const { action_link, email_otp, hashed_token, redirect_to, verification_type } = data, rest = __rest(data, [\"action_link\", \"email_otp\", \"hashed_token\", \"redirect_to\", \"verification_type\"]);\r\n const properties = {\r\n action_link,\r\n email_otp,\r\n hashed_token,\r\n redirect_to,\r\n verification_type,\r\n };\r\n const user = Object.assign({}, rest);\r\n return {\r\n data: {\r\n properties,\r\n user,\r\n },\r\n error: null,\r\n };\r\n}\r\nfunction _noResolveJsonResponse(data) {\r\n return data;\r\n}\r\n/**\r\n * hasSession checks if the response object contains a valid session\r\n * @param data A response object\r\n * @returns true if a session is in the response\r\n */\r\nfunction hasSession(data) {\r\n return data.access_token && data.refresh_token && data.expires_in;\r\n}\r\n//# sourceMappingURL=fetch.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9saWIvZmV0Y2guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxjQUFjLFNBQUksSUFBSSxTQUFJO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkRBQTZELGNBQWM7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNvRTtBQUNtQjtBQUM2QztBQUNwSTtBQUNBO0FBQ087QUFDUDtBQUNBLFNBQVMsZ0VBQXNCO0FBQy9CLGtCQUFrQiw0REFBdUI7QUFDekM7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLDREQUF1QjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IscURBQWdCO0FBQ2xDO0FBQ0E7QUFDQSwrQkFBK0IsaUVBQXVCO0FBQ3REO0FBQ0Esd0NBQXdDLG9EQUFZO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsMERBQXFCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiwwREFBcUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiw0REFBdUI7QUFDekM7QUFDQSxjQUFjLGlEQUFZO0FBQzFCO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLGtDQUFrQyxnQkFBZ0I7QUFDdkY7QUFDQSx5Q0FBeUM7QUFDekM7QUFDTztBQUNQO0FBQ0Esb0NBQW9DO0FBQ3BDLGlCQUFpQiwrREFBdUI7QUFDeEMsZ0JBQWdCLCtEQUF1QixJQUFJLG9EQUFZO0FBQ3ZEO0FBQ0E7QUFDQSw2Q0FBNkMsWUFBWTtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLElBQUk7QUFDVCx5SkFBeUosc0JBQXNCO0FBQy9LO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0Q7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsNERBQXVCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQztBQUNBLGlDQUFpQyxtREFBUztBQUMxQztBQUNBO0FBQ0E7QUFDQSxhQUFhLFFBQVEsZUFBZTtBQUNwQztBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQSxhQUFhLFFBQVEsTUFBTTtBQUMzQjtBQUNPO0FBQ1AsYUFBYTtBQUNiO0FBQ087QUFDUCxZQUFZLHVFQUF1RTtBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9hdXRoLWpzL2Rpc3QvbW9kdWxlL2xpYi9mZXRjaC5qcz83MDU0Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcclxuICAgIHZhciB0ID0ge307XHJcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcclxuICAgICAgICB0W3BdID0gc1twXTtcclxuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcclxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcclxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xyXG4gICAgICAgIH1cclxuICAgIHJldHVybiB0O1xyXG59O1xyXG5pbXBvcnQgeyBBUElfVkVSU0lPTlMsIEFQSV9WRVJTSU9OX0hFQURFUl9OQU1FIH0gZnJvbSAnLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBleHBpcmVzQXQsIGxvb2tzTGlrZUZldGNoUmVzcG9uc2UsIHBhcnNlUmVzcG9uc2VBUElWZXJzaW9uIH0gZnJvbSAnLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgQXV0aEFwaUVycm9yLCBBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvciwgQXV0aFdlYWtQYXNzd29yZEVycm9yLCBBdXRoVW5rbm93bkVycm9yLCBBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvciwgfSBmcm9tICcuL2Vycm9ycyc7XHJcbmNvbnN0IF9nZXRFcnJvck1lc3NhZ2UgPSAoZXJyKSA9PiBlcnIubXNnIHx8IGVyci5tZXNzYWdlIHx8IGVyci5lcnJvcl9kZXNjcmlwdGlvbiB8fCBlcnIuZXJyb3IgfHwgSlNPTi5zdHJpbmdpZnkoZXJyKTtcclxuY29uc3QgTkVUV09SS19FUlJPUl9DT0RFUyA9IFs1MDIsIDUwMywgNTA0XTtcclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZUVycm9yKGVycm9yKSB7XHJcbiAgICB2YXIgX2E7XHJcbiAgICBpZiAoIWxvb2tzTGlrZUZldGNoUmVzcG9uc2UoZXJyb3IpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEF1dGhSZXRyeWFibGVGZXRjaEVycm9yKF9nZXRFcnJvck1lc3NhZ2UoZXJyb3IpLCAwKTtcclxuICAgIH1cclxuICAgIGlmIChORVRXT1JLX0VSUk9SX0NPREVTLmluY2x1ZGVzKGVycm9yLnN0YXR1cykpIHtcclxuICAgICAgICAvLyBzdGF0dXMgaW4gNTAwLi4uNTk5IHJhbmdlIC0gc2VydmVyIGhhZCBhbiBlcnJvciwgcmVxdWVzdCBtaWdodCBiZSByZXRyeWVkLlxyXG4gICAgICAgIHRocm93IG5ldyBBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSwgZXJyb3Iuc3RhdHVzKTtcclxuICAgIH1cclxuICAgIGxldCBkYXRhO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBkYXRhID0gYXdhaXQgZXJyb3IuanNvbigpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICB0aHJvdyBuZXcgQXV0aFVua25vd25FcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGUpLCBlKTtcclxuICAgIH1cclxuICAgIGxldCBlcnJvckNvZGUgPSB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCByZXNwb25zZUFQSVZlcnNpb24gPSBwYXJzZVJlc3BvbnNlQVBJVmVyc2lvbihlcnJvcik7XHJcbiAgICBpZiAocmVzcG9uc2VBUElWZXJzaW9uICYmXHJcbiAgICAgICAgcmVzcG9uc2VBUElWZXJzaW9uLmdldFRpbWUoKSA+PSBBUElfVkVSU0lPTlNbJzIwMjQtMDEtMDEnXS50aW1lc3RhbXAgJiZcclxuICAgICAgICB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiZcclxuICAgICAgICBkYXRhICYmXHJcbiAgICAgICAgdHlwZW9mIGRhdGEuY29kZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBlcnJvckNvZGUgPSBkYXRhLmNvZGU7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgZGF0YSAmJiB0eXBlb2YgZGF0YS5lcnJvcl9jb2RlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGVycm9yQ29kZSA9IGRhdGEuZXJyb3JfY29kZTtcclxuICAgIH1cclxuICAgIGlmICghZXJyb3JDb2RlKSB7XHJcbiAgICAgICAgLy8gTGVnYWN5IHN1cHBvcnQgZm9yIHdlYWsgcGFzc3dvcmQgZXJyb3JzLCB3aGVuIHRoZXJlIHdlcmUgbm8gZXJyb3IgY29kZXNcclxuICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmXHJcbiAgICAgICAgICAgIGRhdGEgJiZcclxuICAgICAgICAgICAgdHlwZW9mIGRhdGEud2Vha19wYXNzd29yZCA9PT0gJ29iamVjdCcgJiZcclxuICAgICAgICAgICAgZGF0YS53ZWFrX3Bhc3N3b3JkICYmXHJcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoZGF0YS53ZWFrX3Bhc3N3b3JkLnJlYXNvbnMpICYmXHJcbiAgICAgICAgICAgIGRhdGEud2Vha19wYXNzd29yZC5yZWFzb25zLmxlbmd0aCAmJlxyXG4gICAgICAgICAgICBkYXRhLndlYWtfcGFzc3dvcmQucmVhc29ucy5yZWR1Y2UoKGEsIGkpID0+IGEgJiYgdHlwZW9mIGkgPT09ICdzdHJpbmcnLCB0cnVlKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgQXV0aFdlYWtQYXNzd29yZEVycm9yKF9nZXRFcnJvck1lc3NhZ2UoZGF0YSksIGVycm9yLnN0YXR1cywgZGF0YS53ZWFrX3Bhc3N3b3JkLnJlYXNvbnMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGVycm9yQ29kZSA9PT0gJ3dlYWtfcGFzc3dvcmQnKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEF1dGhXZWFrUGFzc3dvcmRFcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGRhdGEpLCBlcnJvci5zdGF0dXMsICgoX2EgPSBkYXRhLndlYWtfcGFzc3dvcmQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZWFzb25zKSB8fCBbXSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChlcnJvckNvZGUgPT09ICdzZXNzaW9uX25vdF9mb3VuZCcpIHtcclxuICAgICAgICAvLyBUaGUgYHNlc3Npb25faWRgIGluc2lkZSB0aGUgSldUIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSByb3cgaW4gdGhlXHJcbiAgICAgICAgLy8gYHNlc3Npb25zYCB0YWJsZS4gVGhpcyB1c3VhbGx5IG1lYW5zIHRoZSB1c2VyIGhhcyBzaWduZWQgb3V0LCBoYXMgYmVlblxyXG4gICAgICAgIC8vIGRlbGV0ZWQsIG9yIHRoZWlyIHNlc3Npb24gaGFzIHNvbWVob3cgYmVlbiB0ZXJtaW5hdGVkLlxyXG4gICAgICAgIHRocm93IG5ldyBBdXRoU2Vzc2lvbk1pc3NpbmdFcnJvcigpO1xyXG4gICAgfVxyXG4gICAgdGhyb3cgbmV3IEF1dGhBcGlFcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGRhdGEpLCBlcnJvci5zdGF0dXMgfHwgNTAwLCBlcnJvckNvZGUpO1xyXG59XHJcbmNvbnN0IF9nZXRSZXF1ZXN0UGFyYW1zID0gKG1ldGhvZCwgb3B0aW9ucywgcGFyYW1ldGVycywgYm9keSkgPT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0geyBtZXRob2QsIGhlYWRlcnM6IChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuaGVhZGVycykgfHwge30gfTtcclxuICAgIGlmIChtZXRob2QgPT09ICdHRVQnKSB7XHJcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcclxuICAgIH1cclxuICAgIHBhcmFtcy5oZWFkZXJzID0gT2JqZWN0LmFzc2lnbih7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04JyB9LCBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuaGVhZGVycyk7XHJcbiAgICBwYXJhbXMuYm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHkpO1xyXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcGFyYW1zKSwgcGFyYW1ldGVycyk7XHJcbn07XHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBfcmVxdWVzdChmZXRjaGVyLCBtZXRob2QsIHVybCwgb3B0aW9ucykge1xyXG4gICAgdmFyIF9hO1xyXG4gICAgY29uc3QgaGVhZGVycyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5oZWFkZXJzKTtcclxuICAgIGlmICghaGVhZGVyc1tBUElfVkVSU0lPTl9IRUFERVJfTkFNRV0pIHtcclxuICAgICAgICBoZWFkZXJzW0FQSV9WRVJTSU9OX0hFQURFUl9OQU1FXSA9IEFQSV9WRVJTSU9OU1snMjAyNC0wMS0wMSddLm5hbWU7XHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmp3dCkge1xyXG4gICAgICAgIGhlYWRlcnNbJ0F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHtvcHRpb25zLmp3dH1gO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcXMgPSAoX2EgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucXVlcnkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHt9O1xyXG4gICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5yZWRpcmVjdFRvKSB7XHJcbiAgICAgICAgcXNbJ3JlZGlyZWN0X3RvJ10gPSBvcHRpb25zLnJlZGlyZWN0VG87XHJcbiAgICB9XHJcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IE9iamVjdC5rZXlzKHFzKS5sZW5ndGggPyAnPycgKyBuZXcgVVJMU2VhcmNoUGFyYW1zKHFzKS50b1N0cmluZygpIDogJyc7XHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgX2hhbmRsZVJlcXVlc3QoZmV0Y2hlciwgbWV0aG9kLCB1cmwgKyBxdWVyeVN0cmluZywge1xyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgICAgbm9SZXNvbHZlSnNvbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm5vUmVzb2x2ZUpzb24sXHJcbiAgICB9LCB7fSwgb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmJvZHkpO1xyXG4gICAgcmV0dXJuIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMueGZvcm0pID8gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnhmb3JtKGRhdGEpIDogeyBkYXRhOiBPYmplY3QuYXNzaWduKHt9LCBkYXRhKSwgZXJyb3I6IG51bGwgfTtcclxufVxyXG5hc3luYyBmdW5jdGlvbiBfaGFuZGxlUmVxdWVzdChmZXRjaGVyLCBtZXRob2QsIHVybCwgb3B0aW9ucywgcGFyYW1ldGVycywgYm9keSkge1xyXG4gICAgY29uc3QgcmVxdWVzdFBhcmFtcyA9IF9nZXRSZXF1ZXN0UGFyYW1zKG1ldGhvZCwgb3B0aW9ucywgcGFyYW1ldGVycywgYm9keSk7XHJcbiAgICBsZXQgcmVzdWx0O1xyXG4gICAgdHJ5IHtcclxuICAgICAgICByZXN1bHQgPSBhd2FpdCBmZXRjaGVyKHVybCwgT2JqZWN0LmFzc2lnbih7fSwgcmVxdWVzdFBhcmFtcykpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xyXG4gICAgICAgIC8vIGZldGNoIGZhaWxlZCwgbGlrZWx5IGR1ZSB0byBhIG5ldHdvcmsgb3IgQ09SUyBlcnJvclxyXG4gICAgICAgIHRocm93IG5ldyBBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGUpLCAwKTtcclxuICAgIH1cclxuICAgIGlmICghcmVzdWx0Lm9rKSB7XHJcbiAgICAgICAgYXdhaXQgaGFuZGxlRXJyb3IocmVzdWx0KTtcclxuICAgIH1cclxuICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMubm9SZXNvbHZlSnNvbikge1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCByZXN1bHQuanNvbigpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICBhd2FpdCBoYW5kbGVFcnJvcihlKTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgZnVuY3Rpb24gX3Nlc3Npb25SZXNwb25zZShkYXRhKSB7XHJcbiAgICB2YXIgX2E7XHJcbiAgICBsZXQgc2Vzc2lvbiA9IG51bGw7XHJcbiAgICBpZiAoaGFzU2Vzc2lvbihkYXRhKSkge1xyXG4gICAgICAgIHNlc3Npb24gPSBPYmplY3QuYXNzaWduKHt9LCBkYXRhKTtcclxuICAgICAgICBpZiAoIWRhdGEuZXhwaXJlc19hdCkge1xyXG4gICAgICAgICAgICBzZXNzaW9uLmV4cGlyZXNfYXQgPSBleHBpcmVzQXQoZGF0YS5leHBpcmVzX2luKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB1c2VyID0gKF9hID0gZGF0YS51c2VyKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhO1xyXG4gICAgcmV0dXJuIHsgZGF0YTogeyBzZXNzaW9uLCB1c2VyIH0sIGVycm9yOiBudWxsIH07XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIF9zZXNzaW9uUmVzcG9uc2VQYXNzd29yZChkYXRhKSB7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IF9zZXNzaW9uUmVzcG9uc2UoZGF0YSk7XHJcbiAgICBpZiAoIXJlc3BvbnNlLmVycm9yICYmXHJcbiAgICAgICAgZGF0YS53ZWFrX3Bhc3N3b3JkICYmXHJcbiAgICAgICAgdHlwZW9mIGRhdGEud2Vha19wYXNzd29yZCA9PT0gJ29iamVjdCcgJiZcclxuICAgICAgICBBcnJheS5pc0FycmF5KGRhdGEud2Vha19wYXNzd29yZC5yZWFzb25zKSAmJlxyXG4gICAgICAgIGRhdGEud2Vha19wYXNzd29yZC5yZWFzb25zLmxlbmd0aCAmJlxyXG4gICAgICAgIGRhdGEud2Vha19wYXNzd29yZC5tZXNzYWdlICYmXHJcbiAgICAgICAgdHlwZW9mIGRhdGEud2Vha19wYXNzd29yZC5tZXNzYWdlID09PSAnc3RyaW5nJyAmJlxyXG4gICAgICAgIGRhdGEud2Vha19wYXNzd29yZC5yZWFzb25zLnJlZHVjZSgoYSwgaSkgPT4gYSAmJiB0eXBlb2YgaSA9PT0gJ3N0cmluZycsIHRydWUpKSB7XHJcbiAgICAgICAgcmVzcG9uc2UuZGF0YS53ZWFrX3Bhc3N3b3JkID0gZGF0YS53ZWFrX3Bhc3N3b3JkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBfdXNlclJlc3BvbnNlKGRhdGEpIHtcclxuICAgIHZhciBfYTtcclxuICAgIGNvbnN0IHVzZXIgPSAoX2EgPSBkYXRhLnVzZXIpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGE7XHJcbiAgICByZXR1cm4geyBkYXRhOiB7IHVzZXIgfSwgZXJyb3I6IG51bGwgfTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gX3Nzb1Jlc3BvbnNlKGRhdGEpIHtcclxuICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH07XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIF9nZW5lcmF0ZUxpbmtSZXNwb25zZShkYXRhKSB7XHJcbiAgICBjb25zdCB7IGFjdGlvbl9saW5rLCBlbWFpbF9vdHAsIGhhc2hlZF90b2tlbiwgcmVkaXJlY3RfdG8sIHZlcmlmaWNhdGlvbl90eXBlIH0gPSBkYXRhLCByZXN0ID0gX19yZXN0KGRhdGEsIFtcImFjdGlvbl9saW5rXCIsIFwiZW1haWxfb3RwXCIsIFwiaGFzaGVkX3Rva2VuXCIsIFwicmVkaXJlY3RfdG9cIiwgXCJ2ZXJpZmljYXRpb25fdHlwZVwiXSk7XHJcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0ge1xyXG4gICAgICAgIGFjdGlvbl9saW5rLFxyXG4gICAgICAgIGVtYWlsX290cCxcclxuICAgICAgICBoYXNoZWRfdG9rZW4sXHJcbiAgICAgICAgcmVkaXJlY3RfdG8sXHJcbiAgICAgICAgdmVyaWZpY2F0aW9uX3R5cGUsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgdXNlciA9IE9iamVjdC5hc3NpZ24oe30sIHJlc3QpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIHByb3BlcnRpZXMsXHJcbiAgICAgICAgICAgIHVzZXIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogbnVsbCxcclxuICAgIH07XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIF9ub1Jlc29sdmVKc29uUmVzcG9uc2UoZGF0YSkge1xyXG4gICAgcmV0dXJuIGRhdGE7XHJcbn1cclxuLyoqXHJcbiAqIGhhc1Nlc3Npb24gY2hlY2tzIGlmIHRoZSByZXNwb25zZSBvYmplY3QgY29udGFpbnMgYSB2YWxpZCBzZXNzaW9uXHJcbiAqIEBwYXJhbSBkYXRhIEEgcmVzcG9uc2Ugb2JqZWN0XHJcbiAqIEByZXR1cm5zIHRydWUgaWYgYSBzZXNzaW9uIGlzIGluIHRoZSByZXNwb25zZVxyXG4gKi9cclxuZnVuY3Rpb24gaGFzU2Vzc2lvbihkYXRhKSB7XHJcbiAgICByZXR1cm4gZGF0YS5hY2Nlc3NfdG9rZW4gJiYgZGF0YS5yZWZyZXNoX3Rva2VuICYmIGRhdGEuZXhwaXJlc19pbjtcclxufVxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1mZXRjaC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/fetch.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/helpers.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/lib/helpers.js ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Deferred: function() { return /* binding */ Deferred; },\n/* harmony export */ decodeJWT: function() { return /* binding */ decodeJWT; },\n/* harmony export */ deepClone: function() { return /* binding */ deepClone; },\n/* harmony export */ expiresAt: function() { return /* binding */ expiresAt; },\n/* harmony export */ generatePKCEChallenge: function() { return /* binding */ generatePKCEChallenge; },\n/* harmony export */ generatePKCEVerifier: function() { return /* binding */ generatePKCEVerifier; },\n/* harmony export */ getAlgorithm: function() { return /* binding */ getAlgorithm; },\n/* harmony export */ getCodeChallengeAndMethod: function() { return /* binding */ getCodeChallengeAndMethod; },\n/* harmony export */ getItemAsync: function() { return /* binding */ getItemAsync; },\n/* harmony export */ isBrowser: function() { return /* binding */ isBrowser; },\n/* harmony export */ looksLikeFetchResponse: function() { return /* binding */ looksLikeFetchResponse; },\n/* harmony export */ parseParametersFromURL: function() { return /* binding */ parseParametersFromURL; },\n/* harmony export */ parseResponseAPIVersion: function() { return /* binding */ parseResponseAPIVersion; },\n/* harmony export */ removeItemAsync: function() { return /* binding */ removeItemAsync; },\n/* harmony export */ resolveFetch: function() { return /* binding */ resolveFetch; },\n/* harmony export */ retryable: function() { return /* binding */ retryable; },\n/* harmony export */ setItemAsync: function() { return /* binding */ setItemAsync; },\n/* harmony export */ sleep: function() { return /* binding */ sleep; },\n/* harmony export */ supportsLocalStorage: function() { return /* binding */ supportsLocalStorage; },\n/* harmony export */ userNotAvailableProxy: function() { return /* binding */ userNotAvailableProxy; },\n/* harmony export */ uuid: function() { return /* binding */ uuid; },\n/* harmony export */ validateExp: function() { return /* binding */ validateExp; },\n/* harmony export */ validateUUID: function() { return /* binding */ validateUUID; }\n/* harmony export */ });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/constants.js\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./errors */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/errors.js\");\n/* harmony import */ var _base64url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base64url */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/base64url.js\");\n\r\n\r\n\r\nfunction expiresAt(expiresIn) {\r\n const timeNow = Math.round(Date.now() / 1000);\r\n return timeNow + expiresIn;\r\n}\r\nfunction uuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\nconst isBrowser = () => typeof window !== 'undefined' && typeof document !== 'undefined';\r\nconst localStorageWriteTests = {\r\n tested: false,\r\n writable: false,\r\n};\r\n/**\r\n * Checks whether localStorage is supported on this browser.\r\n */\r\nconst supportsLocalStorage = () => {\r\n if (!isBrowser()) {\r\n return false;\r\n }\r\n try {\r\n if (typeof globalThis.localStorage !== 'object') {\r\n return false;\r\n }\r\n }\r\n catch (e) {\r\n // DOM exception when accessing `localStorage`\r\n return false;\r\n }\r\n if (localStorageWriteTests.tested) {\r\n return localStorageWriteTests.writable;\r\n }\r\n const randomKey = `lswt-${Math.random()}${Math.random()}`;\r\n try {\r\n globalThis.localStorage.setItem(randomKey, randomKey);\r\n globalThis.localStorage.removeItem(randomKey);\r\n localStorageWriteTests.tested = true;\r\n localStorageWriteTests.writable = true;\r\n }\r\n catch (e) {\r\n // localStorage can't be written to\r\n // https://www.chromium.org/for-testers/bug-reporting-guidelines/uncaught-securityerror-failed-to-read-the-localstorage-property-from-window-access-is-denied-for-this-document\r\n localStorageWriteTests.tested = true;\r\n localStorageWriteTests.writable = false;\r\n }\r\n return localStorageWriteTests.writable;\r\n};\r\n/**\r\n * Extracts parameters encoded in the URL both in the query and fragment.\r\n */\r\nfunction parseParametersFromURL(href) {\r\n const result = {};\r\n const url = new URL(href);\r\n if (url.hash && url.hash[0] === '#') {\r\n try {\r\n const hashSearchParams = new URLSearchParams(url.hash.substring(1));\r\n hashSearchParams.forEach((value, key) => {\r\n result[key] = value;\r\n });\r\n }\r\n catch (e) {\r\n // hash is not a query string\r\n }\r\n }\r\n // search parameters take precedence over hash parameters\r\n url.searchParams.forEach((value, key) => {\r\n result[key] = value;\r\n });\r\n return result;\r\n}\r\nconst resolveFetch = (customFetch) => {\r\n let _fetch;\r\n if (customFetch) {\r\n _fetch = customFetch;\r\n }\r\n else if (typeof fetch === 'undefined') {\r\n _fetch = (...args) => Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(app-pages-browser)/./node_modules/@supabase/node-fetch/browser.js\")).then(({ default: fetch }) => fetch(...args));\r\n }\r\n else {\r\n _fetch = fetch;\r\n }\r\n return (...args) => _fetch(...args);\r\n};\r\nconst looksLikeFetchResponse = (maybeResponse) => {\r\n return (typeof maybeResponse === 'object' &&\r\n maybeResponse !== null &&\r\n 'status' in maybeResponse &&\r\n 'ok' in maybeResponse &&\r\n 'json' in maybeResponse &&\r\n typeof maybeResponse.json === 'function');\r\n};\r\n// Storage helpers\r\nconst setItemAsync = async (storage, key, data) => {\r\n await storage.setItem(key, JSON.stringify(data));\r\n};\r\nconst getItemAsync = async (storage, key) => {\r\n const value = await storage.getItem(key);\r\n if (!value) {\r\n return null;\r\n }\r\n try {\r\n return JSON.parse(value);\r\n }\r\n catch (_a) {\r\n return value;\r\n }\r\n};\r\nconst removeItemAsync = async (storage, key) => {\r\n await storage.removeItem(key);\r\n};\r\n/**\r\n * A deferred represents some asynchronous work that is not yet finished, which\r\n * may or may not culminate in a value.\r\n * Taken from: https://github.com/mike-north/types/blob/master/src/async.ts\r\n */\r\nclass Deferred {\r\n constructor() {\r\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\r\n ;\r\n this.promise = new Deferred.promiseConstructor((res, rej) => {\r\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\r\n ;\r\n this.resolve = res;\r\n this.reject = rej;\r\n });\r\n }\r\n}\r\nDeferred.promiseConstructor = Promise;\r\nfunction decodeJWT(token) {\r\n const parts = token.split('.');\r\n if (parts.length !== 3) {\r\n throw new _errors__WEBPACK_IMPORTED_MODULE_1__.AuthInvalidJwtError('Invalid JWT structure');\r\n }\r\n // Regex checks for base64url format\r\n for (let i = 0; i < parts.length; i++) {\r\n if (!_constants__WEBPACK_IMPORTED_MODULE_0__.BASE64URL_REGEX.test(parts[i])) {\r\n throw new _errors__WEBPACK_IMPORTED_MODULE_1__.AuthInvalidJwtError('JWT not in base64url format');\r\n }\r\n }\r\n const data = {\r\n // using base64url lib\r\n header: JSON.parse((0,_base64url__WEBPACK_IMPORTED_MODULE_2__.stringFromBase64URL)(parts[0])),\r\n payload: JSON.parse((0,_base64url__WEBPACK_IMPORTED_MODULE_2__.stringFromBase64URL)(parts[1])),\r\n signature: (0,_base64url__WEBPACK_IMPORTED_MODULE_2__.base64UrlToUint8Array)(parts[2]),\r\n raw: {\r\n header: parts[0],\r\n payload: parts[1],\r\n },\r\n };\r\n return data;\r\n}\r\n/**\r\n * Creates a promise that resolves to null after some time.\r\n */\r\nasync function sleep(time) {\r\n return await new Promise((accept) => {\r\n setTimeout(() => accept(null), time);\r\n });\r\n}\r\n/**\r\n * Converts the provided async function into a retryable function. Each result\r\n * or thrown error is sent to the isRetryable function which should return true\r\n * if the function should run again.\r\n */\r\nfunction retryable(fn, isRetryable) {\r\n const promise = new Promise((accept, reject) => {\r\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\r\n ;\r\n (async () => {\r\n for (let attempt = 0; attempt < Infinity; attempt++) {\r\n try {\r\n const result = await fn(attempt);\r\n if (!isRetryable(attempt, null, result)) {\r\n accept(result);\r\n return;\r\n }\r\n }\r\n catch (e) {\r\n if (!isRetryable(attempt, e)) {\r\n reject(e);\r\n return;\r\n }\r\n }\r\n }\r\n })();\r\n });\r\n return promise;\r\n}\r\nfunction dec2hex(dec) {\r\n return ('0' + dec.toString(16)).substr(-2);\r\n}\r\n// Functions below taken from: https://stackoverflow.com/questions/63309409/creating-a-code-verifier-and-challenge-for-pkce-auth-on-spotify-api-in-reactjs\r\nfunction generatePKCEVerifier() {\r\n const verifierLength = 56;\r\n const array = new Uint32Array(verifierLength);\r\n if (typeof crypto === 'undefined') {\r\n const charSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\r\n const charSetLen = charSet.length;\r\n let verifier = '';\r\n for (let i = 0; i < verifierLength; i++) {\r\n verifier += charSet.charAt(Math.floor(Math.random() * charSetLen));\r\n }\r\n return verifier;\r\n }\r\n crypto.getRandomValues(array);\r\n return Array.from(array, dec2hex).join('');\r\n}\r\nasync function sha256(randomString) {\r\n const encoder = new TextEncoder();\r\n const encodedData = encoder.encode(randomString);\r\n const hash = await crypto.subtle.digest('SHA-256', encodedData);\r\n const bytes = new Uint8Array(hash);\r\n return Array.from(bytes)\r\n .map((c) => String.fromCharCode(c))\r\n .join('');\r\n}\r\nasync function generatePKCEChallenge(verifier) {\r\n const hasCryptoSupport = typeof crypto !== 'undefined' &&\r\n typeof crypto.subtle !== 'undefined' &&\r\n typeof TextEncoder !== 'undefined';\r\n if (!hasCryptoSupport) {\r\n console.warn('WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256.');\r\n return verifier;\r\n }\r\n const hashed = await sha256(verifier);\r\n return btoa(hashed).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\r\n}\r\nasync function getCodeChallengeAndMethod(storage, storageKey, isPasswordRecovery = false) {\r\n const codeVerifier = generatePKCEVerifier();\r\n let storedCodeVerifier = codeVerifier;\r\n if (isPasswordRecovery) {\r\n storedCodeVerifier += '/PASSWORD_RECOVERY';\r\n }\r\n await setItemAsync(storage, `${storageKey}-code-verifier`, storedCodeVerifier);\r\n const codeChallenge = await generatePKCEChallenge(codeVerifier);\r\n const codeChallengeMethod = codeVerifier === codeChallenge ? 'plain' : 's256';\r\n return [codeChallenge, codeChallengeMethod];\r\n}\r\n/** Parses the API version which is 2YYY-MM-DD. */\r\nconst API_VERSION_REGEX = /^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;\r\nfunction parseResponseAPIVersion(response) {\r\n const apiVersion = response.headers.get(_constants__WEBPACK_IMPORTED_MODULE_0__.API_VERSION_HEADER_NAME);\r\n if (!apiVersion) {\r\n return null;\r\n }\r\n if (!apiVersion.match(API_VERSION_REGEX)) {\r\n return null;\r\n }\r\n try {\r\n const date = new Date(`${apiVersion}T00:00:00.0Z`);\r\n return date;\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n}\r\nfunction validateExp(exp) {\r\n if (!exp) {\r\n throw new Error('Missing exp claim');\r\n }\r\n const timeNow = Math.floor(Date.now() / 1000);\r\n if (exp <= timeNow) {\r\n throw new Error('JWT has expired');\r\n }\r\n}\r\nfunction getAlgorithm(alg) {\r\n switch (alg) {\r\n case 'RS256':\r\n return {\r\n name: 'RSASSA-PKCS1-v1_5',\r\n hash: { name: 'SHA-256' },\r\n };\r\n case 'ES256':\r\n return {\r\n name: 'ECDSA',\r\n namedCurve: 'P-256',\r\n hash: { name: 'SHA-256' },\r\n };\r\n default:\r\n throw new Error('Invalid alg claim');\r\n }\r\n}\r\nconst UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;\r\nfunction validateUUID(str) {\r\n if (!UUID_REGEX.test(str)) {\r\n throw new Error('@supabase/auth-js: Expected parameter to be UUID but is not');\r\n }\r\n}\r\nfunction userNotAvailableProxy() {\r\n const proxyTarget = {};\r\n return new Proxy(proxyTarget, {\r\n get: (target, prop) => {\r\n if (prop === '__isUserNotAvailableProxy') {\r\n return true;\r\n }\r\n // Preventative check for common problematic symbols during cloning/inspection\r\n // These symbols might be accessed by structuredClone or other internal mechanisms.\r\n if (typeof prop === 'symbol') {\r\n const sProp = prop.toString();\r\n if (sProp === 'Symbol(Symbol.toPrimitive)' ||\r\n sProp === 'Symbol(Symbol.toStringTag)' ||\r\n sProp === 'Symbol(util.inspect.custom)') {\r\n // Node.js util.inspect\r\n return undefined;\r\n }\r\n }\r\n throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the \"${prop}\" property of the session object is not supported. Please use getUser() instead.`);\r\n },\r\n set: (_target, prop) => {\r\n throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the \"${prop}\" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`);\r\n },\r\n deleteProperty: (_target, prop) => {\r\n throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the \"${prop}\" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`);\r\n },\r\n });\r\n}\r\n/**\r\n * Deep clones a JSON-serializable object using JSON.parse(JSON.stringify(obj)).\r\n * Note: Only works for JSON-safe data.\r\n */\r\nfunction deepClone(obj) {\r\n return JSON.parse(JSON.stringify(obj));\r\n}\r\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9saWIvaGVscGVycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1RTtBQUN4QjtBQUMwQjtBQUNsRTtBQUNQO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGNBQWMsRUFBRSxjQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixzTEFBOEIsU0FBUyxnQkFBZ0I7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQSxrQkFBa0Isd0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQSxvQkFBb0Isa0JBQWtCO0FBQ3RDLGFBQWEsdURBQWU7QUFDNUIsc0JBQXNCLHdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQiwrREFBbUI7QUFDOUMsNEJBQTRCLCtEQUFtQjtBQUMvQyxtQkFBbUIsaUVBQXFCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxvQkFBb0I7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isb0JBQW9CO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxXQUFXO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsRUFBRTtBQUM5QjtBQUNQLDRDQUE0QywrREFBdUI7QUFDbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsV0FBVztBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGlCQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGlCQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxHQUFHO0FBQzFFO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4SkFBOEosS0FBSztBQUNuSyxTQUFTO0FBQ1Q7QUFDQSw0SkFBNEosS0FBSztBQUNqSyxTQUFTO0FBQ1Q7QUFDQSw2SkFBNkosS0FBSztBQUNsSyxTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2F1dGgtanMvZGlzdC9tb2R1bGUvbGliL2hlbHBlcnMuanM/ZjQxYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElfVkVSU0lPTl9IRUFERVJfTkFNRSwgQkFTRTY0VVJMX1JFR0VYIH0gZnJvbSAnLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBBdXRoSW52YWxpZEp3dEVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xyXG5pbXBvcnQgeyBiYXNlNjRVcmxUb1VpbnQ4QXJyYXksIHN0cmluZ0Zyb21CYXNlNjRVUkwgfSBmcm9tICcuL2Jhc2U2NHVybCc7XHJcbmV4cG9ydCBmdW5jdGlvbiBleHBpcmVzQXQoZXhwaXJlc0luKSB7XHJcbiAgICBjb25zdCB0aW1lTm93ID0gTWF0aC5yb3VuZChEYXRlLm5vdygpIC8gMTAwMCk7XHJcbiAgICByZXR1cm4gdGltZU5vdyArIGV4cGlyZXNJbjtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gdXVpZCgpIHtcclxuICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9uIChjKSB7XHJcbiAgICAgICAgY29uc3QgciA9IChNYXRoLnJhbmRvbSgpICogMTYpIHwgMCwgdiA9IGMgPT0gJ3gnID8gciA6IChyICYgMHgzKSB8IDB4ODtcclxuICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICB9KTtcclxufVxyXG5leHBvcnQgY29uc3QgaXNCcm93c2VyID0gKCkgPT4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJztcclxuY29uc3QgbG9jYWxTdG9yYWdlV3JpdGVUZXN0cyA9IHtcclxuICAgIHRlc3RlZDogZmFsc2UsXHJcbiAgICB3cml0YWJsZTogZmFsc2UsXHJcbn07XHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBsb2NhbFN0b3JhZ2UgaXMgc3VwcG9ydGVkIG9uIHRoaXMgYnJvd3Nlci5cclxuICovXHJcbmV4cG9ydCBjb25zdCBzdXBwb3J0c0xvY2FsU3RvcmFnZSA9ICgpID0+IHtcclxuICAgIGlmICghaXNCcm93c2VyKCkpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgZ2xvYmFsVGhpcy5sb2NhbFN0b3JhZ2UgIT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgIC8vIERPTSBleGNlcHRpb24gd2hlbiBhY2Nlc3NpbmcgYGxvY2FsU3RvcmFnZWBcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAobG9jYWxTdG9yYWdlV3JpdGVUZXN0cy50ZXN0ZWQpIHtcclxuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlV3JpdGVUZXN0cy53cml0YWJsZTtcclxuICAgIH1cclxuICAgIGNvbnN0IHJhbmRvbUtleSA9IGBsc3d0LSR7TWF0aC5yYW5kb20oKX0ke01hdGgucmFuZG9tKCl9YDtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgZ2xvYmFsVGhpcy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShyYW5kb21LZXksIHJhbmRvbUtleSk7XHJcbiAgICAgICAgZ2xvYmFsVGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShyYW5kb21LZXkpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZVdyaXRlVGVzdHMudGVzdGVkID0gdHJ1ZTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2VXcml0ZVRlc3RzLndyaXRhYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgLy8gbG9jYWxTdG9yYWdlIGNhbid0IGJlIHdyaXR0ZW4gdG9cclxuICAgICAgICAvLyBodHRwczovL3d3dy5jaHJvbWl1bS5vcmcvZm9yLXRlc3RlcnMvYnVnLXJlcG9ydGluZy1ndWlkZWxpbmVzL3VuY2F1Z2h0LXNlY3VyaXR5ZXJyb3ItZmFpbGVkLXRvLXJlYWQtdGhlLWxvY2Fsc3RvcmFnZS1wcm9wZXJ0eS1mcm9tLXdpbmRvdy1hY2Nlc3MtaXMtZGVuaWVkLWZvci10aGlzLWRvY3VtZW50XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlV3JpdGVUZXN0cy50ZXN0ZWQgPSB0cnVlO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZVdyaXRlVGVzdHMud3JpdGFibGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2VXcml0ZVRlc3RzLndyaXRhYmxlO1xyXG59O1xyXG4vKipcclxuICogRXh0cmFjdHMgcGFyYW1ldGVycyBlbmNvZGVkIGluIHRoZSBVUkwgYm90aCBpbiB0aGUgcXVlcnkgYW5kIGZyYWdtZW50LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGFyYW1ldGVyc0Zyb21VUkwoaHJlZikge1xyXG4gICAgY29uc3QgcmVzdWx0ID0ge307XHJcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGhyZWYpO1xyXG4gICAgaWYgKHVybC5oYXNoICYmIHVybC5oYXNoWzBdID09PSAnIycpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBoYXNoU2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmwuaGFzaC5zdWJzdHJpbmcoMSkpO1xyXG4gICAgICAgICAgICBoYXNoU2VhcmNoUGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAvLyBoYXNoIGlzIG5vdCBhIHF1ZXJ5IHN0cmluZ1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIHNlYXJjaCBwYXJhbWV0ZXJzIHRha2UgcHJlY2VkZW5jZSBvdmVyIGhhc2ggcGFyYW1ldGVyc1xyXG4gICAgdXJsLnNlYXJjaFBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XHJcbiAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5leHBvcnQgY29uc3QgcmVzb2x2ZUZldGNoID0gKGN1c3RvbUZldGNoKSA9PiB7XHJcbiAgICBsZXQgX2ZldGNoO1xyXG4gICAgaWYgKGN1c3RvbUZldGNoKSB7XHJcbiAgICAgICAgX2ZldGNoID0gY3VzdG9tRmV0Y2g7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgZmV0Y2ggPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgX2ZldGNoID0gKC4uLmFyZ3MpID0+IGltcG9ydCgnQHN1cGFiYXNlL25vZGUtZmV0Y2gnKS50aGVuKCh7IGRlZmF1bHQ6IGZldGNoIH0pID0+IGZldGNoKC4uLmFyZ3MpKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIF9mZXRjaCA9IGZldGNoO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICguLi5hcmdzKSA9PiBfZmV0Y2goLi4uYXJncyk7XHJcbn07XHJcbmV4cG9ydCBjb25zdCBsb29rc0xpa2VGZXRjaFJlc3BvbnNlID0gKG1heWJlUmVzcG9uc2UpID0+IHtcclxuICAgIHJldHVybiAodHlwZW9mIG1heWJlUmVzcG9uc2UgPT09ICdvYmplY3QnICYmXHJcbiAgICAgICAgbWF5YmVSZXNwb25zZSAhPT0gbnVsbCAmJlxyXG4gICAgICAgICdzdGF0dXMnIGluIG1heWJlUmVzcG9uc2UgJiZcclxuICAgICAgICAnb2snIGluIG1heWJlUmVzcG9uc2UgJiZcclxuICAgICAgICAnanNvbicgaW4gbWF5YmVSZXNwb25zZSAmJlxyXG4gICAgICAgIHR5cGVvZiBtYXliZVJlc3BvbnNlLmpzb24gPT09ICdmdW5jdGlvbicpO1xyXG59O1xyXG4vLyBTdG9yYWdlIGhlbHBlcnNcclxuZXhwb3J0IGNvbnN0IHNldEl0ZW1Bc3luYyA9IGFzeW5jIChzdG9yYWdlLCBrZXksIGRhdGEpID0+IHtcclxuICAgIGF3YWl0IHN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcclxufTtcclxuZXhwb3J0IGNvbnN0IGdldEl0ZW1Bc3luYyA9IGFzeW5jIChzdG9yYWdlLCBrZXkpID0+IHtcclxuICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgc3RvcmFnZS5nZXRJdGVtKGtleSk7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChfYSkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxufTtcclxuZXhwb3J0IGNvbnN0IHJlbW92ZUl0ZW1Bc3luYyA9IGFzeW5jIChzdG9yYWdlLCBrZXkpID0+IHtcclxuICAgIGF3YWl0IHN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xyXG59O1xyXG4vKipcclxuICogQSBkZWZlcnJlZCByZXByZXNlbnRzIHNvbWUgYXN5bmNocm9ub3VzIHdvcmsgdGhhdCBpcyBub3QgeWV0IGZpbmlzaGVkLCB3aGljaFxyXG4gKiBtYXkgb3IgbWF5IG5vdCBjdWxtaW5hdGUgaW4gYSB2YWx1ZS5cclxuICogVGFrZW4gZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL21pa2Utbm9ydGgvdHlwZXMvYmxvYi9tYXN0ZXIvc3JjL2FzeW5jLnRzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRGVmZXJyZWQge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHRyYS1zZW1pXHJcbiAgICAgICAgO1xyXG4gICAgICAgIHRoaXMucHJvbWlzZSA9IG5ldyBEZWZlcnJlZC5wcm9taXNlQ29uc3RydWN0b3IoKHJlcywgcmVqKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXh0cmEtc2VtaVxyXG4gICAgICAgICAgICA7XHJcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZSA9IHJlcztcclxuICAgICAgICAgICAgdGhpcy5yZWplY3QgPSByZWo7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuRGVmZXJyZWQucHJvbWlzZUNvbnN0cnVjdG9yID0gUHJvbWlzZTtcclxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZUpXVCh0b2tlbikge1xyXG4gICAgY29uc3QgcGFydHMgPSB0b2tlbi5zcGxpdCgnLicpO1xyXG4gICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMykge1xyXG4gICAgICAgIHRocm93IG5ldyBBdXRoSW52YWxpZEp3dEVycm9yKCdJbnZhbGlkIEpXVCBzdHJ1Y3R1cmUnKTtcclxuICAgIH1cclxuICAgIC8vIFJlZ2V4IGNoZWNrcyBmb3IgYmFzZTY0dXJsIGZvcm1hdFxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICghQkFTRTY0VVJMX1JFR0VYLnRlc3QocGFydHNbaV0pKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBBdXRoSW52YWxpZEp3dEVycm9yKCdKV1Qgbm90IGluIGJhc2U2NHVybCBmb3JtYXQnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgIC8vIHVzaW5nIGJhc2U2NHVybCBsaWJcclxuICAgICAgICBoZWFkZXI6IEpTT04ucGFyc2Uoc3RyaW5nRnJvbUJhc2U2NFVSTChwYXJ0c1swXSkpLFxyXG4gICAgICAgIHBheWxvYWQ6IEpTT04ucGFyc2Uoc3RyaW5nRnJvbUJhc2U2NFVSTChwYXJ0c1sxXSkpLFxyXG4gICAgICAgIHNpZ25hdHVyZTogYmFzZTY0VXJsVG9VaW50OEFycmF5KHBhcnRzWzJdKSxcclxuICAgICAgICByYXc6IHtcclxuICAgICAgICAgICAgaGVhZGVyOiBwYXJ0c1swXSxcclxuICAgICAgICAgICAgcGF5bG9hZDogcGFydHNbMV0sXHJcbiAgICAgICAgfSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gZGF0YTtcclxufVxyXG4vKipcclxuICogQ3JlYXRlcyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBudWxsIGFmdGVyIHNvbWUgdGltZS5cclxuICovXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzbGVlcCh0aW1lKSB7XHJcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKGFjY2VwdCkgPT4ge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gYWNjZXB0KG51bGwpLCB0aW1lKTtcclxuICAgIH0pO1xyXG59XHJcbi8qKlxyXG4gKiBDb252ZXJ0cyB0aGUgcHJvdmlkZWQgYXN5bmMgZnVuY3Rpb24gaW50byBhIHJldHJ5YWJsZSBmdW5jdGlvbi4gRWFjaCByZXN1bHRcclxuICogb3IgdGhyb3duIGVycm9yIGlzIHNlbnQgdG8gdGhlIGlzUmV0cnlhYmxlIGZ1bmN0aW9uIHdoaWNoIHNob3VsZCByZXR1cm4gdHJ1ZVxyXG4gKiBpZiB0aGUgZnVuY3Rpb24gc2hvdWxkIHJ1biBhZ2Fpbi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZXRyeWFibGUoZm4sIGlzUmV0cnlhYmxlKSB7XHJcbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKGFjY2VwdCwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHRyYS1zZW1pXHJcbiAgICAgICAgO1xyXG4gICAgICAgIChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGF0dGVtcHQgPSAwOyBhdHRlbXB0IDwgSW5maW5pdHk7IGF0dGVtcHQrKykge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmbihhdHRlbXB0KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzUmV0cnlhYmxlKGF0dGVtcHQsIG51bGwsIHJlc3VsdCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0KHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNSZXRyeWFibGUoYXR0ZW1wdCwgZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSkoKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHByb21pc2U7XHJcbn1cclxuZnVuY3Rpb24gZGVjMmhleChkZWMpIHtcclxuICAgIHJldHVybiAoJzAnICsgZGVjLnRvU3RyaW5nKDE2KSkuc3Vic3RyKC0yKTtcclxufVxyXG4vLyBGdW5jdGlvbnMgYmVsb3cgdGFrZW4gZnJvbTogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNjMzMDk0MDkvY3JlYXRpbmctYS1jb2RlLXZlcmlmaWVyLWFuZC1jaGFsbGVuZ2UtZm9yLXBrY2UtYXV0aC1vbi1zcG90aWZ5LWFwaS1pbi1yZWFjdGpzXHJcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVBLQ0VWZXJpZmllcigpIHtcclxuICAgIGNvbnN0IHZlcmlmaWVyTGVuZ3RoID0gNTY7XHJcbiAgICBjb25zdCBhcnJheSA9IG5ldyBVaW50MzJBcnJheSh2ZXJpZmllckxlbmd0aCk7XHJcbiAgICBpZiAodHlwZW9mIGNyeXB0byA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICBjb25zdCBjaGFyU2V0ID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LS5ffic7XHJcbiAgICAgICAgY29uc3QgY2hhclNldExlbiA9IGNoYXJTZXQubGVuZ3RoO1xyXG4gICAgICAgIGxldCB2ZXJpZmllciA9ICcnO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmVyaWZpZXJMZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB2ZXJpZmllciArPSBjaGFyU2V0LmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyU2V0TGVuKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB2ZXJpZmllcjtcclxuICAgIH1cclxuICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYXJyYXkpO1xyXG4gICAgcmV0dXJuIEFycmF5LmZyb20oYXJyYXksIGRlYzJoZXgpLmpvaW4oJycpO1xyXG59XHJcbmFzeW5jIGZ1bmN0aW9uIHNoYTI1NihyYW5kb21TdHJpbmcpIHtcclxuICAgIGNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcclxuICAgIGNvbnN0IGVuY29kZWREYXRhID0gZW5jb2Rlci5lbmNvZGUocmFuZG9tU3RyaW5nKTtcclxuICAgIGNvbnN0IGhhc2ggPSBhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIGVuY29kZWREYXRhKTtcclxuICAgIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoaGFzaCk7XHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbShieXRlcylcclxuICAgICAgICAubWFwKChjKSA9PiBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKVxyXG4gICAgICAgIC5qb2luKCcnKTtcclxufVxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVQS0NFQ2hhbGxlbmdlKHZlcmlmaWVyKSB7XHJcbiAgICBjb25zdCBoYXNDcnlwdG9TdXBwb3J0ID0gdHlwZW9mIGNyeXB0byAhPT0gJ3VuZGVmaW5lZCcgJiZcclxuICAgICAgICB0eXBlb2YgY3J5cHRvLnN1YnRsZSAhPT0gJ3VuZGVmaW5lZCcgJiZcclxuICAgICAgICB0eXBlb2YgVGV4dEVuY29kZXIgIT09ICd1bmRlZmluZWQnO1xyXG4gICAgaWYgKCFoYXNDcnlwdG9TdXBwb3J0KSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKCdXZWJDcnlwdG8gQVBJIGlzIG5vdCBzdXBwb3J0ZWQuIENvZGUgY2hhbGxlbmdlIG1ldGhvZCB3aWxsIGRlZmF1bHQgdG8gdXNlIHBsYWluIGluc3RlYWQgb2Ygc2hhMjU2LicpO1xyXG4gICAgICAgIHJldHVybiB2ZXJpZmllcjtcclxuICAgIH1cclxuICAgIGNvbnN0IGhhc2hlZCA9IGF3YWl0IHNoYTI1Nih2ZXJpZmllcik7XHJcbiAgICByZXR1cm4gYnRvYShoYXNoZWQpLnJlcGxhY2UoL1xcKy9nLCAnLScpLnJlcGxhY2UoL1xcLy9nLCAnXycpLnJlcGxhY2UoLz0rJC8sICcnKTtcclxufVxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Q29kZUNoYWxsZW5nZUFuZE1ldGhvZChzdG9yYWdlLCBzdG9yYWdlS2V5LCBpc1Bhc3N3b3JkUmVjb3ZlcnkgPSBmYWxzZSkge1xyXG4gICAgY29uc3QgY29kZVZlcmlmaWVyID0gZ2VuZXJhdGVQS0NFVmVyaWZpZXIoKTtcclxuICAgIGxldCBzdG9yZWRDb2RlVmVyaWZpZXIgPSBjb2RlVmVyaWZpZXI7XHJcbiAgICBpZiAoaXNQYXNzd29yZFJlY292ZXJ5KSB7XHJcbiAgICAgICAgc3RvcmVkQ29kZVZlcmlmaWVyICs9ICcvUEFTU1dPUkRfUkVDT1ZFUlknO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgc2V0SXRlbUFzeW5jKHN0b3JhZ2UsIGAke3N0b3JhZ2VLZXl9LWNvZGUtdmVyaWZpZXJgLCBzdG9yZWRDb2RlVmVyaWZpZXIpO1xyXG4gICAgY29uc3QgY29kZUNoYWxsZW5nZSA9IGF3YWl0IGdlbmVyYXRlUEtDRUNoYWxsZW5nZShjb2RlVmVyaWZpZXIpO1xyXG4gICAgY29uc3QgY29kZUNoYWxsZW5nZU1ldGhvZCA9IGNvZGVWZXJpZmllciA9PT0gY29kZUNoYWxsZW5nZSA/ICdwbGFpbicgOiAnczI1Nic7XHJcbiAgICByZXR1cm4gW2NvZGVDaGFsbGVuZ2UsIGNvZGVDaGFsbGVuZ2VNZXRob2RdO1xyXG59XHJcbi8qKiBQYXJzZXMgdGhlIEFQSSB2ZXJzaW9uIHdoaWNoIGlzIDJZWVktTU0tREQuICovXHJcbmNvbnN0IEFQSV9WRVJTSU9OX1JFR0VYID0gL14yWzAtOV17M30tKDBbMS05XXwxWzAtMl0pLSgwWzEtOV18MVswLTldfDJbMC05XXwzWzAtMV0pJC9pO1xyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZXNwb25zZUFQSVZlcnNpb24ocmVzcG9uc2UpIHtcclxuICAgIGNvbnN0IGFwaVZlcnNpb24gPSByZXNwb25zZS5oZWFkZXJzLmdldChBUElfVkVSU0lPTl9IRUFERVJfTkFNRSk7XHJcbiAgICBpZiAoIWFwaVZlcnNpb24pIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICghYXBpVmVyc2lvbi5tYXRjaChBUElfVkVSU0lPTl9SRUdFWCkpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGAke2FwaVZlcnNpb259VDAwOjAwOjAwLjBaYCk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUV4cChleHApIHtcclxuICAgIGlmICghZXhwKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGV4cCBjbGFpbScpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGltZU5vdyA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xyXG4gICAgaWYgKGV4cCA8PSB0aW1lTm93KSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdKV1QgaGFzIGV4cGlyZWQnKTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxnb3JpdGhtKGFsZykge1xyXG4gICAgc3dpdGNoIChhbGcpIHtcclxuICAgICAgICBjYXNlICdSUzI1Nic6XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnUlNBU1NBLVBLQ1MxLXYxXzUnLFxyXG4gICAgICAgICAgICAgICAgaGFzaDogeyBuYW1lOiAnU0hBLTI1NicgfSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICBjYXNlICdFUzI1Nic6XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnRUNEU0EnLFxyXG4gICAgICAgICAgICAgICAgbmFtZWRDdXJ2ZTogJ1AtMjU2JyxcclxuICAgICAgICAgICAgICAgIGhhc2g6IHsgbmFtZTogJ1NIQS0yNTYnIH0sXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGFsZyBjbGFpbScpO1xyXG4gICAgfVxyXG59XHJcbmNvbnN0IFVVSURfUkVHRVggPSAvXlswLTlhLWZdezh9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezEyfSQvO1xyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVVVUlEKHN0cikge1xyXG4gICAgaWYgKCFVVUlEX1JFR0VYLnRlc3Qoc3RyKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQHN1cGFiYXNlL2F1dGgtanM6IEV4cGVjdGVkIHBhcmFtZXRlciB0byBiZSBVVUlEIGJ1dCBpcyBub3QnKTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgZnVuY3Rpb24gdXNlck5vdEF2YWlsYWJsZVByb3h5KCkge1xyXG4gICAgY29uc3QgcHJveHlUYXJnZXQgPSB7fTtcclxuICAgIHJldHVybiBuZXcgUHJveHkocHJveHlUYXJnZXQsIHtcclxuICAgICAgICBnZXQ6ICh0YXJnZXQsIHByb3ApID0+IHtcclxuICAgICAgICAgICAgaWYgKHByb3AgPT09ICdfX2lzVXNlck5vdEF2YWlsYWJsZVByb3h5Jykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gUHJldmVudGF0aXZlIGNoZWNrIGZvciBjb21tb24gcHJvYmxlbWF0aWMgc3ltYm9scyBkdXJpbmcgY2xvbmluZy9pbnNwZWN0aW9uXHJcbiAgICAgICAgICAgIC8vIFRoZXNlIHN5bWJvbHMgbWlnaHQgYmUgYWNjZXNzZWQgYnkgc3RydWN0dXJlZENsb25lIG9yIG90aGVyIGludGVybmFsIG1lY2hhbmlzbXMuXHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N5bWJvbCcpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNQcm9wID0gcHJvcC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNQcm9wID09PSAnU3ltYm9sKFN5bWJvbC50b1ByaW1pdGl2ZSknIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgc1Byb3AgPT09ICdTeW1ib2woU3ltYm9sLnRvU3RyaW5nVGFnKScgfHxcclxuICAgICAgICAgICAgICAgICAgICBzUHJvcCA9PT0gJ1N5bWJvbCh1dGlsLmluc3BlY3QuY3VzdG9tKScpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBOb2RlLmpzIHV0aWwuaW5zcGVjdFxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAc3VwYWJhc2UvYXV0aC1qczogY2xpZW50IHdhcyBjcmVhdGVkIHdpdGggdXNlclN0b3JhZ2Ugb3B0aW9uIGFuZCB0aGVyZSB3YXMgbm8gdXNlciBzdG9yZWQgaW4gdGhlIHVzZXIgc3RvcmFnZS4gQWNjZXNzaW5nIHRoZSBcIiR7cHJvcH1cIiBwcm9wZXJ0eSBvZiB0aGUgc2Vzc2lvbiBvYmplY3QgaXMgbm90IHN1cHBvcnRlZC4gUGxlYXNlIHVzZSBnZXRVc2VyKCkgaW5zdGVhZC5gKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNldDogKF90YXJnZXQsIHByb3ApID0+IHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAc3VwYWJhc2UvYXV0aC1qczogY2xpZW50IHdhcyBjcmVhdGVkIHdpdGggdXNlclN0b3JhZ2Ugb3B0aW9uIGFuZCB0aGVyZSB3YXMgbm8gdXNlciBzdG9yZWQgaW4gdGhlIHVzZXIgc3RvcmFnZS4gU2V0dGluZyB0aGUgXCIke3Byb3B9XCIgcHJvcGVydHkgb2YgdGhlIHNlc3Npb24gb2JqZWN0IGlzIG5vdCBzdXBwb3J0ZWQuIFBsZWFzZSB1c2UgZ2V0VXNlcigpIHRvIGZldGNoIGEgdXNlciBvYmplY3QgeW91IGNhbiBtYW5pcHVsYXRlLmApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGVsZXRlUHJvcGVydHk6IChfdGFyZ2V0LCBwcm9wKSA9PiB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQHN1cGFiYXNlL2F1dGgtanM6IGNsaWVudCB3YXMgY3JlYXRlZCB3aXRoIHVzZXJTdG9yYWdlIG9wdGlvbiBhbmQgdGhlcmUgd2FzIG5vIHVzZXIgc3RvcmVkIGluIHRoZSB1c2VyIHN0b3JhZ2UuIERlbGV0aW5nIHRoZSBcIiR7cHJvcH1cIiBwcm9wZXJ0eSBvZiB0aGUgc2Vzc2lvbiBvYmplY3QgaXMgbm90IHN1cHBvcnRlZC4gUGxlYXNlIHVzZSBnZXRVc2VyKCkgdG8gZmV0Y2ggYSB1c2VyIG9iamVjdCB5b3UgY2FuIG1hbmlwdWxhdGUuYCk7XHJcbiAgICAgICAgfSxcclxuICAgIH0pO1xyXG59XHJcbi8qKlxyXG4gKiBEZWVwIGNsb25lcyBhIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCB1c2luZyBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpLlxyXG4gKiBOb3RlOiBPbmx5IHdvcmtzIGZvciBKU09OLXNhZmUgZGF0YS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWVwQ2xvbmUob2JqKSB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKTtcclxufVxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWxwZXJzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/helpers.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/local-storage.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/lib/local-storage.js ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ memoryLocalStorageAdapter: function() { return /* binding */ memoryLocalStorageAdapter; }\n/* harmony export */ });\n/**\r\n * Returns a localStorage-like object that stores the key-value pairs in\r\n * memory.\r\n */\r\nfunction memoryLocalStorageAdapter(store = {}) {\r\n return {\r\n getItem: (key) => {\r\n return store[key] || null;\r\n },\r\n setItem: (key, value) => {\r\n store[key] = value;\r\n },\r\n removeItem: (key) => {\r\n delete store[key];\r\n },\r\n };\r\n}\r\n//# sourceMappingURL=local-storage.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9saWIvbG9jYWwtc3RvcmFnZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDTyw2Q0FBNkM7QUFDcEQ7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9hdXRoLWpzL2Rpc3QvbW9kdWxlL2xpYi9sb2NhbC1zdG9yYWdlLmpzPzU5NWQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFJldHVybnMgYSBsb2NhbFN0b3JhZ2UtbGlrZSBvYmplY3QgdGhhdCBzdG9yZXMgdGhlIGtleS12YWx1ZSBwYWlycyBpblxyXG4gKiBtZW1vcnkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWVtb3J5TG9jYWxTdG9yYWdlQWRhcHRlcihzdG9yZSA9IHt9KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGdldEl0ZW06IChrZXkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHN0b3JlW2tleV0gfHwgbnVsbDtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNldEl0ZW06IChrZXksIHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHN0b3JlW2tleV0gPSB2YWx1ZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlbW92ZUl0ZW06IChrZXkpID0+IHtcclxuICAgICAgICAgICAgZGVsZXRlIHN0b3JlW2tleV07XHJcbiAgICAgICAgfSxcclxuICAgIH07XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bG9jYWwtc3RvcmFnZS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/local-storage.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/locks.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/lib/locks.js ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LockAcquireTimeoutError: function() { return /* binding */ LockAcquireTimeoutError; },\n/* harmony export */ NavigatorLockAcquireTimeoutError: function() { return /* binding */ NavigatorLockAcquireTimeoutError; },\n/* harmony export */ ProcessLockAcquireTimeoutError: function() { return /* binding */ ProcessLockAcquireTimeoutError; },\n/* harmony export */ internals: function() { return /* binding */ internals; },\n/* harmony export */ navigatorLock: function() { return /* binding */ navigatorLock; },\n/* harmony export */ processLock: function() { return /* binding */ processLock; }\n/* harmony export */ });\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/helpers.js\");\n\r\n/**\r\n * @experimental\r\n */\r\nconst internals = {\r\n /**\r\n * @experimental\r\n */\r\n debug: !!(globalThis &&\r\n (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.supportsLocalStorage)() &&\r\n globalThis.localStorage &&\r\n globalThis.localStorage.getItem('supabase.gotrue-js.locks.debug') === 'true'),\r\n};\r\n/**\r\n * An error thrown when a lock cannot be acquired after some amount of time.\r\n *\r\n * Use the {@link #isAcquireTimeout} property instead of checking with `instanceof`.\r\n */\r\nclass LockAcquireTimeoutError extends Error {\r\n constructor(message) {\r\n super(message);\r\n this.isAcquireTimeout = true;\r\n }\r\n}\r\nclass NavigatorLockAcquireTimeoutError extends LockAcquireTimeoutError {\r\n}\r\nclass ProcessLockAcquireTimeoutError extends LockAcquireTimeoutError {\r\n}\r\n/**\r\n * Implements a global exclusive lock using the Navigator LockManager API. It\r\n * is available on all browsers released after 2022-03-15 with Safari being the\r\n * last one to release support. If the API is not available, this function will\r\n * throw. Make sure you check availablility before configuring {@link\r\n * GoTrueClient}.\r\n *\r\n * You can turn on debugging by setting the `supabase.gotrue-js.locks.debug`\r\n * local storage item to `true`.\r\n *\r\n * Internals:\r\n *\r\n * Since the LockManager API does not preserve stack traces for the async\r\n * function passed in the `request` method, a trick is used where acquiring the\r\n * lock releases a previously started promise to run the operation in the `fn`\r\n * function. The lock waits for that promise to finish (with or without error),\r\n * while the function will finally wait for the result anyway.\r\n *\r\n * @param name Name of the lock to be acquired.\r\n * @param acquireTimeout If negative, no timeout. If 0 an error is thrown if\r\n * the lock can't be acquired without waiting. If positive, the lock acquire\r\n * will time out after so many milliseconds. An error is\r\n * a timeout if it has `isAcquireTimeout` set to true.\r\n * @param fn The operation to run once the lock is acquired.\r\n */\r\nasync function navigatorLock(name, acquireTimeout, fn) {\r\n if (internals.debug) {\r\n console.log('@supabase/gotrue-js: navigatorLock: acquire lock', name, acquireTimeout);\r\n }\r\n const abortController = new globalThis.AbortController();\r\n if (acquireTimeout > 0) {\r\n setTimeout(() => {\r\n abortController.abort();\r\n if (internals.debug) {\r\n console.log('@supabase/gotrue-js: navigatorLock acquire timed out', name);\r\n }\r\n }, acquireTimeout);\r\n }\r\n // MDN article: https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request\r\n // Wrapping navigator.locks.request() with a plain Promise is done as some\r\n // libraries like zone.js patch the Promise object to track the execution\r\n // context. However, it appears that most browsers use an internal promise\r\n // implementation when using the navigator.locks.request() API causing them\r\n // to lose context and emit confusing log messages or break certain features.\r\n // This wrapping is believed to help zone.js track the execution context\r\n // better.\r\n return await Promise.resolve().then(() => globalThis.navigator.locks.request(name, acquireTimeout === 0\r\n ? {\r\n mode: 'exclusive',\r\n ifAvailable: true,\r\n }\r\n : {\r\n mode: 'exclusive',\r\n signal: abortController.signal,\r\n }, async (lock) => {\r\n if (lock) {\r\n if (internals.debug) {\r\n console.log('@supabase/gotrue-js: navigatorLock: acquired', name, lock.name);\r\n }\r\n try {\r\n return await fn();\r\n }\r\n finally {\r\n if (internals.debug) {\r\n console.log('@supabase/gotrue-js: navigatorLock: released', name, lock.name);\r\n }\r\n }\r\n }\r\n else {\r\n if (acquireTimeout === 0) {\r\n if (internals.debug) {\r\n console.log('@supabase/gotrue-js: navigatorLock: not immediately available', name);\r\n }\r\n throw new NavigatorLockAcquireTimeoutError(`Acquiring an exclusive Navigator LockManager lock \"${name}\" immediately failed`);\r\n }\r\n else {\r\n if (internals.debug) {\r\n try {\r\n const result = await globalThis.navigator.locks.query();\r\n console.log('@supabase/gotrue-js: Navigator LockManager state', JSON.stringify(result, null, ' '));\r\n }\r\n catch (e) {\r\n console.warn('@supabase/gotrue-js: Error when querying Navigator LockManager state', e);\r\n }\r\n }\r\n // Browser is not following the Navigator LockManager spec, it\r\n // returned a null lock when we didn't use ifAvailable. So we can\r\n // pretend the lock is acquired in the name of backward compatibility\r\n // and user experience and just run the function.\r\n console.warn('@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request');\r\n return await fn();\r\n }\r\n }\r\n }));\r\n}\r\nconst PROCESS_LOCKS = {};\r\n/**\r\n * Implements a global exclusive lock that works only in the current process.\r\n * Useful for environments like React Native or other non-browser\r\n * single-process (i.e. no concept of \"tabs\") environments.\r\n *\r\n * Use {@link #navigatorLock} in browser environments.\r\n *\r\n * @param name Name of the lock to be acquired.\r\n * @param acquireTimeout If negative, no timeout. If 0 an error is thrown if\r\n * the lock can't be acquired without waiting. If positive, the lock acquire\r\n * will time out after so many milliseconds. An error is\r\n * a timeout if it has `isAcquireTimeout` set to true.\r\n * @param fn The operation to run once the lock is acquired.\r\n */\r\nasync function processLock(name, acquireTimeout, fn) {\r\n var _a;\r\n const previousOperation = (_a = PROCESS_LOCKS[name]) !== null && _a !== void 0 ? _a : Promise.resolve();\r\n const currentOperation = Promise.race([\r\n previousOperation.catch(() => {\r\n // ignore error of previous operation that we're waiting to finish\r\n return null;\r\n }),\r\n acquireTimeout >= 0\r\n ? new Promise((_, reject) => {\r\n setTimeout(() => {\r\n reject(new ProcessLockAcquireTimeoutError(`Acquring process lock with name \"${name}\" timed out`));\r\n }, acquireTimeout);\r\n })\r\n : null,\r\n ].filter((x) => x))\r\n .catch((e) => {\r\n if (e && e.isAcquireTimeout) {\r\n throw e;\r\n }\r\n return null;\r\n })\r\n .then(async () => {\r\n // previous operations finished and we didn't get a race on the acquire\r\n // timeout, so the current operation can finally start\r\n return await fn();\r\n });\r\n PROCESS_LOCKS[name] = currentOperation.catch(async (e) => {\r\n if (e && e.isAcquireTimeout) {\r\n // if the current operation timed out, it doesn't mean that the previous\r\n // operation finished, so we need contnue waiting for it to finish\r\n await previousOperation;\r\n return null;\r\n }\r\n throw e;\r\n });\r\n // finally wait for the current operation to finish successfully, with an\r\n // error or with an acquire timeout error\r\n return await currentOperation;\r\n}\r\n//# sourceMappingURL=locks.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9saWIvbG9ja3MuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSw4REFBb0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx5QkFBeUI7QUFDckM7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0VBQWdFO0FBQ2hFLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpSEFBaUgsS0FBSztBQUN0SDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsc0JBQXNCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxrR0FBa0csS0FBSztBQUN2RyxpQkFBaUI7QUFDakIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2F1dGgtanMvZGlzdC9tb2R1bGUvbGliL2xvY2tzLmpzPzM2YTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3VwcG9ydHNMb2NhbFN0b3JhZ2UgfSBmcm9tICcuL2hlbHBlcnMnO1xyXG4vKipcclxuICogQGV4cGVyaW1lbnRhbFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGludGVybmFscyA9IHtcclxuICAgIC8qKlxyXG4gICAgICogQGV4cGVyaW1lbnRhbFxyXG4gICAgICovXHJcbiAgICBkZWJ1ZzogISEoZ2xvYmFsVGhpcyAmJlxyXG4gICAgICAgIHN1cHBvcnRzTG9jYWxTdG9yYWdlKCkgJiZcclxuICAgICAgICBnbG9iYWxUaGlzLmxvY2FsU3RvcmFnZSAmJlxyXG4gICAgICAgIGdsb2JhbFRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N1cGFiYXNlLmdvdHJ1ZS1qcy5sb2Nrcy5kZWJ1ZycpID09PSAndHJ1ZScpLFxyXG59O1xyXG4vKipcclxuICogQW4gZXJyb3IgdGhyb3duIHdoZW4gYSBsb2NrIGNhbm5vdCBiZSBhY3F1aXJlZCBhZnRlciBzb21lIGFtb3VudCBvZiB0aW1lLlxyXG4gKlxyXG4gKiBVc2UgdGhlIHtAbGluayAjaXNBY3F1aXJlVGltZW91dH0gcHJvcGVydHkgaW5zdGVhZCBvZiBjaGVja2luZyB3aXRoIGBpbnN0YW5jZW9mYC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBMb2NrQWNxdWlyZVRpbWVvdXRFcnJvciBleHRlbmRzIEVycm9yIHtcclxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcclxuICAgICAgICBzdXBlcihtZXNzYWdlKTtcclxuICAgICAgICB0aGlzLmlzQWNxdWlyZVRpbWVvdXQgPSB0cnVlO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0b3JMb2NrQWNxdWlyZVRpbWVvdXRFcnJvciBleHRlbmRzIExvY2tBY3F1aXJlVGltZW91dEVycm9yIHtcclxufVxyXG5leHBvcnQgY2xhc3MgUHJvY2Vzc0xvY2tBY3F1aXJlVGltZW91dEVycm9yIGV4dGVuZHMgTG9ja0FjcXVpcmVUaW1lb3V0RXJyb3Ige1xyXG59XHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRzIGEgZ2xvYmFsIGV4Y2x1c2l2ZSBsb2NrIHVzaW5nIHRoZSBOYXZpZ2F0b3IgTG9ja01hbmFnZXIgQVBJLiBJdFxyXG4gKiBpcyBhdmFpbGFibGUgb24gYWxsIGJyb3dzZXJzIHJlbGVhc2VkIGFmdGVyIDIwMjItMDMtMTUgd2l0aCBTYWZhcmkgYmVpbmcgdGhlXHJcbiAqIGxhc3Qgb25lIHRvIHJlbGVhc2Ugc3VwcG9ydC4gSWYgdGhlIEFQSSBpcyBub3QgYXZhaWxhYmxlLCB0aGlzIGZ1bmN0aW9uIHdpbGxcclxuICogdGhyb3cuIE1ha2Ugc3VyZSB5b3UgY2hlY2sgYXZhaWxhYmxpbGl0eSBiZWZvcmUgY29uZmlndXJpbmcge0BsaW5rXHJcbiAqIEdvVHJ1ZUNsaWVudH0uXHJcbiAqXHJcbiAqIFlvdSBjYW4gdHVybiBvbiBkZWJ1Z2dpbmcgYnkgc2V0dGluZyB0aGUgYHN1cGFiYXNlLmdvdHJ1ZS1qcy5sb2Nrcy5kZWJ1Z2BcclxuICogbG9jYWwgc3RvcmFnZSBpdGVtIHRvIGB0cnVlYC5cclxuICpcclxuICogSW50ZXJuYWxzOlxyXG4gKlxyXG4gKiBTaW5jZSB0aGUgTG9ja01hbmFnZXIgQVBJIGRvZXMgbm90IHByZXNlcnZlIHN0YWNrIHRyYWNlcyBmb3IgdGhlIGFzeW5jXHJcbiAqIGZ1bmN0aW9uIHBhc3NlZCBpbiB0aGUgYHJlcXVlc3RgIG1ldGhvZCwgYSB0cmljayBpcyB1c2VkIHdoZXJlIGFjcXVpcmluZyB0aGVcclxuICogbG9jayByZWxlYXNlcyBhIHByZXZpb3VzbHkgc3RhcnRlZCBwcm9taXNlIHRvIHJ1biB0aGUgb3BlcmF0aW9uIGluIHRoZSBgZm5gXHJcbiAqIGZ1bmN0aW9uLiBUaGUgbG9jayB3YWl0cyBmb3IgdGhhdCBwcm9taXNlIHRvIGZpbmlzaCAod2l0aCBvciB3aXRob3V0IGVycm9yKSxcclxuICogd2hpbGUgdGhlIGZ1bmN0aW9uIHdpbGwgZmluYWxseSB3YWl0IGZvciB0aGUgcmVzdWx0IGFueXdheS5cclxuICpcclxuICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgbG9jayB0byBiZSBhY3F1aXJlZC5cclxuICogQHBhcmFtIGFjcXVpcmVUaW1lb3V0IElmIG5lZ2F0aXZlLCBubyB0aW1lb3V0LiBJZiAwIGFuIGVycm9yIGlzIHRocm93biBpZlxyXG4gKiAgICAgICAgICAgICAgICAgICAgICAgdGhlIGxvY2sgY2FuJ3QgYmUgYWNxdWlyZWQgd2l0aG91dCB3YWl0aW5nLiBJZiBwb3NpdGl2ZSwgdGhlIGxvY2sgYWNxdWlyZVxyXG4gKiAgICAgICAgICAgICAgICAgICAgICAgd2lsbCB0aW1lIG91dCBhZnRlciBzbyBtYW55IG1pbGxpc2Vjb25kcy4gQW4gZXJyb3IgaXNcclxuICogICAgICAgICAgICAgICAgICAgICAgIGEgdGltZW91dCBpZiBpdCBoYXMgYGlzQWNxdWlyZVRpbWVvdXRgIHNldCB0byB0cnVlLlxyXG4gKiBAcGFyYW0gZm4gVGhlIG9wZXJhdGlvbiB0byBydW4gb25jZSB0aGUgbG9jayBpcyBhY3F1aXJlZC5cclxuICovXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBuYXZpZ2F0b3JMb2NrKG5hbWUsIGFjcXVpcmVUaW1lb3V0LCBmbikge1xyXG4gICAgaWYgKGludGVybmFscy5kZWJ1Zykge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdAc3VwYWJhc2UvZ290cnVlLWpzOiBuYXZpZ2F0b3JMb2NrOiBhY3F1aXJlIGxvY2snLCBuYW1lLCBhY3F1aXJlVGltZW91dCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgZ2xvYmFsVGhpcy5BYm9ydENvbnRyb2xsZXIoKTtcclxuICAgIGlmIChhY3F1aXJlVGltZW91dCA+IDApIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XHJcbiAgICAgICAgICAgIGlmIChpbnRlcm5hbHMuZGVidWcpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdAc3VwYWJhc2UvZ290cnVlLWpzOiBuYXZpZ2F0b3JMb2NrIGFjcXVpcmUgdGltZWQgb3V0JywgbmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCBhY3F1aXJlVGltZW91dCk7XHJcbiAgICB9XHJcbiAgICAvLyBNRE4gYXJ0aWNsZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0xvY2tNYW5hZ2VyL3JlcXVlc3RcclxuICAgIC8vIFdyYXBwaW5nIG5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KCkgd2l0aCBhIHBsYWluIFByb21pc2UgaXMgZG9uZSBhcyBzb21lXHJcbiAgICAvLyBsaWJyYXJpZXMgbGlrZSB6b25lLmpzIHBhdGNoIHRoZSBQcm9taXNlIG9iamVjdCB0byB0cmFjayB0aGUgZXhlY3V0aW9uXHJcbiAgICAvLyBjb250ZXh0LiBIb3dldmVyLCBpdCBhcHBlYXJzIHRoYXQgbW9zdCBicm93c2VycyB1c2UgYW4gaW50ZXJuYWwgcHJvbWlzZVxyXG4gICAgLy8gaW1wbGVtZW50YXRpb24gd2hlbiB1c2luZyB0aGUgbmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoKSBBUEkgY2F1c2luZyB0aGVtXHJcbiAgICAvLyB0byBsb3NlIGNvbnRleHQgYW5kIGVtaXQgY29uZnVzaW5nIGxvZyBtZXNzYWdlcyBvciBicmVhayBjZXJ0YWluIGZlYXR1cmVzLlxyXG4gICAgLy8gVGhpcyB3cmFwcGluZyBpcyBiZWxpZXZlZCB0byBoZWxwIHpvbmUuanMgdHJhY2sgdGhlIGV4ZWN1dGlvbiBjb250ZXh0XHJcbiAgICAvLyBiZXR0ZXIuXHJcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiBnbG9iYWxUaGlzLm5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KG5hbWUsIGFjcXVpcmVUaW1lb3V0ID09PSAwXHJcbiAgICAgICAgPyB7XHJcbiAgICAgICAgICAgIG1vZGU6ICdleGNsdXNpdmUnLFxyXG4gICAgICAgICAgICBpZkF2YWlsYWJsZTogdHJ1ZSxcclxuICAgICAgICB9XHJcbiAgICAgICAgOiB7XHJcbiAgICAgICAgICAgIG1vZGU6ICdleGNsdXNpdmUnLFxyXG4gICAgICAgICAgICBzaWduYWw6IGFib3J0Q29udHJvbGxlci5zaWduYWwsXHJcbiAgICAgICAgfSwgYXN5bmMgKGxvY2spID0+IHtcclxuICAgICAgICBpZiAobG9jaykge1xyXG4gICAgICAgICAgICBpZiAoaW50ZXJuYWxzLmRlYnVnKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQHN1cGFiYXNlL2dvdHJ1ZS1qczogbmF2aWdhdG9yTG9jazogYWNxdWlyZWQnLCBuYW1lLCBsb2NrLm5hbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgZm4oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmaW5hbGx5IHtcclxuICAgICAgICAgICAgICAgIGlmIChpbnRlcm5hbHMuZGVidWcpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQHN1cGFiYXNlL2dvdHJ1ZS1qczogbmF2aWdhdG9yTG9jazogcmVsZWFzZWQnLCBuYW1lLCBsb2NrLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoYWNxdWlyZVRpbWVvdXQgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIGlmIChpbnRlcm5hbHMuZGVidWcpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQHN1cGFiYXNlL2dvdHJ1ZS1qczogbmF2aWdhdG9yTG9jazogbm90IGltbWVkaWF0ZWx5IGF2YWlsYWJsZScsIG5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IE5hdmlnYXRvckxvY2tBY3F1aXJlVGltZW91dEVycm9yKGBBY3F1aXJpbmcgYW4gZXhjbHVzaXZlIE5hdmlnYXRvciBMb2NrTWFuYWdlciBsb2NrIFwiJHtuYW1lfVwiIGltbWVkaWF0ZWx5IGZhaWxlZGApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGludGVybmFscy5kZWJ1Zykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGdsb2JhbFRoaXMubmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdAc3VwYWJhc2UvZ290cnVlLWpzOiBOYXZpZ2F0b3IgTG9ja01hbmFnZXIgc3RhdGUnLCBKU09OLnN0cmluZ2lmeShyZXN1bHQsIG51bGwsICcgICcpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdAc3VwYWJhc2UvZ290cnVlLWpzOiBFcnJvciB3aGVuIHF1ZXJ5aW5nIE5hdmlnYXRvciBMb2NrTWFuYWdlciBzdGF0ZScsIGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIEJyb3dzZXIgaXMgbm90IGZvbGxvd2luZyB0aGUgTmF2aWdhdG9yIExvY2tNYW5hZ2VyIHNwZWMsIGl0XHJcbiAgICAgICAgICAgICAgICAvLyByZXR1cm5lZCBhIG51bGwgbG9jayB3aGVuIHdlIGRpZG4ndCB1c2UgaWZBdmFpbGFibGUuIFNvIHdlIGNhblxyXG4gICAgICAgICAgICAgICAgLy8gcHJldGVuZCB0aGUgbG9jayBpcyBhY3F1aXJlZCBpbiB0aGUgbmFtZSBvZiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XHJcbiAgICAgICAgICAgICAgICAvLyBhbmQgdXNlciBleHBlcmllbmNlIGFuZCBqdXN0IHJ1biB0aGUgZnVuY3Rpb24uXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0BzdXBhYmFzZS9nb3RydWUtanM6IE5hdmlnYXRvciBMb2NrTWFuYWdlciByZXR1cm5lZCBhIG51bGwgbG9jayB3aGVuIHVzaW5nICNyZXF1ZXN0IHdpdGhvdXQgaWZBdmFpbGFibGUgc2V0IHRvIHRydWUsIGl0IGFwcGVhcnMgdGhpcyBicm93c2VyIGlzIG5vdCBmb2xsb3dpbmcgdGhlIExvY2tNYW5hZ2VyIHNwZWMgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0xvY2tNYW5hZ2VyL3JlcXVlc3QnKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBmbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSkpO1xyXG59XHJcbmNvbnN0IFBST0NFU1NfTE9DS1MgPSB7fTtcclxuLyoqXHJcbiAqIEltcGxlbWVudHMgYSBnbG9iYWwgZXhjbHVzaXZlIGxvY2sgdGhhdCB3b3JrcyBvbmx5IGluIHRoZSBjdXJyZW50IHByb2Nlc3MuXHJcbiAqIFVzZWZ1bCBmb3IgZW52aXJvbm1lbnRzIGxpa2UgUmVhY3QgTmF0aXZlIG9yIG90aGVyIG5vbi1icm93c2VyXHJcbiAqIHNpbmdsZS1wcm9jZXNzIChpLmUuIG5vIGNvbmNlcHQgb2YgXCJ0YWJzXCIpIGVudmlyb25tZW50cy5cclxuICpcclxuICogVXNlIHtAbGluayAjbmF2aWdhdG9yTG9ja30gaW4gYnJvd3NlciBlbnZpcm9ubWVudHMuXHJcbiAqXHJcbiAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGxvY2sgdG8gYmUgYWNxdWlyZWQuXHJcbiAqIEBwYXJhbSBhY3F1aXJlVGltZW91dCBJZiBuZWdhdGl2ZSwgbm8gdGltZW91dC4gSWYgMCBhbiBlcnJvciBpcyB0aHJvd24gaWZcclxuICogICAgICAgICAgICAgICAgICAgICAgIHRoZSBsb2NrIGNhbid0IGJlIGFjcXVpcmVkIHdpdGhvdXQgd2FpdGluZy4gSWYgcG9zaXRpdmUsIHRoZSBsb2NrIGFjcXVpcmVcclxuICogICAgICAgICAgICAgICAgICAgICAgIHdpbGwgdGltZSBvdXQgYWZ0ZXIgc28gbWFueSBtaWxsaXNlY29uZHMuIEFuIGVycm9yIGlzXHJcbiAqICAgICAgICAgICAgICAgICAgICAgICBhIHRpbWVvdXQgaWYgaXQgaGFzIGBpc0FjcXVpcmVUaW1lb3V0YCBzZXQgdG8gdHJ1ZS5cclxuICogQHBhcmFtIGZuIFRoZSBvcGVyYXRpb24gdG8gcnVuIG9uY2UgdGhlIGxvY2sgaXMgYWNxdWlyZWQuXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0xvY2sobmFtZSwgYWNxdWlyZVRpbWVvdXQsIGZuKSB7XHJcbiAgICB2YXIgX2E7XHJcbiAgICBjb25zdCBwcmV2aW91c09wZXJhdGlvbiA9IChfYSA9IFBST0NFU1NfTE9DS1NbbmFtZV0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFByb21pc2UucmVzb2x2ZSgpO1xyXG4gICAgY29uc3QgY3VycmVudE9wZXJhdGlvbiA9IFByb21pc2UucmFjZShbXHJcbiAgICAgICAgcHJldmlvdXNPcGVyYXRpb24uY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBpZ25vcmUgZXJyb3Igb2YgcHJldmlvdXMgb3BlcmF0aW9uIHRoYXQgd2UncmUgd2FpdGluZyB0byBmaW5pc2hcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgYWNxdWlyZVRpbWVvdXQgPj0gMFxyXG4gICAgICAgICAgICA/IG5ldyBQcm9taXNlKChfLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChuZXcgUHJvY2Vzc0xvY2tBY3F1aXJlVGltZW91dEVycm9yKGBBY3F1cmluZyBwcm9jZXNzIGxvY2sgd2l0aCBuYW1lIFwiJHtuYW1lfVwiIHRpbWVkIG91dGApKTtcclxuICAgICAgICAgICAgICAgIH0sIGFjcXVpcmVUaW1lb3V0KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgOiBudWxsLFxyXG4gICAgXS5maWx0ZXIoKHgpID0+IHgpKVxyXG4gICAgICAgIC5jYXRjaCgoZSkgPT4ge1xyXG4gICAgICAgIGlmIChlICYmIGUuaXNBY3F1aXJlVGltZW91dCkge1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH0pXHJcbiAgICAgICAgLnRoZW4oYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIC8vIHByZXZpb3VzIG9wZXJhdGlvbnMgZmluaXNoZWQgYW5kIHdlIGRpZG4ndCBnZXQgYSByYWNlIG9uIHRoZSBhY3F1aXJlXHJcbiAgICAgICAgLy8gdGltZW91dCwgc28gdGhlIGN1cnJlbnQgb3BlcmF0aW9uIGNhbiBmaW5hbGx5IHN0YXJ0XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZuKCk7XHJcbiAgICB9KTtcclxuICAgIFBST0NFU1NfTE9DS1NbbmFtZV0gPSBjdXJyZW50T3BlcmF0aW9uLmNhdGNoKGFzeW5jIChlKSA9PiB7XHJcbiAgICAgICAgaWYgKGUgJiYgZS5pc0FjcXVpcmVUaW1lb3V0KSB7XHJcbiAgICAgICAgICAgIC8vIGlmIHRoZSBjdXJyZW50IG9wZXJhdGlvbiB0aW1lZCBvdXQsIGl0IGRvZXNuJ3QgbWVhbiB0aGF0IHRoZSBwcmV2aW91c1xyXG4gICAgICAgICAgICAvLyBvcGVyYXRpb24gZmluaXNoZWQsIHNvIHdlIG5lZWQgY29udG51ZSB3YWl0aW5nIGZvciBpdCB0byBmaW5pc2hcclxuICAgICAgICAgICAgYXdhaXQgcHJldmlvdXNPcGVyYXRpb247XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aHJvdyBlO1xyXG4gICAgfSk7XHJcbiAgICAvLyBmaW5hbGx5IHdhaXQgZm9yIHRoZSBjdXJyZW50IG9wZXJhdGlvbiB0byBmaW5pc2ggc3VjY2Vzc2Z1bGx5LCB3aXRoIGFuXHJcbiAgICAvLyBlcnJvciBvciB3aXRoIGFuIGFjcXVpcmUgdGltZW91dCBlcnJvclxyXG4gICAgcmV0dXJuIGF3YWl0IGN1cnJlbnRPcGVyYXRpb247XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bG9ja3MuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/locks.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/polyfills.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/lib/polyfills.js ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ polyfillGlobalThis: function() { return /* binding */ polyfillGlobalThis; }\n/* harmony export */ });\n/**\r\n * https://mathiasbynens.be/notes/globalthis\r\n */\r\nfunction polyfillGlobalThis() {\r\n if (typeof globalThis === 'object')\r\n return;\r\n try {\r\n Object.defineProperty(Object.prototype, '__magic__', {\r\n get: function () {\r\n return this;\r\n },\r\n configurable: true,\r\n });\r\n // @ts-expect-error 'Allow access to magic'\r\n __magic__.globalThis = __magic__;\r\n // @ts-expect-error 'Allow access to magic'\r\n delete Object.prototype.__magic__;\r\n }\r\n catch (e) {\r\n if (typeof self !== 'undefined') {\r\n // @ts-expect-error 'Allow access to globals'\r\n self.globalThis = self;\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=polyfills.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9saWIvcG9seWZpbGxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2F1dGgtanMvZGlzdC9tb2R1bGUvbGliL3BvbHlmaWxscy5qcz9mMTY0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBodHRwczovL21hdGhpYXNieW5lbnMuYmUvbm90ZXMvZ2xvYmFsdGhpc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBvbHlmaWxsR2xvYmFsVGhpcygpIHtcclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgJ19fbWFnaWNfXycsIHtcclxuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgJ0FsbG93IGFjY2VzcyB0byBtYWdpYydcclxuICAgICAgICBfX21hZ2ljX18uZ2xvYmFsVGhpcyA9IF9fbWFnaWNfXztcclxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yICdBbGxvdyBhY2Nlc3MgdG8gbWFnaWMnXHJcbiAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGUuX19tYWdpY19fO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgJ0FsbG93IGFjY2VzcyB0byBnbG9iYWxzJ1xyXG4gICAgICAgICAgICBzZWxmLmdsb2JhbFRoaXMgPSBzZWxmO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wb2x5ZmlsbHMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/polyfills.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/types.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/lib/types.js ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SIGN_OUT_SCOPES: function() { return /* binding */ SIGN_OUT_SCOPES; }\n/* harmony export */ });\nconst SIGN_OUT_SCOPES = ['global', 'local', 'others'];\r\n//# sourceMappingURL=types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9saWIvdHlwZXMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPO0FBQ1AiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9hdXRoLWpzL2Rpc3QvbW9kdWxlL2xpYi90eXBlcy5qcz8yYjViIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTSUdOX09VVF9TQ09QRVMgPSBbJ2dsb2JhbCcsICdsb2NhbCcsICdvdGhlcnMnXTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dHlwZXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/types.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/version.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/@supabase/auth-js/dist/module/lib/version.js ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ version: function() { return /* binding */ version; }\n/* harmony export */ });\nconst version = '2.71.1';\r\n//# sourceMappingURL=version.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvYXV0aC1qcy9kaXN0L21vZHVsZS9saWIvdmVyc2lvbi5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU87QUFDUCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2F1dGgtanMvZGlzdC9tb2R1bGUvbGliL3ZlcnNpb24uanM/ZjIwNyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdmVyc2lvbiA9ICcyLjcxLjEnO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD12ZXJzaW9uLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/lib/version.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/functions-js/dist/module/FunctionsClient.js":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/@supabase/functions-js/dist/module/FunctionsClient.js ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FunctionsClient: function() { return /* binding */ FunctionsClient; }\n/* harmony export */ });\n/* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helper */ \"(app-pages-browser)/./node_modules/@supabase/functions-js/dist/module/helper.js\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ \"(app-pages-browser)/./node_modules/@supabase/functions-js/dist/module/types.js\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\nclass FunctionsClient {\r\n constructor(url, { headers = {}, customFetch, region = _types__WEBPACK_IMPORTED_MODULE_0__.FunctionRegion.Any, } = {}) {\r\n this.url = url;\r\n this.headers = headers;\r\n this.region = region;\r\n this.fetch = (0,_helper__WEBPACK_IMPORTED_MODULE_1__.resolveFetch)(customFetch);\r\n }\r\n /**\r\n * Updates the authorization header\r\n * @param token - the new jwt token sent in the authorisation header\r\n */\r\n setAuth(token) {\r\n this.headers.Authorization = `Bearer ${token}`;\r\n }\r\n /**\r\n * Invokes a function\r\n * @param functionName - The name of the Function to invoke.\r\n * @param options - Options for invoking the Function.\r\n */\r\n invoke(functionName, options = {}) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const { headers, method, body: functionArgs } = options;\r\n let _headers = {};\r\n let { region } = options;\r\n if (!region) {\r\n region = this.region;\r\n }\r\n // Add region as query parameter using URL API\r\n const url = new URL(`${this.url}/${functionName}`);\r\n if (region && region !== 'any') {\r\n _headers['x-region'] = region;\r\n url.searchParams.set('forceFunctionRegion', region);\r\n }\r\n let body;\r\n if (functionArgs &&\r\n ((headers && !Object.prototype.hasOwnProperty.call(headers, 'Content-Type')) || !headers)) {\r\n if ((typeof Blob !== 'undefined' && functionArgs instanceof Blob) ||\r\n functionArgs instanceof ArrayBuffer) {\r\n // will work for File as File inherits Blob\r\n // also works for ArrayBuffer as it is the same underlying structure as a Blob\r\n _headers['Content-Type'] = 'application/octet-stream';\r\n body = functionArgs;\r\n }\r\n else if (typeof functionArgs === 'string') {\r\n // plain string\r\n _headers['Content-Type'] = 'text/plain';\r\n body = functionArgs;\r\n }\r\n else if (typeof FormData !== 'undefined' && functionArgs instanceof FormData) {\r\n // don't set content-type headers\r\n // Request will automatically add the right boundary value\r\n body = functionArgs;\r\n }\r\n else {\r\n // default, assume this is JSON\r\n _headers['Content-Type'] = 'application/json';\r\n body = JSON.stringify(functionArgs);\r\n }\r\n }\r\n const response = yield this.fetch(url.toString(), {\r\n method: method || 'POST',\r\n // headers priority is (high to low):\r\n // 1. invoke-level headers\r\n // 2. client-level headers\r\n // 3. default Content-Type header\r\n headers: Object.assign(Object.assign(Object.assign({}, _headers), this.headers), headers),\r\n body,\r\n }).catch((fetchError) => {\r\n throw new _types__WEBPACK_IMPORTED_MODULE_0__.FunctionsFetchError(fetchError);\r\n });\r\n const isRelayError = response.headers.get('x-relay-error');\r\n if (isRelayError && isRelayError === 'true') {\r\n throw new _types__WEBPACK_IMPORTED_MODULE_0__.FunctionsRelayError(response);\r\n }\r\n if (!response.ok) {\r\n throw new _types__WEBPACK_IMPORTED_MODULE_0__.FunctionsHttpError(response);\r\n }\r\n let responseType = ((_a = response.headers.get('Content-Type')) !== null && _a !== void 0 ? _a : 'text/plain').split(';')[0].trim();\r\n let data;\r\n if (responseType === 'application/json') {\r\n data = yield response.json();\r\n }\r\n else if (responseType === 'application/octet-stream') {\r\n data = yield response.blob();\r\n }\r\n else if (responseType === 'text/event-stream') {\r\n data = response;\r\n }\r\n else if (responseType === 'multipart/form-data') {\r\n data = yield response.formData();\r\n }\r\n else {\r\n // default to text\r\n data = yield response.text();\r\n }\r\n return { data, error: null, response };\r\n }\r\n catch (error) {\r\n return {\r\n data: null,\r\n error,\r\n response: error instanceof _types__WEBPACK_IMPORTED_MODULE_0__.FunctionsHttpError || error instanceof _types__WEBPACK_IMPORTED_MODULE_0__.FunctionsRelayError\r\n ? error.context\r\n : undefined,\r\n };\r\n }\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=FunctionsClient.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZnVuY3Rpb25zLWpzL2Rpc3QvbW9kdWxlL0Z1bmN0aW9uc0NsaWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxpQkFBaUIsU0FBSSxJQUFJLFNBQUk7QUFDN0IsNEJBQTRCLCtEQUErRCxpQkFBaUI7QUFDNUc7QUFDQSxvQ0FBb0MsTUFBTSwrQkFBK0IsWUFBWTtBQUNyRixtQ0FBbUMsTUFBTSxtQ0FBbUMsWUFBWTtBQUN4RixnQ0FBZ0M7QUFDaEM7QUFDQSxLQUFLO0FBQ0w7QUFDd0M7QUFDZ0U7QUFDakc7QUFDUCx1QkFBdUIsWUFBWSx3QkFBd0Isa0RBQWMsUUFBUSxJQUFJO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixxREFBWTtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MsTUFBTTtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHNDQUFzQztBQUM5RDtBQUNBLHNCQUFzQixTQUFTO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLFNBQVMsR0FBRyxhQUFhO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlFQUF5RTtBQUN6RTtBQUNBLGlCQUFpQjtBQUNqQiw4QkFBOEIsdURBQW1CO0FBQ2pELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsOEJBQThCLHVEQUFtQjtBQUNqRDtBQUNBO0FBQ0EsOEJBQThCLHNEQUFrQjtBQUNoRDtBQUNBLHVJQUF1STtBQUN2STtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0Msc0RBQWtCLHFCQUFxQix1REFBbUI7QUFDekc7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZnVuY3Rpb25zLWpzL2Rpc3QvbW9kdWxlL0Z1bmN0aW9uc0NsaWVudC5qcz9hZGM0Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufTtcclxuaW1wb3J0IHsgcmVzb2x2ZUZldGNoIH0gZnJvbSAnLi9oZWxwZXInO1xyXG5pbXBvcnQgeyBGdW5jdGlvbnNGZXRjaEVycm9yLCBGdW5jdGlvbnNIdHRwRXJyb3IsIEZ1bmN0aW9uc1JlbGF5RXJyb3IsIEZ1bmN0aW9uUmVnaW9uLCB9IGZyb20gJy4vdHlwZXMnO1xyXG5leHBvcnQgY2xhc3MgRnVuY3Rpb25zQ2xpZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHVybCwgeyBoZWFkZXJzID0ge30sIGN1c3RvbUZldGNoLCByZWdpb24gPSBGdW5jdGlvblJlZ2lvbi5BbnksIH0gPSB7fSkge1xyXG4gICAgICAgIHRoaXMudXJsID0gdXJsO1xyXG4gICAgICAgIHRoaXMuaGVhZGVycyA9IGhlYWRlcnM7XHJcbiAgICAgICAgdGhpcy5yZWdpb24gPSByZWdpb247XHJcbiAgICAgICAgdGhpcy5mZXRjaCA9IHJlc29sdmVGZXRjaChjdXN0b21GZXRjaCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIGF1dGhvcml6YXRpb24gaGVhZGVyXHJcbiAgICAgKiBAcGFyYW0gdG9rZW4gLSB0aGUgbmV3IGp3dCB0b2tlbiBzZW50IGluIHRoZSBhdXRob3Jpc2F0aW9uIGhlYWRlclxyXG4gICAgICovXHJcbiAgICBzZXRBdXRoKHRva2VuKSB7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJzLkF1dGhvcml6YXRpb24gPSBgQmVhcmVyICR7dG9rZW59YDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogSW52b2tlcyBhIGZ1bmN0aW9uXHJcbiAgICAgKiBAcGFyYW0gZnVuY3Rpb25OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIEZ1bmN0aW9uIHRvIGludm9rZS5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgaW52b2tpbmcgdGhlIEZ1bmN0aW9uLlxyXG4gICAgICovXHJcbiAgICBpbnZva2UoZnVuY3Rpb25OYW1lLCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgaGVhZGVycywgbWV0aG9kLCBib2R5OiBmdW5jdGlvbkFyZ3MgfSA9IG9wdGlvbnM7XHJcbiAgICAgICAgICAgICAgICBsZXQgX2hlYWRlcnMgPSB7fTtcclxuICAgICAgICAgICAgICAgIGxldCB7IHJlZ2lvbiB9ID0gb3B0aW9ucztcclxuICAgICAgICAgICAgICAgIGlmICghcmVnaW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVnaW9uID0gdGhpcy5yZWdpb247XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBBZGQgcmVnaW9uIGFzIHF1ZXJ5IHBhcmFtZXRlciB1c2luZyBVUkwgQVBJXHJcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGAke3RoaXMudXJsfS8ke2Z1bmN0aW9uTmFtZX1gKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZWdpb24gJiYgcmVnaW9uICE9PSAnYW55Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIF9oZWFkZXJzWyd4LXJlZ2lvbiddID0gcmVnaW9uO1xyXG4gICAgICAgICAgICAgICAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdmb3JjZUZ1bmN0aW9uUmVnaW9uJywgcmVnaW9uKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBib2R5O1xyXG4gICAgICAgICAgICAgICAgaWYgKGZ1bmN0aW9uQXJncyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICgoaGVhZGVycyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGhlYWRlcnMsICdDb250ZW50LVR5cGUnKSkgfHwgIWhlYWRlcnMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCh0eXBlb2YgQmxvYiAhPT0gJ3VuZGVmaW5lZCcgJiYgZnVuY3Rpb25BcmdzIGluc3RhbmNlb2YgQmxvYikgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25BcmdzIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCB3b3JrIGZvciBGaWxlIGFzIEZpbGUgaW5oZXJpdHMgQmxvYlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHdvcmtzIGZvciBBcnJheUJ1ZmZlciBhcyBpdCBpcyB0aGUgc2FtZSB1bmRlcmx5aW5nIHN0cnVjdHVyZSBhcyBhIEJsb2JcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2hlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgPSBmdW5jdGlvbkFyZ3M7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBmdW5jdGlvbkFyZ3MgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBsYWluIHN0cmluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAndGV4dC9wbGFpbic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgPSBmdW5jdGlvbkFyZ3M7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBGb3JtRGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgZnVuY3Rpb25BcmdzIGluc3RhbmNlb2YgRm9ybURhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3Qgc2V0IGNvbnRlbnQtdHlwZSBoZWFkZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlcXVlc3Qgd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgcmlnaHQgYm91bmRhcnkgdmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keSA9IGZ1bmN0aW9uQXJncztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQsIGFzc3VtZSB0aGlzIGlzIEpTT05cclxuICAgICAgICAgICAgICAgICAgICAgICAgX2hlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb24nO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkoZnVuY3Rpb25BcmdzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIHRoaXMuZmV0Y2godXJsLnRvU3RyaW5nKCksIHtcclxuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IG1ldGhvZCB8fCAnUE9TVCcsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gaGVhZGVycyBwcmlvcml0eSBpcyAoaGlnaCB0byBsb3cpOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIDEuIGludm9rZS1sZXZlbCBoZWFkZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gMi4gY2xpZW50LWxldmVsIGhlYWRlcnNcclxuICAgICAgICAgICAgICAgICAgICAvLyAzLiBkZWZhdWx0IENvbnRlbnQtVHlwZSBoZWFkZXJcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgX2hlYWRlcnMpLCB0aGlzLmhlYWRlcnMpLCBoZWFkZXJzKSxcclxuICAgICAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKGZldGNoRXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRnVuY3Rpb25zRmV0Y2hFcnJvcihmZXRjaEVycm9yKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNSZWxheUVycm9yID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ3gtcmVsYXktZXJyb3InKTtcclxuICAgICAgICAgICAgICAgIGlmIChpc1JlbGF5RXJyb3IgJiYgaXNSZWxheUVycm9yID09PSAndHJ1ZScpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRnVuY3Rpb25zUmVsYXlFcnJvcihyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZ1bmN0aW9uc0h0dHBFcnJvcihyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzcG9uc2VUeXBlID0gKChfYSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ3RleHQvcGxhaW4nKS5zcGxpdCgnOycpWzBdLnRyaW0oKTtcclxuICAgICAgICAgICAgICAgIGxldCBkYXRhO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlVHlwZSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHlpZWxkIHJlc3BvbnNlLmpzb24oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlVHlwZSA9PT0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpIHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhID0geWllbGQgcmVzcG9uc2UuYmxvYigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVzcG9uc2VUeXBlID09PSAndGV4dC9ldmVudC1zdHJlYW0nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVzcG9uc2VUeXBlID09PSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpIHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhID0geWllbGQgcmVzcG9uc2UuZm9ybURhdGEoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgdG8gdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEgPSB5aWVsZCByZXNwb25zZS50ZXh0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCwgcmVzcG9uc2UgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICBlcnJvcixcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZTogZXJyb3IgaW5zdGFuY2VvZiBGdW5jdGlvbnNIdHRwRXJyb3IgfHwgZXJyb3IgaW5zdGFuY2VvZiBGdW5jdGlvbnNSZWxheUVycm9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZXJyb3IuY29udGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1GdW5jdGlvbnNDbGllbnQuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/functions-js/dist/module/FunctionsClient.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/functions-js/dist/module/helper.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/@supabase/functions-js/dist/module/helper.js ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveFetch: function() { return /* binding */ resolveFetch; }\n/* harmony export */ });\nconst resolveFetch = (customFetch) => {\r\n let _fetch;\r\n if (customFetch) {\r\n _fetch = customFetch;\r\n }\r\n else if (typeof fetch === 'undefined') {\r\n _fetch = (...args) => Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(app-pages-browser)/./node_modules/@supabase/node-fetch/browser.js\")).then(({ default: fetch }) => fetch(...args));\r\n }\r\n else {\r\n _fetch = fetch;\r\n }\r\n return (...args) => _fetch(...args);\r\n};\r\n//# sourceMappingURL=helper.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZnVuY3Rpb25zLWpzL2Rpc3QvbW9kdWxlL2hlbHBlci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLHNMQUE4QixTQUFTLGdCQUFnQjtBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2Z1bmN0aW9ucy1qcy9kaXN0L21vZHVsZS9oZWxwZXIuanM/YjBiNCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcmVzb2x2ZUZldGNoID0gKGN1c3RvbUZldGNoKSA9PiB7XHJcbiAgICBsZXQgX2ZldGNoO1xyXG4gICAgaWYgKGN1c3RvbUZldGNoKSB7XHJcbiAgICAgICAgX2ZldGNoID0gY3VzdG9tRmV0Y2g7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgZmV0Y2ggPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgX2ZldGNoID0gKC4uLmFyZ3MpID0+IGltcG9ydCgnQHN1cGFiYXNlL25vZGUtZmV0Y2gnKS50aGVuKCh7IGRlZmF1bHQ6IGZldGNoIH0pID0+IGZldGNoKC4uLmFyZ3MpKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIF9mZXRjaCA9IGZldGNoO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICguLi5hcmdzKSA9PiBfZmV0Y2goLi4uYXJncyk7XHJcbn07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlci5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/functions-js/dist/module/helper.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/functions-js/dist/module/types.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/@supabase/functions-js/dist/module/types.js ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FunctionRegion: function() { return /* binding */ FunctionRegion; },\n/* harmony export */ FunctionsError: function() { return /* binding */ FunctionsError; },\n/* harmony export */ FunctionsFetchError: function() { return /* binding */ FunctionsFetchError; },\n/* harmony export */ FunctionsHttpError: function() { return /* binding */ FunctionsHttpError; },\n/* harmony export */ FunctionsRelayError: function() { return /* binding */ FunctionsRelayError; }\n/* harmony export */ });\nclass FunctionsError extends Error {\r\n constructor(message, name = 'FunctionsError', context) {\r\n super(message);\r\n this.name = name;\r\n this.context = context;\r\n }\r\n}\r\nclass FunctionsFetchError extends FunctionsError {\r\n constructor(context) {\r\n super('Failed to send a request to the Edge Function', 'FunctionsFetchError', context);\r\n }\r\n}\r\nclass FunctionsRelayError extends FunctionsError {\r\n constructor(context) {\r\n super('Relay Error invoking the Edge Function', 'FunctionsRelayError', context);\r\n }\r\n}\r\nclass FunctionsHttpError extends FunctionsError {\r\n constructor(context) {\r\n super('Edge Function returned a non-2xx status code', 'FunctionsHttpError', context);\r\n }\r\n}\r\n// Define the enum for the 'region' property\r\nvar FunctionRegion;\r\n(function (FunctionRegion) {\r\n FunctionRegion[\"Any\"] = \"any\";\r\n FunctionRegion[\"ApNortheast1\"] = \"ap-northeast-1\";\r\n FunctionRegion[\"ApNortheast2\"] = \"ap-northeast-2\";\r\n FunctionRegion[\"ApSouth1\"] = \"ap-south-1\";\r\n FunctionRegion[\"ApSoutheast1\"] = \"ap-southeast-1\";\r\n FunctionRegion[\"ApSoutheast2\"] = \"ap-southeast-2\";\r\n FunctionRegion[\"CaCentral1\"] = \"ca-central-1\";\r\n FunctionRegion[\"EuCentral1\"] = \"eu-central-1\";\r\n FunctionRegion[\"EuWest1\"] = \"eu-west-1\";\r\n FunctionRegion[\"EuWest2\"] = \"eu-west-2\";\r\n FunctionRegion[\"EuWest3\"] = \"eu-west-3\";\r\n FunctionRegion[\"SaEast1\"] = \"sa-east-1\";\r\n FunctionRegion[\"UsEast1\"] = \"us-east-1\";\r\n FunctionRegion[\"UsWest1\"] = \"us-west-1\";\r\n FunctionRegion[\"UsWest2\"] = \"us-west-2\";\r\n})(FunctionRegion || (FunctionRegion = {}));\r\n//# sourceMappingURL=types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvZnVuY3Rpb25zLWpzL2Rpc3QvbW9kdWxlL3R5cGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHdDQUF3QztBQUN6QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL2Z1bmN0aW9ucy1qcy9kaXN0L21vZHVsZS90eXBlcy5qcz80OTFhIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBGdW5jdGlvbnNFcnJvciBleHRlbmRzIEVycm9yIHtcclxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIG5hbWUgPSAnRnVuY3Rpb25zRXJyb3InLCBjb250ZXh0KSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgICAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBGdW5jdGlvbnNGZXRjaEVycm9yIGV4dGVuZHMgRnVuY3Rpb25zRXJyb3Ige1xyXG4gICAgY29uc3RydWN0b3IoY29udGV4dCkge1xyXG4gICAgICAgIHN1cGVyKCdGYWlsZWQgdG8gc2VuZCBhIHJlcXVlc3QgdG8gdGhlIEVkZ2UgRnVuY3Rpb24nLCAnRnVuY3Rpb25zRmV0Y2hFcnJvcicsIGNvbnRleHQpO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBGdW5jdGlvbnNSZWxheUVycm9yIGV4dGVuZHMgRnVuY3Rpb25zRXJyb3Ige1xyXG4gICAgY29uc3RydWN0b3IoY29udGV4dCkge1xyXG4gICAgICAgIHN1cGVyKCdSZWxheSBFcnJvciBpbnZva2luZyB0aGUgRWRnZSBGdW5jdGlvbicsICdGdW5jdGlvbnNSZWxheUVycm9yJywgY29udGV4dCk7XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uc0h0dHBFcnJvciBleHRlbmRzIEZ1bmN0aW9uc0Vycm9yIHtcclxuICAgIGNvbnN0cnVjdG9yKGNvbnRleHQpIHtcclxuICAgICAgICBzdXBlcignRWRnZSBGdW5jdGlvbiByZXR1cm5lZCBhIG5vbi0yeHggc3RhdHVzIGNvZGUnLCAnRnVuY3Rpb25zSHR0cEVycm9yJywgY29udGV4dCk7XHJcbiAgICB9XHJcbn1cclxuLy8gRGVmaW5lIHRoZSBlbnVtIGZvciB0aGUgJ3JlZ2lvbicgcHJvcGVydHlcclxuZXhwb3J0IHZhciBGdW5jdGlvblJlZ2lvbjtcclxuKGZ1bmN0aW9uIChGdW5jdGlvblJlZ2lvbikge1xyXG4gICAgRnVuY3Rpb25SZWdpb25bXCJBbnlcIl0gPSBcImFueVwiO1xyXG4gICAgRnVuY3Rpb25SZWdpb25bXCJBcE5vcnRoZWFzdDFcIl0gPSBcImFwLW5vcnRoZWFzdC0xXCI7XHJcbiAgICBGdW5jdGlvblJlZ2lvbltcIkFwTm9ydGhlYXN0MlwiXSA9IFwiYXAtbm9ydGhlYXN0LTJcIjtcclxuICAgIEZ1bmN0aW9uUmVnaW9uW1wiQXBTb3V0aDFcIl0gPSBcImFwLXNvdXRoLTFcIjtcclxuICAgIEZ1bmN0aW9uUmVnaW9uW1wiQXBTb3V0aGVhc3QxXCJdID0gXCJhcC1zb3V0aGVhc3QtMVwiO1xyXG4gICAgRnVuY3Rpb25SZWdpb25bXCJBcFNvdXRoZWFzdDJcIl0gPSBcImFwLXNvdXRoZWFzdC0yXCI7XHJcbiAgICBGdW5jdGlvblJlZ2lvbltcIkNhQ2VudHJhbDFcIl0gPSBcImNhLWNlbnRyYWwtMVwiO1xyXG4gICAgRnVuY3Rpb25SZWdpb25bXCJFdUNlbnRyYWwxXCJdID0gXCJldS1jZW50cmFsLTFcIjtcclxuICAgIEZ1bmN0aW9uUmVnaW9uW1wiRXVXZXN0MVwiXSA9IFwiZXUtd2VzdC0xXCI7XHJcbiAgICBGdW5jdGlvblJlZ2lvbltcIkV1V2VzdDJcIl0gPSBcImV1LXdlc3QtMlwiO1xyXG4gICAgRnVuY3Rpb25SZWdpb25bXCJFdVdlc3QzXCJdID0gXCJldS13ZXN0LTNcIjtcclxuICAgIEZ1bmN0aW9uUmVnaW9uW1wiU2FFYXN0MVwiXSA9IFwic2EtZWFzdC0xXCI7XHJcbiAgICBGdW5jdGlvblJlZ2lvbltcIlVzRWFzdDFcIl0gPSBcInVzLWVhc3QtMVwiO1xyXG4gICAgRnVuY3Rpb25SZWdpb25bXCJVc1dlc3QxXCJdID0gXCJ1cy13ZXN0LTFcIjtcclxuICAgIEZ1bmN0aW9uUmVnaW9uW1wiVXNXZXN0MlwiXSA9IFwidXMtd2VzdC0yXCI7XHJcbn0pKEZ1bmN0aW9uUmVnaW9uIHx8IChGdW5jdGlvblJlZ2lvbiA9IHt9KSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXR5cGVzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/functions-js/dist/module/types.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/node-fetch/browser.js":
|
||
/*!******************************************************!*\
|
||
!*** ./node_modules/@supabase/node-fetch/browser.js ***!
|
||
\******************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Headers: function() { return /* binding */ Headers; },\n/* harmony export */ Request: function() { return /* binding */ Request; },\n/* harmony export */ Response: function() { return /* binding */ Response; },\n/* harmony export */ fetch: function() { return /* binding */ fetch; }\n/* harmony export */ });\n\r\n\r\n// ref: https://github.com/tc39/proposal-global\r\nvar getGlobal = function() {\r\n // the only reliable means to get the global object is\r\n // `Function('return this')()`\r\n // However, this causes CSP violations in Chrome apps.\r\n if (typeof self !== 'undefined') { return self; }\r\n if (typeof window !== 'undefined') { return window; }\r\n if (typeof __webpack_require__.g !== 'undefined') { return __webpack_require__.g; }\r\n throw new Error('unable to locate global object');\r\n}\r\n\r\nvar globalObject = getGlobal();\r\n\r\nconst fetch = globalObject.fetch;\r\n\r\n/* harmony default export */ __webpack_exports__[\"default\"] = (globalObject.fetch.bind(globalObject));\r\n\r\nconst Headers = globalObject.Headers;\r\nconst Request = globalObject.Request;\r\nconst Response = globalObject.Response;\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvbm9kZS1mZXRjaC9icm93c2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QztBQUN2Qyx5Q0FBeUM7QUFDekMsZUFBZSxxQkFBTSxvQkFBb0IsT0FBTyxxQkFBTTtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBLCtEQUFlLHFDQUFxQyxFQUFDO0FBQ3JEO0FBQ087QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvbm9kZS1mZXRjaC9icm93c2VyLmpzP2VjNTkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4vLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWdsb2JhbFxyXG52YXIgZ2V0R2xvYmFsID0gZnVuY3Rpb24oKSB7XHJcbiAgICAvLyB0aGUgb25seSByZWxpYWJsZSBtZWFucyB0byBnZXQgdGhlIGdsb2JhbCBvYmplY3QgaXNcclxuICAgIC8vIGBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpYFxyXG4gICAgLy8gSG93ZXZlciwgdGhpcyBjYXVzZXMgQ1NQIHZpb2xhdGlvbnMgaW4gQ2hyb21lIGFwcHMuXHJcbiAgICBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKSB7IHJldHVybiBzZWxmOyB9XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHsgcmV0dXJuIHdpbmRvdzsgfVxyXG4gICAgaWYgKHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnKSB7IHJldHVybiBnbG9iYWw7IH1cclxuICAgIHRocm93IG5ldyBFcnJvcigndW5hYmxlIHRvIGxvY2F0ZSBnbG9iYWwgb2JqZWN0Jyk7XHJcbn1cclxuXHJcbnZhciBnbG9iYWxPYmplY3QgPSBnZXRHbG9iYWwoKTtcclxuXHJcbmV4cG9ydCBjb25zdCBmZXRjaCA9IGdsb2JhbE9iamVjdC5mZXRjaDtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGdsb2JhbE9iamVjdC5mZXRjaC5iaW5kKGdsb2JhbE9iamVjdCk7XHJcblxyXG5leHBvcnQgY29uc3QgSGVhZGVycyA9IGdsb2JhbE9iamVjdC5IZWFkZXJzO1xyXG5leHBvcnQgY29uc3QgUmVxdWVzdCA9IGdsb2JhbE9iamVjdC5SZXF1ZXN0O1xyXG5leHBvcnQgY29uc3QgUmVzcG9uc2UgPSBnbG9iYWxPYmplY3QuUmVzcG9uc2U7XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/node-fetch/browser.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestBuilder.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestBuilder.js ***!
|
||
\**************************************************************************/
|
||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n// @ts-ignore\r\nconst node_fetch_1 = __importDefault(__webpack_require__(/*! @supabase/node-fetch */ \"(app-pages-browser)/./node_modules/@supabase/node-fetch/browser.js\"));\r\nconst PostgrestError_1 = __importDefault(__webpack_require__(/*! ./PostgrestError */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestError.js\"));\r\nclass PostgrestBuilder {\r\n constructor(builder) {\r\n this.shouldThrowOnError = false;\r\n this.method = builder.method;\r\n this.url = builder.url;\r\n this.headers = builder.headers;\r\n this.schema = builder.schema;\r\n this.body = builder.body;\r\n this.shouldThrowOnError = builder.shouldThrowOnError;\r\n this.signal = builder.signal;\r\n this.isMaybeSingle = builder.isMaybeSingle;\r\n if (builder.fetch) {\r\n this.fetch = builder.fetch;\r\n }\r\n else if (typeof fetch === 'undefined') {\r\n this.fetch = node_fetch_1.default;\r\n }\r\n else {\r\n this.fetch = fetch;\r\n }\r\n }\r\n /**\r\n * If there's an error with the query, throwOnError will reject the promise by\r\n * throwing the error instead of returning it as part of a successful response.\r\n *\r\n * {@link https://github.com/supabase/supabase-js/issues/92}\r\n */\r\n throwOnError() {\r\n this.shouldThrowOnError = true;\r\n return this;\r\n }\r\n /**\r\n * Set an HTTP header for the request.\r\n */\r\n setHeader(name, value) {\r\n this.headers = Object.assign({}, this.headers);\r\n this.headers[name] = value;\r\n return this;\r\n }\r\n then(onfulfilled, onrejected) {\r\n // https://postgrest.org/en/stable/api.html#switching-schemas\r\n if (this.schema === undefined) {\r\n // skip\r\n }\r\n else if (['GET', 'HEAD'].includes(this.method)) {\r\n this.headers['Accept-Profile'] = this.schema;\r\n }\r\n else {\r\n this.headers['Content-Profile'] = this.schema;\r\n }\r\n if (this.method !== 'GET' && this.method !== 'HEAD') {\r\n this.headers['Content-Type'] = 'application/json';\r\n }\r\n // NOTE: Invoke w/o `this` to avoid illegal invocation error.\r\n // https://github.com/supabase/postgrest-js/pull/247\r\n const _fetch = this.fetch;\r\n let res = _fetch(this.url.toString(), {\r\n method: this.method,\r\n headers: this.headers,\r\n body: JSON.stringify(this.body),\r\n signal: this.signal,\r\n }).then(async (res) => {\r\n var _a, _b, _c;\r\n let error = null;\r\n let data = null;\r\n let count = null;\r\n let status = res.status;\r\n let statusText = res.statusText;\r\n if (res.ok) {\r\n if (this.method !== 'HEAD') {\r\n const body = await res.text();\r\n if (body === '') {\r\n // Prefer: return=minimal\r\n }\r\n else if (this.headers['Accept'] === 'text/csv') {\r\n data = body;\r\n }\r\n else if (this.headers['Accept'] &&\r\n this.headers['Accept'].includes('application/vnd.pgrst.plan+text')) {\r\n data = body;\r\n }\r\n else {\r\n data = JSON.parse(body);\r\n }\r\n }\r\n const countHeader = (_a = this.headers['Prefer']) === null || _a === void 0 ? void 0 : _a.match(/count=(exact|planned|estimated)/);\r\n const contentRange = (_b = res.headers.get('content-range')) === null || _b === void 0 ? void 0 : _b.split('/');\r\n if (countHeader && contentRange && contentRange.length > 1) {\r\n count = parseInt(contentRange[1]);\r\n }\r\n // Temporary partial fix for https://github.com/supabase/postgrest-js/issues/361\r\n // Issue persists e.g. for `.insert([...]).select().maybeSingle()`\r\n if (this.isMaybeSingle && this.method === 'GET' && Array.isArray(data)) {\r\n if (data.length > 1) {\r\n error = {\r\n // https://github.com/PostgREST/postgrest/blob/a867d79c42419af16c18c3fb019eba8df992626f/src/PostgREST/Error.hs#L553\r\n code: 'PGRST116',\r\n details: `Results contain ${data.length} rows, application/vnd.pgrst.object+json requires 1 row`,\r\n hint: null,\r\n message: 'JSON object requested, multiple (or no) rows returned',\r\n };\r\n data = null;\r\n count = null;\r\n status = 406;\r\n statusText = 'Not Acceptable';\r\n }\r\n else if (data.length === 1) {\r\n data = data[0];\r\n }\r\n else {\r\n data = null;\r\n }\r\n }\r\n }\r\n else {\r\n const body = await res.text();\r\n try {\r\n error = JSON.parse(body);\r\n // Workaround for https://github.com/supabase/postgrest-js/issues/295\r\n if (Array.isArray(error) && res.status === 404) {\r\n data = [];\r\n error = null;\r\n status = 200;\r\n statusText = 'OK';\r\n }\r\n }\r\n catch (_d) {\r\n // Workaround for https://github.com/supabase/postgrest-js/issues/295\r\n if (res.status === 404 && body === '') {\r\n status = 204;\r\n statusText = 'No Content';\r\n }\r\n else {\r\n error = {\r\n message: body,\r\n };\r\n }\r\n }\r\n if (error && this.isMaybeSingle && ((_c = error === null || error === void 0 ? void 0 : error.details) === null || _c === void 0 ? void 0 : _c.includes('0 rows'))) {\r\n error = null;\r\n status = 200;\r\n statusText = 'OK';\r\n }\r\n if (error && this.shouldThrowOnError) {\r\n throw new PostgrestError_1.default(error);\r\n }\r\n }\r\n const postgrestResponse = {\r\n error,\r\n data,\r\n count,\r\n status,\r\n statusText,\r\n };\r\n return postgrestResponse;\r\n });\r\n if (!this.shouldThrowOnError) {\r\n res = res.catch((fetchError) => {\r\n var _a, _b, _c;\r\n return ({\r\n error: {\r\n message: `${(_a = fetchError === null || fetchError === void 0 ? void 0 : fetchError.name) !== null && _a !== void 0 ? _a : 'FetchError'}: ${fetchError === null || fetchError === void 0 ? void 0 : fetchError.message}`,\r\n details: `${(_b = fetchError === null || fetchError === void 0 ? void 0 : fetchError.stack) !== null && _b !== void 0 ? _b : ''}`,\r\n hint: '',\r\n code: `${(_c = fetchError === null || fetchError === void 0 ? void 0 : fetchError.code) !== null && _c !== void 0 ? _c : ''}`,\r\n },\r\n data: null,\r\n count: null,\r\n status: 0,\r\n statusText: '',\r\n });\r\n });\r\n }\r\n return res.then(onfulfilled, onrejected);\r\n }\r\n /**\r\n * Override the type of the returned `data`.\r\n *\r\n * @typeParam NewResult - The new result type to override with\r\n * @deprecated Use overrideTypes<yourType, { merge: false }>() method at the end of your call chain instead\r\n */\r\n returns() {\r\n /* istanbul ignore next */\r\n return this;\r\n }\r\n /**\r\n * Override the type of the returned `data` field in the response.\r\n *\r\n * @typeParam NewResult - The new type to cast the response data to\r\n * @typeParam Options - Optional type configuration (defaults to { merge: true })\r\n * @typeParam Options.merge - When true, merges the new type with existing return type. When false, replaces the existing types entirely (defaults to true)\r\n * @example\r\n * ```typescript\r\n * // Merge with existing types (default behavior)\r\n * const query = supabase\r\n * .from('users')\r\n * .select()\r\n * .overrideTypes<{ custom_field: string }>()\r\n *\r\n * // Replace existing types completely\r\n * const replaceQuery = supabase\r\n * .from('users')\r\n * .select()\r\n * .overrideTypes<{ id: number; name: string }, { merge: false }>()\r\n * ```\r\n * @returns A PostgrestBuilder instance with the new type\r\n */\r\n overrideTypes() {\r\n return this;\r\n }\r\n}\r\nexports[\"default\"] = PostgrestBuilder;\r\n//# sourceMappingURL=PostgrestBuilder.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvY2pzL1Bvc3RncmVzdEJ1aWxkZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RDtBQUNBLHFDQUFxQyxtQkFBTyxDQUFDLGdHQUFzQjtBQUNuRSx5Q0FBeUMsbUJBQU8sQ0FBQyw4R0FBa0I7QUFDbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3REFBd0QsYUFBYTtBQUNyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyw2SEFBNkgsSUFBSSwyRUFBMkU7QUFDaFAsb0NBQW9DLG9IQUFvSDtBQUN4SjtBQUNBLGlDQUFpQyxtSEFBbUg7QUFDcEoscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRCxjQUFjO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVFQUF1RSxhQUFhO0FBQ3BGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLHNCQUFzQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLFlBQVksY0FBYyxJQUFJLGNBQWM7QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBZTtBQUNmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvY2pzL1Bvc3RncmVzdEJ1aWxkZXIuanM/MzVjNyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcclxufTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG4vLyBAdHMtaWdub3JlXHJcbmNvbnN0IG5vZGVfZmV0Y2hfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQHN1cGFiYXNlL25vZGUtZmV0Y2hcIikpO1xyXG5jb25zdCBQb3N0Z3Jlc3RFcnJvcl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL1Bvc3RncmVzdEVycm9yXCIpKTtcclxuY2xhc3MgUG9zdGdyZXN0QnVpbGRlciB7XHJcbiAgICBjb25zdHJ1Y3RvcihidWlsZGVyKSB7XHJcbiAgICAgICAgdGhpcy5zaG91bGRUaHJvd09uRXJyb3IgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1ldGhvZCA9IGJ1aWxkZXIubWV0aG9kO1xyXG4gICAgICAgIHRoaXMudXJsID0gYnVpbGRlci51cmw7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJzID0gYnVpbGRlci5oZWFkZXJzO1xyXG4gICAgICAgIHRoaXMuc2NoZW1hID0gYnVpbGRlci5zY2hlbWE7XHJcbiAgICAgICAgdGhpcy5ib2R5ID0gYnVpbGRlci5ib2R5O1xyXG4gICAgICAgIHRoaXMuc2hvdWxkVGhyb3dPbkVycm9yID0gYnVpbGRlci5zaG91bGRUaHJvd09uRXJyb3I7XHJcbiAgICAgICAgdGhpcy5zaWduYWwgPSBidWlsZGVyLnNpZ25hbDtcclxuICAgICAgICB0aGlzLmlzTWF5YmVTaW5nbGUgPSBidWlsZGVyLmlzTWF5YmVTaW5nbGU7XHJcbiAgICAgICAgaWYgKGJ1aWxkZXIuZmV0Y2gpIHtcclxuICAgICAgICAgICAgdGhpcy5mZXRjaCA9IGJ1aWxkZXIuZmV0Y2g7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBmZXRjaCA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5mZXRjaCA9IG5vZGVfZmV0Y2hfMS5kZWZhdWx0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mZXRjaCA9IGZldGNoO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogSWYgdGhlcmUncyBhbiBlcnJvciB3aXRoIHRoZSBxdWVyeSwgdGhyb3dPbkVycm9yIHdpbGwgcmVqZWN0IHRoZSBwcm9taXNlIGJ5XHJcbiAgICAgKiB0aHJvd2luZyB0aGUgZXJyb3IgaW5zdGVhZCBvZiByZXR1cm5pbmcgaXQgYXMgcGFydCBvZiBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UuXHJcbiAgICAgKlxyXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zdXBhYmFzZS9zdXBhYmFzZS1qcy9pc3N1ZXMvOTJ9XHJcbiAgICAgKi9cclxuICAgIHRocm93T25FcnJvcigpIHtcclxuICAgICAgICB0aGlzLnNob3VsZFRocm93T25FcnJvciA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNldCBhbiBIVFRQIGhlYWRlciBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICAgKi9cclxuICAgIHNldEhlYWRlcihuYW1lLCB2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuaGVhZGVycyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuaGVhZGVycyk7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJzW25hbWVdID0gdmFsdWU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICB0aGVuKG9uZnVsZmlsbGVkLCBvbnJlamVjdGVkKSB7XHJcbiAgICAgICAgLy8gaHR0cHM6Ly9wb3N0Z3Jlc3Qub3JnL2VuL3N0YWJsZS9hcGkuaHRtbCNzd2l0Y2hpbmctc2NoZW1hc1xyXG4gICAgICAgIGlmICh0aGlzLnNjaGVtYSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIC8vIHNraXBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoWydHRVQnLCAnSEVBRCddLmluY2x1ZGVzKHRoaXMubWV0aG9kKSkge1xyXG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbJ0FjY2VwdC1Qcm9maWxlJ10gPSB0aGlzLnNjaGVtYTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyc1snQ29udGVudC1Qcm9maWxlJ10gPSB0aGlzLnNjaGVtYTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubWV0aG9kICE9PSAnR0VUJyAmJiB0aGlzLm1ldGhvZCAhPT0gJ0hFQUQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24vanNvbic7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE5PVEU6IEludm9rZSB3L28gYHRoaXNgIHRvIGF2b2lkIGlsbGVnYWwgaW52b2NhdGlvbiBlcnJvci5cclxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vc3VwYWJhc2UvcG9zdGdyZXN0LWpzL3B1bGwvMjQ3XHJcbiAgICAgICAgY29uc3QgX2ZldGNoID0gdGhpcy5mZXRjaDtcclxuICAgICAgICBsZXQgcmVzID0gX2ZldGNoKHRoaXMudXJsLnRvU3RyaW5nKCksIHtcclxuICAgICAgICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcclxuICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh0aGlzLmJvZHkpLFxyXG4gICAgICAgICAgICBzaWduYWw6IHRoaXMuc2lnbmFsLFxyXG4gICAgICAgIH0pLnRoZW4oYXN5bmMgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICB2YXIgX2EsIF9iLCBfYztcclxuICAgICAgICAgICAgbGV0IGVycm9yID0gbnVsbDtcclxuICAgICAgICAgICAgbGV0IGRhdGEgPSBudWxsO1xyXG4gICAgICAgICAgICBsZXQgY291bnQgPSBudWxsO1xyXG4gICAgICAgICAgICBsZXQgc3RhdHVzID0gcmVzLnN0YXR1cztcclxuICAgICAgICAgICAgbGV0IHN0YXR1c1RleHQgPSByZXMuc3RhdHVzVGV4dDtcclxuICAgICAgICAgICAgaWYgKHJlcy5vaykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWV0aG9kICE9PSAnSEVBRCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5ID0gYXdhaXQgcmVzLnRleHQoKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYm9keSA9PT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJlZmVyOiByZXR1cm49bWluaW1hbFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmhlYWRlcnNbJ0FjY2VwdCddID09PSAndGV4dC9jc3YnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBib2R5O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmhlYWRlcnNbJ0FjY2VwdCddICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyc1snQWNjZXB0J10uaW5jbHVkZXMoJ2FwcGxpY2F0aW9uL3ZuZC5wZ3JzdC5wbGFuK3RleHQnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gYm9keTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGJvZHkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvdW50SGVhZGVyID0gKF9hID0gdGhpcy5oZWFkZXJzWydQcmVmZXInXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm1hdGNoKC9jb3VudD0oZXhhY3R8cGxhbm5lZHxlc3RpbWF0ZWQpLyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50UmFuZ2UgPSAoX2IgPSByZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtcmFuZ2UnKSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY291bnRIZWFkZXIgJiYgY29udGVudFJhbmdlICYmIGNvbnRlbnRSYW5nZS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY291bnQgPSBwYXJzZUludChjb250ZW50UmFuZ2VbMV0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gVGVtcG9yYXJ5IHBhcnRpYWwgZml4IGZvciBodHRwczovL2dpdGh1Yi5jb20vc3VwYWJhc2UvcG9zdGdyZXN0LWpzL2lzc3Vlcy8zNjFcclxuICAgICAgICAgICAgICAgIC8vIElzc3VlIHBlcnNpc3RzIGUuZy4gZm9yIGAuaW5zZXJ0KFsuLi5dKS5zZWxlY3QoKS5tYXliZVNpbmdsZSgpYFxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNNYXliZVNpbmdsZSAmJiB0aGlzLm1ldGhvZCA9PT0gJ0dFVCcgJiYgQXJyYXkuaXNBcnJheShkYXRhKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vUG9zdGdSRVNUL3Bvc3RncmVzdC9ibG9iL2E4NjdkNzljNDI0MTlhZjE2YzE4YzNmYjAxOWViYThkZjk5MjYyNmYvc3JjL1Bvc3RnUkVTVC9FcnJvci5ocyNMNTUzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiAnUEdSU1QxMTYnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsczogYFJlc3VsdHMgY29udGFpbiAke2RhdGEubGVuZ3RofSByb3dzLCBhcHBsaWNhdGlvbi92bmQucGdyc3Qub2JqZWN0K2pzb24gcmVxdWlyZXMgMSByb3dgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdKU09OIG9iamVjdCByZXF1ZXN0ZWQsIG11bHRpcGxlIChvciBubykgcm93cyByZXR1cm5lZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IDQwNjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dCA9ICdOb3QgQWNjZXB0YWJsZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRhdGEubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYm9keSA9IGF3YWl0IHJlcy50ZXh0KCk7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVycm9yID0gSlNPTi5wYXJzZShib2R5KTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciBodHRwczovL2dpdGh1Yi5jb20vc3VwYWJhc2UvcG9zdGdyZXN0LWpzL2lzc3Vlcy8yOTVcclxuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlcnJvcikgJiYgcmVzLnN0YXR1cyA9PT0gNDA0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQgPSAnT0snO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChfZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9zdXBhYmFzZS9wb3N0Z3Jlc3QtanMvaXNzdWVzLzI5NVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09PSA0MDQgJiYgYm9keSA9PT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gMjA0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0ID0gJ05vIENvbnRlbnQnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBib2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChlcnJvciAmJiB0aGlzLmlzTWF5YmVTaW5nbGUgJiYgKChfYyA9IGVycm9yID09PSBudWxsIHx8IGVycm9yID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnJvci5kZXRhaWxzKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuaW5jbHVkZXMoJzAgcm93cycpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVycm9yID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dCA9ICdPSyc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IgJiYgdGhpcy5zaG91bGRUaHJvd09uRXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUG9zdGdyZXN0RXJyb3JfMS5kZWZhdWx0KGVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBwb3N0Z3Jlc3RSZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICAgIGNvdW50LFxyXG4gICAgICAgICAgICAgICAgc3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgc3RhdHVzVGV4dCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgcmV0dXJuIHBvc3RncmVzdFJlc3BvbnNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmICghdGhpcy5zaG91bGRUaHJvd09uRXJyb3IpIHtcclxuICAgICAgICAgICAgcmVzID0gcmVzLmNhdGNoKChmZXRjaEVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iLCBfYztcclxuICAgICAgICAgICAgICAgIHJldHVybiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGAkeyhfYSA9IGZldGNoRXJyb3IgPT09IG51bGwgfHwgZmV0Y2hFcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmV0Y2hFcnJvci5uYW1lKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnRmV0Y2hFcnJvcid9OiAke2ZldGNoRXJyb3IgPT09IG51bGwgfHwgZmV0Y2hFcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmV0Y2hFcnJvci5tZXNzYWdlfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHM6IGAkeyhfYiA9IGZldGNoRXJyb3IgPT09IG51bGwgfHwgZmV0Y2hFcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmV0Y2hFcnJvci5zdGFjaykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogJyd9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGludDogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IGAkeyhfYyA9IGZldGNoRXJyb3IgPT09IG51bGwgfHwgZmV0Y2hFcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmV0Y2hFcnJvci5jb2RlKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAnJ31gLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICBjb3VudDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dDogJycsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXMudGhlbihvbmZ1bGZpbGxlZCwgb25yZWplY3RlZCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIE92ZXJyaWRlIHRoZSB0eXBlIG9mIHRoZSByZXR1cm5lZCBgZGF0YWAuXHJcbiAgICAgKlxyXG4gICAgICogQHR5cGVQYXJhbSBOZXdSZXN1bHQgLSBUaGUgbmV3IHJlc3VsdCB0eXBlIHRvIG92ZXJyaWRlIHdpdGhcclxuICAgICAqIEBkZXByZWNhdGVkIFVzZSBvdmVycmlkZVR5cGVzPHlvdXJUeXBlLCB7IG1lcmdlOiBmYWxzZSB9PigpIG1ldGhvZCBhdCB0aGUgZW5kIG9mIHlvdXIgY2FsbCBjaGFpbiBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIHJldHVybnMoKSB7XHJcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogT3ZlcnJpZGUgdGhlIHR5cGUgb2YgdGhlIHJldHVybmVkIGBkYXRhYCBmaWVsZCBpbiB0aGUgcmVzcG9uc2UuXHJcbiAgICAgKlxyXG4gICAgICogQHR5cGVQYXJhbSBOZXdSZXN1bHQgLSBUaGUgbmV3IHR5cGUgdG8gY2FzdCB0aGUgcmVzcG9uc2UgZGF0YSB0b1xyXG4gICAgICogQHR5cGVQYXJhbSBPcHRpb25zIC0gT3B0aW9uYWwgdHlwZSBjb25maWd1cmF0aW9uIChkZWZhdWx0cyB0byB7IG1lcmdlOiB0cnVlIH0pXHJcbiAgICAgKiBAdHlwZVBhcmFtIE9wdGlvbnMubWVyZ2UgLSBXaGVuIHRydWUsIG1lcmdlcyB0aGUgbmV3IHR5cGUgd2l0aCBleGlzdGluZyByZXR1cm4gdHlwZS4gV2hlbiBmYWxzZSwgcmVwbGFjZXMgdGhlIGV4aXN0aW5nIHR5cGVzIGVudGlyZWx5IChkZWZhdWx0cyB0byB0cnVlKVxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIGBgYHR5cGVzY3JpcHRcclxuICAgICAqIC8vIE1lcmdlIHdpdGggZXhpc3RpbmcgdHlwZXMgKGRlZmF1bHQgYmVoYXZpb3IpXHJcbiAgICAgKiBjb25zdCBxdWVyeSA9IHN1cGFiYXNlXHJcbiAgICAgKiAgIC5mcm9tKCd1c2VycycpXHJcbiAgICAgKiAgIC5zZWxlY3QoKVxyXG4gICAgICogICAub3ZlcnJpZGVUeXBlczx7IGN1c3RvbV9maWVsZDogc3RyaW5nIH0+KClcclxuICAgICAqXHJcbiAgICAgKiAvLyBSZXBsYWNlIGV4aXN0aW5nIHR5cGVzIGNvbXBsZXRlbHlcclxuICAgICAqIGNvbnN0IHJlcGxhY2VRdWVyeSA9IHN1cGFiYXNlXHJcbiAgICAgKiAgIC5mcm9tKCd1c2VycycpXHJcbiAgICAgKiAgIC5zZWxlY3QoKVxyXG4gICAgICogICAub3ZlcnJpZGVUeXBlczx7IGlkOiBudW1iZXI7IG5hbWU6IHN0cmluZyB9LCB7IG1lcmdlOiBmYWxzZSB9PigpXHJcbiAgICAgKiBgYGBcclxuICAgICAqIEByZXR1cm5zIEEgUG9zdGdyZXN0QnVpbGRlciBpbnN0YW5jZSB3aXRoIHRoZSBuZXcgdHlwZVxyXG4gICAgICovXHJcbiAgICBvdmVycmlkZVR5cGVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydHMuZGVmYXVsdCA9IFBvc3RncmVzdEJ1aWxkZXI7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBvc3RncmVzdEJ1aWxkZXIuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestBuilder.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestClient.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestClient.js ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst PostgrestQueryBuilder_1 = __importDefault(__webpack_require__(/*! ./PostgrestQueryBuilder */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestQueryBuilder.js\"));\r\nconst PostgrestFilterBuilder_1 = __importDefault(__webpack_require__(/*! ./PostgrestFilterBuilder */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestFilterBuilder.js\"));\r\nconst constants_1 = __webpack_require__(/*! ./constants */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/constants.js\");\r\n/**\r\n * PostgREST client.\r\n *\r\n * @typeParam Database - Types for the schema from the [type\r\n * generator](https://supabase.com/docs/reference/javascript/next/typescript-support)\r\n *\r\n * @typeParam SchemaName - Postgres schema to switch to. Must be a string\r\n * literal, the same one passed to the constructor. If the schema is not\r\n * `\"public\"`, this must be supplied manually.\r\n */\r\nclass PostgrestClient {\r\n // TODO: Add back shouldThrowOnError once we figure out the typings\r\n /**\r\n * Creates a PostgREST client.\r\n *\r\n * @param url - URL of the PostgREST endpoint\r\n * @param options - Named parameters\r\n * @param options.headers - Custom headers\r\n * @param options.schema - Postgres schema to switch to\r\n * @param options.fetch - Custom fetch\r\n */\r\n constructor(url, { headers = {}, schema, fetch, } = {}) {\r\n this.url = url;\r\n this.headers = Object.assign(Object.assign({}, constants_1.DEFAULT_HEADERS), headers);\r\n this.schemaName = schema;\r\n this.fetch = fetch;\r\n }\r\n /**\r\n * Perform a query on a table or a view.\r\n *\r\n * @param relation - The table or view name to query\r\n */\r\n from(relation) {\r\n const url = new URL(`${this.url}/${relation}`);\r\n return new PostgrestQueryBuilder_1.default(url, {\r\n headers: Object.assign({}, this.headers),\r\n schema: this.schemaName,\r\n fetch: this.fetch,\r\n });\r\n }\r\n /**\r\n * Select a schema to query or perform an function (rpc) call.\r\n *\r\n * The schema needs to be on the list of exposed schemas inside Supabase.\r\n *\r\n * @param schema - The schema to query\r\n */\r\n schema(schema) {\r\n return new PostgrestClient(this.url, {\r\n headers: this.headers,\r\n schema,\r\n fetch: this.fetch,\r\n });\r\n }\r\n /**\r\n * Perform a function call.\r\n *\r\n * @param fn - The function name to call\r\n * @param args - The arguments to pass to the function call\r\n * @param options - Named parameters\r\n * @param options.head - When set to `true`, `data` will not be returned.\r\n * Useful if you only need the count.\r\n * @param options.get - When set to `true`, the function will be called with\r\n * read-only access mode.\r\n * @param options.count - Count algorithm to use to count rows returned by the\r\n * function. Only applicable for [set-returning\r\n * functions](https://www.postgresql.org/docs/current/functions-srf.html).\r\n *\r\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\r\n * hood.\r\n *\r\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\r\n * statistics under the hood.\r\n *\r\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\r\n * numbers.\r\n */\r\n rpc(fn, args = {}, { head = false, get = false, count, } = {}) {\r\n let method;\r\n const url = new URL(`${this.url}/rpc/${fn}`);\r\n let body;\r\n if (head || get) {\r\n method = head ? 'HEAD' : 'GET';\r\n Object.entries(args)\r\n // params with undefined value needs to be filtered out, otherwise it'll\r\n // show up as `?param=undefined`\r\n .filter(([_, value]) => value !== undefined)\r\n // array values need special syntax\r\n .map(([name, value]) => [name, Array.isArray(value) ? `{${value.join(',')}}` : `${value}`])\r\n .forEach(([name, value]) => {\r\n url.searchParams.append(name, value);\r\n });\r\n }\r\n else {\r\n method = 'POST';\r\n body = args;\r\n }\r\n const headers = Object.assign({}, this.headers);\r\n if (count) {\r\n headers['Prefer'] = `count=${count}`;\r\n }\r\n return new PostgrestFilterBuilder_1.default({\r\n method,\r\n url,\r\n headers,\r\n schema: this.schemaName,\r\n body,\r\n fetch: this.fetch,\r\n allowEmpty: false,\r\n });\r\n }\r\n}\r\nexports[\"default\"] = PostgrestClient;\r\n//# sourceMappingURL=PostgrestClient.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvY2pzL1Bvc3RncmVzdENsaWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGdEQUFnRCxtQkFBTyxDQUFDLDRIQUF5QjtBQUNqRixpREFBaUQsbUJBQU8sQ0FBQyw4SEFBMEI7QUFDbkYsb0JBQW9CLG1CQUFPLENBQUMsb0dBQWE7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLFlBQVksbUJBQW1CLElBQUk7QUFDMUQ7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLFNBQVMsR0FBRyxTQUFTO0FBQ3BEO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLElBQUksb0NBQW9DLElBQUk7QUFDakU7QUFDQSwrQkFBK0IsU0FBUyxPQUFPLEdBQUc7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdFQUF3RSxFQUFFLGlCQUFpQixPQUFPLE1BQU07QUFDeEc7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0EseUNBQXlDLE1BQU07QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxrQkFBZTtBQUNmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvY2pzL1Bvc3RncmVzdENsaWVudC5qcz8wMTAzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcclxuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xyXG59O1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmNvbnN0IFBvc3RncmVzdFF1ZXJ5QnVpbGRlcl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL1Bvc3RncmVzdFF1ZXJ5QnVpbGRlclwiKSk7XHJcbmNvbnN0IFBvc3RncmVzdEZpbHRlckJ1aWxkZXJfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9Qb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyXCIpKTtcclxuY29uc3QgY29uc3RhbnRzXzEgPSByZXF1aXJlKFwiLi9jb25zdGFudHNcIik7XHJcbi8qKlxyXG4gKiBQb3N0Z1JFU1QgY2xpZW50LlxyXG4gKlxyXG4gKiBAdHlwZVBhcmFtIERhdGFiYXNlIC0gVHlwZXMgZm9yIHRoZSBzY2hlbWEgZnJvbSB0aGUgW3R5cGVcclxuICogZ2VuZXJhdG9yXShodHRwczovL3N1cGFiYXNlLmNvbS9kb2NzL3JlZmVyZW5jZS9qYXZhc2NyaXB0L25leHQvdHlwZXNjcmlwdC1zdXBwb3J0KVxyXG4gKlxyXG4gKiBAdHlwZVBhcmFtIFNjaGVtYU5hbWUgLSBQb3N0Z3JlcyBzY2hlbWEgdG8gc3dpdGNoIHRvLiBNdXN0IGJlIGEgc3RyaW5nXHJcbiAqIGxpdGVyYWwsIHRoZSBzYW1lIG9uZSBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLiBJZiB0aGUgc2NoZW1hIGlzIG5vdFxyXG4gKiBgXCJwdWJsaWNcImAsIHRoaXMgbXVzdCBiZSBzdXBwbGllZCBtYW51YWxseS5cclxuICovXHJcbmNsYXNzIFBvc3RncmVzdENsaWVudCB7XHJcbiAgICAvLyBUT0RPOiBBZGQgYmFjayBzaG91bGRUaHJvd09uRXJyb3Igb25jZSB3ZSBmaWd1cmUgb3V0IHRoZSB0eXBpbmdzXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYSBQb3N0Z1JFU1QgY2xpZW50LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB1cmwgLSBVUkwgb2YgdGhlIFBvc3RnUkVTVCBlbmRwb2ludFxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSBOYW1lZCBwYXJhbWV0ZXJzXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5oZWFkZXJzIC0gQ3VzdG9tIGhlYWRlcnNcclxuICAgICAqIEBwYXJhbSBvcHRpb25zLnNjaGVtYSAtIFBvc3RncmVzIHNjaGVtYSB0byBzd2l0Y2ggdG9cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmZldGNoIC0gQ3VzdG9tIGZldGNoXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHVybCwgeyBoZWFkZXJzID0ge30sIHNjaGVtYSwgZmV0Y2gsIH0gPSB7fSkge1xyXG4gICAgICAgIHRoaXMudXJsID0gdXJsO1xyXG4gICAgICAgIHRoaXMuaGVhZGVycyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY29uc3RhbnRzXzEuREVGQVVMVF9IRUFERVJTKSwgaGVhZGVycyk7XHJcbiAgICAgICAgdGhpcy5zY2hlbWFOYW1lID0gc2NoZW1hO1xyXG4gICAgICAgIHRoaXMuZmV0Y2ggPSBmZXRjaDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybSBhIHF1ZXJ5IG9uIGEgdGFibGUgb3IgYSB2aWV3LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWxhdGlvbiAtIFRoZSB0YWJsZSBvciB2aWV3IG5hbWUgdG8gcXVlcnlcclxuICAgICAqL1xyXG4gICAgZnJvbShyZWxhdGlvbikge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoYCR7dGhpcy51cmx9LyR7cmVsYXRpb259YCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc3RRdWVyeUJ1aWxkZXJfMS5kZWZhdWx0KHVybCwge1xyXG4gICAgICAgICAgICBoZWFkZXJzOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmhlYWRlcnMpLFxyXG4gICAgICAgICAgICBzY2hlbWE6IHRoaXMuc2NoZW1hTmFtZSxcclxuICAgICAgICAgICAgZmV0Y2g6IHRoaXMuZmV0Y2gsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNlbGVjdCBhIHNjaGVtYSB0byBxdWVyeSBvciBwZXJmb3JtIGFuIGZ1bmN0aW9uIChycGMpIGNhbGwuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIHNjaGVtYSBuZWVkcyB0byBiZSBvbiB0aGUgbGlzdCBvZiBleHBvc2VkIHNjaGVtYXMgaW5zaWRlIFN1cGFiYXNlLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBzY2hlbWEgLSBUaGUgc2NoZW1hIHRvIHF1ZXJ5XHJcbiAgICAgKi9cclxuICAgIHNjaGVtYShzY2hlbWEpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFBvc3RncmVzdENsaWVudCh0aGlzLnVybCwge1xyXG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgIHNjaGVtYSxcclxuICAgICAgICAgICAgZmV0Y2g6IHRoaXMuZmV0Y2gsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFBlcmZvcm0gYSBmdW5jdGlvbiBjYWxsLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBmbiAtIFRoZSBmdW5jdGlvbiBuYW1lIHRvIGNhbGxcclxuICAgICAqIEBwYXJhbSBhcmdzIC0gVGhlIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBmdW5jdGlvbiBjYWxsXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmhlYWQgLSBXaGVuIHNldCB0byBgdHJ1ZWAsIGBkYXRhYCB3aWxsIG5vdCBiZSByZXR1cm5lZC5cclxuICAgICAqIFVzZWZ1bCBpZiB5b3Ugb25seSBuZWVkIHRoZSBjb3VudC5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmdldCAtIFdoZW4gc2V0IHRvIGB0cnVlYCwgdGhlIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdpdGhcclxuICAgICAqIHJlYWQtb25seSBhY2Nlc3MgbW9kZS5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmNvdW50IC0gQ291bnQgYWxnb3JpdGhtIHRvIHVzZSB0byBjb3VudCByb3dzIHJldHVybmVkIGJ5IHRoZVxyXG4gICAgICogZnVuY3Rpb24uIE9ubHkgYXBwbGljYWJsZSBmb3IgW3NldC1yZXR1cm5pbmdcclxuICAgICAqIGZ1bmN0aW9uc10oaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L2Z1bmN0aW9ucy1zcmYuaHRtbCkuXHJcbiAgICAgKlxyXG4gICAgICogYFwiZXhhY3RcImA6IEV4YWN0IGJ1dCBzbG93IGNvdW50IGFsZ29yaXRobS4gUGVyZm9ybXMgYSBgQ09VTlQoKilgIHVuZGVyIHRoZVxyXG4gICAgICogaG9vZC5cclxuICAgICAqXHJcbiAgICAgKiBgXCJwbGFubmVkXCJgOiBBcHByb3hpbWF0ZWQgYnV0IGZhc3QgY291bnQgYWxnb3JpdGhtLiBVc2VzIHRoZSBQb3N0Z3Jlc1xyXG4gICAgICogc3RhdGlzdGljcyB1bmRlciB0aGUgaG9vZC5cclxuICAgICAqXHJcbiAgICAgKiBgXCJlc3RpbWF0ZWRcImA6IFVzZXMgZXhhY3QgY291bnQgZm9yIGxvdyBudW1iZXJzIGFuZCBwbGFubmVkIGNvdW50IGZvciBoaWdoXHJcbiAgICAgKiBudW1iZXJzLlxyXG4gICAgICovXHJcbiAgICBycGMoZm4sIGFyZ3MgPSB7fSwgeyBoZWFkID0gZmFsc2UsIGdldCA9IGZhbHNlLCBjb3VudCwgfSA9IHt9KSB7XHJcbiAgICAgICAgbGV0IG1ldGhvZDtcclxuICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGAke3RoaXMudXJsfS9ycGMvJHtmbn1gKTtcclxuICAgICAgICBsZXQgYm9keTtcclxuICAgICAgICBpZiAoaGVhZCB8fCBnZXQpIHtcclxuICAgICAgICAgICAgbWV0aG9kID0gaGVhZCA/ICdIRUFEJyA6ICdHRVQnO1xyXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhhcmdzKVxyXG4gICAgICAgICAgICAgICAgLy8gcGFyYW1zIHdpdGggdW5kZWZpbmVkIHZhbHVlIG5lZWRzIHRvIGJlIGZpbHRlcmVkIG91dCwgb3RoZXJ3aXNlIGl0J2xsXHJcbiAgICAgICAgICAgICAgICAvLyBzaG93IHVwIGFzIGA/cGFyYW09dW5kZWZpbmVkYFxyXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgICAgIC8vIGFycmF5IHZhbHVlcyBuZWVkIHNwZWNpYWwgc3ludGF4XHJcbiAgICAgICAgICAgICAgICAubWFwKChbbmFtZSwgdmFsdWVdKSA9PiBbbmFtZSwgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBgeyR7dmFsdWUuam9pbignLCcpfX1gIDogYCR7dmFsdWV9YF0pXHJcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoW25hbWUsIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQobmFtZSwgdmFsdWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIG1ldGhvZCA9ICdQT1NUJztcclxuICAgICAgICAgICAgYm9keSA9IGFyZ3M7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmhlYWRlcnMpO1xyXG4gICAgICAgIGlmIChjb3VudCkge1xyXG4gICAgICAgICAgICBoZWFkZXJzWydQcmVmZXInXSA9IGBjb3VudD0ke2NvdW50fWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXcgUG9zdGdyZXN0RmlsdGVyQnVpbGRlcl8xLmRlZmF1bHQoe1xyXG4gICAgICAgICAgICBtZXRob2QsXHJcbiAgICAgICAgICAgIHVybCxcclxuICAgICAgICAgICAgaGVhZGVycyxcclxuICAgICAgICAgICAgc2NoZW1hOiB0aGlzLnNjaGVtYU5hbWUsXHJcbiAgICAgICAgICAgIGJvZHksXHJcbiAgICAgICAgICAgIGZldGNoOiB0aGlzLmZldGNoLFxyXG4gICAgICAgICAgICBhbGxvd0VtcHR5OiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG5leHBvcnRzLmRlZmF1bHQgPSBQb3N0Z3Jlc3RDbGllbnQ7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBvc3RncmVzdENsaWVudC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestClient.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestError.js":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestError.js ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n/**\r\n * Error format\r\n *\r\n * {@link https://postgrest.org/en/stable/api.html?highlight=options#errors-and-http-status-codes}\r\n */\r\nclass PostgrestError extends Error {\r\n constructor(context) {\r\n super(context.message);\r\n this.name = 'PostgrestError';\r\n this.details = context.details;\r\n this.hint = context.hint;\r\n this.code = context.code;\r\n }\r\n}\r\nexports[\"default\"] = PostgrestError;\r\n//# sourceMappingURL=PostgrestError.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvY2pzL1Bvc3RncmVzdEVycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdEO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFlO0FBQ2YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9janMvUG9zdGdyZXN0RXJyb3IuanM/Nzk2NiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG4vKipcclxuICogRXJyb3IgZm9ybWF0XHJcbiAqXHJcbiAqIHtAbGluayBodHRwczovL3Bvc3RncmVzdC5vcmcvZW4vc3RhYmxlL2FwaS5odG1sP2hpZ2hsaWdodD1vcHRpb25zI2Vycm9ycy1hbmQtaHR0cC1zdGF0dXMtY29kZXN9XHJcbiAqL1xyXG5jbGFzcyBQb3N0Z3Jlc3RFcnJvciBleHRlbmRzIEVycm9yIHtcclxuICAgIGNvbnN0cnVjdG9yKGNvbnRleHQpIHtcclxuICAgICAgICBzdXBlcihjb250ZXh0Lm1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMubmFtZSA9ICdQb3N0Z3Jlc3RFcnJvcic7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxzID0gY29udGV4dC5kZXRhaWxzO1xyXG4gICAgICAgIHRoaXMuaGludCA9IGNvbnRleHQuaGludDtcclxuICAgICAgICB0aGlzLmNvZGUgPSBjb250ZXh0LmNvZGU7XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0cy5kZWZhdWx0ID0gUG9zdGdyZXN0RXJyb3I7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBvc3RncmVzdEVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestError.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestFilterBuilder.js":
|
||
/*!********************************************************************************!*\
|
||
!*** ./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestFilterBuilder.js ***!
|
||
\********************************************************************************/
|
||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst PostgrestTransformBuilder_1 = __importDefault(__webpack_require__(/*! ./PostgrestTransformBuilder */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js\"));\r\nclass PostgrestFilterBuilder extends PostgrestTransformBuilder_1.default {\r\n /**\r\n * Match only rows where `column` is equal to `value`.\r\n *\r\n * To check if the value of `column` is NULL, you should use `.is()` instead.\r\n *\r\n * @param column - The column to filter on\r\n * @param value - The value to filter with\r\n */\r\n eq(column, value) {\r\n this.url.searchParams.append(column, `eq.${value}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows where `column` is not equal to `value`.\r\n *\r\n * @param column - The column to filter on\r\n * @param value - The value to filter with\r\n */\r\n neq(column, value) {\r\n this.url.searchParams.append(column, `neq.${value}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows where `column` is greater than `value`.\r\n *\r\n * @param column - The column to filter on\r\n * @param value - The value to filter with\r\n */\r\n gt(column, value) {\r\n this.url.searchParams.append(column, `gt.${value}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows where `column` is greater than or equal to `value`.\r\n *\r\n * @param column - The column to filter on\r\n * @param value - The value to filter with\r\n */\r\n gte(column, value) {\r\n this.url.searchParams.append(column, `gte.${value}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows where `column` is less than `value`.\r\n *\r\n * @param column - The column to filter on\r\n * @param value - The value to filter with\r\n */\r\n lt(column, value) {\r\n this.url.searchParams.append(column, `lt.${value}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows where `column` is less than or equal to `value`.\r\n *\r\n * @param column - The column to filter on\r\n * @param value - The value to filter with\r\n */\r\n lte(column, value) {\r\n this.url.searchParams.append(column, `lte.${value}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows where `column` matches `pattern` case-sensitively.\r\n *\r\n * @param column - The column to filter on\r\n * @param pattern - The pattern to match with\r\n */\r\n like(column, pattern) {\r\n this.url.searchParams.append(column, `like.${pattern}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows where `column` matches all of `patterns` case-sensitively.\r\n *\r\n * @param column - The column to filter on\r\n * @param patterns - The patterns to match with\r\n */\r\n likeAllOf(column, patterns) {\r\n this.url.searchParams.append(column, `like(all).{${patterns.join(',')}}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows where `column` matches any of `patterns` case-sensitively.\r\n *\r\n * @param column - The column to filter on\r\n * @param patterns - The patterns to match with\r\n */\r\n likeAnyOf(column, patterns) {\r\n this.url.searchParams.append(column, `like(any).{${patterns.join(',')}}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows where `column` matches `pattern` case-insensitively.\r\n *\r\n * @param column - The column to filter on\r\n * @param pattern - The pattern to match with\r\n */\r\n ilike(column, pattern) {\r\n this.url.searchParams.append(column, `ilike.${pattern}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows where `column` matches all of `patterns` case-insensitively.\r\n *\r\n * @param column - The column to filter on\r\n * @param patterns - The patterns to match with\r\n */\r\n ilikeAllOf(column, patterns) {\r\n this.url.searchParams.append(column, `ilike(all).{${patterns.join(',')}}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows where `column` matches any of `patterns` case-insensitively.\r\n *\r\n * @param column - The column to filter on\r\n * @param patterns - The patterns to match with\r\n */\r\n ilikeAnyOf(column, patterns) {\r\n this.url.searchParams.append(column, `ilike(any).{${patterns.join(',')}}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows where `column` IS `value`.\r\n *\r\n * For non-boolean columns, this is only relevant for checking if the value of\r\n * `column` is NULL by setting `value` to `null`.\r\n *\r\n * For boolean columns, you can also set `value` to `true` or `false` and it\r\n * will behave the same way as `.eq()`.\r\n *\r\n * @param column - The column to filter on\r\n * @param value - The value to filter with\r\n */\r\n is(column, value) {\r\n this.url.searchParams.append(column, `is.${value}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows where `column` is included in the `values` array.\r\n *\r\n * @param column - The column to filter on\r\n * @param values - The values array to filter with\r\n */\r\n in(column, values) {\r\n const cleanedValues = Array.from(new Set(values))\r\n .map((s) => {\r\n // handle postgrest reserved characters\r\n // https://postgrest.org/en/v7.0.0/api.html#reserved-characters\r\n if (typeof s === 'string' && new RegExp('[,()]').test(s))\r\n return `\"${s}\"`;\r\n else\r\n return `${s}`;\r\n })\r\n .join(',');\r\n this.url.searchParams.append(column, `in.(${cleanedValues})`);\r\n return this;\r\n }\r\n /**\r\n * Only relevant for jsonb, array, and range columns. Match only rows where\r\n * `column` contains every element appearing in `value`.\r\n *\r\n * @param column - The jsonb, array, or range column to filter on\r\n * @param value - The jsonb, array, or range value to filter with\r\n */\r\n contains(column, value) {\r\n if (typeof value === 'string') {\r\n // range types can be inclusive '[', ']' or exclusive '(', ')' so just\r\n // keep it simple and accept a string\r\n this.url.searchParams.append(column, `cs.${value}`);\r\n }\r\n else if (Array.isArray(value)) {\r\n // array\r\n this.url.searchParams.append(column, `cs.{${value.join(',')}}`);\r\n }\r\n else {\r\n // json\r\n this.url.searchParams.append(column, `cs.${JSON.stringify(value)}`);\r\n }\r\n return this;\r\n }\r\n /**\r\n * Only relevant for jsonb, array, and range columns. Match only rows where\r\n * every element appearing in `column` is contained by `value`.\r\n *\r\n * @param column - The jsonb, array, or range column to filter on\r\n * @param value - The jsonb, array, or range value to filter with\r\n */\r\n containedBy(column, value) {\r\n if (typeof value === 'string') {\r\n // range\r\n this.url.searchParams.append(column, `cd.${value}`);\r\n }\r\n else if (Array.isArray(value)) {\r\n // array\r\n this.url.searchParams.append(column, `cd.{${value.join(',')}}`);\r\n }\r\n else {\r\n // json\r\n this.url.searchParams.append(column, `cd.${JSON.stringify(value)}`);\r\n }\r\n return this;\r\n }\r\n /**\r\n * Only relevant for range columns. Match only rows where every element in\r\n * `column` is greater than any element in `range`.\r\n *\r\n * @param column - The range column to filter on\r\n * @param range - The range to filter with\r\n */\r\n rangeGt(column, range) {\r\n this.url.searchParams.append(column, `sr.${range}`);\r\n return this;\r\n }\r\n /**\r\n * Only relevant for range columns. Match only rows where every element in\r\n * `column` is either contained in `range` or greater than any element in\r\n * `range`.\r\n *\r\n * @param column - The range column to filter on\r\n * @param range - The range to filter with\r\n */\r\n rangeGte(column, range) {\r\n this.url.searchParams.append(column, `nxl.${range}`);\r\n return this;\r\n }\r\n /**\r\n * Only relevant for range columns. Match only rows where every element in\r\n * `column` is less than any element in `range`.\r\n *\r\n * @param column - The range column to filter on\r\n * @param range - The range to filter with\r\n */\r\n rangeLt(column, range) {\r\n this.url.searchParams.append(column, `sl.${range}`);\r\n return this;\r\n }\r\n /**\r\n * Only relevant for range columns. Match only rows where every element in\r\n * `column` is either contained in `range` or less than any element in\r\n * `range`.\r\n *\r\n * @param column - The range column to filter on\r\n * @param range - The range to filter with\r\n */\r\n rangeLte(column, range) {\r\n this.url.searchParams.append(column, `nxr.${range}`);\r\n return this;\r\n }\r\n /**\r\n * Only relevant for range columns. Match only rows where `column` is\r\n * mutually exclusive to `range` and there can be no element between the two\r\n * ranges.\r\n *\r\n * @param column - The range column to filter on\r\n * @param range - The range to filter with\r\n */\r\n rangeAdjacent(column, range) {\r\n this.url.searchParams.append(column, `adj.${range}`);\r\n return this;\r\n }\r\n /**\r\n * Only relevant for array and range columns. Match only rows where\r\n * `column` and `value` have an element in common.\r\n *\r\n * @param column - The array or range column to filter on\r\n * @param value - The array or range value to filter with\r\n */\r\n overlaps(column, value) {\r\n if (typeof value === 'string') {\r\n // range\r\n this.url.searchParams.append(column, `ov.${value}`);\r\n }\r\n else {\r\n // array\r\n this.url.searchParams.append(column, `ov.{${value.join(',')}}`);\r\n }\r\n return this;\r\n }\r\n /**\r\n * Only relevant for text and tsvector columns. Match only rows where\r\n * `column` matches the query string in `query`.\r\n *\r\n * @param column - The text or tsvector column to filter on\r\n * @param query - The query text to match with\r\n * @param options - Named parameters\r\n * @param options.config - The text search configuration to use\r\n * @param options.type - Change how the `query` text is interpreted\r\n */\r\n textSearch(column, query, { config, type } = {}) {\r\n let typePart = '';\r\n if (type === 'plain') {\r\n typePart = 'pl';\r\n }\r\n else if (type === 'phrase') {\r\n typePart = 'ph';\r\n }\r\n else if (type === 'websearch') {\r\n typePart = 'w';\r\n }\r\n const configPart = config === undefined ? '' : `(${config})`;\r\n this.url.searchParams.append(column, `${typePart}fts${configPart}.${query}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows where each column in `query` keys is equal to its\r\n * associated value. Shorthand for multiple `.eq()`s.\r\n *\r\n * @param query - The object to filter with, with column names as keys mapped\r\n * to their filter values\r\n */\r\n match(query) {\r\n Object.entries(query).forEach(([column, value]) => {\r\n this.url.searchParams.append(column, `eq.${value}`);\r\n });\r\n return this;\r\n }\r\n /**\r\n * Match only rows which doesn't satisfy the filter.\r\n *\r\n * Unlike most filters, `opearator` and `value` are used as-is and need to\r\n * follow [PostgREST\r\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\r\n * to make sure they are properly sanitized.\r\n *\r\n * @param column - The column to filter on\r\n * @param operator - The operator to be negated to filter with, following\r\n * PostgREST syntax\r\n * @param value - The value to filter with, following PostgREST syntax\r\n */\r\n not(column, operator, value) {\r\n this.url.searchParams.append(column, `not.${operator}.${value}`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows which satisfy at least one of the filters.\r\n *\r\n * Unlike most filters, `filters` is used as-is and needs to follow [PostgREST\r\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\r\n * to make sure it's properly sanitized.\r\n *\r\n * It's currently not possible to do an `.or()` filter across multiple tables.\r\n *\r\n * @param filters - The filters to use, following PostgREST syntax\r\n * @param options - Named parameters\r\n * @param options.referencedTable - Set this to filter on referenced tables\r\n * instead of the parent table\r\n * @param options.foreignTable - Deprecated, use `referencedTable` instead\r\n */\r\n or(filters, { foreignTable, referencedTable = foreignTable, } = {}) {\r\n const key = referencedTable ? `${referencedTable}.or` : 'or';\r\n this.url.searchParams.append(key, `(${filters})`);\r\n return this;\r\n }\r\n /**\r\n * Match only rows which satisfy the filter. This is an escape hatch - you\r\n * should use the specific filter methods wherever possible.\r\n *\r\n * Unlike most filters, `opearator` and `value` are used as-is and need to\r\n * follow [PostgREST\r\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\r\n * to make sure they are properly sanitized.\r\n *\r\n * @param column - The column to filter on\r\n * @param operator - The operator to filter with, following PostgREST syntax\r\n * @param value - The value to filter with, following PostgREST syntax\r\n */\r\n filter(column, operator, value) {\r\n this.url.searchParams.append(column, `${operator}.${value}`);\r\n return this;\r\n }\r\n}\r\nexports[\"default\"] = PostgrestFilterBuilder;\r\n//# sourceMappingURL=PostgrestFilterBuilder.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvY2pzL1Bvc3RncmVzdEZpbHRlckJ1aWxkZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxvREFBb0QsbUJBQU8sQ0FBQyxvSUFBNkI7QUFDekY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQsTUFBTTtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0QsTUFBTTtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQsTUFBTTtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0QsTUFBTTtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQsTUFBTTtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0QsTUFBTTtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsUUFBUTtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5REFBeUQsRUFBRSxvQkFBb0I7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlELEVBQUUsb0JBQW9CO0FBQy9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRCxRQUFRO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRCxFQUFFLG9CQUFvQjtBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQsRUFBRSxvQkFBb0I7QUFDaEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQW1ELE1BQU07QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixFQUFFO0FBQzdCO0FBQ0EsMEJBQTBCLEVBQUU7QUFDNUIsU0FBUztBQUNUO0FBQ0Esb0RBQW9ELGNBQWM7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1REFBdUQsTUFBTTtBQUM3RDtBQUNBO0FBQ0E7QUFDQSxzREFBc0QsRUFBRSxpQkFBaUI7QUFDekU7QUFDQTtBQUNBO0FBQ0EsdURBQXVELHNCQUFzQjtBQUM3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RCxNQUFNO0FBQzdEO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRCxFQUFFLGlCQUFpQjtBQUN6RTtBQUNBO0FBQ0E7QUFDQSx1REFBdUQsc0JBQXNCO0FBQzdFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQsTUFBTTtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0RBQW9ELE1BQU07QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQsTUFBTTtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0RBQW9ELE1BQU07QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRCxNQUFNO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RCxNQUFNO0FBQzdEO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRCxFQUFFLGlCQUFpQjtBQUN6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyxlQUFlLElBQUk7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQsT0FBTztBQUNsRSxnREFBZ0QsU0FBUyxLQUFLLFdBQVcsR0FBRyxNQUFNO0FBQ2xGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1REFBdUQsTUFBTTtBQUM3RCxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0QsU0FBUyxHQUFHLE1BQU07QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixnREFBZ0QsSUFBSTtBQUN0RSx5Q0FBeUMsZ0JBQWdCO0FBQ3pELDhDQUE4QyxRQUFRO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdELFNBQVMsR0FBRyxNQUFNO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBLGtCQUFlO0FBQ2YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9janMvUG9zdGdyZXN0RmlsdGVyQnVpbGRlci5qcz8yZThkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcclxuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xyXG59O1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmNvbnN0IFBvc3RncmVzdFRyYW5zZm9ybUJ1aWxkZXJfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9Qb3N0Z3Jlc3RUcmFuc2Zvcm1CdWlsZGVyXCIpKTtcclxuY2xhc3MgUG9zdGdyZXN0RmlsdGVyQnVpbGRlciBleHRlbmRzIFBvc3RncmVzdFRyYW5zZm9ybUJ1aWxkZXJfMS5kZWZhdWx0IHtcclxuICAgIC8qKlxyXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIGlzIGVxdWFsIHRvIGB2YWx1ZWAuXHJcbiAgICAgKlxyXG4gICAgICogVG8gY2hlY2sgaWYgdGhlIHZhbHVlIG9mIGBjb2x1bW5gIGlzIE5VTEwsIHlvdSBzaG91bGQgdXNlIGAuaXMoKWAgaW5zdGVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBmaWx0ZXIgd2l0aFxyXG4gICAgICovXHJcbiAgICBlcShjb2x1bW4sIHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBlcS4ke3ZhbHVlfWApO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgYGNvbHVtbmAgaXMgbm90IGVxdWFsIHRvIGB2YWx1ZWAuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gZmlsdGVyIHdpdGhcclxuICAgICAqL1xyXG4gICAgbmVxKGNvbHVtbiwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYG5lcS4ke3ZhbHVlfWApO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgYGNvbHVtbmAgaXMgZ3JlYXRlciB0aGFuIGB2YWx1ZWAuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gZmlsdGVyIHdpdGhcclxuICAgICAqL1xyXG4gICAgZ3QoY29sdW1uLCB2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgZ3QuJHt2YWx1ZX1gKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgdmFsdWVgLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGZpbHRlciB3aXRoXHJcbiAgICAgKi9cclxuICAgIGd0ZShjb2x1bW4sIHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBndGUuJHt2YWx1ZX1gKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIGlzIGxlc3MgdGhhbiBgdmFsdWVgLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGZpbHRlciB3aXRoXHJcbiAgICAgKi9cclxuICAgIGx0KGNvbHVtbiwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGx0LiR7dmFsdWV9YCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBgY29sdW1uYCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYHZhbHVlYC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBmaWx0ZXIgd2l0aFxyXG4gICAgICovXHJcbiAgICBsdGUoY29sdW1uLCB2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgbHRlLiR7dmFsdWV9YCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBgY29sdW1uYCBtYXRjaGVzIGBwYXR0ZXJuYCBjYXNlLXNlbnNpdGl2ZWx5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxyXG4gICAgICogQHBhcmFtIHBhdHRlcm4gLSBUaGUgcGF0dGVybiB0byBtYXRjaCB3aXRoXHJcbiAgICAgKi9cclxuICAgIGxpa2UoY29sdW1uLCBwYXR0ZXJuKSB7XHJcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBsaWtlLiR7cGF0dGVybn1gKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIG1hdGNoZXMgYWxsIG9mIGBwYXR0ZXJuc2AgY2FzZS1zZW5zaXRpdmVseS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cclxuICAgICAqIEBwYXJhbSBwYXR0ZXJucyAtIFRoZSBwYXR0ZXJucyB0byBtYXRjaCB3aXRoXHJcbiAgICAgKi9cclxuICAgIGxpa2VBbGxPZihjb2x1bW4sIHBhdHRlcm5zKSB7XHJcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBsaWtlKGFsbCkueyR7cGF0dGVybnMuam9pbignLCcpfX1gKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIG1hdGNoZXMgYW55IG9mIGBwYXR0ZXJuc2AgY2FzZS1zZW5zaXRpdmVseS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cclxuICAgICAqIEBwYXJhbSBwYXR0ZXJucyAtIFRoZSBwYXR0ZXJucyB0byBtYXRjaCB3aXRoXHJcbiAgICAgKi9cclxuICAgIGxpa2VBbnlPZihjb2x1bW4sIHBhdHRlcm5zKSB7XHJcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBsaWtlKGFueSkueyR7cGF0dGVybnMuam9pbignLCcpfX1gKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIG1hdGNoZXMgYHBhdHRlcm5gIGNhc2UtaW5zZW5zaXRpdmVseS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cclxuICAgICAqIEBwYXJhbSBwYXR0ZXJuIC0gVGhlIHBhdHRlcm4gdG8gbWF0Y2ggd2l0aFxyXG4gICAgICovXHJcbiAgICBpbGlrZShjb2x1bW4sIHBhdHRlcm4pIHtcclxuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGlsaWtlLiR7cGF0dGVybn1gKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogTWF0Y2ggb25seSByb3dzIHdoZXJlIGBjb2x1bW5gIG1hdGNoZXMgYWxsIG9mIGBwYXR0ZXJuc2AgY2FzZS1pbnNlbnNpdGl2ZWx5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxyXG4gICAgICogQHBhcmFtIHBhdHRlcm5zIC0gVGhlIHBhdHRlcm5zIHRvIG1hdGNoIHdpdGhcclxuICAgICAqL1xyXG4gICAgaWxpa2VBbGxPZihjb2x1bW4sIHBhdHRlcm5zKSB7XHJcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBpbGlrZShhbGwpLnske3BhdHRlcm5zLmpvaW4oJywnKX19YCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBgY29sdW1uYCBtYXRjaGVzIGFueSBvZiBgcGF0dGVybnNgIGNhc2UtaW5zZW5zaXRpdmVseS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cclxuICAgICAqIEBwYXJhbSBwYXR0ZXJucyAtIFRoZSBwYXR0ZXJucyB0byBtYXRjaCB3aXRoXHJcbiAgICAgKi9cclxuICAgIGlsaWtlQW55T2YoY29sdW1uLCBwYXR0ZXJucykge1xyXG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgaWxpa2UoYW55KS57JHtwYXR0ZXJucy5qb2luKCcsJyl9fWApO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgYGNvbHVtbmAgSVMgYHZhbHVlYC5cclxuICAgICAqXHJcbiAgICAgKiBGb3Igbm9uLWJvb2xlYW4gY29sdW1ucywgdGhpcyBpcyBvbmx5IHJlbGV2YW50IGZvciBjaGVja2luZyBpZiB0aGUgdmFsdWUgb2ZcclxuICAgICAqIGBjb2x1bW5gIGlzIE5VTEwgYnkgc2V0dGluZyBgdmFsdWVgIHRvIGBudWxsYC5cclxuICAgICAqXHJcbiAgICAgKiBGb3IgYm9vbGVhbiBjb2x1bW5zLCB5b3UgY2FuIGFsc28gc2V0IGB2YWx1ZWAgdG8gYHRydWVgIG9yIGBmYWxzZWAgYW5kIGl0XHJcbiAgICAgKiB3aWxsIGJlaGF2ZSB0aGUgc2FtZSB3YXkgYXMgYC5lcSgpYC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGNvbHVtbiB0byBmaWx0ZXIgb25cclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBmaWx0ZXIgd2l0aFxyXG4gICAgICovXHJcbiAgICBpcyhjb2x1bW4sIHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBpcy4ke3ZhbHVlfWApO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgYGNvbHVtbmAgaXMgaW5jbHVkZWQgaW4gdGhlIGB2YWx1ZXNgIGFycmF5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxyXG4gICAgICogQHBhcmFtIHZhbHVlcyAtIFRoZSB2YWx1ZXMgYXJyYXkgdG8gZmlsdGVyIHdpdGhcclxuICAgICAqL1xyXG4gICAgaW4oY29sdW1uLCB2YWx1ZXMpIHtcclxuICAgICAgICBjb25zdCBjbGVhbmVkVmFsdWVzID0gQXJyYXkuZnJvbShuZXcgU2V0KHZhbHVlcykpXHJcbiAgICAgICAgICAgIC5tYXAoKHMpID0+IHtcclxuICAgICAgICAgICAgLy8gaGFuZGxlIHBvc3RncmVzdCByZXNlcnZlZCBjaGFyYWN0ZXJzXHJcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vcG9zdGdyZXN0Lm9yZy9lbi92Ny4wLjAvYXBpLmh0bWwjcmVzZXJ2ZWQtY2hhcmFjdGVyc1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHMgPT09ICdzdHJpbmcnICYmIG5ldyBSZWdFeHAoJ1ssKCldJykudGVzdChzKSlcclxuICAgICAgICAgICAgICAgIHJldHVybiBgXCIke3N9XCJgO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7c31gO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5qb2luKCcsJyk7XHJcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBpbi4oJHtjbGVhbmVkVmFsdWVzfSlgKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogT25seSByZWxldmFudCBmb3IganNvbmIsIGFycmF5LCBhbmQgcmFuZ2UgY29sdW1ucy4gTWF0Y2ggb25seSByb3dzIHdoZXJlXHJcbiAgICAgKiBgY29sdW1uYCBjb250YWlucyBldmVyeSBlbGVtZW50IGFwcGVhcmluZyBpbiBgdmFsdWVgLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUganNvbmIsIGFycmF5LCBvciByYW5nZSBjb2x1bW4gdG8gZmlsdGVyIG9uXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUganNvbmIsIGFycmF5LCBvciByYW5nZSB2YWx1ZSB0byBmaWx0ZXIgd2l0aFxyXG4gICAgICovXHJcbiAgICBjb250YWlucyhjb2x1bW4sIHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgLy8gcmFuZ2UgdHlwZXMgY2FuIGJlIGluY2x1c2l2ZSAnWycsICddJyBvciBleGNsdXNpdmUgJygnLCAnKScgc28ganVzdFxyXG4gICAgICAgICAgICAvLyBrZWVwIGl0IHNpbXBsZSBhbmQgYWNjZXB0IGEgc3RyaW5nXHJcbiAgICAgICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgY3MuJHt2YWx1ZX1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgLy8gYXJyYXlcclxuICAgICAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBjcy57JHt2YWx1ZS5qb2luKCcsJyl9fWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8ganNvblxyXG4gICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGNzLiR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogT25seSByZWxldmFudCBmb3IganNvbmIsIGFycmF5LCBhbmQgcmFuZ2UgY29sdW1ucy4gTWF0Y2ggb25seSByb3dzIHdoZXJlXHJcbiAgICAgKiBldmVyeSBlbGVtZW50IGFwcGVhcmluZyBpbiBgY29sdW1uYCBpcyBjb250YWluZWQgYnkgYHZhbHVlYC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIGpzb25iLCBhcnJheSwgb3IgcmFuZ2UgY29sdW1uIHRvIGZpbHRlciBvblxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGpzb25iLCBhcnJheSwgb3IgcmFuZ2UgdmFsdWUgdG8gZmlsdGVyIHdpdGhcclxuICAgICAqL1xyXG4gICAgY29udGFpbmVkQnkoY29sdW1uLCB2YWx1ZSkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIC8vIHJhbmdlXHJcbiAgICAgICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgY2QuJHt2YWx1ZX1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgLy8gYXJyYXlcclxuICAgICAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChjb2x1bW4sIGBjZC57JHt2YWx1ZS5qb2luKCcsJyl9fWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8ganNvblxyXG4gICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGNkLiR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogT25seSByZWxldmFudCBmb3IgcmFuZ2UgY29sdW1ucy4gTWF0Y2ggb25seSByb3dzIHdoZXJlIGV2ZXJ5IGVsZW1lbnQgaW5cclxuICAgICAqIGBjb2x1bW5gIGlzIGdyZWF0ZXIgdGhhbiBhbnkgZWxlbWVudCBpbiBgcmFuZ2VgLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgcmFuZ2UgY29sdW1uIHRvIGZpbHRlciBvblxyXG4gICAgICogQHBhcmFtIHJhbmdlIC0gVGhlIHJhbmdlIHRvIGZpbHRlciB3aXRoXHJcbiAgICAgKi9cclxuICAgIHJhbmdlR3QoY29sdW1uLCByYW5nZSkge1xyXG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgc3IuJHtyYW5nZX1gKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogT25seSByZWxldmFudCBmb3IgcmFuZ2UgY29sdW1ucy4gTWF0Y2ggb25seSByb3dzIHdoZXJlIGV2ZXJ5IGVsZW1lbnQgaW5cclxuICAgICAqIGBjb2x1bW5gIGlzIGVpdGhlciBjb250YWluZWQgaW4gYHJhbmdlYCBvciBncmVhdGVyIHRoYW4gYW55IGVsZW1lbnQgaW5cclxuICAgICAqIGByYW5nZWAuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSByYW5nZSBjb2x1bW4gdG8gZmlsdGVyIG9uXHJcbiAgICAgKiBAcGFyYW0gcmFuZ2UgLSBUaGUgcmFuZ2UgdG8gZmlsdGVyIHdpdGhcclxuICAgICAqL1xyXG4gICAgcmFuZ2VHdGUoY29sdW1uLCByYW5nZSkge1xyXG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgbnhsLiR7cmFuZ2V9YCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIE9ubHkgcmVsZXZhbnQgZm9yIHJhbmdlIGNvbHVtbnMuIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBldmVyeSBlbGVtZW50IGluXHJcbiAgICAgKiBgY29sdW1uYCBpcyBsZXNzIHRoYW4gYW55IGVsZW1lbnQgaW4gYHJhbmdlYC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIHJhbmdlIGNvbHVtbiB0byBmaWx0ZXIgb25cclxuICAgICAqIEBwYXJhbSByYW5nZSAtIFRoZSByYW5nZSB0byBmaWx0ZXIgd2l0aFxyXG4gICAgICovXHJcbiAgICByYW5nZUx0KGNvbHVtbiwgcmFuZ2UpIHtcclxuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYHNsLiR7cmFuZ2V9YCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIE9ubHkgcmVsZXZhbnQgZm9yIHJhbmdlIGNvbHVtbnMuIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBldmVyeSBlbGVtZW50IGluXHJcbiAgICAgKiBgY29sdW1uYCBpcyBlaXRoZXIgY29udGFpbmVkIGluIGByYW5nZWAgb3IgbGVzcyB0aGFuIGFueSBlbGVtZW50IGluXHJcbiAgICAgKiBgcmFuZ2VgLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgcmFuZ2UgY29sdW1uIHRvIGZpbHRlciBvblxyXG4gICAgICogQHBhcmFtIHJhbmdlIC0gVGhlIHJhbmdlIHRvIGZpbHRlciB3aXRoXHJcbiAgICAgKi9cclxuICAgIHJhbmdlTHRlKGNvbHVtbiwgcmFuZ2UpIHtcclxuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYG54ci4ke3JhbmdlfWApO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBPbmx5IHJlbGV2YW50IGZvciByYW5nZSBjb2x1bW5zLiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmUgYGNvbHVtbmAgaXNcclxuICAgICAqIG11dHVhbGx5IGV4Y2x1c2l2ZSB0byBgcmFuZ2VgIGFuZCB0aGVyZSBjYW4gYmUgbm8gZWxlbWVudCBiZXR3ZWVuIHRoZSB0d29cclxuICAgICAqIHJhbmdlcy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIHJhbmdlIGNvbHVtbiB0byBmaWx0ZXIgb25cclxuICAgICAqIEBwYXJhbSByYW5nZSAtIFRoZSByYW5nZSB0byBmaWx0ZXIgd2l0aFxyXG4gICAgICovXHJcbiAgICByYW5nZUFkamFjZW50KGNvbHVtbiwgcmFuZ2UpIHtcclxuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGFkai4ke3JhbmdlfWApO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBPbmx5IHJlbGV2YW50IGZvciBhcnJheSBhbmQgcmFuZ2UgY29sdW1ucy4gTWF0Y2ggb25seSByb3dzIHdoZXJlXHJcbiAgICAgKiBgY29sdW1uYCBhbmQgYHZhbHVlYCBoYXZlIGFuIGVsZW1lbnQgaW4gY29tbW9uLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgYXJyYXkgb3IgcmFuZ2UgY29sdW1uIHRvIGZpbHRlciBvblxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGFycmF5IG9yIHJhbmdlIHZhbHVlIHRvIGZpbHRlciB3aXRoXHJcbiAgICAgKi9cclxuICAgIG92ZXJsYXBzKGNvbHVtbiwgdmFsdWUpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAvLyByYW5nZVxyXG4gICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYG92LiR7dmFsdWV9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBhcnJheVxyXG4gICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYG92Lnske3ZhbHVlLmpvaW4oJywnKX19YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBPbmx5IHJlbGV2YW50IGZvciB0ZXh0IGFuZCB0c3ZlY3RvciBjb2x1bW5zLiBNYXRjaCBvbmx5IHJvd3Mgd2hlcmVcclxuICAgICAqIGBjb2x1bW5gIG1hdGNoZXMgdGhlIHF1ZXJ5IHN0cmluZyBpbiBgcXVlcnlgLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgdGV4dCBvciB0c3ZlY3RvciBjb2x1bW4gdG8gZmlsdGVyIG9uXHJcbiAgICAgKiBAcGFyYW0gcXVlcnkgLSBUaGUgcXVlcnkgdGV4dCB0byBtYXRjaCB3aXRoXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmNvbmZpZyAtIFRoZSB0ZXh0IHNlYXJjaCBjb25maWd1cmF0aW9uIHRvIHVzZVxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMudHlwZSAtIENoYW5nZSBob3cgdGhlIGBxdWVyeWAgdGV4dCBpcyBpbnRlcnByZXRlZFxyXG4gICAgICovXHJcbiAgICB0ZXh0U2VhcmNoKGNvbHVtbiwgcXVlcnksIHsgY29uZmlnLCB0eXBlIH0gPSB7fSkge1xyXG4gICAgICAgIGxldCB0eXBlUGFydCA9ICcnO1xyXG4gICAgICAgIGlmICh0eXBlID09PSAncGxhaW4nKSB7XHJcbiAgICAgICAgICAgIHR5cGVQYXJ0ID0gJ3BsJztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ3BocmFzZScpIHtcclxuICAgICAgICAgICAgdHlwZVBhcnQgPSAncGgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0eXBlID09PSAnd2Vic2VhcmNoJykge1xyXG4gICAgICAgICAgICB0eXBlUGFydCA9ICd3JztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgY29uZmlnUGFydCA9IGNvbmZpZyA9PT0gdW5kZWZpbmVkID8gJycgOiBgKCR7Y29uZmlnfSlgO1xyXG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoY29sdW1uLCBgJHt0eXBlUGFydH1mdHMke2NvbmZpZ1BhcnR9LiR7cXVlcnl9YCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGVyZSBlYWNoIGNvbHVtbiBpbiBgcXVlcnlgIGtleXMgaXMgZXF1YWwgdG8gaXRzXHJcbiAgICAgKiBhc3NvY2lhdGVkIHZhbHVlLiBTaG9ydGhhbmQgZm9yIG11bHRpcGxlIGAuZXEoKWBzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBxdWVyeSAtIFRoZSBvYmplY3QgdG8gZmlsdGVyIHdpdGgsIHdpdGggY29sdW1uIG5hbWVzIGFzIGtleXMgbWFwcGVkXHJcbiAgICAgKiB0byB0aGVpciBmaWx0ZXIgdmFsdWVzXHJcbiAgICAgKi9cclxuICAgIG1hdGNoKHF1ZXJ5KSB7XHJcbiAgICAgICAgT2JqZWN0LmVudHJpZXMocXVlcnkpLmZvckVhY2goKFtjb2x1bW4sIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYGVxLiR7dmFsdWV9YCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGljaCBkb2Vzbid0IHNhdGlzZnkgdGhlIGZpbHRlci5cclxuICAgICAqXHJcbiAgICAgKiBVbmxpa2UgbW9zdCBmaWx0ZXJzLCBgb3BlYXJhdG9yYCBhbmQgYHZhbHVlYCBhcmUgdXNlZCBhcy1pcyBhbmQgbmVlZCB0b1xyXG4gICAgICogZm9sbG93IFtQb3N0Z1JFU1RcclxuICAgICAqIHN5bnRheF0oaHR0cHM6Ly9wb3N0Z3Jlc3Qub3JnL2VuL3N0YWJsZS9hcGkuaHRtbCNvcGVyYXRvcnMpLiBZb3UgYWxzbyBuZWVkXHJcbiAgICAgKiB0byBtYWtlIHN1cmUgdGhleSBhcmUgcHJvcGVybHkgc2FuaXRpemVkLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxyXG4gICAgICogQHBhcmFtIG9wZXJhdG9yIC0gVGhlIG9wZXJhdG9yIHRvIGJlIG5lZ2F0ZWQgdG8gZmlsdGVyIHdpdGgsIGZvbGxvd2luZ1xyXG4gICAgICogUG9zdGdSRVNUIHN5bnRheFxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGZpbHRlciB3aXRoLCBmb2xsb3dpbmcgUG9zdGdSRVNUIHN5bnRheFxyXG4gICAgICovXHJcbiAgICBub3QoY29sdW1uLCBvcGVyYXRvciwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYG5vdC4ke29wZXJhdG9yfS4ke3ZhbHVlfWApO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXRjaCBvbmx5IHJvd3Mgd2hpY2ggc2F0aXNmeSBhdCBsZWFzdCBvbmUgb2YgdGhlIGZpbHRlcnMuXHJcbiAgICAgKlxyXG4gICAgICogVW5saWtlIG1vc3QgZmlsdGVycywgYGZpbHRlcnNgIGlzIHVzZWQgYXMtaXMgYW5kIG5lZWRzIHRvIGZvbGxvdyBbUG9zdGdSRVNUXHJcbiAgICAgKiBzeW50YXhdKGh0dHBzOi8vcG9zdGdyZXN0Lm9yZy9lbi9zdGFibGUvYXBpLmh0bWwjb3BlcmF0b3JzKS4gWW91IGFsc28gbmVlZFxyXG4gICAgICogdG8gbWFrZSBzdXJlIGl0J3MgcHJvcGVybHkgc2FuaXRpemVkLlxyXG4gICAgICpcclxuICAgICAqIEl0J3MgY3VycmVudGx5IG5vdCBwb3NzaWJsZSB0byBkbyBhbiBgLm9yKClgIGZpbHRlciBhY3Jvc3MgbXVsdGlwbGUgdGFibGVzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBmaWx0ZXJzIC0gVGhlIGZpbHRlcnMgdG8gdXNlLCBmb2xsb3dpbmcgUG9zdGdSRVNUIHN5bnRheFxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSBOYW1lZCBwYXJhbWV0ZXJzXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5yZWZlcmVuY2VkVGFibGUgLSBTZXQgdGhpcyB0byBmaWx0ZXIgb24gcmVmZXJlbmNlZCB0YWJsZXNcclxuICAgICAqIGluc3RlYWQgb2YgdGhlIHBhcmVudCB0YWJsZVxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZm9yZWlnblRhYmxlIC0gRGVwcmVjYXRlZCwgdXNlIGByZWZlcmVuY2VkVGFibGVgIGluc3RlYWRcclxuICAgICAqL1xyXG4gICAgb3IoZmlsdGVycywgeyBmb3JlaWduVGFibGUsIHJlZmVyZW5jZWRUYWJsZSA9IGZvcmVpZ25UYWJsZSwgfSA9IHt9KSB7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gcmVmZXJlbmNlZFRhYmxlID8gYCR7cmVmZXJlbmNlZFRhYmxlfS5vcmAgOiAnb3InO1xyXG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoa2V5LCBgKCR7ZmlsdGVyc30pYCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIE1hdGNoIG9ubHkgcm93cyB3aGljaCBzYXRpc2Z5IHRoZSBmaWx0ZXIuIFRoaXMgaXMgYW4gZXNjYXBlIGhhdGNoIC0geW91XHJcbiAgICAgKiBzaG91bGQgdXNlIHRoZSBzcGVjaWZpYyBmaWx0ZXIgbWV0aG9kcyB3aGVyZXZlciBwb3NzaWJsZS5cclxuICAgICAqXHJcbiAgICAgKiBVbmxpa2UgbW9zdCBmaWx0ZXJzLCBgb3BlYXJhdG9yYCBhbmQgYHZhbHVlYCBhcmUgdXNlZCBhcy1pcyBhbmQgbmVlZCB0b1xyXG4gICAgICogZm9sbG93IFtQb3N0Z1JFU1RcclxuICAgICAqIHN5bnRheF0oaHR0cHM6Ly9wb3N0Z3Jlc3Qub3JnL2VuL3N0YWJsZS9hcGkuaHRtbCNvcGVyYXRvcnMpLiBZb3UgYWxzbyBuZWVkXHJcbiAgICAgKiB0byBtYWtlIHN1cmUgdGhleSBhcmUgcHJvcGVybHkgc2FuaXRpemVkLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIHRvIGZpbHRlciBvblxyXG4gICAgICogQHBhcmFtIG9wZXJhdG9yIC0gVGhlIG9wZXJhdG9yIHRvIGZpbHRlciB3aXRoLCBmb2xsb3dpbmcgUG9zdGdSRVNUIHN5bnRheFxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGZpbHRlciB3aXRoLCBmb2xsb3dpbmcgUG9zdGdSRVNUIHN5bnRheFxyXG4gICAgICovXHJcbiAgICBmaWx0ZXIoY29sdW1uLCBvcGVyYXRvciwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGNvbHVtbiwgYCR7b3BlcmF0b3J9LiR7dmFsdWV9YCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0cy5kZWZhdWx0ID0gUG9zdGdyZXN0RmlsdGVyQnVpbGRlcjtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UG9zdGdyZXN0RmlsdGVyQnVpbGRlci5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestFilterBuilder.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestQueryBuilder.js":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestQueryBuilder.js ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst PostgrestFilterBuilder_1 = __importDefault(__webpack_require__(/*! ./PostgrestFilterBuilder */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestFilterBuilder.js\"));\r\nclass PostgrestQueryBuilder {\r\n constructor(url, { headers = {}, schema, fetch, }) {\r\n this.url = url;\r\n this.headers = headers;\r\n this.schema = schema;\r\n this.fetch = fetch;\r\n }\r\n /**\r\n * Perform a SELECT query on the table or view.\r\n *\r\n * @param columns - The columns to retrieve, separated by commas. Columns can be renamed when returned with `customName:columnName`\r\n *\r\n * @param options - Named parameters\r\n *\r\n * @param options.head - When set to `true`, `data` will not be returned.\r\n * Useful if you only need the count.\r\n *\r\n * @param options.count - Count algorithm to use to count rows in the table or view.\r\n *\r\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\r\n * hood.\r\n *\r\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\r\n * statistics under the hood.\r\n *\r\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\r\n * numbers.\r\n */\r\n select(columns, { head = false, count, } = {}) {\r\n const method = head ? 'HEAD' : 'GET';\r\n // Remove whitespaces except when quoted\r\n let quoted = false;\r\n const cleanedColumns = (columns !== null && columns !== void 0 ? columns : '*')\r\n .split('')\r\n .map((c) => {\r\n if (/\\s/.test(c) && !quoted) {\r\n return '';\r\n }\r\n if (c === '\"') {\r\n quoted = !quoted;\r\n }\r\n return c;\r\n })\r\n .join('');\r\n this.url.searchParams.set('select', cleanedColumns);\r\n if (count) {\r\n this.headers['Prefer'] = `count=${count}`;\r\n }\r\n return new PostgrestFilterBuilder_1.default({\r\n method,\r\n url: this.url,\r\n headers: this.headers,\r\n schema: this.schema,\r\n fetch: this.fetch,\r\n allowEmpty: false,\r\n });\r\n }\r\n /**\r\n * Perform an INSERT into the table or view.\r\n *\r\n * By default, inserted rows are not returned. To return it, chain the call\r\n * with `.select()`.\r\n *\r\n * @param values - The values to insert. Pass an object to insert a single row\r\n * or an array to insert multiple rows.\r\n *\r\n * @param options - Named parameters\r\n *\r\n * @param options.count - Count algorithm to use to count inserted rows.\r\n *\r\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\r\n * hood.\r\n *\r\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\r\n * statistics under the hood.\r\n *\r\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\r\n * numbers.\r\n *\r\n * @param options.defaultToNull - Make missing fields default to `null`.\r\n * Otherwise, use the default value for the column. Only applies for bulk\r\n * inserts.\r\n */\r\n insert(values, { count, defaultToNull = true, } = {}) {\r\n const method = 'POST';\r\n const prefersHeaders = [];\r\n if (this.headers['Prefer']) {\r\n prefersHeaders.push(this.headers['Prefer']);\r\n }\r\n if (count) {\r\n prefersHeaders.push(`count=${count}`);\r\n }\r\n if (!defaultToNull) {\r\n prefersHeaders.push('missing=default');\r\n }\r\n this.headers['Prefer'] = prefersHeaders.join(',');\r\n if (Array.isArray(values)) {\r\n const columns = values.reduce((acc, x) => acc.concat(Object.keys(x)), []);\r\n if (columns.length > 0) {\r\n const uniqueColumns = [...new Set(columns)].map((column) => `\"${column}\"`);\r\n this.url.searchParams.set('columns', uniqueColumns.join(','));\r\n }\r\n }\r\n return new PostgrestFilterBuilder_1.default({\r\n method,\r\n url: this.url,\r\n headers: this.headers,\r\n schema: this.schema,\r\n body: values,\r\n fetch: this.fetch,\r\n allowEmpty: false,\r\n });\r\n }\r\n /**\r\n * Perform an UPSERT on the table or view. Depending on the column(s) passed\r\n * to `onConflict`, `.upsert()` allows you to perform the equivalent of\r\n * `.insert()` if a row with the corresponding `onConflict` columns doesn't\r\n * exist, or if it does exist, perform an alternative action depending on\r\n * `ignoreDuplicates`.\r\n *\r\n * By default, upserted rows are not returned. To return it, chain the call\r\n * with `.select()`.\r\n *\r\n * @param values - The values to upsert with. Pass an object to upsert a\r\n * single row or an array to upsert multiple rows.\r\n *\r\n * @param options - Named parameters\r\n *\r\n * @param options.onConflict - Comma-separated UNIQUE column(s) to specify how\r\n * duplicate rows are determined. Two rows are duplicates if all the\r\n * `onConflict` columns are equal.\r\n *\r\n * @param options.ignoreDuplicates - If `true`, duplicate rows are ignored. If\r\n * `false`, duplicate rows are merged with existing rows.\r\n *\r\n * @param options.count - Count algorithm to use to count upserted rows.\r\n *\r\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\r\n * hood.\r\n *\r\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\r\n * statistics under the hood.\r\n *\r\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\r\n * numbers.\r\n *\r\n * @param options.defaultToNull - Make missing fields default to `null`.\r\n * Otherwise, use the default value for the column. This only applies when\r\n * inserting new rows, not when merging with existing rows under\r\n * `ignoreDuplicates: false`. This also only applies when doing bulk upserts.\r\n */\r\n upsert(values, { onConflict, ignoreDuplicates = false, count, defaultToNull = true, } = {}) {\r\n const method = 'POST';\r\n const prefersHeaders = [`resolution=${ignoreDuplicates ? 'ignore' : 'merge'}-duplicates`];\r\n if (onConflict !== undefined)\r\n this.url.searchParams.set('on_conflict', onConflict);\r\n if (this.headers['Prefer']) {\r\n prefersHeaders.push(this.headers['Prefer']);\r\n }\r\n if (count) {\r\n prefersHeaders.push(`count=${count}`);\r\n }\r\n if (!defaultToNull) {\r\n prefersHeaders.push('missing=default');\r\n }\r\n this.headers['Prefer'] = prefersHeaders.join(',');\r\n if (Array.isArray(values)) {\r\n const columns = values.reduce((acc, x) => acc.concat(Object.keys(x)), []);\r\n if (columns.length > 0) {\r\n const uniqueColumns = [...new Set(columns)].map((column) => `\"${column}\"`);\r\n this.url.searchParams.set('columns', uniqueColumns.join(','));\r\n }\r\n }\r\n return new PostgrestFilterBuilder_1.default({\r\n method,\r\n url: this.url,\r\n headers: this.headers,\r\n schema: this.schema,\r\n body: values,\r\n fetch: this.fetch,\r\n allowEmpty: false,\r\n });\r\n }\r\n /**\r\n * Perform an UPDATE on the table or view.\r\n *\r\n * By default, updated rows are not returned. To return it, chain the call\r\n * with `.select()` after filters.\r\n *\r\n * @param values - The values to update with\r\n *\r\n * @param options - Named parameters\r\n *\r\n * @param options.count - Count algorithm to use to count updated rows.\r\n *\r\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\r\n * hood.\r\n *\r\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\r\n * statistics under the hood.\r\n *\r\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\r\n * numbers.\r\n */\r\n update(values, { count, } = {}) {\r\n const method = 'PATCH';\r\n const prefersHeaders = [];\r\n if (this.headers['Prefer']) {\r\n prefersHeaders.push(this.headers['Prefer']);\r\n }\r\n if (count) {\r\n prefersHeaders.push(`count=${count}`);\r\n }\r\n this.headers['Prefer'] = prefersHeaders.join(',');\r\n return new PostgrestFilterBuilder_1.default({\r\n method,\r\n url: this.url,\r\n headers: this.headers,\r\n schema: this.schema,\r\n body: values,\r\n fetch: this.fetch,\r\n allowEmpty: false,\r\n });\r\n }\r\n /**\r\n * Perform a DELETE on the table or view.\r\n *\r\n * By default, deleted rows are not returned. To return it, chain the call\r\n * with `.select()` after filters.\r\n *\r\n * @param options - Named parameters\r\n *\r\n * @param options.count - Count algorithm to use to count deleted rows.\r\n *\r\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\r\n * hood.\r\n *\r\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\r\n * statistics under the hood.\r\n *\r\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\r\n * numbers.\r\n */\r\n delete({ count, } = {}) {\r\n const method = 'DELETE';\r\n const prefersHeaders = [];\r\n if (count) {\r\n prefersHeaders.push(`count=${count}`);\r\n }\r\n if (this.headers['Prefer']) {\r\n prefersHeaders.unshift(this.headers['Prefer']);\r\n }\r\n this.headers['Prefer'] = prefersHeaders.join(',');\r\n return new PostgrestFilterBuilder_1.default({\r\n method,\r\n url: this.url,\r\n headers: this.headers,\r\n schema: this.schema,\r\n fetch: this.fetch,\r\n allowEmpty: false,\r\n });\r\n }\r\n}\r\nexports[\"default\"] = PostgrestQueryBuilder;\r\n//# sourceMappingURL=PostgrestQueryBuilder.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvY2pzL1Bvc3RncmVzdFF1ZXJ5QnVpbGRlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlEQUFpRCxtQkFBTyxDQUFDLDhIQUEwQjtBQUNuRjtBQUNBLHVCQUF1QixZQUFZLGtCQUFrQjtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHVCQUF1QixJQUFJO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxNQUFNO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLCtCQUErQixJQUFJO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QyxNQUFNO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnRkFBZ0YsT0FBTztBQUN2RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixxRUFBcUUsSUFBSTtBQUM5RjtBQUNBLDhDQUE4QyxzQ0FBc0M7QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLE1BQU07QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdGQUFnRixPQUFPO0FBQ3ZGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsU0FBUyxJQUFJO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QyxNQUFNO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFNBQVMsSUFBSTtBQUMxQjtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsTUFBTTtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLGtCQUFlO0FBQ2YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9wb3N0Z3Jlc3QtanMvZGlzdC9janMvUG9zdGdyZXN0UXVlcnlCdWlsZGVyLmpzPzA4OTEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XHJcbn07XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuY29uc3QgUG9zdGdyZXN0RmlsdGVyQnVpbGRlcl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL1Bvc3RncmVzdEZpbHRlckJ1aWxkZXJcIikpO1xyXG5jbGFzcyBQb3N0Z3Jlc3RRdWVyeUJ1aWxkZXIge1xyXG4gICAgY29uc3RydWN0b3IodXJsLCB7IGhlYWRlcnMgPSB7fSwgc2NoZW1hLCBmZXRjaCwgfSkge1xyXG4gICAgICAgIHRoaXMudXJsID0gdXJsO1xyXG4gICAgICAgIHRoaXMuaGVhZGVycyA9IGhlYWRlcnM7XHJcbiAgICAgICAgdGhpcy5zY2hlbWEgPSBzY2hlbWE7XHJcbiAgICAgICAgdGhpcy5mZXRjaCA9IGZldGNoO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJmb3JtIGEgU0VMRUNUIHF1ZXJ5IG9uIHRoZSB0YWJsZSBvciB2aWV3LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2x1bW5zIC0gVGhlIGNvbHVtbnMgdG8gcmV0cmlldmUsIHNlcGFyYXRlZCBieSBjb21tYXMuIENvbHVtbnMgY2FuIGJlIHJlbmFtZWQgd2hlbiByZXR1cm5lZCB3aXRoIGBjdXN0b21OYW1lOmNvbHVtbk5hbWVgXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSBOYW1lZCBwYXJhbWV0ZXJzXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuaGVhZCAtIFdoZW4gc2V0IHRvIGB0cnVlYCwgYGRhdGFgIHdpbGwgbm90IGJlIHJldHVybmVkLlxyXG4gICAgICogVXNlZnVsIGlmIHlvdSBvbmx5IG5lZWQgdGhlIGNvdW50LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmNvdW50IC0gQ291bnQgYWxnb3JpdGhtIHRvIHVzZSB0byBjb3VudCByb3dzIGluIHRoZSB0YWJsZSBvciB2aWV3LlxyXG4gICAgICpcclxuICAgICAqIGBcImV4YWN0XCJgOiBFeGFjdCBidXQgc2xvdyBjb3VudCBhbGdvcml0aG0uIFBlcmZvcm1zIGEgYENPVU5UKCopYCB1bmRlciB0aGVcclxuICAgICAqIGhvb2QuXHJcbiAgICAgKlxyXG4gICAgICogYFwicGxhbm5lZFwiYDogQXBwcm94aW1hdGVkIGJ1dCBmYXN0IGNvdW50IGFsZ29yaXRobS4gVXNlcyB0aGUgUG9zdGdyZXNcclxuICAgICAqIHN0YXRpc3RpY3MgdW5kZXIgdGhlIGhvb2QuXHJcbiAgICAgKlxyXG4gICAgICogYFwiZXN0aW1hdGVkXCJgOiBVc2VzIGV4YWN0IGNvdW50IGZvciBsb3cgbnVtYmVycyBhbmQgcGxhbm5lZCBjb3VudCBmb3IgaGlnaFxyXG4gICAgICogbnVtYmVycy5cclxuICAgICAqL1xyXG4gICAgc2VsZWN0KGNvbHVtbnMsIHsgaGVhZCA9IGZhbHNlLCBjb3VudCwgfSA9IHt9KSB7XHJcbiAgICAgICAgY29uc3QgbWV0aG9kID0gaGVhZCA/ICdIRUFEJyA6ICdHRVQnO1xyXG4gICAgICAgIC8vIFJlbW92ZSB3aGl0ZXNwYWNlcyBleGNlcHQgd2hlbiBxdW90ZWRcclxuICAgICAgICBsZXQgcXVvdGVkID0gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgY2xlYW5lZENvbHVtbnMgPSAoY29sdW1ucyAhPT0gbnVsbCAmJiBjb2x1bW5zICE9PSB2b2lkIDAgPyBjb2x1bW5zIDogJyonKVxyXG4gICAgICAgICAgICAuc3BsaXQoJycpXHJcbiAgICAgICAgICAgIC5tYXAoKGMpID0+IHtcclxuICAgICAgICAgICAgaWYgKC9cXHMvLnRlc3QoYykgJiYgIXF1b3RlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChjID09PSAnXCInKSB7XHJcbiAgICAgICAgICAgICAgICBxdW90ZWQgPSAhcXVvdGVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5qb2luKCcnKTtcclxuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KCdzZWxlY3QnLCBjbGVhbmVkQ29sdW1ucyk7XHJcbiAgICAgICAgaWYgKGNvdW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyc1snUHJlZmVyJ10gPSBgY291bnQ9JHtjb3VudH1gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3IFBvc3RncmVzdEZpbHRlckJ1aWxkZXJfMS5kZWZhdWx0KHtcclxuICAgICAgICAgICAgbWV0aG9kLFxyXG4gICAgICAgICAgICB1cmw6IHRoaXMudXJsLFxyXG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgIHNjaGVtYTogdGhpcy5zY2hlbWEsXHJcbiAgICAgICAgICAgIGZldGNoOiB0aGlzLmZldGNoLFxyXG4gICAgICAgICAgICBhbGxvd0VtcHR5OiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybSBhbiBJTlNFUlQgaW50byB0aGUgdGFibGUgb3Igdmlldy5cclxuICAgICAqXHJcbiAgICAgKiBCeSBkZWZhdWx0LCBpbnNlcnRlZCByb3dzIGFyZSBub3QgcmV0dXJuZWQuIFRvIHJldHVybiBpdCwgY2hhaW4gdGhlIGNhbGxcclxuICAgICAqIHdpdGggYC5zZWxlY3QoKWAuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlcyAtIFRoZSB2YWx1ZXMgdG8gaW5zZXJ0LiBQYXNzIGFuIG9iamVjdCB0byBpbnNlcnQgYSBzaW5nbGUgcm93XHJcbiAgICAgKiBvciBhbiBhcnJheSB0byBpbnNlcnQgbXVsdGlwbGUgcm93cy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5jb3VudCAtIENvdW50IGFsZ29yaXRobSB0byB1c2UgdG8gY291bnQgaW5zZXJ0ZWQgcm93cy5cclxuICAgICAqXHJcbiAgICAgKiBgXCJleGFjdFwiYDogRXhhY3QgYnV0IHNsb3cgY291bnQgYWxnb3JpdGhtLiBQZXJmb3JtcyBhIGBDT1VOVCgqKWAgdW5kZXIgdGhlXHJcbiAgICAgKiBob29kLlxyXG4gICAgICpcclxuICAgICAqIGBcInBsYW5uZWRcImA6IEFwcHJveGltYXRlZCBidXQgZmFzdCBjb3VudCBhbGdvcml0aG0uIFVzZXMgdGhlIFBvc3RncmVzXHJcbiAgICAgKiBzdGF0aXN0aWNzIHVuZGVyIHRoZSBob29kLlxyXG4gICAgICpcclxuICAgICAqIGBcImVzdGltYXRlZFwiYDogVXNlcyBleGFjdCBjb3VudCBmb3IgbG93IG51bWJlcnMgYW5kIHBsYW5uZWQgY291bnQgZm9yIGhpZ2hcclxuICAgICAqIG51bWJlcnMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZGVmYXVsdFRvTnVsbCAtIE1ha2UgbWlzc2luZyBmaWVsZHMgZGVmYXVsdCB0byBgbnVsbGAuXHJcbiAgICAgKiBPdGhlcndpc2UsIHVzZSB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvbHVtbi4gT25seSBhcHBsaWVzIGZvciBidWxrXHJcbiAgICAgKiBpbnNlcnRzLlxyXG4gICAgICovXHJcbiAgICBpbnNlcnQodmFsdWVzLCB7IGNvdW50LCBkZWZhdWx0VG9OdWxsID0gdHJ1ZSwgfSA9IHt9KSB7XHJcbiAgICAgICAgY29uc3QgbWV0aG9kID0gJ1BPU1QnO1xyXG4gICAgICAgIGNvbnN0IHByZWZlcnNIZWFkZXJzID0gW107XHJcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyc1snUHJlZmVyJ10pIHtcclxuICAgICAgICAgICAgcHJlZmVyc0hlYWRlcnMucHVzaCh0aGlzLmhlYWRlcnNbJ1ByZWZlciddKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNvdW50KSB7XHJcbiAgICAgICAgICAgIHByZWZlcnNIZWFkZXJzLnB1c2goYGNvdW50PSR7Y291bnR9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghZGVmYXVsdFRvTnVsbCkge1xyXG4gICAgICAgICAgICBwcmVmZXJzSGVhZGVycy5wdXNoKCdtaXNzaW5nPWRlZmF1bHQnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5oZWFkZXJzWydQcmVmZXInXSA9IHByZWZlcnNIZWFkZXJzLmpvaW4oJywnKTtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZXMpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbnMgPSB2YWx1ZXMucmVkdWNlKChhY2MsIHgpID0+IGFjYy5jb25jYXQoT2JqZWN0LmtleXMoeCkpLCBbXSk7XHJcbiAgICAgICAgICAgIGlmIChjb2x1bW5zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHVuaXF1ZUNvbHVtbnMgPSBbLi4ubmV3IFNldChjb2x1bW5zKV0ubWFwKChjb2x1bW4pID0+IGBcIiR7Y29sdW1ufVwiYCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KCdjb2x1bW5zJywgdW5pcXVlQ29sdW1ucy5qb2luKCcsJykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXcgUG9zdGdyZXN0RmlsdGVyQnVpbGRlcl8xLmRlZmF1bHQoe1xyXG4gICAgICAgICAgICBtZXRob2QsXHJcbiAgICAgICAgICAgIHVybDogdGhpcy51cmwsXHJcbiAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICAgICAgc2NoZW1hOiB0aGlzLnNjaGVtYSxcclxuICAgICAgICAgICAgYm9keTogdmFsdWVzLFxyXG4gICAgICAgICAgICBmZXRjaDogdGhpcy5mZXRjaCxcclxuICAgICAgICAgICAgYWxsb3dFbXB0eTogZmFsc2UsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFBlcmZvcm0gYW4gVVBTRVJUIG9uIHRoZSB0YWJsZSBvciB2aWV3LiBEZXBlbmRpbmcgb24gdGhlIGNvbHVtbihzKSBwYXNzZWRcclxuICAgICAqIHRvIGBvbkNvbmZsaWN0YCwgYC51cHNlcnQoKWAgYWxsb3dzIHlvdSB0byBwZXJmb3JtIHRoZSBlcXVpdmFsZW50IG9mXHJcbiAgICAgKiBgLmluc2VydCgpYCBpZiBhIHJvdyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGBvbkNvbmZsaWN0YCBjb2x1bW5zIGRvZXNuJ3RcclxuICAgICAqIGV4aXN0LCBvciBpZiBpdCBkb2VzIGV4aXN0LCBwZXJmb3JtIGFuIGFsdGVybmF0aXZlIGFjdGlvbiBkZXBlbmRpbmcgb25cclxuICAgICAqIGBpZ25vcmVEdXBsaWNhdGVzYC5cclxuICAgICAqXHJcbiAgICAgKiBCeSBkZWZhdWx0LCB1cHNlcnRlZCByb3dzIGFyZSBub3QgcmV0dXJuZWQuIFRvIHJldHVybiBpdCwgY2hhaW4gdGhlIGNhbGxcclxuICAgICAqIHdpdGggYC5zZWxlY3QoKWAuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlcyAtIFRoZSB2YWx1ZXMgdG8gdXBzZXJ0IHdpdGguIFBhc3MgYW4gb2JqZWN0IHRvIHVwc2VydCBhXHJcbiAgICAgKiBzaW5nbGUgcm93IG9yIGFuIGFycmF5IHRvIHVwc2VydCBtdWx0aXBsZSByb3dzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zLm9uQ29uZmxpY3QgLSBDb21tYS1zZXBhcmF0ZWQgVU5JUVVFIGNvbHVtbihzKSB0byBzcGVjaWZ5IGhvd1xyXG4gICAgICogZHVwbGljYXRlIHJvd3MgYXJlIGRldGVybWluZWQuIFR3byByb3dzIGFyZSBkdXBsaWNhdGVzIGlmIGFsbCB0aGVcclxuICAgICAqIGBvbkNvbmZsaWN0YCBjb2x1bW5zIGFyZSBlcXVhbC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5pZ25vcmVEdXBsaWNhdGVzIC0gSWYgYHRydWVgLCBkdXBsaWNhdGUgcm93cyBhcmUgaWdub3JlZC4gSWZcclxuICAgICAqIGBmYWxzZWAsIGR1cGxpY2F0ZSByb3dzIGFyZSBtZXJnZWQgd2l0aCBleGlzdGluZyByb3dzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmNvdW50IC0gQ291bnQgYWxnb3JpdGhtIHRvIHVzZSB0byBjb3VudCB1cHNlcnRlZCByb3dzLlxyXG4gICAgICpcclxuICAgICAqIGBcImV4YWN0XCJgOiBFeGFjdCBidXQgc2xvdyBjb3VudCBhbGdvcml0aG0uIFBlcmZvcm1zIGEgYENPVU5UKCopYCB1bmRlciB0aGVcclxuICAgICAqIGhvb2QuXHJcbiAgICAgKlxyXG4gICAgICogYFwicGxhbm5lZFwiYDogQXBwcm94aW1hdGVkIGJ1dCBmYXN0IGNvdW50IGFsZ29yaXRobS4gVXNlcyB0aGUgUG9zdGdyZXNcclxuICAgICAqIHN0YXRpc3RpY3MgdW5kZXIgdGhlIGhvb2QuXHJcbiAgICAgKlxyXG4gICAgICogYFwiZXN0aW1hdGVkXCJgOiBVc2VzIGV4YWN0IGNvdW50IGZvciBsb3cgbnVtYmVycyBhbmQgcGxhbm5lZCBjb3VudCBmb3IgaGlnaFxyXG4gICAgICogbnVtYmVycy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5kZWZhdWx0VG9OdWxsIC0gTWFrZSBtaXNzaW5nIGZpZWxkcyBkZWZhdWx0IHRvIGBudWxsYC5cclxuICAgICAqIE90aGVyd2lzZSwgdXNlIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY29sdW1uLiBUaGlzIG9ubHkgYXBwbGllcyB3aGVuXHJcbiAgICAgKiBpbnNlcnRpbmcgbmV3IHJvd3MsIG5vdCB3aGVuIG1lcmdpbmcgd2l0aCBleGlzdGluZyByb3dzIHVuZGVyXHJcbiAgICAgKiBgaWdub3JlRHVwbGljYXRlczogZmFsc2VgLiBUaGlzIGFsc28gb25seSBhcHBsaWVzIHdoZW4gZG9pbmcgYnVsayB1cHNlcnRzLlxyXG4gICAgICovXHJcbiAgICB1cHNlcnQodmFsdWVzLCB7IG9uQ29uZmxpY3QsIGlnbm9yZUR1cGxpY2F0ZXMgPSBmYWxzZSwgY291bnQsIGRlZmF1bHRUb051bGwgPSB0cnVlLCB9ID0ge30pIHtcclxuICAgICAgICBjb25zdCBtZXRob2QgPSAnUE9TVCc7XHJcbiAgICAgICAgY29uc3QgcHJlZmVyc0hlYWRlcnMgPSBbYHJlc29sdXRpb249JHtpZ25vcmVEdXBsaWNhdGVzID8gJ2lnbm9yZScgOiAnbWVyZ2UnfS1kdXBsaWNhdGVzYF07XHJcbiAgICAgICAgaWYgKG9uQ29uZmxpY3QgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLnNldCgnb25fY29uZmxpY3QnLCBvbkNvbmZsaWN0KTtcclxuICAgICAgICBpZiAodGhpcy5oZWFkZXJzWydQcmVmZXInXSkge1xyXG4gICAgICAgICAgICBwcmVmZXJzSGVhZGVycy5wdXNoKHRoaXMuaGVhZGVyc1snUHJlZmVyJ10pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY291bnQpIHtcclxuICAgICAgICAgICAgcHJlZmVyc0hlYWRlcnMucHVzaChgY291bnQ9JHtjb3VudH1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFkZWZhdWx0VG9OdWxsKSB7XHJcbiAgICAgICAgICAgIHByZWZlcnNIZWFkZXJzLnB1c2goJ21pc3Npbmc9ZGVmYXVsdCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmhlYWRlcnNbJ1ByZWZlciddID0gcHJlZmVyc0hlYWRlcnMuam9pbignLCcpO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlcykpIHtcclxuICAgICAgICAgICAgY29uc3QgY29sdW1ucyA9IHZhbHVlcy5yZWR1Y2UoKGFjYywgeCkgPT4gYWNjLmNvbmNhdChPYmplY3Qua2V5cyh4KSksIFtdKTtcclxuICAgICAgICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdW5pcXVlQ29sdW1ucyA9IFsuLi5uZXcgU2V0KGNvbHVtbnMpXS5tYXAoKGNvbHVtbikgPT4gYFwiJHtjb2x1bW59XCJgKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2NvbHVtbnMnLCB1bmlxdWVDb2x1bW5zLmpvaW4oJywnKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyXzEuZGVmYXVsdCh7XHJcbiAgICAgICAgICAgIG1ldGhvZCxcclxuICAgICAgICAgICAgdXJsOiB0aGlzLnVybCxcclxuICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICBzY2hlbWE6IHRoaXMuc2NoZW1hLFxyXG4gICAgICAgICAgICBib2R5OiB2YWx1ZXMsXHJcbiAgICAgICAgICAgIGZldGNoOiB0aGlzLmZldGNoLFxyXG4gICAgICAgICAgICBhbGxvd0VtcHR5OiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybSBhbiBVUERBVEUgb24gdGhlIHRhYmxlIG9yIHZpZXcuXHJcbiAgICAgKlxyXG4gICAgICogQnkgZGVmYXVsdCwgdXBkYXRlZCByb3dzIGFyZSBub3QgcmV0dXJuZWQuIFRvIHJldHVybiBpdCwgY2hhaW4gdGhlIGNhbGxcclxuICAgICAqIHdpdGggYC5zZWxlY3QoKWAgYWZ0ZXIgZmlsdGVycy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWVzIC0gVGhlIHZhbHVlcyB0byB1cGRhdGUgd2l0aFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmNvdW50IC0gQ291bnQgYWxnb3JpdGhtIHRvIHVzZSB0byBjb3VudCB1cGRhdGVkIHJvd3MuXHJcbiAgICAgKlxyXG4gICAgICogYFwiZXhhY3RcImA6IEV4YWN0IGJ1dCBzbG93IGNvdW50IGFsZ29yaXRobS4gUGVyZm9ybXMgYSBgQ09VTlQoKilgIHVuZGVyIHRoZVxyXG4gICAgICogaG9vZC5cclxuICAgICAqXHJcbiAgICAgKiBgXCJwbGFubmVkXCJgOiBBcHByb3hpbWF0ZWQgYnV0IGZhc3QgY291bnQgYWxnb3JpdGhtLiBVc2VzIHRoZSBQb3N0Z3Jlc1xyXG4gICAgICogc3RhdGlzdGljcyB1bmRlciB0aGUgaG9vZC5cclxuICAgICAqXHJcbiAgICAgKiBgXCJlc3RpbWF0ZWRcImA6IFVzZXMgZXhhY3QgY291bnQgZm9yIGxvdyBudW1iZXJzIGFuZCBwbGFubmVkIGNvdW50IGZvciBoaWdoXHJcbiAgICAgKiBudW1iZXJzLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGUodmFsdWVzLCB7IGNvdW50LCB9ID0ge30pIHtcclxuICAgICAgICBjb25zdCBtZXRob2QgPSAnUEFUQ0gnO1xyXG4gICAgICAgIGNvbnN0IHByZWZlcnNIZWFkZXJzID0gW107XHJcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyc1snUHJlZmVyJ10pIHtcclxuICAgICAgICAgICAgcHJlZmVyc0hlYWRlcnMucHVzaCh0aGlzLmhlYWRlcnNbJ1ByZWZlciddKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNvdW50KSB7XHJcbiAgICAgICAgICAgIHByZWZlcnNIZWFkZXJzLnB1c2goYGNvdW50PSR7Y291bnR9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaGVhZGVyc1snUHJlZmVyJ10gPSBwcmVmZXJzSGVhZGVycy5qb2luKCcsJyk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyXzEuZGVmYXVsdCh7XHJcbiAgICAgICAgICAgIG1ldGhvZCxcclxuICAgICAgICAgICAgdXJsOiB0aGlzLnVybCxcclxuICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICBzY2hlbWE6IHRoaXMuc2NoZW1hLFxyXG4gICAgICAgICAgICBib2R5OiB2YWx1ZXMsXHJcbiAgICAgICAgICAgIGZldGNoOiB0aGlzLmZldGNoLFxyXG4gICAgICAgICAgICBhbGxvd0VtcHR5OiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybSBhIERFTEVURSBvbiB0aGUgdGFibGUgb3Igdmlldy5cclxuICAgICAqXHJcbiAgICAgKiBCeSBkZWZhdWx0LCBkZWxldGVkIHJvd3MgYXJlIG5vdCByZXR1cm5lZC4gVG8gcmV0dXJuIGl0LCBjaGFpbiB0aGUgY2FsbFxyXG4gICAgICogd2l0aCBgLnNlbGVjdCgpYCBhZnRlciBmaWx0ZXJzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmNvdW50IC0gQ291bnQgYWxnb3JpdGhtIHRvIHVzZSB0byBjb3VudCBkZWxldGVkIHJvd3MuXHJcbiAgICAgKlxyXG4gICAgICogYFwiZXhhY3RcImA6IEV4YWN0IGJ1dCBzbG93IGNvdW50IGFsZ29yaXRobS4gUGVyZm9ybXMgYSBgQ09VTlQoKilgIHVuZGVyIHRoZVxyXG4gICAgICogaG9vZC5cclxuICAgICAqXHJcbiAgICAgKiBgXCJwbGFubmVkXCJgOiBBcHByb3hpbWF0ZWQgYnV0IGZhc3QgY291bnQgYWxnb3JpdGhtLiBVc2VzIHRoZSBQb3N0Z3Jlc1xyXG4gICAgICogc3RhdGlzdGljcyB1bmRlciB0aGUgaG9vZC5cclxuICAgICAqXHJcbiAgICAgKiBgXCJlc3RpbWF0ZWRcImA6IFVzZXMgZXhhY3QgY291bnQgZm9yIGxvdyBudW1iZXJzIGFuZCBwbGFubmVkIGNvdW50IGZvciBoaWdoXHJcbiAgICAgKiBudW1iZXJzLlxyXG4gICAgICovXHJcbiAgICBkZWxldGUoeyBjb3VudCwgfSA9IHt9KSB7XHJcbiAgICAgICAgY29uc3QgbWV0aG9kID0gJ0RFTEVURSc7XHJcbiAgICAgICAgY29uc3QgcHJlZmVyc0hlYWRlcnMgPSBbXTtcclxuICAgICAgICBpZiAoY291bnQpIHtcclxuICAgICAgICAgICAgcHJlZmVyc0hlYWRlcnMucHVzaChgY291bnQ9JHtjb3VudH1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyc1snUHJlZmVyJ10pIHtcclxuICAgICAgICAgICAgcHJlZmVyc0hlYWRlcnMudW5zaGlmdCh0aGlzLmhlYWRlcnNbJ1ByZWZlciddKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5oZWFkZXJzWydQcmVmZXInXSA9IHByZWZlcnNIZWFkZXJzLmpvaW4oJywnKTtcclxuICAgICAgICByZXR1cm4gbmV3IFBvc3RncmVzdEZpbHRlckJ1aWxkZXJfMS5kZWZhdWx0KHtcclxuICAgICAgICAgICAgbWV0aG9kLFxyXG4gICAgICAgICAgICB1cmw6IHRoaXMudXJsLFxyXG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgIHNjaGVtYTogdGhpcy5zY2hlbWEsXHJcbiAgICAgICAgICAgIGZldGNoOiB0aGlzLmZldGNoLFxyXG4gICAgICAgICAgICBhbGxvd0VtcHR5OiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG5leHBvcnRzLmRlZmF1bHQgPSBQb3N0Z3Jlc3RRdWVyeUJ1aWxkZXI7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBvc3RncmVzdFF1ZXJ5QnVpbGRlci5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestQueryBuilder.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js ***!
|
||
\***********************************************************************************/
|
||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst PostgrestBuilder_1 = __importDefault(__webpack_require__(/*! ./PostgrestBuilder */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestBuilder.js\"));\r\nclass PostgrestTransformBuilder extends PostgrestBuilder_1.default {\r\n /**\r\n * Perform a SELECT on the query result.\r\n *\r\n * By default, `.insert()`, `.update()`, `.upsert()`, and `.delete()` do not\r\n * return modified rows. By calling this method, modified rows are returned in\r\n * `data`.\r\n *\r\n * @param columns - The columns to retrieve, separated by commas\r\n */\r\n select(columns) {\r\n // Remove whitespaces except when quoted\r\n let quoted = false;\r\n const cleanedColumns = (columns !== null && columns !== void 0 ? columns : '*')\r\n .split('')\r\n .map((c) => {\r\n if (/\\s/.test(c) && !quoted) {\r\n return '';\r\n }\r\n if (c === '\"') {\r\n quoted = !quoted;\r\n }\r\n return c;\r\n })\r\n .join('');\r\n this.url.searchParams.set('select', cleanedColumns);\r\n if (this.headers['Prefer']) {\r\n this.headers['Prefer'] += ',';\r\n }\r\n this.headers['Prefer'] += 'return=representation';\r\n return this;\r\n }\r\n /**\r\n * Order the query result by `column`.\r\n *\r\n * You can call this method multiple times to order by multiple columns.\r\n *\r\n * You can order referenced tables, but it only affects the ordering of the\r\n * parent table if you use `!inner` in the query.\r\n *\r\n * @param column - The column to order by\r\n * @param options - Named parameters\r\n * @param options.ascending - If `true`, the result will be in ascending order\r\n * @param options.nullsFirst - If `true`, `null`s appear first. If `false`,\r\n * `null`s appear last.\r\n * @param options.referencedTable - Set this to order a referenced table by\r\n * its columns\r\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\r\n * instead\r\n */\r\n order(column, { ascending = true, nullsFirst, foreignTable, referencedTable = foreignTable, } = {}) {\r\n const key = referencedTable ? `${referencedTable}.order` : 'order';\r\n const existingOrder = this.url.searchParams.get(key);\r\n this.url.searchParams.set(key, `${existingOrder ? `${existingOrder},` : ''}${column}.${ascending ? 'asc' : 'desc'}${nullsFirst === undefined ? '' : nullsFirst ? '.nullsfirst' : '.nullslast'}`);\r\n return this;\r\n }\r\n /**\r\n * Limit the query result by `count`.\r\n *\r\n * @param count - The maximum number of rows to return\r\n * @param options - Named parameters\r\n * @param options.referencedTable - Set this to limit rows of referenced\r\n * tables instead of the parent table\r\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\r\n * instead\r\n */\r\n limit(count, { foreignTable, referencedTable = foreignTable, } = {}) {\r\n const key = typeof referencedTable === 'undefined' ? 'limit' : `${referencedTable}.limit`;\r\n this.url.searchParams.set(key, `${count}`);\r\n return this;\r\n }\r\n /**\r\n * Limit the query result by starting at an offset `from` and ending at the offset `to`.\r\n * Only records within this range are returned.\r\n * This respects the query order and if there is no order clause the range could behave unexpectedly.\r\n * The `from` and `to` values are 0-based and inclusive: `range(1, 3)` will include the second, third\r\n * and fourth rows of the query.\r\n *\r\n * @param from - The starting index from which to limit the result\r\n * @param to - The last index to which to limit the result\r\n * @param options - Named parameters\r\n * @param options.referencedTable - Set this to limit rows of referenced\r\n * tables instead of the parent table\r\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\r\n * instead\r\n */\r\n range(from, to, { foreignTable, referencedTable = foreignTable, } = {}) {\r\n const keyOffset = typeof referencedTable === 'undefined' ? 'offset' : `${referencedTable}.offset`;\r\n const keyLimit = typeof referencedTable === 'undefined' ? 'limit' : `${referencedTable}.limit`;\r\n this.url.searchParams.set(keyOffset, `${from}`);\r\n // Range is inclusive, so add 1\r\n this.url.searchParams.set(keyLimit, `${to - from + 1}`);\r\n return this;\r\n }\r\n /**\r\n * Set the AbortSignal for the fetch request.\r\n *\r\n * @param signal - The AbortSignal to use for the fetch request\r\n */\r\n abortSignal(signal) {\r\n this.signal = signal;\r\n return this;\r\n }\r\n /**\r\n * Return `data` as a single object instead of an array of objects.\r\n *\r\n * Query result must be one row (e.g. using `.limit(1)`), otherwise this\r\n * returns an error.\r\n */\r\n single() {\r\n this.headers['Accept'] = 'application/vnd.pgrst.object+json';\r\n return this;\r\n }\r\n /**\r\n * Return `data` as a single object instead of an array of objects.\r\n *\r\n * Query result must be zero or one row (e.g. using `.limit(1)`), otherwise\r\n * this returns an error.\r\n */\r\n maybeSingle() {\r\n // Temporary partial fix for https://github.com/supabase/postgrest-js/issues/361\r\n // Issue persists e.g. for `.insert([...]).select().maybeSingle()`\r\n if (this.method === 'GET') {\r\n this.headers['Accept'] = 'application/json';\r\n }\r\n else {\r\n this.headers['Accept'] = 'application/vnd.pgrst.object+json';\r\n }\r\n this.isMaybeSingle = true;\r\n return this;\r\n }\r\n /**\r\n * Return `data` as a string in CSV format.\r\n */\r\n csv() {\r\n this.headers['Accept'] = 'text/csv';\r\n return this;\r\n }\r\n /**\r\n * Return `data` as an object in [GeoJSON](https://geojson.org) format.\r\n */\r\n geojson() {\r\n this.headers['Accept'] = 'application/geo+json';\r\n return this;\r\n }\r\n /**\r\n * Return `data` as the EXPLAIN plan for the query.\r\n *\r\n * You need to enable the\r\n * [db_plan_enabled](https://supabase.com/docs/guides/database/debugging-performance#enabling-explain)\r\n * setting before using this method.\r\n *\r\n * @param options - Named parameters\r\n *\r\n * @param options.analyze - If `true`, the query will be executed and the\r\n * actual run time will be returned\r\n *\r\n * @param options.verbose - If `true`, the query identifier will be returned\r\n * and `data` will include the output columns of the query\r\n *\r\n * @param options.settings - If `true`, include information on configuration\r\n * parameters that affect query planning\r\n *\r\n * @param options.buffers - If `true`, include information on buffer usage\r\n *\r\n * @param options.wal - If `true`, include information on WAL record generation\r\n *\r\n * @param options.format - The format of the output, can be `\"text\"` (default)\r\n * or `\"json\"`\r\n */\r\n explain({ analyze = false, verbose = false, settings = false, buffers = false, wal = false, format = 'text', } = {}) {\r\n var _a;\r\n const options = [\r\n analyze ? 'analyze' : null,\r\n verbose ? 'verbose' : null,\r\n settings ? 'settings' : null,\r\n buffers ? 'buffers' : null,\r\n wal ? 'wal' : null,\r\n ]\r\n .filter(Boolean)\r\n .join('|');\r\n // An Accept header can carry multiple media types but postgrest-js always sends one\r\n const forMediatype = (_a = this.headers['Accept']) !== null && _a !== void 0 ? _a : 'application/json';\r\n this.headers['Accept'] = `application/vnd.pgrst.plan+${format}; for=\"${forMediatype}\"; options=${options};`;\r\n if (format === 'json')\r\n return this;\r\n else\r\n return this;\r\n }\r\n /**\r\n * Rollback the query.\r\n *\r\n * `data` will still be returned, but the query is not committed.\r\n */\r\n rollback() {\r\n var _a;\r\n if (((_a = this.headers['Prefer']) !== null && _a !== void 0 ? _a : '').trim().length > 0) {\r\n this.headers['Prefer'] += ',tx=rollback';\r\n }\r\n else {\r\n this.headers['Prefer'] = 'tx=rollback';\r\n }\r\n return this;\r\n }\r\n /**\r\n * Override the type of the returned `data`.\r\n *\r\n * @typeParam NewResult - The new result type to override with\r\n * @deprecated Use overrideTypes<yourType, { merge: false }>() method at the end of your call chain instead\r\n */\r\n returns() {\r\n return this;\r\n }\r\n}\r\nexports[\"default\"] = PostgrestTransformBuilder;\r\n//# sourceMappingURL=PostgrestTransformBuilder.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvY2pzL1Bvc3RncmVzdFRyYW5zZm9ybUJ1aWxkZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDZDQUE2QztBQUM3QztBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCwyQ0FBMkMsbUJBQU8sQ0FBQyxrSEFBb0I7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDhFQUE4RSxJQUFJO0FBQ3RHLHlDQUF5QyxnQkFBZ0I7QUFDekQ7QUFDQSwwQ0FBMEMsbUJBQW1CLGNBQWMsUUFBUSxFQUFFLE9BQU8sR0FBRywyQkFBMkIsRUFBRSwwRUFBMEU7QUFDdE07QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLGdEQUFnRCxJQUFJO0FBQ3ZFLDBFQUEwRSxnQkFBZ0I7QUFDMUYsMENBQTBDLE1BQU07QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixnREFBZ0QsSUFBSTtBQUMxRSxpRkFBaUYsZ0JBQWdCO0FBQ2pHLCtFQUErRSxnQkFBZ0I7QUFDL0YsZ0RBQWdELEtBQUs7QUFDckQ7QUFDQSwrQ0FBK0MsY0FBYztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLHFHQUFxRyxJQUFJO0FBQ3ZIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtEQUErRCxTQUFTLE9BQU8sYUFBYSxHQUFHLFVBQVUsU0FBUztBQUNsSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQsY0FBYztBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWU7QUFDZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L2Nqcy9Qb3N0Z3Jlc3RUcmFuc2Zvcm1CdWlsZGVyLmpzP2U1ZjgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XHJcbn07XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuY29uc3QgUG9zdGdyZXN0QnVpbGRlcl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL1Bvc3RncmVzdEJ1aWxkZXJcIikpO1xyXG5jbGFzcyBQb3N0Z3Jlc3RUcmFuc2Zvcm1CdWlsZGVyIGV4dGVuZHMgUG9zdGdyZXN0QnVpbGRlcl8xLmRlZmF1bHQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJmb3JtIGEgU0VMRUNUIG9uIHRoZSBxdWVyeSByZXN1bHQuXHJcbiAgICAgKlxyXG4gICAgICogQnkgZGVmYXVsdCwgYC5pbnNlcnQoKWAsIGAudXBkYXRlKClgLCBgLnVwc2VydCgpYCwgYW5kIGAuZGVsZXRlKClgIGRvIG5vdFxyXG4gICAgICogcmV0dXJuIG1vZGlmaWVkIHJvd3MuIEJ5IGNhbGxpbmcgdGhpcyBtZXRob2QsIG1vZGlmaWVkIHJvd3MgYXJlIHJldHVybmVkIGluXHJcbiAgICAgKiBgZGF0YWAuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvbHVtbnMgLSBUaGUgY29sdW1ucyB0byByZXRyaWV2ZSwgc2VwYXJhdGVkIGJ5IGNvbW1hc1xyXG4gICAgICovXHJcbiAgICBzZWxlY3QoY29sdW1ucykge1xyXG4gICAgICAgIC8vIFJlbW92ZSB3aGl0ZXNwYWNlcyBleGNlcHQgd2hlbiBxdW90ZWRcclxuICAgICAgICBsZXQgcXVvdGVkID0gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgY2xlYW5lZENvbHVtbnMgPSAoY29sdW1ucyAhPT0gbnVsbCAmJiBjb2x1bW5zICE9PSB2b2lkIDAgPyBjb2x1bW5zIDogJyonKVxyXG4gICAgICAgICAgICAuc3BsaXQoJycpXHJcbiAgICAgICAgICAgIC5tYXAoKGMpID0+IHtcclxuICAgICAgICAgICAgaWYgKC9cXHMvLnRlc3QoYykgJiYgIXF1b3RlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChjID09PSAnXCInKSB7XHJcbiAgICAgICAgICAgICAgICBxdW90ZWQgPSAhcXVvdGVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5qb2luKCcnKTtcclxuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KCdzZWxlY3QnLCBjbGVhbmVkQ29sdW1ucyk7XHJcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyc1snUHJlZmVyJ10pIHtcclxuICAgICAgICAgICAgdGhpcy5oZWFkZXJzWydQcmVmZXInXSArPSAnLCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaGVhZGVyc1snUHJlZmVyJ10gKz0gJ3JldHVybj1yZXByZXNlbnRhdGlvbic7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIE9yZGVyIHRoZSBxdWVyeSByZXN1bHQgYnkgYGNvbHVtbmAuXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBjYWxsIHRoaXMgbWV0aG9kIG11bHRpcGxlIHRpbWVzIHRvIG9yZGVyIGJ5IG11bHRpcGxlIGNvbHVtbnMuXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBvcmRlciByZWZlcmVuY2VkIHRhYmxlcywgYnV0IGl0IG9ubHkgYWZmZWN0cyB0aGUgb3JkZXJpbmcgb2YgdGhlXHJcbiAgICAgKiBwYXJlbnQgdGFibGUgaWYgeW91IHVzZSBgIWlubmVyYCBpbiB0aGUgcXVlcnkuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBjb2x1bW4gdG8gb3JkZXIgYnlcclxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuYXNjZW5kaW5nIC0gSWYgYHRydWVgLCB0aGUgcmVzdWx0IHdpbGwgYmUgaW4gYXNjZW5kaW5nIG9yZGVyXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5udWxsc0ZpcnN0IC0gSWYgYHRydWVgLCBgbnVsbGBzIGFwcGVhciBmaXJzdC4gSWYgYGZhbHNlYCxcclxuICAgICAqIGBudWxsYHMgYXBwZWFyIGxhc3QuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5yZWZlcmVuY2VkVGFibGUgLSBTZXQgdGhpcyB0byBvcmRlciBhIHJlZmVyZW5jZWQgdGFibGUgYnlcclxuICAgICAqIGl0cyBjb2x1bW5zXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5mb3JlaWduVGFibGUgLSBEZXByZWNhdGVkLCB1c2UgYG9wdGlvbnMucmVmZXJlbmNlZFRhYmxlYFxyXG4gICAgICogaW5zdGVhZFxyXG4gICAgICovXHJcbiAgICBvcmRlcihjb2x1bW4sIHsgYXNjZW5kaW5nID0gdHJ1ZSwgbnVsbHNGaXJzdCwgZm9yZWlnblRhYmxlLCByZWZlcmVuY2VkVGFibGUgPSBmb3JlaWduVGFibGUsIH0gPSB7fSkge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IHJlZmVyZW5jZWRUYWJsZSA/IGAke3JlZmVyZW5jZWRUYWJsZX0ub3JkZXJgIDogJ29yZGVyJztcclxuICAgICAgICBjb25zdCBleGlzdGluZ09yZGVyID0gdGhpcy51cmwuc2VhcmNoUGFyYW1zLmdldChrZXkpO1xyXG4gICAgICAgIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5zZXQoa2V5LCBgJHtleGlzdGluZ09yZGVyID8gYCR7ZXhpc3RpbmdPcmRlcn0sYCA6ICcnfSR7Y29sdW1ufS4ke2FzY2VuZGluZyA/ICdhc2MnIDogJ2Rlc2MnfSR7bnVsbHNGaXJzdCA9PT0gdW5kZWZpbmVkID8gJycgOiBudWxsc0ZpcnN0ID8gJy5udWxsc2ZpcnN0JyA6ICcubnVsbHNsYXN0J31gKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogTGltaXQgdGhlIHF1ZXJ5IHJlc3VsdCBieSBgY291bnRgLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb3VudCAtIFRoZSBtYXhpbXVtIG51bWJlciBvZiByb3dzIHRvIHJldHVyblxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSBOYW1lZCBwYXJhbWV0ZXJzXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5yZWZlcmVuY2VkVGFibGUgLSBTZXQgdGhpcyB0byBsaW1pdCByb3dzIG9mIHJlZmVyZW5jZWRcclxuICAgICAqIHRhYmxlcyBpbnN0ZWFkIG9mIHRoZSBwYXJlbnQgdGFibGVcclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmZvcmVpZ25UYWJsZSAtIERlcHJlY2F0ZWQsIHVzZSBgb3B0aW9ucy5yZWZlcmVuY2VkVGFibGVgXHJcbiAgICAgKiBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIGxpbWl0KGNvdW50LCB7IGZvcmVpZ25UYWJsZSwgcmVmZXJlbmNlZFRhYmxlID0gZm9yZWlnblRhYmxlLCB9ID0ge30pIHtcclxuICAgICAgICBjb25zdCBrZXkgPSB0eXBlb2YgcmVmZXJlbmNlZFRhYmxlID09PSAndW5kZWZpbmVkJyA/ICdsaW1pdCcgOiBgJHtyZWZlcmVuY2VkVGFibGV9LmxpbWl0YDtcclxuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KGtleSwgYCR7Y291bnR9YCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIExpbWl0IHRoZSBxdWVyeSByZXN1bHQgYnkgc3RhcnRpbmcgYXQgYW4gb2Zmc2V0IGBmcm9tYCBhbmQgZW5kaW5nIGF0IHRoZSBvZmZzZXQgYHRvYC5cclxuICAgICAqIE9ubHkgcmVjb3JkcyB3aXRoaW4gdGhpcyByYW5nZSBhcmUgcmV0dXJuZWQuXHJcbiAgICAgKiBUaGlzIHJlc3BlY3RzIHRoZSBxdWVyeSBvcmRlciBhbmQgaWYgdGhlcmUgaXMgbm8gb3JkZXIgY2xhdXNlIHRoZSByYW5nZSBjb3VsZCBiZWhhdmUgdW5leHBlY3RlZGx5LlxyXG4gICAgICogVGhlIGBmcm9tYCBhbmQgYHRvYCB2YWx1ZXMgYXJlIDAtYmFzZWQgYW5kIGluY2x1c2l2ZTogYHJhbmdlKDEsIDMpYCB3aWxsIGluY2x1ZGUgdGhlIHNlY29uZCwgdGhpcmRcclxuICAgICAqIGFuZCBmb3VydGggcm93cyBvZiB0aGUgcXVlcnkuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGZyb20gLSBUaGUgc3RhcnRpbmcgaW5kZXggZnJvbSB3aGljaCB0byBsaW1pdCB0aGUgcmVzdWx0XHJcbiAgICAgKiBAcGFyYW0gdG8gLSBUaGUgbGFzdCBpbmRleCB0byB3aGljaCB0byBsaW1pdCB0aGUgcmVzdWx0XHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcclxuICAgICAqIEBwYXJhbSBvcHRpb25zLnJlZmVyZW5jZWRUYWJsZSAtIFNldCB0aGlzIHRvIGxpbWl0IHJvd3Mgb2YgcmVmZXJlbmNlZFxyXG4gICAgICogdGFibGVzIGluc3RlYWQgb2YgdGhlIHBhcmVudCB0YWJsZVxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZm9yZWlnblRhYmxlIC0gRGVwcmVjYXRlZCwgdXNlIGBvcHRpb25zLnJlZmVyZW5jZWRUYWJsZWBcclxuICAgICAqIGluc3RlYWRcclxuICAgICAqL1xyXG4gICAgcmFuZ2UoZnJvbSwgdG8sIHsgZm9yZWlnblRhYmxlLCByZWZlcmVuY2VkVGFibGUgPSBmb3JlaWduVGFibGUsIH0gPSB7fSkge1xyXG4gICAgICAgIGNvbnN0IGtleU9mZnNldCA9IHR5cGVvZiByZWZlcmVuY2VkVGFibGUgPT09ICd1bmRlZmluZWQnID8gJ29mZnNldCcgOiBgJHtyZWZlcmVuY2VkVGFibGV9Lm9mZnNldGA7XHJcbiAgICAgICAgY29uc3Qga2V5TGltaXQgPSB0eXBlb2YgcmVmZXJlbmNlZFRhYmxlID09PSAndW5kZWZpbmVkJyA/ICdsaW1pdCcgOiBgJHtyZWZlcmVuY2VkVGFibGV9LmxpbWl0YDtcclxuICAgICAgICB0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KGtleU9mZnNldCwgYCR7ZnJvbX1gKTtcclxuICAgICAgICAvLyBSYW5nZSBpcyBpbmNsdXNpdmUsIHNvIGFkZCAxXHJcbiAgICAgICAgdGhpcy51cmwuc2VhcmNoUGFyYW1zLnNldChrZXlMaW1pdCwgYCR7dG8gLSBmcm9tICsgMX1gKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBBYm9ydFNpZ25hbCBmb3IgdGhlIGZldGNoIHJlcXVlc3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHNpZ25hbCAtIFRoZSBBYm9ydFNpZ25hbCB0byB1c2UgZm9yIHRoZSBmZXRjaCByZXF1ZXN0XHJcbiAgICAgKi9cclxuICAgIGFib3J0U2lnbmFsKHNpZ25hbCkge1xyXG4gICAgICAgIHRoaXMuc2lnbmFsID0gc2lnbmFsO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm4gYGRhdGFgIGFzIGEgc2luZ2xlIG9iamVjdCBpbnN0ZWFkIG9mIGFuIGFycmF5IG9mIG9iamVjdHMuXHJcbiAgICAgKlxyXG4gICAgICogUXVlcnkgcmVzdWx0IG11c3QgYmUgb25lIHJvdyAoZS5nLiB1c2luZyBgLmxpbWl0KDEpYCksIG90aGVyd2lzZSB0aGlzXHJcbiAgICAgKiByZXR1cm5zIGFuIGVycm9yLlxyXG4gICAgICovXHJcbiAgICBzaW5nbGUoKSB7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJzWydBY2NlcHQnXSA9ICdhcHBsaWNhdGlvbi92bmQucGdyc3Qub2JqZWN0K2pzb24nO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm4gYGRhdGFgIGFzIGEgc2luZ2xlIG9iamVjdCBpbnN0ZWFkIG9mIGFuIGFycmF5IG9mIG9iamVjdHMuXHJcbiAgICAgKlxyXG4gICAgICogUXVlcnkgcmVzdWx0IG11c3QgYmUgemVybyBvciBvbmUgcm93IChlLmcuIHVzaW5nIGAubGltaXQoMSlgKSwgb3RoZXJ3aXNlXHJcbiAgICAgKiB0aGlzIHJldHVybnMgYW4gZXJyb3IuXHJcbiAgICAgKi9cclxuICAgIG1heWJlU2luZ2xlKCkge1xyXG4gICAgICAgIC8vIFRlbXBvcmFyeSBwYXJ0aWFsIGZpeCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL3N1cGFiYXNlL3Bvc3RncmVzdC1qcy9pc3N1ZXMvMzYxXHJcbiAgICAgICAgLy8gSXNzdWUgcGVyc2lzdHMgZS5nLiBmb3IgYC5pbnNlcnQoWy4uLl0pLnNlbGVjdCgpLm1heWJlU2luZ2xlKClgXHJcbiAgICAgICAgaWYgKHRoaXMubWV0aG9kID09PSAnR0VUJykge1xyXG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbJ0FjY2VwdCddID0gJ2FwcGxpY2F0aW9uL2pzb24nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5oZWFkZXJzWydBY2NlcHQnXSA9ICdhcHBsaWNhdGlvbi92bmQucGdyc3Qub2JqZWN0K2pzb24nO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzTWF5YmVTaW5nbGUgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm4gYGRhdGFgIGFzIGEgc3RyaW5nIGluIENTViBmb3JtYXQuXHJcbiAgICAgKi9cclxuICAgIGNzdigpIHtcclxuICAgICAgICB0aGlzLmhlYWRlcnNbJ0FjY2VwdCddID0gJ3RleHQvY3N2JztcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJuIGBkYXRhYCBhcyBhbiBvYmplY3QgaW4gW0dlb0pTT05dKGh0dHBzOi8vZ2VvanNvbi5vcmcpIGZvcm1hdC5cclxuICAgICAqL1xyXG4gICAgZ2VvanNvbigpIHtcclxuICAgICAgICB0aGlzLmhlYWRlcnNbJ0FjY2VwdCddID0gJ2FwcGxpY2F0aW9uL2dlbytqc29uJztcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJuIGBkYXRhYCBhcyB0aGUgRVhQTEFJTiBwbGFuIGZvciB0aGUgcXVlcnkuXHJcbiAgICAgKlxyXG4gICAgICogWW91IG5lZWQgdG8gZW5hYmxlIHRoZVxyXG4gICAgICogW2RiX3BsYW5fZW5hYmxlZF0oaHR0cHM6Ly9zdXBhYmFzZS5jb20vZG9jcy9ndWlkZXMvZGF0YWJhc2UvZGVidWdnaW5nLXBlcmZvcm1hbmNlI2VuYWJsaW5nLWV4cGxhaW4pXHJcbiAgICAgKiBzZXR0aW5nIGJlZm9yZSB1c2luZyB0aGlzIG1ldGhvZC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE5hbWVkIHBhcmFtZXRlcnNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5hbmFseXplIC0gSWYgYHRydWVgLCB0aGUgcXVlcnkgd2lsbCBiZSBleGVjdXRlZCBhbmQgdGhlXHJcbiAgICAgKiBhY3R1YWwgcnVuIHRpbWUgd2lsbCBiZSByZXR1cm5lZFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zLnZlcmJvc2UgLSBJZiBgdHJ1ZWAsIHRoZSBxdWVyeSBpZGVudGlmaWVyIHdpbGwgYmUgcmV0dXJuZWRcclxuICAgICAqIGFuZCBgZGF0YWAgd2lsbCBpbmNsdWRlIHRoZSBvdXRwdXQgY29sdW1ucyBvZiB0aGUgcXVlcnlcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5zZXR0aW5ncyAtIElmIGB0cnVlYCwgaW5jbHVkZSBpbmZvcm1hdGlvbiBvbiBjb25maWd1cmF0aW9uXHJcbiAgICAgKiBwYXJhbWV0ZXJzIHRoYXQgYWZmZWN0IHF1ZXJ5IHBsYW5uaW5nXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuYnVmZmVycyAtIElmIGB0cnVlYCwgaW5jbHVkZSBpbmZvcm1hdGlvbiBvbiBidWZmZXIgdXNhZ2VcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy53YWwgLSBJZiBgdHJ1ZWAsIGluY2x1ZGUgaW5mb3JtYXRpb24gb24gV0FMIHJlY29yZCBnZW5lcmF0aW9uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZm9ybWF0IC0gVGhlIGZvcm1hdCBvZiB0aGUgb3V0cHV0LCBjYW4gYmUgYFwidGV4dFwiYCAoZGVmYXVsdClcclxuICAgICAqIG9yIGBcImpzb25cImBcclxuICAgICAqL1xyXG4gICAgZXhwbGFpbih7IGFuYWx5emUgPSBmYWxzZSwgdmVyYm9zZSA9IGZhbHNlLCBzZXR0aW5ncyA9IGZhbHNlLCBidWZmZXJzID0gZmFsc2UsIHdhbCA9IGZhbHNlLCBmb3JtYXQgPSAndGV4dCcsIH0gPSB7fSkge1xyXG4gICAgICAgIHZhciBfYTtcclxuICAgICAgICBjb25zdCBvcHRpb25zID0gW1xyXG4gICAgICAgICAgICBhbmFseXplID8gJ2FuYWx5emUnIDogbnVsbCxcclxuICAgICAgICAgICAgdmVyYm9zZSA/ICd2ZXJib3NlJyA6IG51bGwsXHJcbiAgICAgICAgICAgIHNldHRpbmdzID8gJ3NldHRpbmdzJyA6IG51bGwsXHJcbiAgICAgICAgICAgIGJ1ZmZlcnMgPyAnYnVmZmVycycgOiBudWxsLFxyXG4gICAgICAgICAgICB3YWwgPyAnd2FsJyA6IG51bGwsXHJcbiAgICAgICAgXVxyXG4gICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXHJcbiAgICAgICAgICAgIC5qb2luKCd8Jyk7XHJcbiAgICAgICAgLy8gQW4gQWNjZXB0IGhlYWRlciBjYW4gY2FycnkgbXVsdGlwbGUgbWVkaWEgdHlwZXMgYnV0IHBvc3RncmVzdC1qcyBhbHdheXMgc2VuZHMgb25lXHJcbiAgICAgICAgY29uc3QgZm9yTWVkaWF0eXBlID0gKF9hID0gdGhpcy5oZWFkZXJzWydBY2NlcHQnXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ2FwcGxpY2F0aW9uL2pzb24nO1xyXG4gICAgICAgIHRoaXMuaGVhZGVyc1snQWNjZXB0J10gPSBgYXBwbGljYXRpb24vdm5kLnBncnN0LnBsYW4rJHtmb3JtYXR9OyBmb3I9XCIke2Zvck1lZGlhdHlwZX1cIjsgb3B0aW9ucz0ke29wdGlvbnN9O2A7XHJcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2pzb24nKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBSb2xsYmFjayB0aGUgcXVlcnkuXHJcbiAgICAgKlxyXG4gICAgICogYGRhdGFgIHdpbGwgc3RpbGwgYmUgcmV0dXJuZWQsIGJ1dCB0aGUgcXVlcnkgaXMgbm90IGNvbW1pdHRlZC5cclxuICAgICAqL1xyXG4gICAgcm9sbGJhY2soKSB7XHJcbiAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgIGlmICgoKF9hID0gdGhpcy5oZWFkZXJzWydQcmVmZXInXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycpLnRyaW0oKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyc1snUHJlZmVyJ10gKz0gJyx0eD1yb2xsYmFjayc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbJ1ByZWZlciddID0gJ3R4PXJvbGxiYWNrJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIE92ZXJyaWRlIHRoZSB0eXBlIG9mIHRoZSByZXR1cm5lZCBgZGF0YWAuXHJcbiAgICAgKlxyXG4gICAgICogQHR5cGVQYXJhbSBOZXdSZXN1bHQgLSBUaGUgbmV3IHJlc3VsdCB0eXBlIHRvIG92ZXJyaWRlIHdpdGhcclxuICAgICAqIEBkZXByZWNhdGVkIFVzZSBvdmVycmlkZVR5cGVzPHlvdXJUeXBlLCB7IG1lcmdlOiBmYWxzZSB9PigpIG1ldGhvZCBhdCB0aGUgZW5kIG9mIHlvdXIgY2FsbCBjaGFpbiBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIHJldHVybnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0cy5kZWZhdWx0ID0gUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlcjtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlci5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/constants.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/@supabase/postgrest-js/dist/cjs/constants.js ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.DEFAULT_HEADERS = void 0;\r\nconst version_1 = __webpack_require__(/*! ./version */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/version.js\");\r\nexports.DEFAULT_HEADERS = { 'X-Client-Info': `postgrest-js/${version_1.version}` };\r\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvY2pzL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsa0JBQWtCLG1CQUFPLENBQUMsZ0dBQVc7QUFDckMsdUJBQXVCLEtBQUssaUNBQWlDLGtCQUFrQjtBQUMvRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L2Nqcy9jb25zdGFudHMuanM/NGU4YSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLkRFRkFVTFRfSEVBREVSUyA9IHZvaWQgMDtcclxuY29uc3QgdmVyc2lvbl8xID0gcmVxdWlyZShcIi4vdmVyc2lvblwiKTtcclxuZXhwb3J0cy5ERUZBVUxUX0hFQURFUlMgPSB7ICdYLUNsaWVudC1JbmZvJzogYHBvc3RncmVzdC1qcy8ke3ZlcnNpb25fMS52ZXJzaW9ufWAgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/constants.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/index.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/@supabase/postgrest-js/dist/cjs/index.js ***!
|
||
\***************************************************************/
|
||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.PostgrestError = exports.PostgrestBuilder = exports.PostgrestTransformBuilder = exports.PostgrestFilterBuilder = exports.PostgrestQueryBuilder = exports.PostgrestClient = void 0;\r\n// Always update wrapper.mjs when updating this file.\r\nconst PostgrestClient_1 = __importDefault(__webpack_require__(/*! ./PostgrestClient */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestClient.js\"));\r\nexports.PostgrestClient = PostgrestClient_1.default;\r\nconst PostgrestQueryBuilder_1 = __importDefault(__webpack_require__(/*! ./PostgrestQueryBuilder */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestQueryBuilder.js\"));\r\nexports.PostgrestQueryBuilder = PostgrestQueryBuilder_1.default;\r\nconst PostgrestFilterBuilder_1 = __importDefault(__webpack_require__(/*! ./PostgrestFilterBuilder */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestFilterBuilder.js\"));\r\nexports.PostgrestFilterBuilder = PostgrestFilterBuilder_1.default;\r\nconst PostgrestTransformBuilder_1 = __importDefault(__webpack_require__(/*! ./PostgrestTransformBuilder */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js\"));\r\nexports.PostgrestTransformBuilder = PostgrestTransformBuilder_1.default;\r\nconst PostgrestBuilder_1 = __importDefault(__webpack_require__(/*! ./PostgrestBuilder */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestBuilder.js\"));\r\nexports.PostgrestBuilder = PostgrestBuilder_1.default;\r\nconst PostgrestError_1 = __importDefault(__webpack_require__(/*! ./PostgrestError */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/PostgrestError.js\"));\r\nexports.PostgrestError = PostgrestError_1.default;\r\nexports[\"default\"] = {\r\n PostgrestClient: PostgrestClient_1.default,\r\n PostgrestQueryBuilder: PostgrestQueryBuilder_1.default,\r\n PostgrestFilterBuilder: PostgrestFilterBuilder_1.default,\r\n PostgrestTransformBuilder: PostgrestTransformBuilder_1.default,\r\n PostgrestBuilder: PostgrestBuilder_1.default,\r\n PostgrestError: PostgrestError_1.default,\r\n};\r\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvY2pzL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0JBQXNCLEdBQUcsd0JBQXdCLEdBQUcsaUNBQWlDLEdBQUcsOEJBQThCLEdBQUcsNkJBQTZCLEdBQUcsdUJBQXVCO0FBQ2hMO0FBQ0EsMENBQTBDLG1CQUFPLENBQUMsZ0hBQW1CO0FBQ3JFLHVCQUF1QjtBQUN2QixnREFBZ0QsbUJBQU8sQ0FBQyw0SEFBeUI7QUFDakYsNkJBQTZCO0FBQzdCLGlEQUFpRCxtQkFBTyxDQUFDLDhIQUEwQjtBQUNuRiw4QkFBOEI7QUFDOUIsb0RBQW9ELG1CQUFPLENBQUMsb0lBQTZCO0FBQ3pGLGlDQUFpQztBQUNqQywyQ0FBMkMsbUJBQU8sQ0FBQyxrSEFBb0I7QUFDdkUsd0JBQXdCO0FBQ3hCLHlDQUF5QyxtQkFBTyxDQUFDLDhHQUFrQjtBQUNuRSxzQkFBc0I7QUFDdEIsa0JBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvY2pzL2luZGV4LmpzPzIwZjQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XHJcbn07XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuZXhwb3J0cy5Qb3N0Z3Jlc3RFcnJvciA9IGV4cG9ydHMuUG9zdGdyZXN0QnVpbGRlciA9IGV4cG9ydHMuUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlciA9IGV4cG9ydHMuUG9zdGdyZXN0RmlsdGVyQnVpbGRlciA9IGV4cG9ydHMuUG9zdGdyZXN0UXVlcnlCdWlsZGVyID0gZXhwb3J0cy5Qb3N0Z3Jlc3RDbGllbnQgPSB2b2lkIDA7XHJcbi8vIEFsd2F5cyB1cGRhdGUgd3JhcHBlci5tanMgd2hlbiB1cGRhdGluZyB0aGlzIGZpbGUuXHJcbmNvbnN0IFBvc3RncmVzdENsaWVudF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL1Bvc3RncmVzdENsaWVudFwiKSk7XHJcbmV4cG9ydHMuUG9zdGdyZXN0Q2xpZW50ID0gUG9zdGdyZXN0Q2xpZW50XzEuZGVmYXVsdDtcclxuY29uc3QgUG9zdGdyZXN0UXVlcnlCdWlsZGVyXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vUG9zdGdyZXN0UXVlcnlCdWlsZGVyXCIpKTtcclxuZXhwb3J0cy5Qb3N0Z3Jlc3RRdWVyeUJ1aWxkZXIgPSBQb3N0Z3Jlc3RRdWVyeUJ1aWxkZXJfMS5kZWZhdWx0O1xyXG5jb25zdCBQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vUG9zdGdyZXN0RmlsdGVyQnVpbGRlclwiKSk7XHJcbmV4cG9ydHMuUG9zdGdyZXN0RmlsdGVyQnVpbGRlciA9IFBvc3RncmVzdEZpbHRlckJ1aWxkZXJfMS5kZWZhdWx0O1xyXG5jb25zdCBQb3N0Z3Jlc3RUcmFuc2Zvcm1CdWlsZGVyXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlclwiKSk7XHJcbmV4cG9ydHMuUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlciA9IFBvc3RncmVzdFRyYW5zZm9ybUJ1aWxkZXJfMS5kZWZhdWx0O1xyXG5jb25zdCBQb3N0Z3Jlc3RCdWlsZGVyXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vUG9zdGdyZXN0QnVpbGRlclwiKSk7XHJcbmV4cG9ydHMuUG9zdGdyZXN0QnVpbGRlciA9IFBvc3RncmVzdEJ1aWxkZXJfMS5kZWZhdWx0O1xyXG5jb25zdCBQb3N0Z3Jlc3RFcnJvcl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL1Bvc3RncmVzdEVycm9yXCIpKTtcclxuZXhwb3J0cy5Qb3N0Z3Jlc3RFcnJvciA9IFBvc3RncmVzdEVycm9yXzEuZGVmYXVsdDtcclxuZXhwb3J0cy5kZWZhdWx0ID0ge1xyXG4gICAgUG9zdGdyZXN0Q2xpZW50OiBQb3N0Z3Jlc3RDbGllbnRfMS5kZWZhdWx0LFxyXG4gICAgUG9zdGdyZXN0UXVlcnlCdWlsZGVyOiBQb3N0Z3Jlc3RRdWVyeUJ1aWxkZXJfMS5kZWZhdWx0LFxyXG4gICAgUG9zdGdyZXN0RmlsdGVyQnVpbGRlcjogUG9zdGdyZXN0RmlsdGVyQnVpbGRlcl8xLmRlZmF1bHQsXHJcbiAgICBQb3N0Z3Jlc3RUcmFuc2Zvcm1CdWlsZGVyOiBQb3N0Z3Jlc3RUcmFuc2Zvcm1CdWlsZGVyXzEuZGVmYXVsdCxcclxuICAgIFBvc3RncmVzdEJ1aWxkZXI6IFBvc3RncmVzdEJ1aWxkZXJfMS5kZWZhdWx0LFxyXG4gICAgUG9zdGdyZXN0RXJyb3I6IFBvc3RncmVzdEVycm9yXzEuZGVmYXVsdCxcclxufTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/index.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/version.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/@supabase/postgrest-js/dist/cjs/version.js ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.version = void 0;\r\nexports.version = '0.0.0-automated';\r\n//# sourceMappingURL=version.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvY2pzL3ZlcnNpb24uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZUFBZTtBQUNmLGVBQWU7QUFDZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L2Nqcy92ZXJzaW9uLmpzP2I5MzYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuZXhwb3J0cy52ZXJzaW9uID0gdm9pZCAwO1xyXG5leHBvcnRzLnZlcnNpb24gPSAnMC4wLjAtYXV0b21hdGVkJztcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmVyc2lvbi5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/version.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ REALTIME_CHANNEL_STATES: function() { return /* binding */ REALTIME_CHANNEL_STATES; },\n/* harmony export */ REALTIME_LISTEN_TYPES: function() { return /* binding */ REALTIME_LISTEN_TYPES; },\n/* harmony export */ REALTIME_POSTGRES_CHANGES_LISTEN_EVENT: function() { return /* binding */ REALTIME_POSTGRES_CHANGES_LISTEN_EVENT; },\n/* harmony export */ REALTIME_SUBSCRIBE_STATES: function() { return /* binding */ REALTIME_SUBSCRIBE_STATES; },\n/* harmony export */ \"default\": function() { return /* binding */ RealtimeChannel; }\n/* harmony export */ });\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/constants */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_push__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/push */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/push.js\");\n/* harmony import */ var _lib_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/timer */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/timer.js\");\n/* harmony import */ var _RealtimePresence__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RealtimePresence */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js\");\n/* harmony import */ var _lib_transformers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/transformers */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/transformers.js\");\n\r\n\r\n\r\n\r\n\r\n\r\nvar REALTIME_POSTGRES_CHANGES_LISTEN_EVENT;\r\n(function (REALTIME_POSTGRES_CHANGES_LISTEN_EVENT) {\r\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"ALL\"] = \"*\";\r\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"INSERT\"] = \"INSERT\";\r\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"UPDATE\"] = \"UPDATE\";\r\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"DELETE\"] = \"DELETE\";\r\n})(REALTIME_POSTGRES_CHANGES_LISTEN_EVENT || (REALTIME_POSTGRES_CHANGES_LISTEN_EVENT = {}));\r\nvar REALTIME_LISTEN_TYPES;\r\n(function (REALTIME_LISTEN_TYPES) {\r\n REALTIME_LISTEN_TYPES[\"BROADCAST\"] = \"broadcast\";\r\n REALTIME_LISTEN_TYPES[\"PRESENCE\"] = \"presence\";\r\n REALTIME_LISTEN_TYPES[\"POSTGRES_CHANGES\"] = \"postgres_changes\";\r\n REALTIME_LISTEN_TYPES[\"SYSTEM\"] = \"system\";\r\n})(REALTIME_LISTEN_TYPES || (REALTIME_LISTEN_TYPES = {}));\r\nvar REALTIME_SUBSCRIBE_STATES;\r\n(function (REALTIME_SUBSCRIBE_STATES) {\r\n REALTIME_SUBSCRIBE_STATES[\"SUBSCRIBED\"] = \"SUBSCRIBED\";\r\n REALTIME_SUBSCRIBE_STATES[\"TIMED_OUT\"] = \"TIMED_OUT\";\r\n REALTIME_SUBSCRIBE_STATES[\"CLOSED\"] = \"CLOSED\";\r\n REALTIME_SUBSCRIBE_STATES[\"CHANNEL_ERROR\"] = \"CHANNEL_ERROR\";\r\n})(REALTIME_SUBSCRIBE_STATES || (REALTIME_SUBSCRIBE_STATES = {}));\r\nconst REALTIME_CHANNEL_STATES = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES;\r\n/** A channel is the basic building block of Realtime\r\n * and narrows the scope of data flow to subscribed clients.\r\n * You can think of a channel as a chatroom where participants are able to see who's online\r\n * and send and receive messages.\r\n */\r\nclass RealtimeChannel {\r\n constructor(\r\n /** Topic name can be any string. */\r\n topic, params = { config: {} }, socket) {\r\n this.topic = topic;\r\n this.params = params;\r\n this.socket = socket;\r\n this.bindings = {};\r\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.closed;\r\n this.joinedOnce = false;\r\n this.pushBuffer = [];\r\n this.subTopic = topic.replace(/^realtime:/i, '');\r\n this.params.config = Object.assign({\r\n broadcast: { ack: false, self: false },\r\n presence: { key: '' },\r\n private: false,\r\n }, params.config);\r\n this.timeout = this.socket.timeout;\r\n this.joinPush = new _lib_push__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this, _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.join, this.params, this.timeout);\r\n this.rejoinTimer = new _lib_timer__WEBPACK_IMPORTED_MODULE_2__[\"default\"](() => this._rejoinUntilConnected(), this.socket.reconnectAfterMs);\r\n this.joinPush.receive('ok', () => {\r\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.joined;\r\n this.rejoinTimer.reset();\r\n this.pushBuffer.forEach((pushEvent) => pushEvent.send());\r\n this.pushBuffer = [];\r\n });\r\n this._onClose(() => {\r\n this.rejoinTimer.reset();\r\n this.socket.log('channel', `close ${this.topic} ${this._joinRef()}`);\r\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.closed;\r\n this.socket._remove(this);\r\n });\r\n this._onError((reason) => {\r\n if (this._isLeaving() || this._isClosed()) {\r\n return;\r\n }\r\n this.socket.log('channel', `error ${this.topic}`, reason);\r\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.errored;\r\n this.rejoinTimer.scheduleTimeout();\r\n });\r\n this.joinPush.receive('timeout', () => {\r\n if (!this._isJoining()) {\r\n return;\r\n }\r\n this.socket.log('channel', `timeout ${this.topic}`, this.joinPush.timeout);\r\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.errored;\r\n this.rejoinTimer.scheduleTimeout();\r\n });\r\n this._on(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.reply, {}, (payload, ref) => {\r\n this._trigger(this._replyEventName(ref), payload);\r\n });\r\n this.presence = new _RealtimePresence__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this);\r\n this.broadcastEndpointURL =\r\n (0,_lib_transformers__WEBPACK_IMPORTED_MODULE_4__.httpEndpointURL)(this.socket.endPoint) + '/api/broadcast';\r\n this.private = this.params.config.private || false;\r\n }\r\n /** Subscribe registers your client with the server */\r\n subscribe(callback, timeout = this.timeout) {\r\n var _a, _b;\r\n if (!this.socket.isConnected()) {\r\n this.socket.connect();\r\n }\r\n if (this.state == _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.closed) {\r\n const { config: { broadcast, presence, private: isPrivate }, } = this.params;\r\n this._onError((e) => callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, e));\r\n this._onClose(() => callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CLOSED));\r\n const accessTokenPayload = {};\r\n const config = {\r\n broadcast,\r\n presence,\r\n postgres_changes: (_b = (_a = this.bindings.postgres_changes) === null || _a === void 0 ? void 0 : _a.map((r) => r.filter)) !== null && _b !== void 0 ? _b : [],\r\n private: isPrivate,\r\n };\r\n if (this.socket.accessTokenValue) {\r\n accessTokenPayload.access_token = this.socket.accessTokenValue;\r\n }\r\n this.updateJoinPayload(Object.assign({ config }, accessTokenPayload));\r\n this.joinedOnce = true;\r\n this._rejoin(timeout);\r\n this.joinPush\r\n .receive('ok', async ({ postgres_changes }) => {\r\n var _a;\r\n this.socket.setAuth();\r\n if (postgres_changes === undefined) {\r\n callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.SUBSCRIBED);\r\n return;\r\n }\r\n else {\r\n const clientPostgresBindings = this.bindings.postgres_changes;\r\n const bindingsLen = (_a = clientPostgresBindings === null || clientPostgresBindings === void 0 ? void 0 : clientPostgresBindings.length) !== null && _a !== void 0 ? _a : 0;\r\n const newPostgresBindings = [];\r\n for (let i = 0; i < bindingsLen; i++) {\r\n const clientPostgresBinding = clientPostgresBindings[i];\r\n const { filter: { event, schema, table, filter }, } = clientPostgresBinding;\r\n const serverPostgresFilter = postgres_changes && postgres_changes[i];\r\n if (serverPostgresFilter &&\r\n serverPostgresFilter.event === event &&\r\n serverPostgresFilter.schema === schema &&\r\n serverPostgresFilter.table === table &&\r\n serverPostgresFilter.filter === filter) {\r\n newPostgresBindings.push(Object.assign(Object.assign({}, clientPostgresBinding), { id: serverPostgresFilter.id }));\r\n }\r\n else {\r\n this.unsubscribe();\r\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.errored;\r\n callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, new Error('mismatch between server and client bindings for postgres changes'));\r\n return;\r\n }\r\n }\r\n this.bindings.postgres_changes = newPostgresBindings;\r\n callback && callback(REALTIME_SUBSCRIBE_STATES.SUBSCRIBED);\r\n return;\r\n }\r\n })\r\n .receive('error', (error) => {\r\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.errored;\r\n callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, new Error(JSON.stringify(Object.values(error).join(', ') || 'error')));\r\n return;\r\n })\r\n .receive('timeout', () => {\r\n callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.TIMED_OUT);\r\n return;\r\n });\r\n }\r\n return this;\r\n }\r\n presenceState() {\r\n return this.presence.state;\r\n }\r\n async track(payload, opts = {}) {\r\n return await this.send({\r\n type: 'presence',\r\n event: 'track',\r\n payload,\r\n }, opts.timeout || this.timeout);\r\n }\r\n async untrack(opts = {}) {\r\n return await this.send({\r\n type: 'presence',\r\n event: 'untrack',\r\n }, opts);\r\n }\r\n on(type, filter, callback) {\r\n return this._on(type, filter, callback);\r\n }\r\n /**\r\n * Sends a message into the channel.\r\n *\r\n * @param args Arguments to send to channel\r\n * @param args.type The type of event to send\r\n * @param args.event The name of the event being sent\r\n * @param args.payload Payload to be sent\r\n * @param opts Options to be used during the send process\r\n */\r\n async send(args, opts = {}) {\r\n var _a, _b;\r\n if (!this._canPush() && args.type === 'broadcast') {\r\n const { event, payload: endpoint_payload } = args;\r\n const authorization = this.socket.accessTokenValue\r\n ? `Bearer ${this.socket.accessTokenValue}`\r\n : '';\r\n const options = {\r\n method: 'POST',\r\n headers: {\r\n Authorization: authorization,\r\n apikey: this.socket.apiKey ? this.socket.apiKey : '',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n messages: [\r\n {\r\n topic: this.subTopic,\r\n event,\r\n payload: endpoint_payload,\r\n private: this.private,\r\n },\r\n ],\r\n }),\r\n };\r\n try {\r\n const response = await this._fetchWithTimeout(this.broadcastEndpointURL, options, (_a = opts.timeout) !== null && _a !== void 0 ? _a : this.timeout);\r\n await ((_b = response.body) === null || _b === void 0 ? void 0 : _b.cancel());\r\n return response.ok ? 'ok' : 'error';\r\n }\r\n catch (error) {\r\n if (error.name === 'AbortError') {\r\n return 'timed out';\r\n }\r\n else {\r\n return 'error';\r\n }\r\n }\r\n }\r\n else {\r\n return new Promise((resolve) => {\r\n var _a, _b, _c;\r\n const push = this._push(args.type, args, opts.timeout || this.timeout);\r\n if (args.type === 'broadcast' && !((_c = (_b = (_a = this.params) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.broadcast) === null || _c === void 0 ? void 0 : _c.ack)) {\r\n resolve('ok');\r\n }\r\n push.receive('ok', () => resolve('ok'));\r\n push.receive('error', () => resolve('error'));\r\n push.receive('timeout', () => resolve('timed out'));\r\n });\r\n }\r\n }\r\n updateJoinPayload(payload) {\r\n this.joinPush.updatePayload(payload);\r\n }\r\n /**\r\n * Leaves the channel.\r\n *\r\n * Unsubscribes from server events, and instructs channel to terminate on server.\r\n * Triggers onClose() hooks.\r\n *\r\n * To receive leave acknowledgements, use the a `receive` hook to bind to the server ack, ie:\r\n * channel.unsubscribe().receive(\"ok\", () => alert(\"left!\") )\r\n */\r\n unsubscribe(timeout = this.timeout) {\r\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.leaving;\r\n const onClose = () => {\r\n this.socket.log('channel', `leave ${this.topic}`);\r\n this._trigger(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.close, 'leave', this._joinRef());\r\n };\r\n this.joinPush.destroy();\r\n let leavePush = null;\r\n return new Promise((resolve) => {\r\n leavePush = new _lib_push__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this, _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.leave, {}, timeout);\r\n leavePush\r\n .receive('ok', () => {\r\n onClose();\r\n resolve('ok');\r\n })\r\n .receive('timeout', () => {\r\n onClose();\r\n resolve('timed out');\r\n })\r\n .receive('error', () => {\r\n resolve('error');\r\n });\r\n leavePush.send();\r\n if (!this._canPush()) {\r\n leavePush.trigger('ok', {});\r\n }\r\n }).finally(() => {\r\n leavePush === null || leavePush === void 0 ? void 0 : leavePush.destroy();\r\n });\r\n }\r\n /**\r\n * Teardown the channel.\r\n *\r\n * Destroys and stops related timers.\r\n */\r\n teardown() {\r\n this.pushBuffer.forEach((push) => push.destroy());\r\n this.rejoinTimer && clearTimeout(this.rejoinTimer.timer);\r\n this.joinPush.destroy();\r\n }\r\n /** @internal */\r\n async _fetchWithTimeout(url, options, timeout) {\r\n const controller = new AbortController();\r\n const id = setTimeout(() => controller.abort(), timeout);\r\n const response = await this.socket.fetch(url, Object.assign(Object.assign({}, options), { signal: controller.signal }));\r\n clearTimeout(id);\r\n return response;\r\n }\r\n /** @internal */\r\n _push(event, payload, timeout = this.timeout) {\r\n if (!this.joinedOnce) {\r\n throw `tried to push '${event}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;\r\n }\r\n let pushEvent = new _lib_push__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this, event, payload, timeout);\r\n if (this._canPush()) {\r\n pushEvent.send();\r\n }\r\n else {\r\n pushEvent.startTimeout();\r\n this.pushBuffer.push(pushEvent);\r\n }\r\n return pushEvent;\r\n }\r\n /**\r\n * Overridable message hook\r\n *\r\n * Receives all events for specialized message handling before dispatching to the channel callbacks.\r\n * Must return the payload, modified or unmodified.\r\n *\r\n * @internal\r\n */\r\n _onMessage(_event, payload, _ref) {\r\n return payload;\r\n }\r\n /** @internal */\r\n _isMember(topic) {\r\n return this.topic === topic;\r\n }\r\n /** @internal */\r\n _joinRef() {\r\n return this.joinPush.ref;\r\n }\r\n /** @internal */\r\n _trigger(type, payload, ref) {\r\n var _a, _b;\r\n const typeLower = type.toLocaleLowerCase();\r\n const { close, error, leave, join } = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS;\r\n const events = [close, error, leave, join];\r\n if (ref && events.indexOf(typeLower) >= 0 && ref !== this._joinRef()) {\r\n return;\r\n }\r\n let handledPayload = this._onMessage(typeLower, payload, ref);\r\n if (payload && !handledPayload) {\r\n throw 'channel onMessage callbacks must return the payload, modified or unmodified';\r\n }\r\n if (['insert', 'update', 'delete'].includes(typeLower)) {\r\n (_a = this.bindings.postgres_changes) === null || _a === void 0 ? void 0 : _a.filter((bind) => {\r\n var _a, _b, _c;\r\n return (((_a = bind.filter) === null || _a === void 0 ? void 0 : _a.event) === '*' ||\r\n ((_c = (_b = bind.filter) === null || _b === void 0 ? void 0 : _b.event) === null || _c === void 0 ? void 0 : _c.toLocaleLowerCase()) === typeLower);\r\n }).map((bind) => bind.callback(handledPayload, ref));\r\n }\r\n else {\r\n (_b = this.bindings[typeLower]) === null || _b === void 0 ? void 0 : _b.filter((bind) => {\r\n var _a, _b, _c, _d, _e, _f;\r\n if (['broadcast', 'presence', 'postgres_changes'].includes(typeLower)) {\r\n if ('id' in bind) {\r\n const bindId = bind.id;\r\n const bindEvent = (_a = bind.filter) === null || _a === void 0 ? void 0 : _a.event;\r\n return (bindId &&\r\n ((_b = payload.ids) === null || _b === void 0 ? void 0 : _b.includes(bindId)) &&\r\n (bindEvent === '*' ||\r\n (bindEvent === null || bindEvent === void 0 ? void 0 : bindEvent.toLocaleLowerCase()) ===\r\n ((_c = payload.data) === null || _c === void 0 ? void 0 : _c.type.toLocaleLowerCase())));\r\n }\r\n else {\r\n const bindEvent = (_e = (_d = bind === null || bind === void 0 ? void 0 : bind.filter) === null || _d === void 0 ? void 0 : _d.event) === null || _e === void 0 ? void 0 : _e.toLocaleLowerCase();\r\n return (bindEvent === '*' ||\r\n bindEvent === ((_f = payload === null || payload === void 0 ? void 0 : payload.event) === null || _f === void 0 ? void 0 : _f.toLocaleLowerCase()));\r\n }\r\n }\r\n else {\r\n return bind.type.toLocaleLowerCase() === typeLower;\r\n }\r\n }).map((bind) => {\r\n if (typeof handledPayload === 'object' && 'ids' in handledPayload) {\r\n const postgresChanges = handledPayload.data;\r\n const { schema, table, commit_timestamp, type, errors } = postgresChanges;\r\n const enrichedPayload = {\r\n schema: schema,\r\n table: table,\r\n commit_timestamp: commit_timestamp,\r\n eventType: type,\r\n new: {},\r\n old: {},\r\n errors: errors,\r\n };\r\n handledPayload = Object.assign(Object.assign({}, enrichedPayload), this._getPayloadRecords(postgresChanges));\r\n }\r\n bind.callback(handledPayload, ref);\r\n });\r\n }\r\n }\r\n /** @internal */\r\n _isClosed() {\r\n return this.state === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.closed;\r\n }\r\n /** @internal */\r\n _isJoined() {\r\n return this.state === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.joined;\r\n }\r\n /** @internal */\r\n _isJoining() {\r\n return this.state === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.joining;\r\n }\r\n /** @internal */\r\n _isLeaving() {\r\n return this.state === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.leaving;\r\n }\r\n /** @internal */\r\n _replyEventName(ref) {\r\n return `chan_reply_${ref}`;\r\n }\r\n /** @internal */\r\n _on(type, filter, callback) {\r\n const typeLower = type.toLocaleLowerCase();\r\n const binding = {\r\n type: typeLower,\r\n filter: filter,\r\n callback: callback,\r\n };\r\n if (this.bindings[typeLower]) {\r\n this.bindings[typeLower].push(binding);\r\n }\r\n else {\r\n this.bindings[typeLower] = [binding];\r\n }\r\n return this;\r\n }\r\n /** @internal */\r\n _off(type, filter) {\r\n const typeLower = type.toLocaleLowerCase();\r\n this.bindings[typeLower] = this.bindings[typeLower].filter((bind) => {\r\n var _a;\r\n return !(((_a = bind.type) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === typeLower &&\r\n RealtimeChannel.isEqual(bind.filter, filter));\r\n });\r\n return this;\r\n }\r\n /** @internal */\r\n static isEqual(obj1, obj2) {\r\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\r\n return false;\r\n }\r\n for (const k in obj1) {\r\n if (obj1[k] !== obj2[k]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n /** @internal */\r\n _rejoinUntilConnected() {\r\n this.rejoinTimer.scheduleTimeout();\r\n if (this.socket.isConnected()) {\r\n this._rejoin();\r\n }\r\n }\r\n /**\r\n * Registers a callback that will be executed when the channel closes.\r\n *\r\n * @internal\r\n */\r\n _onClose(callback) {\r\n this._on(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.close, {}, callback);\r\n }\r\n /**\r\n * Registers a callback that will be executed when the channel encounteres an error.\r\n *\r\n * @internal\r\n */\r\n _onError(callback) {\r\n this._on(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.error, {}, (reason) => callback(reason));\r\n }\r\n /**\r\n * Returns `true` if the socket is connected and the channel has been joined.\r\n *\r\n * @internal\r\n */\r\n _canPush() {\r\n return this.socket.isConnected() && this._isJoined();\r\n }\r\n /** @internal */\r\n _rejoin(timeout = this.timeout) {\r\n if (this._isLeaving()) {\r\n return;\r\n }\r\n this.socket._leaveOpenTopic(this.topic);\r\n this.state = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_STATES.joining;\r\n this.joinPush.resend(timeout);\r\n }\r\n /** @internal */\r\n _getPayloadRecords(payload) {\r\n const records = {\r\n new: {},\r\n old: {},\r\n };\r\n if (payload.type === 'INSERT' || payload.type === 'UPDATE') {\r\n records.new = _lib_transformers__WEBPACK_IMPORTED_MODULE_4__.convertChangeData(payload.columns, payload.record);\r\n }\r\n if (payload.type === 'UPDATE' || payload.type === 'DELETE') {\r\n records.old = _lib_transformers__WEBPACK_IMPORTED_MODULE_4__.convertChangeData(payload.columns, payload.old_record);\r\n }\r\n return records;\r\n }\r\n}\r\n//# sourceMappingURL=RealtimeChannel.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvUmVhbHRpbWVDaGFubmVsLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBaUU7QUFDbkM7QUFDRTtBQUNrQjtBQUNDO0FBQ0U7QUFDOUM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx3RkFBd0Y7QUFDbEY7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxzREFBc0Q7QUFDaEQ7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyw4REFBOEQ7QUFDeEQsZ0NBQWdDLDBEQUFjO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQSxzQkFBc0IsWUFBWTtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiwwREFBYztBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5Qix5QkFBeUI7QUFDbEQsd0JBQXdCLFNBQVM7QUFDakM7QUFDQSxTQUFTO0FBQ1Q7QUFDQSw0QkFBNEIsaURBQUksT0FBTywwREFBYztBQUNyRCwrQkFBK0Isa0RBQUs7QUFDcEM7QUFDQSx5QkFBeUIsMERBQWM7QUFDdkM7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxnREFBZ0QsWUFBWSxFQUFFLGdCQUFnQjtBQUM5RSx5QkFBeUIsMERBQWM7QUFDdkM7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0QsV0FBVztBQUMzRCx5QkFBeUIsMERBQWM7QUFDdkM7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QsV0FBVztBQUM3RCx5QkFBeUIsMERBQWM7QUFDdkM7QUFDQSxTQUFTO0FBQ1QsaUJBQWlCLDBEQUFjLFVBQVU7QUFDekM7QUFDQSxTQUFTO0FBQ1QsNEJBQTRCLHlEQUFnQjtBQUM1QztBQUNBLFlBQVksa0VB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O0FBQ25CO0FBQ0E7QUFDQSwwQkFBMEIsZ0VBQThCO0FBQ3hEO0FBQ0E7QUFDQSwwQkFBMEIsZ0VBQThCO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9SZWFsdGltZUNoYW5uZWwuanM/NTIyNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDSEFOTkVMX0VWRU5UUywgQ0hBTk5FTF9TVEFURVMgfSBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xyXG5pbXBvcnQgUHVzaCBmcm9tICcuL2xpYi9wdXNoJztcclxuaW1wb3J0IFRpbWVyIGZyb20gJy4vbGliL3RpbWVyJztcclxuaW1wb3J0IFJlYWx0aW1lUHJlc2VuY2UgZnJvbSAnLi9SZWFsdGltZVByZXNlbmNlJztcclxuaW1wb3J0ICogYXMgVHJhbnNmb3JtZXJzIGZyb20gJy4vbGliL3RyYW5zZm9ybWVycyc7XHJcbmltcG9ydCB7IGh0dHBFbmRwb2ludFVSTCB9IGZyb20gJy4vbGliL3RyYW5zZm9ybWVycyc7XHJcbmV4cG9ydCB2YXIgUkVBTFRJTUVfUE9TVEdSRVNfQ0hBTkdFU19MSVNURU5fRVZFTlQ7XHJcbihmdW5jdGlvbiAoUkVBTFRJTUVfUE9TVEdSRVNfQ0hBTkdFU19MSVNURU5fRVZFTlQpIHtcclxuICAgIFJFQUxUSU1FX1BPU1RHUkVTX0NIQU5HRVNfTElTVEVOX0VWRU5UW1wiQUxMXCJdID0gXCIqXCI7XHJcbiAgICBSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVFtcIklOU0VSVFwiXSA9IFwiSU5TRVJUXCI7XHJcbiAgICBSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVFtcIlVQREFURVwiXSA9IFwiVVBEQVRFXCI7XHJcbiAgICBSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVFtcIkRFTEVURVwiXSA9IFwiREVMRVRFXCI7XHJcbn0pKFJFQUxUSU1FX1BPU1RHUkVTX0NIQU5HRVNfTElTVEVOX0VWRU5UIHx8IChSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVCA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgUkVBTFRJTUVfTElTVEVOX1RZUEVTO1xyXG4oZnVuY3Rpb24gKFJFQUxUSU1FX0xJU1RFTl9UWVBFUykge1xyXG4gICAgUkVBTFRJTUVfTElTVEVOX1RZUEVTW1wiQlJPQURDQVNUXCJdID0gXCJicm9hZGNhc3RcIjtcclxuICAgIFJFQUxUSU1FX0xJU1RFTl9UWVBFU1tcIlBSRVNFTkNFXCJdID0gXCJwcmVzZW5jZVwiO1xyXG4gICAgUkVBTFRJTUVfTElTVEVOX1RZUEVTW1wiUE9TVEdSRVNfQ0hBTkdFU1wiXSA9IFwicG9zdGdyZXNfY2hhbmdlc1wiO1xyXG4gICAgUkVBTFRJTUVfTElTVEVOX1RZUEVTW1wiU1lTVEVNXCJdID0gXCJzeXN0ZW1cIjtcclxufSkoUkVBTFRJTUVfTElTVEVOX1RZUEVTIHx8IChSRUFMVElNRV9MSVNURU5fVFlQRVMgPSB7fSkpO1xyXG5leHBvcnQgdmFyIFJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVM7XHJcbihmdW5jdGlvbiAoUkVBTFRJTUVfU1VCU0NSSUJFX1NUQVRFUykge1xyXG4gICAgUkVBTFRJTUVfU1VCU0NSSUJFX1NUQVRFU1tcIlNVQlNDUklCRURcIl0gPSBcIlNVQlNDUklCRURcIjtcclxuICAgIFJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVNbXCJUSU1FRF9PVVRcIl0gPSBcIlRJTUVEX09VVFwiO1xyXG4gICAgUkVBTFRJTUVfU1VCU0NSSUJFX1NUQVRFU1tcIkNMT1NFRFwiXSA9IFwiQ0xPU0VEXCI7XHJcbiAgICBSRUFMVElNRV9TVUJTQ1JJQkVfU1RBVEVTW1wiQ0hBTk5FTF9FUlJPUlwiXSA9IFwiQ0hBTk5FTF9FUlJPUlwiO1xyXG59KShSRUFMVElNRV9TVUJTQ1JJQkVfU1RBVEVTIHx8IChSRUFMVElNRV9TVUJTQ1JJQkVfU1RBVEVTID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IFJFQUxUSU1FX0NIQU5ORUxfU1RBVEVTID0gQ0hBTk5FTF9TVEFURVM7XHJcbi8qKiBBIGNoYW5uZWwgaXMgdGhlIGJhc2ljIGJ1aWxkaW5nIGJsb2NrIG9mIFJlYWx0aW1lXHJcbiAqIGFuZCBuYXJyb3dzIHRoZSBzY29wZSBvZiBkYXRhIGZsb3cgdG8gc3Vic2NyaWJlZCBjbGllbnRzLlxyXG4gKiBZb3UgY2FuIHRoaW5rIG9mIGEgY2hhbm5lbCBhcyBhIGNoYXRyb29tIHdoZXJlIHBhcnRpY2lwYW50cyBhcmUgYWJsZSB0byBzZWUgd2hvJ3Mgb25saW5lXHJcbiAqIGFuZCBzZW5kIGFuZCByZWNlaXZlIG1lc3NhZ2VzLlxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVhbHRpbWVDaGFubmVsIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgLyoqIFRvcGljIG5hbWUgY2FuIGJlIGFueSBzdHJpbmcuICovXHJcbiAgICB0b3BpYywgcGFyYW1zID0geyBjb25maWc6IHt9IH0sIHNvY2tldCkge1xyXG4gICAgICAgIHRoaXMudG9waWMgPSB0b3BpYztcclxuICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcclxuICAgICAgICB0aGlzLnNvY2tldCA9IHNvY2tldDtcclxuICAgICAgICB0aGlzLmJpbmRpbmdzID0ge307XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmNsb3NlZDtcclxuICAgICAgICB0aGlzLmpvaW5lZE9uY2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnB1c2hCdWZmZXIgPSBbXTtcclxuICAgICAgICB0aGlzLnN1YlRvcGljID0gdG9waWMucmVwbGFjZSgvXnJlYWx0aW1lOi9pLCAnJyk7XHJcbiAgICAgICAgdGhpcy5wYXJhbXMuY29uZmlnID0gT2JqZWN0LmFzc2lnbih7XHJcbiAgICAgICAgICAgIGJyb2FkY2FzdDogeyBhY2s6IGZhbHNlLCBzZWxmOiBmYWxzZSB9LFxyXG4gICAgICAgICAgICBwcmVzZW5jZTogeyBrZXk6ICcnIH0sXHJcbiAgICAgICAgICAgIHByaXZhdGU6IGZhbHNlLFxyXG4gICAgICAgIH0sIHBhcmFtcy5jb25maWcpO1xyXG4gICAgICAgIHRoaXMudGltZW91dCA9IHRoaXMuc29ja2V0LnRpbWVvdXQ7XHJcbiAgICAgICAgdGhpcy5qb2luUHVzaCA9IG5ldyBQdXNoKHRoaXMsIENIQU5ORUxfRVZFTlRTLmpvaW4sIHRoaXMucGFyYW1zLCB0aGlzLnRpbWVvdXQpO1xyXG4gICAgICAgIHRoaXMucmVqb2luVGltZXIgPSBuZXcgVGltZXIoKCkgPT4gdGhpcy5fcmVqb2luVW50aWxDb25uZWN0ZWQoKSwgdGhpcy5zb2NrZXQucmVjb25uZWN0QWZ0ZXJNcyk7XHJcbiAgICAgICAgdGhpcy5qb2luUHVzaC5yZWNlaXZlKCdvaycsICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmpvaW5lZDtcclxuICAgICAgICAgICAgdGhpcy5yZWpvaW5UaW1lci5yZXNldCgpO1xyXG4gICAgICAgICAgICB0aGlzLnB1c2hCdWZmZXIuZm9yRWFjaCgocHVzaEV2ZW50KSA9PiBwdXNoRXZlbnQuc2VuZCgpKTtcclxuICAgICAgICAgICAgdGhpcy5wdXNoQnVmZmVyID0gW107XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fb25DbG9zZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucmVqb2luVGltZXIucmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5zb2NrZXQubG9nKCdjaGFubmVsJywgYGNsb3NlICR7dGhpcy50b3BpY30gJHt0aGlzLl9qb2luUmVmKCl9YCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBDSEFOTkVMX1NUQVRFUy5jbG9zZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuc29ja2V0Ll9yZW1vdmUodGhpcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fb25FcnJvcigocmVhc29uKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc0xlYXZpbmcoKSB8fCB0aGlzLl9pc0Nsb3NlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zb2NrZXQubG9nKCdjaGFubmVsJywgYGVycm9yICR7dGhpcy50b3BpY31gLCByZWFzb24pO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gQ0hBTk5FTF9TVEFURVMuZXJyb3JlZDtcclxuICAgICAgICAgICAgdGhpcy5yZWpvaW5UaW1lci5zY2hlZHVsZVRpbWVvdXQoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmpvaW5QdXNoLnJlY2VpdmUoJ3RpbWVvdXQnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5faXNKb2luaW5nKCkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNvY2tldC5sb2coJ2NoYW5uZWwnLCBgdGltZW91dCAke3RoaXMudG9waWN9YCwgdGhpcy5qb2luUHVzaC50aW1lb3V0KTtcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmVycm9yZWQ7XHJcbiAgICAgICAgICAgIHRoaXMucmVqb2luVGltZXIuc2NoZWR1bGVUaW1lb3V0KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fb24oQ0hBTk5FTF9FVkVOVFMucmVwbHksIHt9LCAocGF5bG9hZCwgcmVmKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIodGhpcy5fcmVwbHlFdmVudE5hbWUocmVmKSwgcGF5bG9hZCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5wcmVzZW5jZSA9IG5ldyBSZWFsdGltZVByZXNlbmNlKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0RW5kcG9pbnRVUkwgPVxyXG4gICAgICAgICAgICBodHRwRW5kcG9pbnRVUkwodGhpcy5zb2NrZXQuZW5kUG9pbnQpICsgJy9hcGkvYnJvYWRjYXN0JztcclxuICAgICAgICB0aGlzLnByaXZhdGUgPSB0aGlzLnBhcmFtcy5jb25maWcucHJpdmF0ZSB8fCBmYWxzZTtcclxuICAgIH1cclxuICAgIC8qKiBTdWJzY3JpYmUgcmVnaXN0ZXJzIHlvdXIgY2xpZW50IHdpdGggdGhlIHNlcnZlciAqL1xyXG4gICAgc3Vic2NyaWJlKGNhbGxiYWNrLCB0aW1lb3V0ID0gdGhpcy50aW1lb3V0KSB7XHJcbiAgICAgICAgdmFyIF9hLCBfYjtcclxuICAgICAgICBpZiAoIXRoaXMuc29ja2V0LmlzQ29ubmVjdGVkKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5zb2NrZXQuY29ubmVjdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PSBDSEFOTkVMX1NUQVRFUy5jbG9zZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBjb25maWc6IHsgYnJvYWRjYXN0LCBwcmVzZW5jZSwgcHJpdmF0ZTogaXNQcml2YXRlIH0sIH0gPSB0aGlzLnBhcmFtcztcclxuICAgICAgICAgICAgdGhpcy5fb25FcnJvcigoZSkgPT4gY2FsbGJhY2sgPT09IG51bGwgfHwgY2FsbGJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNhbGxiYWNrKFJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVMuQ0hBTk5FTF9FUlJPUiwgZSkpO1xyXG4gICAgICAgICAgICB0aGlzLl9vbkNsb3NlKCgpID0+IGNhbGxiYWNrID09PSBudWxsIHx8IGNhbGxiYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjYWxsYmFjayhSRUFMVElNRV9TVUJTQ1JJQkVfU1RBVEVTLkNMT1NFRCkpO1xyXG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlblBheWxvYWQgPSB7fTtcclxuICAgICAgICAgICAgY29uc3QgY29uZmlnID0ge1xyXG4gICAgICAgICAgICAgICAgYnJvYWRjYXN0LFxyXG4gICAgICAgICAgICAgICAgcHJlc2VuY2UsXHJcbiAgICAgICAgICAgICAgICBwb3N0Z3Jlc19jaGFuZ2VzOiAoX2IgPSAoX2EgPSB0aGlzLmJpbmRpbmdzLnBvc3RncmVzX2NoYW5nZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5tYXAoKHIpID0+IHIuZmlsdGVyKSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogW10sXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlOiBpc1ByaXZhdGUsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNvY2tldC5hY2Nlc3NUb2tlblZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBhY2Nlc3NUb2tlblBheWxvYWQuYWNjZXNzX3Rva2VuID0gdGhpcy5zb2NrZXQuYWNjZXNzVG9rZW5WYWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUpvaW5QYXlsb2FkKE9iamVjdC5hc3NpZ24oeyBjb25maWcgfSwgYWNjZXNzVG9rZW5QYXlsb2FkKSk7XHJcbiAgICAgICAgICAgIHRoaXMuam9pbmVkT25jZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX3Jlam9pbih0aW1lb3V0KTtcclxuICAgICAgICAgICAgdGhpcy5qb2luUHVzaFxyXG4gICAgICAgICAgICAgICAgLnJlY2VpdmUoJ29rJywgYXN5bmMgKHsgcG9zdGdyZXNfY2hhbmdlcyB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNvY2tldC5zZXRBdXRoKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAocG9zdGdyZXNfY2hhbmdlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sgPT09IG51bGwgfHwgY2FsbGJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNhbGxiYWNrKFJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVMuU1VCU0NSSUJFRCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xpZW50UG9zdGdyZXNCaW5kaW5ncyA9IHRoaXMuYmluZGluZ3MucG9zdGdyZXNfY2hhbmdlcztcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaW5kaW5nc0xlbiA9IChfYSA9IGNsaWVudFBvc3RncmVzQmluZGluZ3MgPT09IG51bGwgfHwgY2xpZW50UG9zdGdyZXNCaW5kaW5ncyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xpZW50UG9zdGdyZXNCaW5kaW5ncy5sZW5ndGgpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3UG9zdGdyZXNCaW5kaW5ncyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmluZGluZ3NMZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGllbnRQb3N0Z3Jlc0JpbmRpbmcgPSBjbGllbnRQb3N0Z3Jlc0JpbmRpbmdzW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGZpbHRlcjogeyBldmVudCwgc2NoZW1hLCB0YWJsZSwgZmlsdGVyIH0sIH0gPSBjbGllbnRQb3N0Z3Jlc0JpbmRpbmc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlcnZlclBvc3RncmVzRmlsdGVyID0gcG9zdGdyZXNfY2hhbmdlcyAmJiBwb3N0Z3Jlc19jaGFuZ2VzW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VydmVyUG9zdGdyZXNGaWx0ZXIgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclBvc3RncmVzRmlsdGVyLmV2ZW50ID09PSBldmVudCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyUG9zdGdyZXNGaWx0ZXIuc2NoZW1hID09PSBzY2hlbWEgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclBvc3RncmVzRmlsdGVyLnRhYmxlID09PSB0YWJsZSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyUG9zdGdyZXNGaWx0ZXIuZmlsdGVyID09PSBmaWx0ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Bvc3RncmVzQmluZGluZ3MucHVzaChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGNsaWVudFBvc3RncmVzQmluZGluZyksIHsgaWQ6IHNlcnZlclBvc3RncmVzRmlsdGVyLmlkIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBDSEFOTkVMX1NUQVRFUy5lcnJvcmVkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sgPT09IG51bGwgfHwgY2FsbGJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNhbGxiYWNrKFJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVMuQ0hBTk5FTF9FUlJPUiwgbmV3IEVycm9yKCdtaXNtYXRjaCBiZXR3ZWVuIHNlcnZlciBhbmQgY2xpZW50IGJpbmRpbmdzIGZvciBwb3N0Z3JlcyBjaGFuZ2VzJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmluZGluZ3MucG9zdGdyZXNfY2hhbmdlcyA9IG5ld1Bvc3RncmVzQmluZGluZ3M7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soUkVBTFRJTUVfU1VCU0NSSUJFX1NUQVRFUy5TVUJTQ1JJQkVEKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAucmVjZWl2ZSgnZXJyb3InLCAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBDSEFOTkVMX1NUQVRFUy5lcnJvcmVkO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2sgPT09IG51bGwgfHwgY2FsbGJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNhbGxiYWNrKFJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVMuQ0hBTk5FTF9FUlJPUiwgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KE9iamVjdC52YWx1ZXMoZXJyb3IpLmpvaW4oJywgJykgfHwgJ2Vycm9yJykpKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5yZWNlaXZlKCd0aW1lb3V0JywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2sgPT09IG51bGwgfHwgY2FsbGJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNhbGxiYWNrKFJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVMuVElNRURfT1VUKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgcHJlc2VuY2VTdGF0ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcmVzZW5jZS5zdGF0ZTtcclxuICAgIH1cclxuICAgIGFzeW5jIHRyYWNrKHBheWxvYWQsIG9wdHMgPSB7fSkge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnNlbmQoe1xyXG4gICAgICAgICAgICB0eXBlOiAncHJlc2VuY2UnLFxyXG4gICAgICAgICAgICBldmVudDogJ3RyYWNrJyxcclxuICAgICAgICAgICAgcGF5bG9hZCxcclxuICAgICAgICB9LCBvcHRzLnRpbWVvdXQgfHwgdGhpcy50aW1lb3V0KTtcclxuICAgIH1cclxuICAgIGFzeW5jIHVudHJhY2sob3B0cyA9IHt9KSB7XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2VuZCh7XHJcbiAgICAgICAgICAgIHR5cGU6ICdwcmVzZW5jZScsXHJcbiAgICAgICAgICAgIGV2ZW50OiAndW50cmFjaycsXHJcbiAgICAgICAgfSwgb3B0cyk7XHJcbiAgICB9XHJcbiAgICBvbih0eXBlLCBmaWx0ZXIsIGNhbGxiYWNrKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uKHR5cGUsIGZpbHRlciwgY2FsbGJhY2spO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBTZW5kcyBhIG1lc3NhZ2UgaW50byB0aGUgY2hhbm5lbC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gYXJncyBBcmd1bWVudHMgdG8gc2VuZCB0byBjaGFubmVsXHJcbiAgICAgKiBAcGFyYW0gYXJncy50eXBlIFRoZSB0eXBlIG9mIGV2ZW50IHRvIHNlbmRcclxuICAgICAqIEBwYXJhbSBhcmdzLmV2ZW50IFRoZSBuYW1lIG9mIHRoZSBldmVudCBiZWluZyBzZW50XHJcbiAgICAgKiBAcGFyYW0gYXJncy5wYXlsb2FkIFBheWxvYWQgdG8gYmUgc2VudFxyXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucyB0byBiZSB1c2VkIGR1cmluZyB0aGUgc2VuZCBwcm9jZXNzXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHNlbmQoYXJncywgb3B0cyA9IHt9KSB7XHJcbiAgICAgICAgdmFyIF9hLCBfYjtcclxuICAgICAgICBpZiAoIXRoaXMuX2NhblB1c2goKSAmJiBhcmdzLnR5cGUgPT09ICdicm9hZGNhc3QnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgZXZlbnQsIHBheWxvYWQ6IGVuZHBvaW50X3BheWxvYWQgfSA9IGFyZ3M7XHJcbiAgICAgICAgICAgIGNvbnN0IGF1dGhvcml6YXRpb24gPSB0aGlzLnNvY2tldC5hY2Nlc3NUb2tlblZhbHVlXHJcbiAgICAgICAgICAgICAgICA/IGBCZWFyZXIgJHt0aGlzLnNvY2tldC5hY2Nlc3NUb2tlblZhbHVlfWBcclxuICAgICAgICAgICAgICAgIDogJyc7XHJcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uOiBhdXRob3JpemF0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGFwaWtleTogdGhpcy5zb2NrZXQuYXBpS2V5ID8gdGhpcy5zb2NrZXQuYXBpS2V5IDogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXM6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9waWM6IHRoaXMuc3ViVG9waWMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IGVuZHBvaW50X3BheWxvYWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlOiB0aGlzLnByaXZhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLl9mZXRjaFdpdGhUaW1lb3V0KHRoaXMuYnJvYWRjYXN0RW5kcG9pbnRVUkwsIG9wdGlvbnMsIChfYSA9IG9wdHMudGltZW91dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdGhpcy50aW1lb3V0KTtcclxuICAgICAgICAgICAgICAgIGF3YWl0ICgoX2IgPSByZXNwb25zZS5ib2R5KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FuY2VsKCkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLm9rID8gJ29rJyA6ICdlcnJvcic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0aW1lZCBvdXQnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdlcnJvcic7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2M7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwdXNoID0gdGhpcy5fcHVzaChhcmdzLnR5cGUsIGFyZ3MsIG9wdHMudGltZW91dCB8fCB0aGlzLnRpbWVvdXQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGFyZ3MudHlwZSA9PT0gJ2Jyb2FkY2FzdCcgJiYgISgoX2MgPSAoX2IgPSAoX2EgPSB0aGlzLnBhcmFtcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNvbmZpZykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmJyb2FkY2FzdCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmFjaykpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCdvaycpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcHVzaC5yZWNlaXZlKCdvaycsICgpID0+IHJlc29sdmUoJ29rJykpO1xyXG4gICAgICAgICAgICAgICAgcHVzaC5yZWNlaXZlKCdlcnJvcicsICgpID0+IHJlc29sdmUoJ2Vycm9yJykpO1xyXG4gICAgICAgICAgICAgICAgcHVzaC5yZWNlaXZlKCd0aW1lb3V0JywgKCkgPT4gcmVzb2x2ZSgndGltZWQgb3V0JykpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB1cGRhdGVKb2luUGF5bG9hZChwYXlsb2FkKSB7XHJcbiAgICAgICAgdGhpcy5qb2luUHVzaC51cGRhdGVQYXlsb2FkKHBheWxvYWQpO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBMZWF2ZXMgdGhlIGNoYW5uZWwuXHJcbiAgICAgKlxyXG4gICAgICogVW5zdWJzY3JpYmVzIGZyb20gc2VydmVyIGV2ZW50cywgYW5kIGluc3RydWN0cyBjaGFubmVsIHRvIHRlcm1pbmF0ZSBvbiBzZXJ2ZXIuXHJcbiAgICAgKiBUcmlnZ2VycyBvbkNsb3NlKCkgaG9va3MuXHJcbiAgICAgKlxyXG4gICAgICogVG8gcmVjZWl2ZSBsZWF2ZSBhY2tub3dsZWRnZW1lbnRzLCB1c2UgdGhlIGEgYHJlY2VpdmVgIGhvb2sgdG8gYmluZCB0byB0aGUgc2VydmVyIGFjaywgaWU6XHJcbiAgICAgKiBjaGFubmVsLnVuc3Vic2NyaWJlKCkucmVjZWl2ZShcIm9rXCIsICgpID0+IGFsZXJ0KFwibGVmdCFcIikgKVxyXG4gICAgICovXHJcbiAgICB1bnN1YnNjcmliZSh0aW1lb3V0ID0gdGhpcy50aW1lb3V0KSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmxlYXZpbmc7XHJcbiAgICAgICAgY29uc3Qgb25DbG9zZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zb2NrZXQubG9nKCdjaGFubmVsJywgYGxlYXZlICR7dGhpcy50b3BpY31gKTtcclxuICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcihDSEFOTkVMX0VWRU5UUy5jbG9zZSwgJ2xlYXZlJywgdGhpcy5fam9pblJlZigpKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuam9pblB1c2guZGVzdHJveSgpO1xyXG4gICAgICAgIGxldCBsZWF2ZVB1c2ggPSBudWxsO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICBsZWF2ZVB1c2ggPSBuZXcgUHVzaCh0aGlzLCBDSEFOTkVMX0VWRU5UUy5sZWF2ZSwge30sIHRpbWVvdXQpO1xyXG4gICAgICAgICAgICBsZWF2ZVB1c2hcclxuICAgICAgICAgICAgICAgIC5yZWNlaXZlKCdvaycsICgpID0+IHtcclxuICAgICAgICAgICAgICAgIG9uQ2xvc2UoKTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoJ29rJyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAucmVjZWl2ZSgndGltZW91dCcsICgpID0+IHtcclxuICAgICAgICAgICAgICAgIG9uQ2xvc2UoKTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoJ3RpbWVkIG91dCcpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnJlY2VpdmUoJ2Vycm9yJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgnZXJyb3InKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGxlYXZlUHVzaC5zZW5kKCk7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5fY2FuUHVzaCgpKSB7XHJcbiAgICAgICAgICAgICAgICBsZWF2ZVB1c2gudHJpZ2dlcignb2snLCB7fSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KS5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICAgICAgbGVhdmVQdXNoID09PSBudWxsIHx8IGxlYXZlUHVzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbGVhdmVQdXNoLmRlc3Ryb3koKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVGVhcmRvd24gdGhlIGNoYW5uZWwuXHJcbiAgICAgKlxyXG4gICAgICogRGVzdHJveXMgYW5kIHN0b3BzIHJlbGF0ZWQgdGltZXJzLlxyXG4gICAgICovXHJcbiAgICB0ZWFyZG93bigpIHtcclxuICAgICAgICB0aGlzLnB1c2hCdWZmZXIuZm9yRWFjaCgocHVzaCkgPT4gcHVzaC5kZXN0cm95KCkpO1xyXG4gICAgICAgIHRoaXMucmVqb2luVGltZXIgJiYgY2xlYXJUaW1lb3V0KHRoaXMucmVqb2luVGltZXIudGltZXIpO1xyXG4gICAgICAgIHRoaXMuam9pblB1c2guZGVzdHJveSgpO1xyXG4gICAgfVxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgYXN5bmMgX2ZldGNoV2l0aFRpbWVvdXQodXJsLCBvcHRpb25zLCB0aW1lb3V0KSB7XHJcbiAgICAgICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcclxuICAgICAgICBjb25zdCBpZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCB0aW1lb3V0KTtcclxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuc29ja2V0LmZldGNoKHVybCwgT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zKSwgeyBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsIH0pKTtcclxuICAgICAgICBjbGVhclRpbWVvdXQoaWQpO1xyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgIH1cclxuICAgIC8qKiBAaW50ZXJuYWwgKi9cclxuICAgIF9wdXNoKGV2ZW50LCBwYXlsb2FkLCB0aW1lb3V0ID0gdGhpcy50aW1lb3V0KSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmpvaW5lZE9uY2UpIHtcclxuICAgICAgICAgICAgdGhyb3cgYHRyaWVkIHRvIHB1c2ggJyR7ZXZlbnR9JyB0byAnJHt0aGlzLnRvcGljfScgYmVmb3JlIGpvaW5pbmcuIFVzZSBjaGFubmVsLnN1YnNjcmliZSgpIGJlZm9yZSBwdXNoaW5nIGV2ZW50c2A7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBwdXNoRXZlbnQgPSBuZXcgUHVzaCh0aGlzLCBldmVudCwgcGF5bG9hZCwgdGltZW91dCk7XHJcbiAgICAgICAgaWYgKHRoaXMuX2NhblB1c2goKSkge1xyXG4gICAgICAgICAgICBwdXNoRXZlbnQuc2VuZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcHVzaEV2ZW50LnN0YXJ0VGltZW91dCgpO1xyXG4gICAgICAgICAgICB0aGlzLnB1c2hCdWZmZXIucHVzaChwdXNoRXZlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcHVzaEV2ZW50O1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBPdmVycmlkYWJsZSBtZXNzYWdlIGhvb2tcclxuICAgICAqXHJcbiAgICAgKiBSZWNlaXZlcyBhbGwgZXZlbnRzIGZvciBzcGVjaWFsaXplZCBtZXNzYWdlIGhhbmRsaW5nIGJlZm9yZSBkaXNwYXRjaGluZyB0byB0aGUgY2hhbm5lbCBjYWxsYmFja3MuXHJcbiAgICAgKiBNdXN0IHJldHVybiB0aGUgcGF5bG9hZCwgbW9kaWZpZWQgb3IgdW5tb2RpZmllZC5cclxuICAgICAqXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgX29uTWVzc2FnZShfZXZlbnQsIHBheWxvYWQsIF9yZWYpIHtcclxuICAgICAgICByZXR1cm4gcGF5bG9hZDtcclxuICAgIH1cclxuICAgIC8qKiBAaW50ZXJuYWwgKi9cclxuICAgIF9pc01lbWJlcih0b3BpYykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRvcGljID09PSB0b3BpYztcclxuICAgIH1cclxuICAgIC8qKiBAaW50ZXJuYWwgKi9cclxuICAgIF9qb2luUmVmKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmpvaW5QdXNoLnJlZjtcclxuICAgIH1cclxuICAgIC8qKiBAaW50ZXJuYWwgKi9cclxuICAgIF90cmlnZ2VyKHR5cGUsIHBheWxvYWQsIHJlZikge1xyXG4gICAgICAgIHZhciBfYSwgX2I7XHJcbiAgICAgICAgY29uc3QgdHlwZUxvd2VyID0gdHlwZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xyXG4gICAgICAgIGNvbnN0IHsgY2xvc2UsIGVycm9yLCBsZWF2ZSwgam9pbiB9ID0gQ0hBTk5FTF9FVkVOVFM7XHJcbiAgICAgICAgY29uc3QgZXZlbnRzID0gW2Nsb3NlLCBlcnJvciwgbGVhdmUsIGpvaW5dO1xyXG4gICAgICAgIGlmIChyZWYgJiYgZXZlbnRzLmluZGV4T2YodHlwZUxvd2VyKSA+PSAwICYmIHJlZiAhPT0gdGhpcy5fam9pblJlZigpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGhhbmRsZWRQYXlsb2FkID0gdGhpcy5fb25NZXNzYWdlKHR5cGVMb3dlciwgcGF5bG9hZCwgcmVmKTtcclxuICAgICAgICBpZiAocGF5bG9hZCAmJiAhaGFuZGxlZFBheWxvYWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgJ2NoYW5uZWwgb25NZXNzYWdlIGNhbGxiYWNrcyBtdXN0IHJldHVybiB0aGUgcGF5bG9hZCwgbW9kaWZpZWQgb3IgdW5tb2RpZmllZCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChbJ2luc2VydCcsICd1cGRhdGUnLCAnZGVsZXRlJ10uaW5jbHVkZXModHlwZUxvd2VyKSkge1xyXG4gICAgICAgICAgICAoX2EgPSB0aGlzLmJpbmRpbmdzLnBvc3RncmVzX2NoYW5nZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5maWx0ZXIoKGJpbmQpID0+IHtcclxuICAgICAgICAgICAgICAgIHZhciBfYSwgX2IsIF9jO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICgoKF9hID0gYmluZC5maWx0ZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ldmVudCkgPT09ICcqJyB8fFxyXG4gICAgICAgICAgICAgICAgICAgICgoX2MgPSAoX2IgPSBiaW5kLmZpbHRlcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmV2ZW50KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MudG9Mb2NhbGVMb3dlckNhc2UoKSkgPT09IHR5cGVMb3dlcik7XHJcbiAgICAgICAgICAgIH0pLm1hcCgoYmluZCkgPT4gYmluZC5jYWxsYmFjayhoYW5kbGVkUGF5bG9hZCwgcmVmKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAoX2IgPSB0aGlzLmJpbmRpbmdzW3R5cGVMb3dlcl0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5maWx0ZXIoKGJpbmQpID0+IHtcclxuICAgICAgICAgICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mO1xyXG4gICAgICAgICAgICAgICAgaWYgKFsnYnJvYWRjYXN0JywgJ3ByZXNlbmNlJywgJ3Bvc3RncmVzX2NoYW5nZXMnXS5pbmNsdWRlcyh0eXBlTG93ZXIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCdpZCcgaW4gYmluZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiaW5kSWQgPSBiaW5kLmlkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiaW5kRXZlbnQgPSAoX2EgPSBiaW5kLmZpbHRlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmV2ZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGJpbmRJZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKChfYiA9IHBheWxvYWQuaWRzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuaW5jbHVkZXMoYmluZElkKSkgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiaW5kRXZlbnQgPT09ICcqJyB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiaW5kRXZlbnQgPT09IG51bGwgfHwgYmluZEV2ZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBiaW5kRXZlbnQudG9Mb2NhbGVMb3dlckNhc2UoKSkgPT09XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoX2MgPSBwYXlsb2FkLmRhdGEpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy50eXBlLnRvTG9jYWxlTG93ZXJDYXNlKCkpKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiaW5kRXZlbnQgPSAoX2UgPSAoX2QgPSBiaW5kID09PSBudWxsIHx8IGJpbmQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJpbmQuZmlsdGVyKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuZXZlbnQpID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGJpbmRFdmVudCA9PT0gJyonIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5kRXZlbnQgPT09ICgoX2YgPSBwYXlsb2FkID09PSBudWxsIHx8IHBheWxvYWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBheWxvYWQuZXZlbnQpID09PSBudWxsIHx8IF9mID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZi50b0xvY2FsZUxvd2VyQ2FzZSgpKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJpbmQudHlwZS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSB0eXBlTG93ZXI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLm1hcCgoYmluZCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBoYW5kbGVkUGF5bG9hZCA9PT0gJ29iamVjdCcgJiYgJ2lkcycgaW4gaGFuZGxlZFBheWxvYWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3N0Z3Jlc0NoYW5nZXMgPSBoYW5kbGVkUGF5bG9hZC5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgc2NoZW1hLCB0YWJsZSwgY29tbWl0X3RpbWVzdGFtcCwgdHlwZSwgZXJyb3JzIH0gPSBwb3N0Z3Jlc0NoYW5nZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5yaWNoZWRQYXlsb2FkID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE6IHNjaGVtYSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFibGU6IHRhYmxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21taXRfdGltZXN0YW1wOiBjb21taXRfdGltZXN0YW1wLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudFR5cGU6IHR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldzoge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9sZDoge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogZXJyb3JzLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlZFBheWxvYWQgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGVucmljaGVkUGF5bG9hZCksIHRoaXMuX2dldFBheWxvYWRSZWNvcmRzKHBvc3RncmVzQ2hhbmdlcykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYmluZC5jYWxsYmFjayhoYW5kbGVkUGF5bG9hZCwgcmVmKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgX2lzQ2xvc2VkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlID09PSBDSEFOTkVMX1NUQVRFUy5jbG9zZWQ7XHJcbiAgICB9XHJcbiAgICAvKiogQGludGVybmFsICovXHJcbiAgICBfaXNKb2luZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUgPT09IENIQU5ORUxfU1RBVEVTLmpvaW5lZDtcclxuICAgIH1cclxuICAgIC8qKiBAaW50ZXJuYWwgKi9cclxuICAgIF9pc0pvaW5pbmcoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUgPT09IENIQU5ORUxfU1RBVEVTLmpvaW5pbmc7XHJcbiAgICB9XHJcbiAgICAvKiogQGludGVybmFsICovXHJcbiAgICBfaXNMZWF2aW5nKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlID09PSBDSEFOTkVMX1NUQVRFUy5sZWF2aW5nO1xyXG4gICAgfVxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgX3JlcGx5RXZlbnROYW1lKHJlZikge1xyXG4gICAgICAgIHJldHVybiBgY2hhbl9yZXBseV8ke3JlZn1gO1xyXG4gICAgfVxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgX29uKHR5cGUsIGZpbHRlciwgY2FsbGJhY2spIHtcclxuICAgICAgICBjb25zdCB0eXBlTG93ZXIgPSB0eXBlLnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgY29uc3QgYmluZGluZyA9IHtcclxuICAgICAgICAgICAgdHlwZTogdHlwZUxvd2VyLFxyXG4gICAgICAgICAgICBmaWx0ZXI6IGZpbHRlcixcclxuICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKHRoaXMuYmluZGluZ3NbdHlwZUxvd2VyXSkge1xyXG4gICAgICAgICAgICB0aGlzLmJpbmRpbmdzW3R5cGVMb3dlcl0ucHVzaChiaW5kaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmluZGluZ3NbdHlwZUxvd2VyXSA9IFtiaW5kaW5nXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICAvKiogQGludGVybmFsICovXHJcbiAgICBfb2ZmKHR5cGUsIGZpbHRlcikge1xyXG4gICAgICAgIGNvbnN0IHR5cGVMb3dlciA9IHR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKTtcclxuICAgICAgICB0aGlzLmJpbmRpbmdzW3R5cGVMb3dlcl0gPSB0aGlzLmJpbmRpbmdzW3R5cGVMb3dlcl0uZmlsdGVyKChiaW5kKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBfYTtcclxuICAgICAgICAgICAgcmV0dXJuICEoKChfYSA9IGJpbmQudHlwZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvTG9jYWxlTG93ZXJDYXNlKCkpID09PSB0eXBlTG93ZXIgJiZcclxuICAgICAgICAgICAgICAgIFJlYWx0aW1lQ2hhbm5lbC5pc0VxdWFsKGJpbmQuZmlsdGVyLCBmaWx0ZXIpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIC8qKiBAaW50ZXJuYWwgKi9cclxuICAgIHN0YXRpYyBpc0VxdWFsKG9iajEsIG9iajIpIHtcclxuICAgICAgICBpZiAoT2JqZWN0LmtleXMob2JqMSkubGVuZ3RoICE9PSBPYmplY3Qua2V5cyhvYmoyKS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGNvbnN0IGsgaW4gb2JqMSkge1xyXG4gICAgICAgICAgICBpZiAob2JqMVtrXSAhPT0gb2JqMltrXSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgX3Jlam9pblVudGlsQ29ubmVjdGVkKCkge1xyXG4gICAgICAgIHRoaXMucmVqb2luVGltZXIuc2NoZWR1bGVUaW1lb3V0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuc29ja2V0LmlzQ29ubmVjdGVkKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5fcmVqb2luKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgd2hlbiB0aGUgY2hhbm5lbCBjbG9zZXMuXHJcbiAgICAgKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIF9vbkNsb3NlKGNhbGxiYWNrKSB7XHJcbiAgICAgICAgdGhpcy5fb24oQ0hBTk5FTF9FVkVOVFMuY2xvc2UsIHt9LCBjYWxsYmFjayk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBleGVjdXRlZCB3aGVuIHRoZSBjaGFubmVsIGVuY291bnRlcmVzIGFuIGVycm9yLlxyXG4gICAgICpcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBfb25FcnJvcihjYWxsYmFjaykge1xyXG4gICAgICAgIHRoaXMuX29uKENIQU5ORUxfRVZFTlRTLmVycm9yLCB7fSwgKHJlYXNvbikgPT4gY2FsbGJhY2socmVhc29uKSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYHRydWVgIGlmIHRoZSBzb2NrZXQgaXMgY29ubmVjdGVkIGFuZCB0aGUgY2hhbm5lbCBoYXMgYmVlbiBqb2luZWQuXHJcbiAgICAgKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIF9jYW5QdXNoKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNvY2tldC5pc0Nvbm5lY3RlZCgpICYmIHRoaXMuX2lzSm9pbmVkKCk7XHJcbiAgICB9XHJcbiAgICAvKiogQGludGVybmFsICovXHJcbiAgICBfcmVqb2luKHRpbWVvdXQgPSB0aGlzLnRpbWVvdXQpIHtcclxuICAgICAgICBpZiAodGhpcy5faXNMZWF2aW5nKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNvY2tldC5fbGVhdmVPcGVuVG9waWModGhpcy50b3BpYyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmpvaW5pbmc7XHJcbiAgICAgICAgdGhpcy5qb2luUHVzaC5yZXNlbmQodGltZW91dCk7XHJcbiAgICB9XHJcbiAgICAvKiogQGludGVybmFsICovXHJcbiAgICBfZ2V0UGF5bG9hZFJlY29yZHMocGF5bG9hZCkge1xyXG4gICAgICAgIGNvbnN0IHJlY29yZHMgPSB7XHJcbiAgICAgICAgICAgIG5ldzoge30sXHJcbiAgICAgICAgICAgIG9sZDoge30sXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAocGF5bG9hZC50eXBlID09PSAnSU5TRVJUJyB8fCBwYXlsb2FkLnR5cGUgPT09ICdVUERBVEUnKSB7XHJcbiAgICAgICAgICAgIHJlY29yZHMubmV3ID0gVHJhbnNmb3JtZXJzLmNvbnZlcnRDaGFuZ2VEYXRhKHBheWxvYWQuY29sdW1ucywgcGF5bG9hZC5yZWNvcmQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocGF5bG9hZC50eXBlID09PSAnVVBEQVRFJyB8fCBwYXlsb2FkLnR5cGUgPT09ICdERUxFVEUnKSB7XHJcbiAgICAgICAgICAgIHJlY29yZHMub2xkID0gVHJhbnNmb3JtZXJzLmNvbnZlcnRDaGFuZ2VEYXRhKHBheWxvYWQuY29sdW1ucywgcGF5bG9hZC5vbGRfcmVjb3JkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlY29yZHM7XHJcbiAgICB9XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UmVhbHRpbWVDaGFubmVsLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js ***!
|
||
\**************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ RealtimeClient; }\n/* harmony export */ });\n/* harmony import */ var isows__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! isows */ \"(app-pages-browser)/./node_modules/isows/_esm/native.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/constants */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_serializer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/serializer */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/serializer.js\");\n/* harmony import */ var _lib_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/timer */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/timer.js\");\n/* harmony import */ var _lib_transformers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/transformers */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/transformers.js\");\n/* harmony import */ var _RealtimeChannel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./RealtimeChannel */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js\");\n\r\n\r\n\r\n\r\n\r\n\r\nconst noop = () => { };\r\nconst WORKER_SCRIPT = `\r\n addEventListener(\"message\", (e) => {\r\n if (e.data.event === \"start\") {\r\n setInterval(() => postMessage({ event: \"keepAlive\" }), e.data.interval);\r\n }\r\n });`;\r\nclass RealtimeClient {\r\n /**\r\n * Initializes the Socket.\r\n *\r\n * @param endPoint The string WebSocket endpoint, ie, \"ws://example.com/socket\", \"wss://example.com\", \"/socket\" (inherited host & protocol)\r\n * @param httpEndpoint The string HTTP endpoint, ie, \"https://example.com\", \"/\" (inherited host & protocol)\r\n * @param options.transport The Websocket Transport, for example WebSocket. This can be a custom implementation\r\n * @param options.timeout The default timeout in milliseconds to trigger push timeouts.\r\n * @param options.params The optional params to pass when connecting.\r\n * @param options.headers Deprecated: headers cannot be set on websocket connections and this option will be removed in the future.\r\n * @param options.heartbeatIntervalMs The millisec interval to send a heartbeat message.\r\n * @param options.logger The optional function for specialized logging, ie: logger: (kind, msg, data) => { console.log(`${kind}: ${msg}`, data) }\r\n * @param options.logLevel Sets the log level for Realtime\r\n * @param options.encode The function to encode outgoing messages. Defaults to JSON: (payload, callback) => callback(JSON.stringify(payload))\r\n * @param options.decode The function to decode incoming messages. Defaults to Serializer's decode.\r\n * @param options.reconnectAfterMs he optional function that returns the millsec reconnect interval. Defaults to stepped backoff off.\r\n * @param options.worker Use Web Worker to set a side flow. Defaults to false.\r\n * @param options.workerUrl The URL of the worker script. Defaults to https://realtime.supabase.com/worker.js that includes a heartbeat event call to keep the connection alive.\r\n */\r\n constructor(endPoint, options) {\r\n var _a;\r\n this.accessTokenValue = null;\r\n this.apiKey = null;\r\n this.channels = new Array();\r\n this.endPoint = '';\r\n this.httpEndpoint = '';\r\n /** @deprecated headers cannot be set on websocket connections */\r\n this.headers = {};\r\n this.params = {};\r\n this.timeout = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_TIMEOUT;\r\n this.heartbeatIntervalMs = 25000;\r\n this.heartbeatTimer = undefined;\r\n this.pendingHeartbeatRef = null;\r\n this.heartbeatCallback = noop;\r\n this.ref = 0;\r\n this.logger = noop;\r\n this.conn = null;\r\n this.sendBuffer = [];\r\n this.serializer = new _lib_serializer__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\r\n this.stateChangeCallbacks = {\r\n open: [],\r\n close: [],\r\n error: [],\r\n message: [],\r\n };\r\n this.accessToken = null;\r\n /**\r\n * Use either custom fetch, if provided, or default fetch to make HTTP requests\r\n *\r\n * @internal\r\n */\r\n this._resolveFetch = (customFetch) => {\r\n let _fetch;\r\n if (customFetch) {\r\n _fetch = customFetch;\r\n }\r\n else if (typeof fetch === 'undefined') {\r\n _fetch = (...args) => Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(app-pages-browser)/./node_modules/@supabase/node-fetch/browser.js\")).then(({ default: fetch }) => fetch(...args));\r\n }\r\n else {\r\n _fetch = fetch;\r\n }\r\n return (...args) => _fetch(...args);\r\n };\r\n this.endPoint = `${endPoint}/${_lib_constants__WEBPACK_IMPORTED_MODULE_0__.TRANSPORTS.websocket}`;\r\n this.httpEndpoint = (0,_lib_transformers__WEBPACK_IMPORTED_MODULE_3__.httpEndpointURL)(endPoint);\r\n if (options === null || options === void 0 ? void 0 : options.transport) {\r\n this.transport = options.transport;\r\n }\r\n else {\r\n this.transport = null;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.params)\r\n this.params = options.params;\r\n if (options === null || options === void 0 ? void 0 : options.timeout)\r\n this.timeout = options.timeout;\r\n if (options === null || options === void 0 ? void 0 : options.logger)\r\n this.logger = options.logger;\r\n if ((options === null || options === void 0 ? void 0 : options.logLevel) || (options === null || options === void 0 ? void 0 : options.log_level)) {\r\n this.logLevel = options.logLevel || options.log_level;\r\n this.params = Object.assign(Object.assign({}, this.params), { log_level: this.logLevel });\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.heartbeatIntervalMs)\r\n this.heartbeatIntervalMs = options.heartbeatIntervalMs;\r\n const accessTokenValue = (_a = options === null || options === void 0 ? void 0 : options.params) === null || _a === void 0 ? void 0 : _a.apikey;\r\n if (accessTokenValue) {\r\n this.accessTokenValue = accessTokenValue;\r\n this.apiKey = accessTokenValue;\r\n }\r\n this.reconnectAfterMs = (options === null || options === void 0 ? void 0 : options.reconnectAfterMs)\r\n ? options.reconnectAfterMs\r\n : (tries) => {\r\n return [1000, 2000, 5000, 10000][tries - 1] || 10000;\r\n };\r\n this.encode = (options === null || options === void 0 ? void 0 : options.encode)\r\n ? options.encode\r\n : (payload, callback) => {\r\n return callback(JSON.stringify(payload));\r\n };\r\n this.decode = (options === null || options === void 0 ? void 0 : options.decode)\r\n ? options.decode\r\n : this.serializer.decode.bind(this.serializer);\r\n this.reconnectTimer = new _lib_timer__WEBPACK_IMPORTED_MODULE_2__[\"default\"](async () => {\r\n this.disconnect();\r\n this.connect();\r\n }, this.reconnectAfterMs);\r\n this.fetch = this._resolveFetch(options === null || options === void 0 ? void 0 : options.fetch);\r\n if (options === null || options === void 0 ? void 0 : options.worker) {\r\n if (typeof window !== 'undefined' && !window.Worker) {\r\n throw new Error('Web Worker is not supported');\r\n }\r\n this.worker = (options === null || options === void 0 ? void 0 : options.worker) || false;\r\n this.workerUrl = options === null || options === void 0 ? void 0 : options.workerUrl;\r\n }\r\n this.accessToken = (options === null || options === void 0 ? void 0 : options.accessToken) || null;\r\n }\r\n /**\r\n * Connects the socket, unless already connected.\r\n */\r\n connect() {\r\n if (this.conn) {\r\n return;\r\n }\r\n if (!this.transport) {\r\n this.transport = isows__WEBPACK_IMPORTED_MODULE_5__.WebSocket;\r\n }\r\n if (!this.transport) {\r\n throw new Error('No transport provided');\r\n }\r\n this.conn = new this.transport(this.endpointURL());\r\n this.setupConnection();\r\n }\r\n /**\r\n * Returns the URL of the websocket.\r\n * @returns string The URL of the websocket.\r\n */\r\n endpointURL() {\r\n return this._appendParams(this.endPoint, Object.assign({}, this.params, { vsn: _lib_constants__WEBPACK_IMPORTED_MODULE_0__.VSN }));\r\n }\r\n /**\r\n * Disconnects the socket.\r\n *\r\n * @param code A numeric status code to send on disconnect.\r\n * @param reason A custom reason for the disconnect.\r\n */\r\n disconnect(code, reason) {\r\n if (this.conn) {\r\n this.conn.onclose = function () { }; // noop\r\n if (code) {\r\n this.conn.close(code, reason !== null && reason !== void 0 ? reason : '');\r\n }\r\n else {\r\n this.conn.close();\r\n }\r\n this.conn = null;\r\n // remove open handles\r\n this.heartbeatTimer && clearInterval(this.heartbeatTimer);\r\n this.reconnectTimer.reset();\r\n this.channels.forEach((channel) => channel.teardown());\r\n }\r\n }\r\n /**\r\n * Returns all created channels\r\n */\r\n getChannels() {\r\n return this.channels;\r\n }\r\n /**\r\n * Unsubscribes and removes a single channel\r\n * @param channel A RealtimeChannel instance\r\n */\r\n async removeChannel(channel) {\r\n const status = await channel.unsubscribe();\r\n if (this.channels.length === 0) {\r\n this.disconnect();\r\n }\r\n return status;\r\n }\r\n /**\r\n * Unsubscribes and removes all channels\r\n */\r\n async removeAllChannels() {\r\n const values_1 = await Promise.all(this.channels.map((channel) => channel.unsubscribe()));\r\n this.channels = [];\r\n this.disconnect();\r\n return values_1;\r\n }\r\n /**\r\n * Logs the message.\r\n *\r\n * For customized logging, `this.logger` can be overridden.\r\n */\r\n log(kind, msg, data) {\r\n this.logger(kind, msg, data);\r\n }\r\n /**\r\n * Returns the current state of the socket.\r\n */\r\n connectionState() {\r\n switch (this.conn && this.conn.readyState) {\r\n case _lib_constants__WEBPACK_IMPORTED_MODULE_0__.SOCKET_STATES.connecting:\r\n return _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Connecting;\r\n case _lib_constants__WEBPACK_IMPORTED_MODULE_0__.SOCKET_STATES.open:\r\n return _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Open;\r\n case _lib_constants__WEBPACK_IMPORTED_MODULE_0__.SOCKET_STATES.closing:\r\n return _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Closing;\r\n default:\r\n return _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Closed;\r\n }\r\n }\r\n /**\r\n * Returns `true` is the connection is open.\r\n */\r\n isConnected() {\r\n return this.connectionState() === _lib_constants__WEBPACK_IMPORTED_MODULE_0__.CONNECTION_STATE.Open;\r\n }\r\n channel(topic, params = { config: {} }) {\r\n const realtimeTopic = `realtime:${topic}`;\r\n const exists = this.getChannels().find((c) => c.topic === realtimeTopic);\r\n if (!exists) {\r\n const chan = new _RealtimeChannel__WEBPACK_IMPORTED_MODULE_4__[\"default\"](`realtime:${topic}`, params, this);\r\n this.channels.push(chan);\r\n return chan;\r\n }\r\n else {\r\n return exists;\r\n }\r\n }\r\n /**\r\n * Push out a message if the socket is connected.\r\n *\r\n * If the socket is not connected, the message gets enqueued within a local buffer, and sent out when a connection is next established.\r\n */\r\n push(data) {\r\n const { topic, event, payload, ref } = data;\r\n const callback = () => {\r\n this.encode(data, (result) => {\r\n var _a;\r\n (_a = this.conn) === null || _a === void 0 ? void 0 : _a.send(result);\r\n });\r\n };\r\n this.log('push', `${topic} ${event} (${ref})`, payload);\r\n if (this.isConnected()) {\r\n callback();\r\n }\r\n else {\r\n this.sendBuffer.push(callback);\r\n }\r\n }\r\n /**\r\n * Sets the JWT access token used for channel subscription authorization and Realtime RLS.\r\n *\r\n * If param is null it will use the `accessToken` callback function or the token set on the client.\r\n *\r\n * On callback used, it will set the value of the token internal to the client.\r\n *\r\n * @param token A JWT string to override the token set on the client.\r\n */\r\n async setAuth(token = null) {\r\n let tokenToSend = token ||\r\n (this.accessToken && (await this.accessToken())) ||\r\n this.accessTokenValue;\r\n if (this.accessTokenValue != tokenToSend) {\r\n this.accessTokenValue = tokenToSend;\r\n this.channels.forEach((channel) => {\r\n const payload = {\r\n access_token: tokenToSend,\r\n version: _lib_constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_VERSION,\r\n };\r\n tokenToSend && channel.updateJoinPayload(payload);\r\n if (channel.joinedOnce && channel._isJoined()) {\r\n channel._push(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.access_token, {\r\n access_token: tokenToSend,\r\n });\r\n }\r\n });\r\n }\r\n }\r\n /**\r\n * Sends a heartbeat message if the socket is connected.\r\n */\r\n async sendHeartbeat() {\r\n var _a;\r\n if (!this.isConnected()) {\r\n this.heartbeatCallback('disconnected');\r\n return;\r\n }\r\n if (this.pendingHeartbeatRef) {\r\n this.pendingHeartbeatRef = null;\r\n this.log('transport', 'heartbeat timeout. Attempting to re-establish connection');\r\n this.heartbeatCallback('timeout');\r\n (_a = this.conn) === null || _a === void 0 ? void 0 : _a.close(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.WS_CLOSE_NORMAL, 'hearbeat timeout');\r\n return;\r\n }\r\n this.pendingHeartbeatRef = this._makeRef();\r\n this.push({\r\n topic: 'phoenix',\r\n event: 'heartbeat',\r\n payload: {},\r\n ref: this.pendingHeartbeatRef,\r\n });\r\n this.heartbeatCallback('sent');\r\n await this.setAuth();\r\n }\r\n onHeartbeat(callback) {\r\n this.heartbeatCallback = callback;\r\n }\r\n /**\r\n * Flushes send buffer\r\n */\r\n flushSendBuffer() {\r\n if (this.isConnected() && this.sendBuffer.length > 0) {\r\n this.sendBuffer.forEach((callback) => callback());\r\n this.sendBuffer = [];\r\n }\r\n }\r\n /**\r\n * Return the next message ref, accounting for overflows\r\n *\r\n * @internal\r\n */\r\n _makeRef() {\r\n let newRef = this.ref + 1;\r\n if (newRef === this.ref) {\r\n this.ref = 0;\r\n }\r\n else {\r\n this.ref = newRef;\r\n }\r\n return this.ref.toString();\r\n }\r\n /**\r\n * Unsubscribe from channels with the specified topic.\r\n *\r\n * @internal\r\n */\r\n _leaveOpenTopic(topic) {\r\n let dupChannel = this.channels.find((c) => c.topic === topic && (c._isJoined() || c._isJoining()));\r\n if (dupChannel) {\r\n this.log('transport', `leaving duplicate topic \"${topic}\"`);\r\n dupChannel.unsubscribe();\r\n }\r\n }\r\n /**\r\n * Removes a subscription from the socket.\r\n *\r\n * @param channel An open subscription.\r\n *\r\n * @internal\r\n */\r\n _remove(channel) {\r\n this.channels = this.channels.filter((c) => c.topic !== channel.topic);\r\n }\r\n /**\r\n * Sets up connection handlers.\r\n *\r\n * @internal\r\n */\r\n setupConnection() {\r\n if (this.conn) {\r\n this.conn.binaryType = 'arraybuffer';\r\n this.conn.onopen = () => this._onConnOpen();\r\n this.conn.onerror = (error) => this._onConnError(error);\r\n this.conn.onmessage = (event) => this._onConnMessage(event);\r\n this.conn.onclose = (event) => this._onConnClose(event);\r\n }\r\n }\r\n /** @internal */\r\n _onConnMessage(rawMessage) {\r\n this.decode(rawMessage.data, (msg) => {\r\n let { topic, event, payload, ref } = msg;\r\n if (topic === 'phoenix' && event === 'phx_reply') {\r\n this.heartbeatCallback(msg.payload.status == 'ok' ? 'ok' : 'error');\r\n }\r\n if (ref && ref === this.pendingHeartbeatRef) {\r\n this.pendingHeartbeatRef = null;\r\n }\r\n this.log('receive', `${payload.status || ''} ${topic} ${event} ${(ref && '(' + ref + ')') || ''}`, payload);\r\n Array.from(this.channels)\r\n .filter((channel) => channel._isMember(topic))\r\n .forEach((channel) => channel._trigger(event, payload, ref));\r\n this.stateChangeCallbacks.message.forEach((callback) => callback(msg));\r\n });\r\n }\r\n /** @internal */\r\n _onConnOpen() {\r\n this.log('transport', `connected to ${this.endpointURL()}`);\r\n this.flushSendBuffer();\r\n this.reconnectTimer.reset();\r\n if (!this.worker) {\r\n this._startHeartbeat();\r\n }\r\n else {\r\n if (!this.workerRef) {\r\n this._startWorkerHeartbeat();\r\n }\r\n }\r\n this.stateChangeCallbacks.open.forEach((callback) => callback());\r\n }\r\n /** @internal */\r\n _startHeartbeat() {\r\n this.heartbeatTimer && clearInterval(this.heartbeatTimer);\r\n this.heartbeatTimer = setInterval(() => this.sendHeartbeat(), this.heartbeatIntervalMs);\r\n }\r\n /** @internal */\r\n _startWorkerHeartbeat() {\r\n if (this.workerUrl) {\r\n this.log('worker', `starting worker for from ${this.workerUrl}`);\r\n }\r\n else {\r\n this.log('worker', `starting default worker`);\r\n }\r\n const objectUrl = this._workerObjectUrl(this.workerUrl);\r\n this.workerRef = new Worker(objectUrl);\r\n this.workerRef.onerror = (error) => {\r\n this.log('worker', 'worker error', error.message);\r\n this.workerRef.terminate();\r\n };\r\n this.workerRef.onmessage = (event) => {\r\n if (event.data.event === 'keepAlive') {\r\n this.sendHeartbeat();\r\n }\r\n };\r\n this.workerRef.postMessage({\r\n event: 'start',\r\n interval: this.heartbeatIntervalMs,\r\n });\r\n }\r\n /** @internal */\r\n _onConnClose(event) {\r\n this.log('transport', 'close', event);\r\n this._triggerChanError();\r\n this.heartbeatTimer && clearInterval(this.heartbeatTimer);\r\n this.reconnectTimer.scheduleTimeout();\r\n this.stateChangeCallbacks.close.forEach((callback) => callback(event));\r\n }\r\n /** @internal */\r\n _onConnError(error) {\r\n this.log('transport', `${error}`);\r\n this._triggerChanError();\r\n this.stateChangeCallbacks.error.forEach((callback) => callback(error));\r\n }\r\n /** @internal */\r\n _triggerChanError() {\r\n this.channels.forEach((channel) => channel._trigger(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CHANNEL_EVENTS.error));\r\n }\r\n /** @internal */\r\n _appendParams(url, params) {\r\n if (Object.keys(params).length === 0) {\r\n return url;\r\n }\r\n const prefix = url.match(/\\?/) ? '&' : '?';\r\n const query = new URLSearchParams(params);\r\n return `${url}${prefix}${query}`;\r\n }\r\n _workerObjectUrl(url) {\r\n let result_url;\r\n if (url) {\r\n result_url = url;\r\n }\r\n else {\r\n const blob = new Blob([WORKER_SCRIPT], { type: 'application/javascript' });\r\n result_url = URL.createObjectURL(blob);\r\n }\r\n return result_url;\r\n }\r\n}\r\n//# sourceMappingURL=RealtimeClient.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvUmVhbHRpbWVDbGllbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFrQztBQUNxSDtBQUM3RztBQUNWO0FBQ3FCO0FBQ0w7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0Msb0JBQW9CO0FBQzFEO0FBQ0EsR0FBRyxFQUFFO0FBQ1U7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtHQUErRyxlQUFlLEtBQUssSUFBSSxJQUFJO0FBQzNJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsMkRBQWU7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qix1REFBVTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0Msc0xBQThCLFNBQVMsZ0JBQWdCO0FBQzdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixTQUFTLEdBQUcsc0RBQVUsV0FBVztBQUM1RCw0QkFBNEIsa0VBQWU7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdEQUF3RCxrQkFBa0IsMEJBQTBCO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxrREFB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QzVHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxtQkFBbUI7QUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxlQUFlO0FBQzFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLE1BQU07QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDREQUE0RCwwREFBYztBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTTtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxnQ0FBZ0M7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvUmVhbHRpbWVDbGllbnQuanM/ZDMwOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXZWJTb2NrZXQgfSBmcm9tICdpc293cyc7XHJcbmltcG9ydCB7IENIQU5ORUxfRVZFTlRTLCBDT05ORUNUSU9OX1NUQVRFLCBERUZBVUxUX1ZFUlNJT04sIERFRkFVTFRfVElNRU9VVCwgU09DS0VUX1NUQVRFUywgVFJBTlNQT1JUUywgVlNOLCBXU19DTE9TRV9OT1JNQUwsIH0gZnJvbSAnLi9saWIvY29uc3RhbnRzJztcclxuaW1wb3J0IFNlcmlhbGl6ZXIgZnJvbSAnLi9saWIvc2VyaWFsaXplcic7XHJcbmltcG9ydCBUaW1lciBmcm9tICcuL2xpYi90aW1lcic7XHJcbmltcG9ydCB7IGh0dHBFbmRwb2ludFVSTCB9IGZyb20gJy4vbGliL3RyYW5zZm9ybWVycyc7XHJcbmltcG9ydCBSZWFsdGltZUNoYW5uZWwgZnJvbSAnLi9SZWFsdGltZUNoYW5uZWwnO1xyXG5jb25zdCBub29wID0gKCkgPT4geyB9O1xyXG5jb25zdCBXT1JLRVJfU0NSSVBUID0gYFxyXG4gIGFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIChlKSA9PiB7XHJcbiAgICBpZiAoZS5kYXRhLmV2ZW50ID09PSBcInN0YXJ0XCIpIHtcclxuICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4gcG9zdE1lc3NhZ2UoeyBldmVudDogXCJrZWVwQWxpdmVcIiB9KSwgZS5kYXRhLmludGVydmFsKTtcclxuICAgIH1cclxuICB9KTtgO1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZWFsdGltZUNsaWVudCB7XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIHRoZSBTb2NrZXQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGVuZFBvaW50IFRoZSBzdHJpbmcgV2ViU29ja2V0IGVuZHBvaW50LCBpZSwgXCJ3czovL2V4YW1wbGUuY29tL3NvY2tldFwiLCBcIndzczovL2V4YW1wbGUuY29tXCIsIFwiL3NvY2tldFwiIChpbmhlcml0ZWQgaG9zdCAmIHByb3RvY29sKVxyXG4gICAgICogQHBhcmFtIGh0dHBFbmRwb2ludCBUaGUgc3RyaW5nIEhUVFAgZW5kcG9pbnQsIGllLCBcImh0dHBzOi8vZXhhbXBsZS5jb21cIiwgXCIvXCIgKGluaGVyaXRlZCBob3N0ICYgcHJvdG9jb2wpXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy50cmFuc3BvcnQgVGhlIFdlYnNvY2tldCBUcmFuc3BvcnQsIGZvciBleGFtcGxlIFdlYlNvY2tldC4gVGhpcyBjYW4gYmUgYSBjdXN0b20gaW1wbGVtZW50YXRpb25cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLnRpbWVvdXQgVGhlIGRlZmF1bHQgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgdG8gdHJpZ2dlciBwdXNoIHRpbWVvdXRzLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMucGFyYW1zIFRoZSBvcHRpb25hbCBwYXJhbXMgdG8gcGFzcyB3aGVuIGNvbm5lY3RpbmcuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5oZWFkZXJzIERlcHJlY2F0ZWQ6IGhlYWRlcnMgY2Fubm90IGJlIHNldCBvbiB3ZWJzb2NrZXQgY29ubmVjdGlvbnMgYW5kIHRoaXMgb3B0aW9uIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuaGVhcnRiZWF0SW50ZXJ2YWxNcyBUaGUgbWlsbGlzZWMgaW50ZXJ2YWwgdG8gc2VuZCBhIGhlYXJ0YmVhdCBtZXNzYWdlLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMubG9nZ2VyIFRoZSBvcHRpb25hbCBmdW5jdGlvbiBmb3Igc3BlY2lhbGl6ZWQgbG9nZ2luZywgaWU6IGxvZ2dlcjogKGtpbmQsIG1zZywgZGF0YSkgPT4geyBjb25zb2xlLmxvZyhgJHtraW5kfTogJHttc2d9YCwgZGF0YSkgfVxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMubG9nTGV2ZWwgU2V0cyB0aGUgbG9nIGxldmVsIGZvciBSZWFsdGltZVxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZW5jb2RlIFRoZSBmdW5jdGlvbiB0byBlbmNvZGUgb3V0Z29pbmcgbWVzc2FnZXMuIERlZmF1bHRzIHRvIEpTT046IChwYXlsb2FkLCBjYWxsYmFjaykgPT4gY2FsbGJhY2soSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkpXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5kZWNvZGUgVGhlIGZ1bmN0aW9uIHRvIGRlY29kZSBpbmNvbWluZyBtZXNzYWdlcy4gRGVmYXVsdHMgdG8gU2VyaWFsaXplcidzIGRlY29kZS5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLnJlY29ubmVjdEFmdGVyTXMgaGUgb3B0aW9uYWwgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBtaWxsc2VjIHJlY29ubmVjdCBpbnRlcnZhbC4gRGVmYXVsdHMgdG8gc3RlcHBlZCBiYWNrb2ZmIG9mZi5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLndvcmtlciBVc2UgV2ViIFdvcmtlciB0byBzZXQgYSBzaWRlIGZsb3cuIERlZmF1bHRzIHRvIGZhbHNlLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMud29ya2VyVXJsIFRoZSBVUkwgb2YgdGhlIHdvcmtlciBzY3JpcHQuIERlZmF1bHRzIHRvIGh0dHBzOi8vcmVhbHRpbWUuc3VwYWJhc2UuY29tL3dvcmtlci5qcyB0aGF0IGluY2x1ZGVzIGEgaGVhcnRiZWF0IGV2ZW50IGNhbGwgdG8ga2VlcCB0aGUgY29ubmVjdGlvbiBhbGl2ZS5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoZW5kUG9pbnQsIG9wdGlvbnMpIHtcclxuICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlblZhbHVlID0gbnVsbDtcclxuICAgICAgICB0aGlzLmFwaUtleSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5jaGFubmVscyA9IG5ldyBBcnJheSgpO1xyXG4gICAgICAgIHRoaXMuZW5kUG9pbnQgPSAnJztcclxuICAgICAgICB0aGlzLmh0dHBFbmRwb2ludCA9ICcnO1xyXG4gICAgICAgIC8qKiBAZGVwcmVjYXRlZCBoZWFkZXJzIGNhbm5vdCBiZSBzZXQgb24gd2Vic29ja2V0IGNvbm5lY3Rpb25zICovXHJcbiAgICAgICAgdGhpcy5oZWFkZXJzID0ge307XHJcbiAgICAgICAgdGhpcy5wYXJhbXMgPSB7fTtcclxuICAgICAgICB0aGlzLnRpbWVvdXQgPSBERUZBVUxUX1RJTUVPVVQ7XHJcbiAgICAgICAgdGhpcy5oZWFydGJlYXRJbnRlcnZhbE1zID0gMjUwMDA7XHJcbiAgICAgICAgdGhpcy5oZWFydGJlYXRUaW1lciA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaGVhcnRiZWF0Q2FsbGJhY2sgPSBub29wO1xyXG4gICAgICAgIHRoaXMucmVmID0gMDtcclxuICAgICAgICB0aGlzLmxvZ2dlciA9IG5vb3A7XHJcbiAgICAgICAgdGhpcy5jb25uID0gbnVsbDtcclxuICAgICAgICB0aGlzLnNlbmRCdWZmZXIgPSBbXTtcclxuICAgICAgICB0aGlzLnNlcmlhbGl6ZXIgPSBuZXcgU2VyaWFsaXplcigpO1xyXG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VDYWxsYmFja3MgPSB7XHJcbiAgICAgICAgICAgIG9wZW46IFtdLFxyXG4gICAgICAgICAgICBjbG9zZTogW10sXHJcbiAgICAgICAgICAgIGVycm9yOiBbXSxcclxuICAgICAgICAgICAgbWVzc2FnZTogW10sXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gbnVsbDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBVc2UgZWl0aGVyIGN1c3RvbSBmZXRjaCwgaWYgcHJvdmlkZWQsIG9yIGRlZmF1bHQgZmV0Y2ggdG8gbWFrZSBIVFRQIHJlcXVlc3RzXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAaW50ZXJuYWxcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9yZXNvbHZlRmV0Y2ggPSAoY3VzdG9tRmV0Y2gpID0+IHtcclxuICAgICAgICAgICAgbGV0IF9mZXRjaDtcclxuICAgICAgICAgICAgaWYgKGN1c3RvbUZldGNoKSB7XHJcbiAgICAgICAgICAgICAgICBfZmV0Y2ggPSBjdXN0b21GZXRjaDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgZmV0Y2ggPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICBfZmV0Y2ggPSAoLi4uYXJncykgPT4gaW1wb3J0KCdAc3VwYWJhc2Uvbm9kZS1mZXRjaCcpLnRoZW4oKHsgZGVmYXVsdDogZmV0Y2ggfSkgPT4gZmV0Y2goLi4uYXJncykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgX2ZldGNoID0gZmV0Y2g7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuICguLi5hcmdzKSA9PiBfZmV0Y2goLi4uYXJncyk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmVuZFBvaW50ID0gYCR7ZW5kUG9pbnR9LyR7VFJBTlNQT1JUUy53ZWJzb2NrZXR9YDtcclxuICAgICAgICB0aGlzLmh0dHBFbmRwb2ludCA9IGh0dHBFbmRwb2ludFVSTChlbmRQb2ludCk7XHJcbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy50cmFuc3BvcnQpIHtcclxuICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQgPSBvcHRpb25zLnRyYW5zcG9ydDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0ID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wYXJhbXMpXHJcbiAgICAgICAgICAgIHRoaXMucGFyYW1zID0gb3B0aW9ucy5wYXJhbXM7XHJcbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy50aW1lb3V0KVxyXG4gICAgICAgICAgICB0aGlzLnRpbWVvdXQgPSBvcHRpb25zLnRpbWVvdXQ7XHJcbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5sb2dnZXIpXHJcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyID0gb3B0aW9ucy5sb2dnZXI7XHJcbiAgICAgICAgaWYgKChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMubG9nTGV2ZWwpIHx8IChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMubG9nX2xldmVsKSkge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ0xldmVsID0gb3B0aW9ucy5sb2dMZXZlbCB8fCBvcHRpb25zLmxvZ19sZXZlbDtcclxuICAgICAgICAgICAgdGhpcy5wYXJhbXMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRoaXMucGFyYW1zKSwgeyBsb2dfbGV2ZWw6IHRoaXMubG9nTGV2ZWwgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuaGVhcnRiZWF0SW50ZXJ2YWxNcylcclxuICAgICAgICAgICAgdGhpcy5oZWFydGJlYXRJbnRlcnZhbE1zID0gb3B0aW9ucy5oZWFydGJlYXRJbnRlcnZhbE1zO1xyXG4gICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuVmFsdWUgPSAoX2EgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucGFyYW1zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYXBpa2V5O1xyXG4gICAgICAgIGlmIChhY2Nlc3NUb2tlblZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWNjZXNzVG9rZW5WYWx1ZSA9IGFjY2Vzc1Rva2VuVmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuYXBpS2V5ID0gYWNjZXNzVG9rZW5WYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZWNvbm5lY3RBZnRlck1zID0gKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5yZWNvbm5lY3RBZnRlck1zKVxyXG4gICAgICAgICAgICA/IG9wdGlvbnMucmVjb25uZWN0QWZ0ZXJNc1xyXG4gICAgICAgICAgICA6ICh0cmllcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFsxMDAwLCAyMDAwLCA1MDAwLCAxMDAwMF1bdHJpZXMgLSAxXSB8fCAxMDAwMDtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmVuY29kZSA9IChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZW5jb2RlKVxyXG4gICAgICAgICAgICA/IG9wdGlvbnMuZW5jb2RlXHJcbiAgICAgICAgICAgIDogKHBheWxvYWQsIGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuZGVjb2RlID0gKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5kZWNvZGUpXHJcbiAgICAgICAgICAgID8gb3B0aW9ucy5kZWNvZGVcclxuICAgICAgICAgICAgOiB0aGlzLnNlcmlhbGl6ZXIuZGVjb2RlLmJpbmQodGhpcy5zZXJpYWxpemVyKTtcclxuICAgICAgICB0aGlzLnJlY29ubmVjdFRpbWVyID0gbmV3IFRpbWVyKGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gICAgICAgIH0sIHRoaXMucmVjb25uZWN0QWZ0ZXJNcyk7XHJcbiAgICAgICAgdGhpcy5mZXRjaCA9IHRoaXMuX3Jlc29sdmVGZXRjaChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZmV0Y2gpO1xyXG4gICAgICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMud29ya2VyKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAhd2luZG93Lldvcmtlcikge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdXZWIgV29ya2VyIGlzIG5vdCBzdXBwb3J0ZWQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLndvcmtlciA9IChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMud29ya2VyKSB8fCBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy53b3JrZXJVcmwgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMud29ya2VyVXJsO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5hY2Nlc3NUb2tlbikgfHwgbnVsbDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ29ubmVjdHMgdGhlIHNvY2tldCwgdW5sZXNzIGFscmVhZHkgY29ubmVjdGVkLlxyXG4gICAgICovXHJcbiAgICBjb25uZWN0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbm4pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMudHJhbnNwb3J0KSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0ID0gV2ViU29ja2V0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMudHJhbnNwb3J0KSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdHJhbnNwb3J0IHByb3ZpZGVkJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29ubiA9IG5ldyB0aGlzLnRyYW5zcG9ydCh0aGlzLmVuZHBvaW50VVJMKCkpO1xyXG4gICAgICAgIHRoaXMuc2V0dXBDb25uZWN0aW9uKCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIFVSTCBvZiB0aGUgd2Vic29ja2V0LlxyXG4gICAgICogQHJldHVybnMgc3RyaW5nIFRoZSBVUkwgb2YgdGhlIHdlYnNvY2tldC5cclxuICAgICAqL1xyXG4gICAgZW5kcG9pbnRVUkwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGVuZFBhcmFtcyh0aGlzLmVuZFBvaW50LCBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnBhcmFtcywgeyB2c246IFZTTiB9KSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIERpc2Nvbm5lY3RzIHRoZSBzb2NrZXQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvZGUgQSBudW1lcmljIHN0YXR1cyBjb2RlIHRvIHNlbmQgb24gZGlzY29ubmVjdC5cclxuICAgICAqIEBwYXJhbSByZWFzb24gQSBjdXN0b20gcmVhc29uIGZvciB0aGUgZGlzY29ubmVjdC5cclxuICAgICAqL1xyXG4gICAgZGlzY29ubmVjdChjb2RlLCByZWFzb24pIHtcclxuICAgICAgICBpZiAodGhpcy5jb25uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29ubi5vbmNsb3NlID0gZnVuY3Rpb24gKCkgeyB9OyAvLyBub29wXHJcbiAgICAgICAgICAgIGlmIChjb2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm4uY2xvc2UoY29kZSwgcmVhc29uICE9PSBudWxsICYmIHJlYXNvbiAhPT0gdm9pZCAwID8gcmVhc29uIDogJycpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25uLmNsb3NlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jb25uID0gbnVsbDtcclxuICAgICAgICAgICAgLy8gcmVtb3ZlIG9wZW4gaGFuZGxlc1xyXG4gICAgICAgICAgICB0aGlzLmhlYXJ0YmVhdFRpbWVyICYmIGNsZWFySW50ZXJ2YWwodGhpcy5oZWFydGJlYXRUaW1lcik7XHJcbiAgICAgICAgICAgIHRoaXMucmVjb25uZWN0VGltZXIucmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5jaGFubmVscy5mb3JFYWNoKChjaGFubmVsKSA9PiBjaGFubmVsLnRlYXJkb3duKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhbGwgY3JlYXRlZCBjaGFubmVsc1xyXG4gICAgICovXHJcbiAgICBnZXRDaGFubmVscygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGFubmVscztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVW5zdWJzY3JpYmVzIGFuZCByZW1vdmVzIGEgc2luZ2xlIGNoYW5uZWxcclxuICAgICAqIEBwYXJhbSBjaGFubmVsIEEgUmVhbHRpbWVDaGFubmVsIGluc3RhbmNlXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHJlbW92ZUNoYW5uZWwoY2hhbm5lbCkge1xyXG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IGNoYW5uZWwudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICBpZiAodGhpcy5jaGFubmVscy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBzdGF0dXM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFVuc3Vic2NyaWJlcyBhbmQgcmVtb3ZlcyBhbGwgY2hhbm5lbHNcclxuICAgICAqL1xyXG4gICAgYXN5bmMgcmVtb3ZlQWxsQ2hhbm5lbHMoKSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVzXzEgPSBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmNoYW5uZWxzLm1hcCgoY2hhbm5lbCkgPT4gY2hhbm5lbC51bnN1YnNjcmliZSgpKSk7XHJcbiAgICAgICAgdGhpcy5jaGFubmVscyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xyXG4gICAgICAgIHJldHVybiB2YWx1ZXNfMTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogTG9ncyB0aGUgbWVzc2FnZS5cclxuICAgICAqXHJcbiAgICAgKiBGb3IgY3VzdG9taXplZCBsb2dnaW5nLCBgdGhpcy5sb2dnZXJgIGNhbiBiZSBvdmVycmlkZGVuLlxyXG4gICAgICovXHJcbiAgICBsb2coa2luZCwgbXNnLCBkYXRhKSB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIoa2luZCwgbXNnLCBkYXRhKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgc29ja2V0LlxyXG4gICAgICovXHJcbiAgICBjb25uZWN0aW9uU3RhdGUoKSB7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLmNvbm4gJiYgdGhpcy5jb25uLnJlYWR5U3RhdGUpIHtcclxuICAgICAgICAgICAgY2FzZSBTT0NLRVRfU1RBVEVTLmNvbm5lY3Rpbmc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gQ09OTkVDVElPTl9TVEFURS5Db25uZWN0aW5nO1xyXG4gICAgICAgICAgICBjYXNlIFNPQ0tFVF9TVEFURVMub3BlbjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBDT05ORUNUSU9OX1NUQVRFLk9wZW47XHJcbiAgICAgICAgICAgIGNhc2UgU09DS0VUX1NUQVRFUy5jbG9zaW5nOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIENPTk5FQ1RJT05fU1RBVEUuQ2xvc2luZztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBDT05ORUNUSU9OX1NUQVRFLkNsb3NlZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYHRydWVgIGlzIHRoZSBjb25uZWN0aW9uIGlzIG9wZW4uXHJcbiAgICAgKi9cclxuICAgIGlzQ29ubmVjdGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25TdGF0ZSgpID09PSBDT05ORUNUSU9OX1NUQVRFLk9wZW47XHJcbiAgICB9XHJcbiAgICBjaGFubmVsKHRvcGljLCBwYXJhbXMgPSB7IGNvbmZpZzoge30gfSkge1xyXG4gICAgICAgIGNvbnN0IHJlYWx0aW1lVG9waWMgPSBgcmVhbHRpbWU6JHt0b3BpY31gO1xyXG4gICAgICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMuZ2V0Q2hhbm5lbHMoKS5maW5kKChjKSA9PiBjLnRvcGljID09PSByZWFsdGltZVRvcGljKTtcclxuICAgICAgICBpZiAoIWV4aXN0cykge1xyXG4gICAgICAgICAgICBjb25zdCBjaGFuID0gbmV3IFJlYWx0aW1lQ2hhbm5lbChgcmVhbHRpbWU6JHt0b3BpY31gLCBwYXJhbXMsIHRoaXMpO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5uZWxzLnB1c2goY2hhbik7XHJcbiAgICAgICAgICAgIHJldHVybiBjaGFuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGV4aXN0cztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFB1c2ggb3V0IGEgbWVzc2FnZSBpZiB0aGUgc29ja2V0IGlzIGNvbm5lY3RlZC5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGUgc29ja2V0IGlzIG5vdCBjb25uZWN0ZWQsIHRoZSBtZXNzYWdlIGdldHMgZW5xdWV1ZWQgd2l0aGluIGEgbG9jYWwgYnVmZmVyLCBhbmQgc2VudCBvdXQgd2hlbiBhIGNvbm5lY3Rpb24gaXMgbmV4dCBlc3RhYmxpc2hlZC5cclxuICAgICAqL1xyXG4gICAgcHVzaChkYXRhKSB7XHJcbiAgICAgICAgY29uc3QgeyB0b3BpYywgZXZlbnQsIHBheWxvYWQsIHJlZiB9ID0gZGF0YTtcclxuICAgICAgICBjb25zdCBjYWxsYmFjayA9ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5lbmNvZGUoZGF0YSwgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgICAgICAgICAgKF9hID0gdGhpcy5jb25uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2VuZChyZXN1bHQpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMubG9nKCdwdXNoJywgYCR7dG9waWN9ICR7ZXZlbnR9ICgke3JlZn0pYCwgcGF5bG9hZCk7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQoKSkge1xyXG4gICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZW5kQnVmZmVyLnB1c2goY2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgSldUIGFjY2VzcyB0b2tlbiB1c2VkIGZvciBjaGFubmVsIHN1YnNjcmlwdGlvbiBhdXRob3JpemF0aW9uIGFuZCBSZWFsdGltZSBSTFMuXHJcbiAgICAgKlxyXG4gICAgICogSWYgcGFyYW0gaXMgbnVsbCBpdCB3aWxsIHVzZSB0aGUgYGFjY2Vzc1Rva2VuYCBjYWxsYmFjayBmdW5jdGlvbiBvciB0aGUgdG9rZW4gc2V0IG9uIHRoZSBjbGllbnQuXHJcbiAgICAgKlxyXG4gICAgICogT24gY2FsbGJhY2sgdXNlZCwgaXQgd2lsbCBzZXQgdGhlIHZhbHVlIG9mIHRoZSB0b2tlbiBpbnRlcm5hbCB0byB0aGUgY2xpZW50LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB0b2tlbiBBIEpXVCBzdHJpbmcgdG8gb3ZlcnJpZGUgdGhlIHRva2VuIHNldCBvbiB0aGUgY2xpZW50LlxyXG4gICAgICovXHJcbiAgICBhc3luYyBzZXRBdXRoKHRva2VuID0gbnVsbCkge1xyXG4gICAgICAgIGxldCB0b2tlblRvU2VuZCA9IHRva2VuIHx8XHJcbiAgICAgICAgICAgICh0aGlzLmFjY2Vzc1Rva2VuICYmIChhd2FpdCB0aGlzLmFjY2Vzc1Rva2VuKCkpKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuVmFsdWU7XHJcbiAgICAgICAgaWYgKHRoaXMuYWNjZXNzVG9rZW5WYWx1ZSAhPSB0b2tlblRvU2VuZCkge1xyXG4gICAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuVmFsdWUgPSB0b2tlblRvU2VuZDtcclxuICAgICAgICAgICAgdGhpcy5jaGFubmVscy5mb3JFYWNoKChjaGFubmVsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjY2Vzc190b2tlbjogdG9rZW5Ub1NlbmQsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjogREVGQVVMVF9WRVJTSU9OLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHRva2VuVG9TZW5kICYmIGNoYW5uZWwudXBkYXRlSm9pblBheWxvYWQocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbC5qb2luZWRPbmNlICYmIGNoYW5uZWwuX2lzSm9pbmVkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGFubmVsLl9wdXNoKENIQU5ORUxfRVZFTlRTLmFjY2Vzc190b2tlbiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NfdG9rZW46IHRva2VuVG9TZW5kLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNlbmRzIGEgaGVhcnRiZWF0IG1lc3NhZ2UgaWYgdGhlIHNvY2tldCBpcyBjb25uZWN0ZWQuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHNlbmRIZWFydGJlYXQoKSB7XHJcbiAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgIGlmICghdGhpcy5pc0Nvbm5lY3RlZCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGVhcnRiZWF0Q2FsbGJhY2soJ2Rpc2Nvbm5lY3RlZCcpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy5wZW5kaW5nSGVhcnRiZWF0UmVmID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy5sb2coJ3RyYW5zcG9ydCcsICdoZWFydGJlYXQgdGltZW91dC4gQXR0ZW1wdGluZyB0byByZS1lc3RhYmxpc2ggY29ubmVjdGlvbicpO1xyXG4gICAgICAgICAgICB0aGlzLmhlYXJ0YmVhdENhbGxiYWNrKCd0aW1lb3V0Jyk7XHJcbiAgICAgICAgICAgIChfYSA9IHRoaXMuY29ubikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNsb3NlKFdTX0NMT1NFX05PUk1BTCwgJ2hlYXJiZWF0IHRpbWVvdXQnKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYgPSB0aGlzLl9tYWtlUmVmKCk7XHJcbiAgICAgICAgdGhpcy5wdXNoKHtcclxuICAgICAgICAgICAgdG9waWM6ICdwaG9lbml4JyxcclxuICAgICAgICAgICAgZXZlbnQ6ICdoZWFydGJlYXQnLFxyXG4gICAgICAgICAgICBwYXlsb2FkOiB7fSxcclxuICAgICAgICAgICAgcmVmOiB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5oZWFydGJlYXRDYWxsYmFjaygnc2VudCcpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2V0QXV0aCgpO1xyXG4gICAgfVxyXG4gICAgb25IZWFydGJlYXQoY2FsbGJhY2spIHtcclxuICAgICAgICB0aGlzLmhlYXJ0YmVhdENhbGxiYWNrID0gY2FsbGJhY2s7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEZsdXNoZXMgc2VuZCBidWZmZXJcclxuICAgICAqL1xyXG4gICAgZmx1c2hTZW5kQnVmZmVyKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKCkgJiYgdGhpcy5zZW5kQnVmZmVyLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5zZW5kQnVmZmVyLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjaygpKTtcclxuICAgICAgICAgICAgdGhpcy5zZW5kQnVmZmVyID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm4gdGhlIG5leHQgbWVzc2FnZSByZWYsIGFjY291bnRpbmcgZm9yIG92ZXJmbG93c1xyXG4gICAgICpcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBfbWFrZVJlZigpIHtcclxuICAgICAgICBsZXQgbmV3UmVmID0gdGhpcy5yZWYgKyAxO1xyXG4gICAgICAgIGlmIChuZXdSZWYgPT09IHRoaXMucmVmKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVmID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVmID0gbmV3UmVmO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5yZWYudG9TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVW5zdWJzY3JpYmUgZnJvbSBjaGFubmVscyB3aXRoIHRoZSBzcGVjaWZpZWQgdG9waWMuXHJcbiAgICAgKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIF9sZWF2ZU9wZW5Ub3BpYyh0b3BpYykge1xyXG4gICAgICAgIGxldCBkdXBDaGFubmVsID0gdGhpcy5jaGFubmVscy5maW5kKChjKSA9PiBjLnRvcGljID09PSB0b3BpYyAmJiAoYy5faXNKb2luZWQoKSB8fCBjLl9pc0pvaW5pbmcoKSkpO1xyXG4gICAgICAgIGlmIChkdXBDaGFubmVsKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nKCd0cmFuc3BvcnQnLCBgbGVhdmluZyBkdXBsaWNhdGUgdG9waWMgXCIke3RvcGljfVwiYCk7XHJcbiAgICAgICAgICAgIGR1cENoYW5uZWwudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgYSBzdWJzY3JpcHRpb24gZnJvbSB0aGUgc29ja2V0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjaGFubmVsIEFuIG9wZW4gc3Vic2NyaXB0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBfcmVtb3ZlKGNoYW5uZWwpIHtcclxuICAgICAgICB0aGlzLmNoYW5uZWxzID0gdGhpcy5jaGFubmVscy5maWx0ZXIoKGMpID0+IGMudG9waWMgIT09IGNoYW5uZWwudG9waWMpO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHVwIGNvbm5lY3Rpb24gaGFuZGxlcnMuXHJcbiAgICAgKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHNldHVwQ29ubmVjdGlvbigpIHtcclxuICAgICAgICBpZiAodGhpcy5jb25uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29ubi5iaW5hcnlUeXBlID0gJ2FycmF5YnVmZmVyJztcclxuICAgICAgICAgICAgdGhpcy5jb25uLm9ub3BlbiA9ICgpID0+IHRoaXMuX29uQ29ubk9wZW4oKTtcclxuICAgICAgICAgICAgdGhpcy5jb25uLm9uZXJyb3IgPSAoZXJyb3IpID0+IHRoaXMuX29uQ29ubkVycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgdGhpcy5jb25uLm9ubWVzc2FnZSA9IChldmVudCkgPT4gdGhpcy5fb25Db25uTWVzc2FnZShldmVudCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29ubi5vbmNsb3NlID0gKGV2ZW50KSA9PiB0aGlzLl9vbkNvbm5DbG9zZShldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgX29uQ29ubk1lc3NhZ2UocmF3TWVzc2FnZSkge1xyXG4gICAgICAgIHRoaXMuZGVjb2RlKHJhd01lc3NhZ2UuZGF0YSwgKG1zZykgPT4ge1xyXG4gICAgICAgICAgICBsZXQgeyB0b3BpYywgZXZlbnQsIHBheWxvYWQsIHJlZiB9ID0gbXNnO1xyXG4gICAgICAgICAgICBpZiAodG9waWMgPT09ICdwaG9lbml4JyAmJiBldmVudCA9PT0gJ3BoeF9yZXBseScpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGVhcnRiZWF0Q2FsbGJhY2sobXNnLnBheWxvYWQuc3RhdHVzID09ICdvaycgPyAnb2snIDogJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHJlZiAmJiByZWYgPT09IHRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nSGVhcnRiZWF0UmVmID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvZygncmVjZWl2ZScsIGAke3BheWxvYWQuc3RhdHVzIHx8ICcnfSAke3RvcGljfSAke2V2ZW50fSAkeyhyZWYgJiYgJygnICsgcmVmICsgJyknKSB8fCAnJ31gLCBwYXlsb2FkKTtcclxuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmNoYW5uZWxzKVxyXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoY2hhbm5lbCkgPT4gY2hhbm5lbC5faXNNZW1iZXIodG9waWMpKVxyXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKGNoYW5uZWwpID0+IGNoYW5uZWwuX3RyaWdnZXIoZXZlbnQsIHBheWxvYWQsIHJlZikpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLm1lc3NhZ2UuZm9yRWFjaCgoY2FsbGJhY2spID0+IGNhbGxiYWNrKG1zZykpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgX29uQ29ubk9wZW4oKSB7XHJcbiAgICAgICAgdGhpcy5sb2coJ3RyYW5zcG9ydCcsIGBjb25uZWN0ZWQgdG8gJHt0aGlzLmVuZHBvaW50VVJMKCl9YCk7XHJcbiAgICAgICAgdGhpcy5mbHVzaFNlbmRCdWZmZXIoKTtcclxuICAgICAgICB0aGlzLnJlY29ubmVjdFRpbWVyLnJlc2V0KCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLndvcmtlcikge1xyXG4gICAgICAgICAgICB0aGlzLl9zdGFydEhlYXJ0YmVhdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLndvcmtlclJlZikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhcnRXb3JrZXJIZWFydGJlYXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLm9wZW4uZm9yRWFjaCgoY2FsbGJhY2spID0+IGNhbGxiYWNrKCkpO1xyXG4gICAgfVxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgX3N0YXJ0SGVhcnRiZWF0KCkge1xyXG4gICAgICAgIHRoaXMuaGVhcnRiZWF0VGltZXIgJiYgY2xlYXJJbnRlcnZhbCh0aGlzLmhlYXJ0YmVhdFRpbWVyKTtcclxuICAgICAgICB0aGlzLmhlYXJ0YmVhdFRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy5zZW5kSGVhcnRiZWF0KCksIHRoaXMuaGVhcnRiZWF0SW50ZXJ2YWxNcyk7XHJcbiAgICB9XHJcbiAgICAvKiogQGludGVybmFsICovXHJcbiAgICBfc3RhcnRXb3JrZXJIZWFydGJlYXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMud29ya2VyVXJsKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nKCd3b3JrZXInLCBgc3RhcnRpbmcgd29ya2VyIGZvciBmcm9tICR7dGhpcy53b3JrZXJVcmx9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvZygnd29ya2VyJywgYHN0YXJ0aW5nIGRlZmF1bHQgd29ya2VyYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IG9iamVjdFVybCA9IHRoaXMuX3dvcmtlck9iamVjdFVybCh0aGlzLndvcmtlclVybCk7XHJcbiAgICAgICAgdGhpcy53b3JrZXJSZWYgPSBuZXcgV29ya2VyKG9iamVjdFVybCk7XHJcbiAgICAgICAgdGhpcy53b3JrZXJSZWYub25lcnJvciA9IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvZygnd29ya2VyJywgJ3dvcmtlciBlcnJvcicsIGVycm9yLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB0aGlzLndvcmtlclJlZi50ZXJtaW5hdGUoKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMud29ya2VyUmVmLm9ubWVzc2FnZSA9IChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5ldmVudCA9PT0gJ2tlZXBBbGl2ZScpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VuZEhlYXJ0YmVhdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLndvcmtlclJlZi5wb3N0TWVzc2FnZSh7XHJcbiAgICAgICAgICAgIGV2ZW50OiAnc3RhcnQnLFxyXG4gICAgICAgICAgICBpbnRlcnZhbDogdGhpcy5oZWFydGJlYXRJbnRlcnZhbE1zLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgX29uQ29ubkNsb3NlKGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5sb2coJ3RyYW5zcG9ydCcsICdjbG9zZScsIGV2ZW50KTtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyQ2hhbkVycm9yKCk7XHJcbiAgICAgICAgdGhpcy5oZWFydGJlYXRUaW1lciAmJiBjbGVhckludGVydmFsKHRoaXMuaGVhcnRiZWF0VGltZXIpO1xyXG4gICAgICAgIHRoaXMucmVjb25uZWN0VGltZXIuc2NoZWR1bGVUaW1lb3V0KCk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrcy5jbG9zZS5mb3JFYWNoKChjYWxsYmFjaykgPT4gY2FsbGJhY2soZXZlbnQpKTtcclxuICAgIH1cclxuICAgIC8qKiBAaW50ZXJuYWwgKi9cclxuICAgIF9vbkNvbm5FcnJvcihlcnJvcikge1xyXG4gICAgICAgIHRoaXMubG9nKCd0cmFuc3BvcnQnLCBgJHtlcnJvcn1gKTtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyQ2hhbkVycm9yKCk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrcy5lcnJvci5mb3JFYWNoKChjYWxsYmFjaykgPT4gY2FsbGJhY2soZXJyb3IpKTtcclxuICAgIH1cclxuICAgIC8qKiBAaW50ZXJuYWwgKi9cclxuICAgIF90cmlnZ2VyQ2hhbkVycm9yKCkge1xyXG4gICAgICAgIHRoaXMuY2hhbm5lbHMuZm9yRWFjaCgoY2hhbm5lbCkgPT4gY2hhbm5lbC5fdHJpZ2dlcihDSEFOTkVMX0VWRU5UUy5lcnJvcikpO1xyXG4gICAgfVxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgX2FwcGVuZFBhcmFtcyh1cmwsIHBhcmFtcykge1xyXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhwYXJhbXMpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdXJsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBwcmVmaXggPSB1cmwubWF0Y2goL1xcPy8pID8gJyYnIDogJz8nO1xyXG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgICAgIHJldHVybiBgJHt1cmx9JHtwcmVmaXh9JHtxdWVyeX1gO1xyXG4gICAgfVxyXG4gICAgX3dvcmtlck9iamVjdFVybCh1cmwpIHtcclxuICAgICAgICBsZXQgcmVzdWx0X3VybDtcclxuICAgICAgICBpZiAodXJsKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdF91cmwgPSB1cmw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW1dPUktFUl9TQ1JJUFRdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JyB9KTtcclxuICAgICAgICAgICAgcmVzdWx0X3VybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHRfdXJsO1xyXG4gICAgfVxyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJlYWx0aW1lQ2xpZW50LmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ REALTIME_PRESENCE_LISTEN_EVENTS: function() { return /* binding */ REALTIME_PRESENCE_LISTEN_EVENTS; },\n/* harmony export */ \"default\": function() { return /* binding */ RealtimePresence; }\n/* harmony export */ });\n/*\r\n This file draws heavily from https://github.com/phoenixframework/phoenix/blob/d344ec0a732ab4ee204215b31de69cf4be72e3bf/assets/js/phoenix/presence.js\r\n License: https://github.com/phoenixframework/phoenix/blob/d344ec0a732ab4ee204215b31de69cf4be72e3bf/LICENSE.md\r\n*/\r\nvar REALTIME_PRESENCE_LISTEN_EVENTS;\r\n(function (REALTIME_PRESENCE_LISTEN_EVENTS) {\r\n REALTIME_PRESENCE_LISTEN_EVENTS[\"SYNC\"] = \"sync\";\r\n REALTIME_PRESENCE_LISTEN_EVENTS[\"JOIN\"] = \"join\";\r\n REALTIME_PRESENCE_LISTEN_EVENTS[\"LEAVE\"] = \"leave\";\r\n})(REALTIME_PRESENCE_LISTEN_EVENTS || (REALTIME_PRESENCE_LISTEN_EVENTS = {}));\r\nclass RealtimePresence {\r\n /**\r\n * Initializes the Presence.\r\n *\r\n * @param channel - The RealtimeChannel\r\n * @param opts - The options,\r\n * for example `{events: {state: 'state', diff: 'diff'}}`\r\n */\r\n constructor(channel, opts) {\r\n this.channel = channel;\r\n this.state = {};\r\n this.pendingDiffs = [];\r\n this.joinRef = null;\r\n this.caller = {\r\n onJoin: () => { },\r\n onLeave: () => { },\r\n onSync: () => { },\r\n };\r\n const events = (opts === null || opts === void 0 ? void 0 : opts.events) || {\r\n state: 'presence_state',\r\n diff: 'presence_diff',\r\n };\r\n this.channel._on(events.state, {}, (newState) => {\r\n const { onJoin, onLeave, onSync } = this.caller;\r\n this.joinRef = this.channel._joinRef();\r\n this.state = RealtimePresence.syncState(this.state, newState, onJoin, onLeave);\r\n this.pendingDiffs.forEach((diff) => {\r\n this.state = RealtimePresence.syncDiff(this.state, diff, onJoin, onLeave);\r\n });\r\n this.pendingDiffs = [];\r\n onSync();\r\n });\r\n this.channel._on(events.diff, {}, (diff) => {\r\n const { onJoin, onLeave, onSync } = this.caller;\r\n if (this.inPendingSyncState()) {\r\n this.pendingDiffs.push(diff);\r\n }\r\n else {\r\n this.state = RealtimePresence.syncDiff(this.state, diff, onJoin, onLeave);\r\n onSync();\r\n }\r\n });\r\n this.onJoin((key, currentPresences, newPresences) => {\r\n this.channel._trigger('presence', {\r\n event: 'join',\r\n key,\r\n currentPresences,\r\n newPresences,\r\n });\r\n });\r\n this.onLeave((key, currentPresences, leftPresences) => {\r\n this.channel._trigger('presence', {\r\n event: 'leave',\r\n key,\r\n currentPresences,\r\n leftPresences,\r\n });\r\n });\r\n this.onSync(() => {\r\n this.channel._trigger('presence', { event: 'sync' });\r\n });\r\n }\r\n /**\r\n * Used to sync the list of presences on the server with the\r\n * client's state.\r\n *\r\n * An optional `onJoin` and `onLeave` callback can be provided to\r\n * react to changes in the client's local presences across\r\n * disconnects and reconnects with the server.\r\n *\r\n * @internal\r\n */\r\n static syncState(currentState, newState, onJoin, onLeave) {\r\n const state = this.cloneDeep(currentState);\r\n const transformedState = this.transformState(newState);\r\n const joins = {};\r\n const leaves = {};\r\n this.map(state, (key, presences) => {\r\n if (!transformedState[key]) {\r\n leaves[key] = presences;\r\n }\r\n });\r\n this.map(transformedState, (key, newPresences) => {\r\n const currentPresences = state[key];\r\n if (currentPresences) {\r\n const newPresenceRefs = newPresences.map((m) => m.presence_ref);\r\n const curPresenceRefs = currentPresences.map((m) => m.presence_ref);\r\n const joinedPresences = newPresences.filter((m) => curPresenceRefs.indexOf(m.presence_ref) < 0);\r\n const leftPresences = currentPresences.filter((m) => newPresenceRefs.indexOf(m.presence_ref) < 0);\r\n if (joinedPresences.length > 0) {\r\n joins[key] = joinedPresences;\r\n }\r\n if (leftPresences.length > 0) {\r\n leaves[key] = leftPresences;\r\n }\r\n }\r\n else {\r\n joins[key] = newPresences;\r\n }\r\n });\r\n return this.syncDiff(state, { joins, leaves }, onJoin, onLeave);\r\n }\r\n /**\r\n * Used to sync a diff of presence join and leave events from the\r\n * server, as they happen.\r\n *\r\n * Like `syncState`, `syncDiff` accepts optional `onJoin` and\r\n * `onLeave` callbacks to react to a user joining or leaving from a\r\n * device.\r\n *\r\n * @internal\r\n */\r\n static syncDiff(state, diff, onJoin, onLeave) {\r\n const { joins, leaves } = {\r\n joins: this.transformState(diff.joins),\r\n leaves: this.transformState(diff.leaves),\r\n };\r\n if (!onJoin) {\r\n onJoin = () => { };\r\n }\r\n if (!onLeave) {\r\n onLeave = () => { };\r\n }\r\n this.map(joins, (key, newPresences) => {\r\n var _a;\r\n const currentPresences = (_a = state[key]) !== null && _a !== void 0 ? _a : [];\r\n state[key] = this.cloneDeep(newPresences);\r\n if (currentPresences.length > 0) {\r\n const joinedPresenceRefs = state[key].map((m) => m.presence_ref);\r\n const curPresences = currentPresences.filter((m) => joinedPresenceRefs.indexOf(m.presence_ref) < 0);\r\n state[key].unshift(...curPresences);\r\n }\r\n onJoin(key, currentPresences, newPresences);\r\n });\r\n this.map(leaves, (key, leftPresences) => {\r\n let currentPresences = state[key];\r\n if (!currentPresences)\r\n return;\r\n const presenceRefsToRemove = leftPresences.map((m) => m.presence_ref);\r\n currentPresences = currentPresences.filter((m) => presenceRefsToRemove.indexOf(m.presence_ref) < 0);\r\n state[key] = currentPresences;\r\n onLeave(key, currentPresences, leftPresences);\r\n if (currentPresences.length === 0)\r\n delete state[key];\r\n });\r\n return state;\r\n }\r\n /** @internal */\r\n static map(obj, func) {\r\n return Object.getOwnPropertyNames(obj).map((key) => func(key, obj[key]));\r\n }\r\n /**\r\n * Remove 'metas' key\r\n * Change 'phx_ref' to 'presence_ref'\r\n * Remove 'phx_ref' and 'phx_ref_prev'\r\n *\r\n * @example\r\n * // returns {\r\n * abc123: [\r\n * { presence_ref: '2', user_id: 1 },\r\n * { presence_ref: '3', user_id: 2 }\r\n * ]\r\n * }\r\n * RealtimePresence.transformState({\r\n * abc123: {\r\n * metas: [\r\n * { phx_ref: '2', phx_ref_prev: '1' user_id: 1 },\r\n * { phx_ref: '3', user_id: 2 }\r\n * ]\r\n * }\r\n * })\r\n *\r\n * @internal\r\n */\r\n static transformState(state) {\r\n state = this.cloneDeep(state);\r\n return Object.getOwnPropertyNames(state).reduce((newState, key) => {\r\n const presences = state[key];\r\n if ('metas' in presences) {\r\n newState[key] = presences.metas.map((presence) => {\r\n presence['presence_ref'] = presence['phx_ref'];\r\n delete presence['phx_ref'];\r\n delete presence['phx_ref_prev'];\r\n return presence;\r\n });\r\n }\r\n else {\r\n newState[key] = presences;\r\n }\r\n return newState;\r\n }, {});\r\n }\r\n /** @internal */\r\n static cloneDeep(obj) {\r\n return JSON.parse(JSON.stringify(obj));\r\n }\r\n /** @internal */\r\n onJoin(callback) {\r\n this.caller.onJoin = callback;\r\n }\r\n /** @internal */\r\n onLeave(callback) {\r\n this.caller.onLeave = callback;\r\n }\r\n /** @internal */\r\n onSync(callback) {\r\n this.caller.onSync = callback;\r\n }\r\n /** @internal */\r\n inPendingSyncState() {\r\n return !this.joinRef || this.joinRef !== this.channel._joinRef();\r\n }\r\n}\r\n//# sourceMappingURL=RealtimePresence.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvUmVhbHRpbWVQcmVzZW5jZS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsMEVBQTBFO0FBQzVEO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixTQUFTLDhCQUE4QjtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3Qiw4QkFBOEI7QUFDOUIsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekMsb0JBQW9CLDBCQUEwQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsU0FBUztBQUNULHdDQUF3QztBQUN4QyxvQkFBb0IsMEJBQTBCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBLGdEQUFnRCxlQUFlO0FBQy9ELFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsc0NBQXNDLGVBQWU7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGdCQUFnQjtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSwrQkFBK0I7QUFDM0MsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLDRDQUE0QztBQUMxRCxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxJQUFJO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL1JlYWx0aW1lUHJlc2VuY2UuanM/MmNiOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gIFRoaXMgZmlsZSBkcmF3cyBoZWF2aWx5IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3Bob2VuaXhmcmFtZXdvcmsvcGhvZW5peC9ibG9iL2QzNDRlYzBhNzMyYWI0ZWUyMDQyMTViMzFkZTY5Y2Y0YmU3MmUzYmYvYXNzZXRzL2pzL3Bob2VuaXgvcHJlc2VuY2UuanNcclxuICBMaWNlbnNlOiBodHRwczovL2dpdGh1Yi5jb20vcGhvZW5peGZyYW1ld29yay9waG9lbml4L2Jsb2IvZDM0NGVjMGE3MzJhYjRlZTIwNDIxNWIzMWRlNjljZjRiZTcyZTNiZi9MSUNFTlNFLm1kXHJcbiovXHJcbmV4cG9ydCB2YXIgUkVBTFRJTUVfUFJFU0VOQ0VfTElTVEVOX0VWRU5UUztcclxuKGZ1bmN0aW9uIChSRUFMVElNRV9QUkVTRU5DRV9MSVNURU5fRVZFTlRTKSB7XHJcbiAgICBSRUFMVElNRV9QUkVTRU5DRV9MSVNURU5fRVZFTlRTW1wiU1lOQ1wiXSA9IFwic3luY1wiO1xyXG4gICAgUkVBTFRJTUVfUFJFU0VOQ0VfTElTVEVOX0VWRU5UU1tcIkpPSU5cIl0gPSBcImpvaW5cIjtcclxuICAgIFJFQUxUSU1FX1BSRVNFTkNFX0xJU1RFTl9FVkVOVFNbXCJMRUFWRVwiXSA9IFwibGVhdmVcIjtcclxufSkoUkVBTFRJTUVfUFJFU0VOQ0VfTElTVEVOX0VWRU5UUyB8fCAoUkVBTFRJTUVfUFJFU0VOQ0VfTElTVEVOX0VWRU5UUyA9IHt9KSk7XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlYWx0aW1lUHJlc2VuY2Uge1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyB0aGUgUHJlc2VuY2UuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNoYW5uZWwgLSBUaGUgUmVhbHRpbWVDaGFubmVsXHJcbiAgICAgKiBAcGFyYW0gb3B0cyAtIFRoZSBvcHRpb25zLFxyXG4gICAgICogICAgICAgIGZvciBleGFtcGxlIGB7ZXZlbnRzOiB7c3RhdGU6ICdzdGF0ZScsIGRpZmY6ICdkaWZmJ319YFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihjaGFubmVsLCBvcHRzKSB7XHJcbiAgICAgICAgdGhpcy5jaGFubmVsID0gY2hhbm5lbDtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge307XHJcbiAgICAgICAgdGhpcy5wZW5kaW5nRGlmZnMgPSBbXTtcclxuICAgICAgICB0aGlzLmpvaW5SZWYgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuY2FsbGVyID0ge1xyXG4gICAgICAgICAgICBvbkpvaW46ICgpID0+IHsgfSxcclxuICAgICAgICAgICAgb25MZWF2ZTogKCkgPT4geyB9LFxyXG4gICAgICAgICAgICBvblN5bmM6ICgpID0+IHsgfSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IChvcHRzID09PSBudWxsIHx8IG9wdHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdHMuZXZlbnRzKSB8fCB7XHJcbiAgICAgICAgICAgIHN0YXRlOiAncHJlc2VuY2Vfc3RhdGUnLFxyXG4gICAgICAgICAgICBkaWZmOiAncHJlc2VuY2VfZGlmZicsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmNoYW5uZWwuX29uKGV2ZW50cy5zdGF0ZSwge30sIChuZXdTdGF0ZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IG9uSm9pbiwgb25MZWF2ZSwgb25TeW5jIH0gPSB0aGlzLmNhbGxlcjtcclxuICAgICAgICAgICAgdGhpcy5qb2luUmVmID0gdGhpcy5jaGFubmVsLl9qb2luUmVmKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBSZWFsdGltZVByZXNlbmNlLnN5bmNTdGF0ZSh0aGlzLnN0YXRlLCBuZXdTdGF0ZSwgb25Kb2luLCBvbkxlYXZlKTtcclxuICAgICAgICAgICAgdGhpcy5wZW5kaW5nRGlmZnMuZm9yRWFjaCgoZGlmZikgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFJlYWx0aW1lUHJlc2VuY2Uuc3luY0RpZmYodGhpcy5zdGF0ZSwgZGlmZiwgb25Kb2luLCBvbkxlYXZlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0RpZmZzID0gW107XHJcbiAgICAgICAgICAgIG9uU3luYygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY2hhbm5lbC5fb24oZXZlbnRzLmRpZmYsIHt9LCAoZGlmZikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IG9uSm9pbiwgb25MZWF2ZSwgb25TeW5jIH0gPSB0aGlzLmNhbGxlcjtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5QZW5kaW5nU3luY1N0YXRlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ0RpZmZzLnB1c2goZGlmZik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gUmVhbHRpbWVQcmVzZW5jZS5zeW5jRGlmZih0aGlzLnN0YXRlLCBkaWZmLCBvbkpvaW4sIG9uTGVhdmUpO1xyXG4gICAgICAgICAgICAgICAgb25TeW5jKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLm9uSm9pbigoa2V5LCBjdXJyZW50UHJlc2VuY2VzLCBuZXdQcmVzZW5jZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jaGFubmVsLl90cmlnZ2VyKCdwcmVzZW5jZScsIHtcclxuICAgICAgICAgICAgICAgIGV2ZW50OiAnam9pbicsXHJcbiAgICAgICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50UHJlc2VuY2VzLFxyXG4gICAgICAgICAgICAgICAgbmV3UHJlc2VuY2VzLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLm9uTGVhdmUoKGtleSwgY3VycmVudFByZXNlbmNlcywgbGVmdFByZXNlbmNlcykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5uZWwuX3RyaWdnZXIoJ3ByZXNlbmNlJywge1xyXG4gICAgICAgICAgICAgICAgZXZlbnQ6ICdsZWF2ZScsXHJcbiAgICAgICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50UHJlc2VuY2VzLFxyXG4gICAgICAgICAgICAgICAgbGVmdFByZXNlbmNlcyxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5vblN5bmMoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5uZWwuX3RyaWdnZXIoJ3ByZXNlbmNlJywgeyBldmVudDogJ3N5bmMnIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBVc2VkIHRvIHN5bmMgdGhlIGxpc3Qgb2YgcHJlc2VuY2VzIG9uIHRoZSBzZXJ2ZXIgd2l0aCB0aGVcclxuICAgICAqIGNsaWVudCdzIHN0YXRlLlxyXG4gICAgICpcclxuICAgICAqIEFuIG9wdGlvbmFsIGBvbkpvaW5gIGFuZCBgb25MZWF2ZWAgY2FsbGJhY2sgY2FuIGJlIHByb3ZpZGVkIHRvXHJcbiAgICAgKiByZWFjdCB0byBjaGFuZ2VzIGluIHRoZSBjbGllbnQncyBsb2NhbCBwcmVzZW5jZXMgYWNyb3NzXHJcbiAgICAgKiBkaXNjb25uZWN0cyBhbmQgcmVjb25uZWN0cyB3aXRoIHRoZSBzZXJ2ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBzeW5jU3RhdGUoY3VycmVudFN0YXRlLCBuZXdTdGF0ZSwgb25Kb2luLCBvbkxlYXZlKSB7XHJcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmNsb25lRGVlcChjdXJyZW50U3RhdGUpO1xyXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkU3RhdGUgPSB0aGlzLnRyYW5zZm9ybVN0YXRlKG5ld1N0YXRlKTtcclxuICAgICAgICBjb25zdCBqb2lucyA9IHt9O1xyXG4gICAgICAgIGNvbnN0IGxlYXZlcyA9IHt9O1xyXG4gICAgICAgIHRoaXMubWFwKHN0YXRlLCAoa2V5LCBwcmVzZW5jZXMpID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0cmFuc2Zvcm1lZFN0YXRlW2tleV0pIHtcclxuICAgICAgICAgICAgICAgIGxlYXZlc1trZXldID0gcHJlc2VuY2VzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5tYXAodHJhbnNmb3JtZWRTdGF0ZSwgKGtleSwgbmV3UHJlc2VuY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRQcmVzZW5jZXMgPSBzdGF0ZVtrZXldO1xyXG4gICAgICAgICAgICBpZiAoY3VycmVudFByZXNlbmNlcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3UHJlc2VuY2VSZWZzID0gbmV3UHJlc2VuY2VzLm1hcCgobSkgPT4gbS5wcmVzZW5jZV9yZWYpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY3VyUHJlc2VuY2VSZWZzID0gY3VycmVudFByZXNlbmNlcy5tYXAoKG0pID0+IG0ucHJlc2VuY2VfcmVmKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGpvaW5lZFByZXNlbmNlcyA9IG5ld1ByZXNlbmNlcy5maWx0ZXIoKG0pID0+IGN1clByZXNlbmNlUmVmcy5pbmRleE9mKG0ucHJlc2VuY2VfcmVmKSA8IDApO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGVmdFByZXNlbmNlcyA9IGN1cnJlbnRQcmVzZW5jZXMuZmlsdGVyKChtKSA9PiBuZXdQcmVzZW5jZVJlZnMuaW5kZXhPZihtLnByZXNlbmNlX3JlZikgPCAwKTtcclxuICAgICAgICAgICAgICAgIGlmIChqb2luZWRQcmVzZW5jZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGpvaW5zW2tleV0gPSBqb2luZWRQcmVzZW5jZXM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAobGVmdFByZXNlbmNlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVhdmVzW2tleV0gPSBsZWZ0UHJlc2VuY2VzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgam9pbnNba2V5XSA9IG5ld1ByZXNlbmNlcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN5bmNEaWZmKHN0YXRlLCB7IGpvaW5zLCBsZWF2ZXMgfSwgb25Kb2luLCBvbkxlYXZlKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVXNlZCB0byBzeW5jIGEgZGlmZiBvZiBwcmVzZW5jZSBqb2luIGFuZCBsZWF2ZSBldmVudHMgZnJvbSB0aGVcclxuICAgICAqIHNlcnZlciwgYXMgdGhleSBoYXBwZW4uXHJcbiAgICAgKlxyXG4gICAgICogTGlrZSBgc3luY1N0YXRlYCwgYHN5bmNEaWZmYCBhY2NlcHRzIG9wdGlvbmFsIGBvbkpvaW5gIGFuZFxyXG4gICAgICogYG9uTGVhdmVgIGNhbGxiYWNrcyB0byByZWFjdCB0byBhIHVzZXIgam9pbmluZyBvciBsZWF2aW5nIGZyb20gYVxyXG4gICAgICogZGV2aWNlLlxyXG4gICAgICpcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgc3luY0RpZmYoc3RhdGUsIGRpZmYsIG9uSm9pbiwgb25MZWF2ZSkge1xyXG4gICAgICAgIGNvbnN0IHsgam9pbnMsIGxlYXZlcyB9ID0ge1xyXG4gICAgICAgICAgICBqb2luczogdGhpcy50cmFuc2Zvcm1TdGF0ZShkaWZmLmpvaW5zKSxcclxuICAgICAgICAgICAgbGVhdmVzOiB0aGlzLnRyYW5zZm9ybVN0YXRlKGRpZmYubGVhdmVzKSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmICghb25Kb2luKSB7XHJcbiAgICAgICAgICAgIG9uSm9pbiA9ICgpID0+IHsgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFvbkxlYXZlKSB7XHJcbiAgICAgICAgICAgIG9uTGVhdmUgPSAoKSA9PiB7IH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubWFwKGpvaW5zLCAoa2V5LCBuZXdQcmVzZW5jZXMpID0+IHtcclxuICAgICAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50UHJlc2VuY2VzID0gKF9hID0gc3RhdGVba2V5XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogW107XHJcbiAgICAgICAgICAgIHN0YXRlW2tleV0gPSB0aGlzLmNsb25lRGVlcChuZXdQcmVzZW5jZXMpO1xyXG4gICAgICAgICAgICBpZiAoY3VycmVudFByZXNlbmNlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBqb2luZWRQcmVzZW5jZVJlZnMgPSBzdGF0ZVtrZXldLm1hcCgobSkgPT4gbS5wcmVzZW5jZV9yZWYpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY3VyUHJlc2VuY2VzID0gY3VycmVudFByZXNlbmNlcy5maWx0ZXIoKG0pID0+IGpvaW5lZFByZXNlbmNlUmVmcy5pbmRleE9mKG0ucHJlc2VuY2VfcmVmKSA8IDApO1xyXG4gICAgICAgICAgICAgICAgc3RhdGVba2V5XS51bnNoaWZ0KC4uLmN1clByZXNlbmNlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb25Kb2luKGtleSwgY3VycmVudFByZXNlbmNlcywgbmV3UHJlc2VuY2VzKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLm1hcChsZWF2ZXMsIChrZXksIGxlZnRQcmVzZW5jZXMpID0+IHtcclxuICAgICAgICAgICAgbGV0IGN1cnJlbnRQcmVzZW5jZXMgPSBzdGF0ZVtrZXldO1xyXG4gICAgICAgICAgICBpZiAoIWN1cnJlbnRQcmVzZW5jZXMpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IHByZXNlbmNlUmVmc1RvUmVtb3ZlID0gbGVmdFByZXNlbmNlcy5tYXAoKG0pID0+IG0ucHJlc2VuY2VfcmVmKTtcclxuICAgICAgICAgICAgY3VycmVudFByZXNlbmNlcyA9IGN1cnJlbnRQcmVzZW5jZXMuZmlsdGVyKChtKSA9PiBwcmVzZW5jZVJlZnNUb1JlbW92ZS5pbmRleE9mKG0ucHJlc2VuY2VfcmVmKSA8IDApO1xyXG4gICAgICAgICAgICBzdGF0ZVtrZXldID0gY3VycmVudFByZXNlbmNlcztcclxuICAgICAgICAgICAgb25MZWF2ZShrZXksIGN1cnJlbnRQcmVzZW5jZXMsIGxlZnRQcmVzZW5jZXMpO1xyXG4gICAgICAgICAgICBpZiAoY3VycmVudFByZXNlbmNlcy5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgICAgICBkZWxldGUgc3RhdGVba2V5XTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gc3RhdGU7XHJcbiAgICB9XHJcbiAgICAvKiogQGludGVybmFsICovXHJcbiAgICBzdGF0aWMgbWFwKG9iaiwgZnVuYykge1xyXG4gICAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopLm1hcCgoa2V5KSA9PiBmdW5jKGtleSwgb2JqW2tleV0pKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlICdtZXRhcycga2V5XHJcbiAgICAgKiBDaGFuZ2UgJ3BoeF9yZWYnIHRvICdwcmVzZW5jZV9yZWYnXHJcbiAgICAgKiBSZW1vdmUgJ3BoeF9yZWYnIGFuZCAncGh4X3JlZl9wcmV2J1xyXG4gICAgICpcclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiAvLyByZXR1cm5zIHtcclxuICAgICAqICBhYmMxMjM6IFtcclxuICAgICAqICAgIHsgcHJlc2VuY2VfcmVmOiAnMicsIHVzZXJfaWQ6IDEgfSxcclxuICAgICAqICAgIHsgcHJlc2VuY2VfcmVmOiAnMycsIHVzZXJfaWQ6IDIgfVxyXG4gICAgICogIF1cclxuICAgICAqIH1cclxuICAgICAqIFJlYWx0aW1lUHJlc2VuY2UudHJhbnNmb3JtU3RhdGUoe1xyXG4gICAgICogIGFiYzEyMzoge1xyXG4gICAgICogICAgbWV0YXM6IFtcclxuICAgICAqICAgICAgeyBwaHhfcmVmOiAnMicsIHBoeF9yZWZfcHJldjogJzEnIHVzZXJfaWQ6IDEgfSxcclxuICAgICAqICAgICAgeyBwaHhfcmVmOiAnMycsIHVzZXJfaWQ6IDIgfVxyXG4gICAgICogICAgXVxyXG4gICAgICogIH1cclxuICAgICAqIH0pXHJcbiAgICAgKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyB0cmFuc2Zvcm1TdGF0ZShzdGF0ZSkge1xyXG4gICAgICAgIHN0YXRlID0gdGhpcy5jbG9uZURlZXAoc3RhdGUpO1xyXG4gICAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzdGF0ZSkucmVkdWNlKChuZXdTdGF0ZSwga2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByZXNlbmNlcyA9IHN0YXRlW2tleV07XHJcbiAgICAgICAgICAgIGlmICgnbWV0YXMnIGluIHByZXNlbmNlcykge1xyXG4gICAgICAgICAgICAgICAgbmV3U3RhdGVba2V5XSA9IHByZXNlbmNlcy5tZXRhcy5tYXAoKHByZXNlbmNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJlc2VuY2VbJ3ByZXNlbmNlX3JlZiddID0gcHJlc2VuY2VbJ3BoeF9yZWYnXTtcclxuICAgICAgICAgICAgICAgICAgICBkZWxldGUgcHJlc2VuY2VbJ3BoeF9yZWYnXTtcclxuICAgICAgICAgICAgICAgICAgICBkZWxldGUgcHJlc2VuY2VbJ3BoeF9yZWZfcHJldiddO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmVzZW5jZTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbmV3U3RhdGVba2V5XSA9IHByZXNlbmNlcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7XHJcbiAgICAgICAgfSwge30pO1xyXG4gICAgfVxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgc3RhdGljIGNsb25lRGVlcChvYmopIHtcclxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKTtcclxuICAgIH1cclxuICAgIC8qKiBAaW50ZXJuYWwgKi9cclxuICAgIG9uSm9pbihjYWxsYmFjaykge1xyXG4gICAgICAgIHRoaXMuY2FsbGVyLm9uSm9pbiA9IGNhbGxiYWNrO1xyXG4gICAgfVxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgb25MZWF2ZShjYWxsYmFjaykge1xyXG4gICAgICAgIHRoaXMuY2FsbGVyLm9uTGVhdmUgPSBjYWxsYmFjaztcclxuICAgIH1cclxuICAgIC8qKiBAaW50ZXJuYWwgKi9cclxuICAgIG9uU3luYyhjYWxsYmFjaykge1xyXG4gICAgICAgIHRoaXMuY2FsbGVyLm9uU3luYyA9IGNhbGxiYWNrO1xyXG4gICAgfVxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgaW5QZW5kaW5nU3luY1N0YXRlKCkge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5qb2luUmVmIHx8IHRoaXMuam9pblJlZiAhPT0gdGhpcy5jaGFubmVsLl9qb2luUmVmKCk7XHJcbiAgICB9XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UmVhbHRpbWVQcmVzZW5jZS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/index.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/@supabase/realtime-js/dist/module/index.js ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ REALTIME_CHANNEL_STATES: function() { return /* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__.REALTIME_CHANNEL_STATES; },\n/* harmony export */ REALTIME_LISTEN_TYPES: function() { return /* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__.REALTIME_LISTEN_TYPES; },\n/* harmony export */ REALTIME_POSTGRES_CHANGES_LISTEN_EVENT: function() { return /* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__.REALTIME_POSTGRES_CHANGES_LISTEN_EVENT; },\n/* harmony export */ REALTIME_PRESENCE_LISTEN_EVENTS: function() { return /* reexport safe */ _RealtimePresence__WEBPACK_IMPORTED_MODULE_2__.REALTIME_PRESENCE_LISTEN_EVENTS; },\n/* harmony export */ REALTIME_SUBSCRIBE_STATES: function() { return /* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__.REALTIME_SUBSCRIBE_STATES; },\n/* harmony export */ RealtimeChannel: function() { return /* reexport safe */ _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; },\n/* harmony export */ RealtimeClient: function() { return /* reexport safe */ _RealtimeClient__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; },\n/* harmony export */ RealtimePresence: function() { return /* reexport safe */ _RealtimePresence__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; }\n/* harmony export */ });\n/* harmony import */ var _RealtimeClient__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RealtimeClient */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js\");\n/* harmony import */ var _RealtimeChannel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RealtimeChannel */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js\");\n/* harmony import */ var _RealtimePresence__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RealtimePresence */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js\");\n\r\n\r\n\r\n\r\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBOEM7QUFDMEg7QUFDaEY7QUFDMEg7QUFDbE4iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9pbmRleC5qcz83ODFkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFsdGltZUNsaWVudCBmcm9tICcuL1JlYWx0aW1lQ2xpZW50JztcclxuaW1wb3J0IFJlYWx0aW1lQ2hhbm5lbCwgeyBSRUFMVElNRV9MSVNURU5fVFlQRVMsIFJFQUxUSU1FX1BPU1RHUkVTX0NIQU5HRVNfTElTVEVOX0VWRU5ULCBSRUFMVElNRV9TVUJTQ1JJQkVfU1RBVEVTLCBSRUFMVElNRV9DSEFOTkVMX1NUQVRFUywgfSBmcm9tICcuL1JlYWx0aW1lQ2hhbm5lbCc7XHJcbmltcG9ydCBSZWFsdGltZVByZXNlbmNlLCB7IFJFQUxUSU1FX1BSRVNFTkNFX0xJU1RFTl9FVkVOVFMsIH0gZnJvbSAnLi9SZWFsdGltZVByZXNlbmNlJztcclxuZXhwb3J0IHsgUmVhbHRpbWVQcmVzZW5jZSwgUmVhbHRpbWVDaGFubmVsLCBSZWFsdGltZUNsaWVudCwgUkVBTFRJTUVfTElTVEVOX1RZUEVTLCBSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVCwgUkVBTFRJTUVfUFJFU0VOQ0VfTElTVEVOX0VWRU5UUywgUkVBTFRJTUVfU1VCU0NSSUJFX1NUQVRFUywgUkVBTFRJTUVfQ0hBTk5FTF9TVEFURVMsIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/index.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/@supabase/realtime-js/dist/module/lib/constants.js ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CHANNEL_EVENTS: function() { return /* binding */ CHANNEL_EVENTS; },\n/* harmony export */ CHANNEL_STATES: function() { return /* binding */ CHANNEL_STATES; },\n/* harmony export */ CONNECTION_STATE: function() { return /* binding */ CONNECTION_STATE; },\n/* harmony export */ DEFAULT_TIMEOUT: function() { return /* binding */ DEFAULT_TIMEOUT; },\n/* harmony export */ DEFAULT_VERSION: function() { return /* binding */ DEFAULT_VERSION; },\n/* harmony export */ SOCKET_STATES: function() { return /* binding */ SOCKET_STATES; },\n/* harmony export */ TRANSPORTS: function() { return /* binding */ TRANSPORTS; },\n/* harmony export */ VERSION: function() { return /* binding */ VERSION; },\n/* harmony export */ VSN: function() { return /* binding */ VSN; },\n/* harmony export */ WS_CLOSE_NORMAL: function() { return /* binding */ WS_CLOSE_NORMAL; }\n/* harmony export */ });\n/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/version.js\");\n\r\nconst DEFAULT_VERSION = `realtime-js/${_version__WEBPACK_IMPORTED_MODULE_0__.version}`;\r\nconst VSN = '1.0.0';\r\nconst VERSION = _version__WEBPACK_IMPORTED_MODULE_0__.version;\r\nconst DEFAULT_TIMEOUT = 10000;\r\nconst WS_CLOSE_NORMAL = 1000;\r\nvar SOCKET_STATES;\r\n(function (SOCKET_STATES) {\r\n SOCKET_STATES[SOCKET_STATES[\"connecting\"] = 0] = \"connecting\";\r\n SOCKET_STATES[SOCKET_STATES[\"open\"] = 1] = \"open\";\r\n SOCKET_STATES[SOCKET_STATES[\"closing\"] = 2] = \"closing\";\r\n SOCKET_STATES[SOCKET_STATES[\"closed\"] = 3] = \"closed\";\r\n})(SOCKET_STATES || (SOCKET_STATES = {}));\r\nvar CHANNEL_STATES;\r\n(function (CHANNEL_STATES) {\r\n CHANNEL_STATES[\"closed\"] = \"closed\";\r\n CHANNEL_STATES[\"errored\"] = \"errored\";\r\n CHANNEL_STATES[\"joined\"] = \"joined\";\r\n CHANNEL_STATES[\"joining\"] = \"joining\";\r\n CHANNEL_STATES[\"leaving\"] = \"leaving\";\r\n})(CHANNEL_STATES || (CHANNEL_STATES = {}));\r\nvar CHANNEL_EVENTS;\r\n(function (CHANNEL_EVENTS) {\r\n CHANNEL_EVENTS[\"close\"] = \"phx_close\";\r\n CHANNEL_EVENTS[\"error\"] = \"phx_error\";\r\n CHANNEL_EVENTS[\"join\"] = \"phx_join\";\r\n CHANNEL_EVENTS[\"reply\"] = \"phx_reply\";\r\n CHANNEL_EVENTS[\"leave\"] = \"phx_leave\";\r\n CHANNEL_EVENTS[\"access_token\"] = \"access_token\";\r\n})(CHANNEL_EVENTS || (CHANNEL_EVENTS = {}));\r\nvar TRANSPORTS;\r\n(function (TRANSPORTS) {\r\n TRANSPORTS[\"websocket\"] = \"websocket\";\r\n})(TRANSPORTS || (TRANSPORTS = {}));\r\nvar CONNECTION_STATE;\r\n(function (CONNECTION_STATE) {\r\n CONNECTION_STATE[\"Connecting\"] = \"connecting\";\r\n CONNECTION_STATE[\"Open\"] = \"open\";\r\n CONNECTION_STATE[\"Closing\"] = \"closing\";\r\n CONNECTION_STATE[\"Closed\"] = \"closed\";\r\n})(CONNECTION_STATE || (CONNECTION_STATE = {}));\r\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvbGliL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFvQztBQUM3Qix1Q0FBdUMsNkNBQU8sQ0FBQztBQUMvQztBQUNBLGdCQUFnQiw2Q0FBTztBQUN2QjtBQUNBO0FBQ0E7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxzQ0FBc0M7QUFDaEM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHdDQUF3QztBQUNsQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx3Q0FBd0M7QUFDbEM7QUFDUDtBQUNBO0FBQ0EsQ0FBQyxnQ0FBZ0M7QUFDMUI7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyw0Q0FBNEM7QUFDN0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9saWIvY29uc3RhbnRzLmpzP2UwOTIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gJy4vdmVyc2lvbic7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1ZFUlNJT04gPSBgcmVhbHRpbWUtanMvJHt2ZXJzaW9ufWA7XHJcbmV4cG9ydCBjb25zdCBWU04gPSAnMS4wLjAnO1xyXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IHZlcnNpb247XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RJTUVPVVQgPSAxMDAwMDtcclxuZXhwb3J0IGNvbnN0IFdTX0NMT1NFX05PUk1BTCA9IDEwMDA7XHJcbmV4cG9ydCB2YXIgU09DS0VUX1NUQVRFUztcclxuKGZ1bmN0aW9uIChTT0NLRVRfU1RBVEVTKSB7XHJcbiAgICBTT0NLRVRfU1RBVEVTW1NPQ0tFVF9TVEFURVNbXCJjb25uZWN0aW5nXCJdID0gMF0gPSBcImNvbm5lY3RpbmdcIjtcclxuICAgIFNPQ0tFVF9TVEFURVNbU09DS0VUX1NUQVRFU1tcIm9wZW5cIl0gPSAxXSA9IFwib3BlblwiO1xyXG4gICAgU09DS0VUX1NUQVRFU1tTT0NLRVRfU1RBVEVTW1wiY2xvc2luZ1wiXSA9IDJdID0gXCJjbG9zaW5nXCI7XHJcbiAgICBTT0NLRVRfU1RBVEVTW1NPQ0tFVF9TVEFURVNbXCJjbG9zZWRcIl0gPSAzXSA9IFwiY2xvc2VkXCI7XHJcbn0pKFNPQ0tFVF9TVEFURVMgfHwgKFNPQ0tFVF9TVEFURVMgPSB7fSkpO1xyXG5leHBvcnQgdmFyIENIQU5ORUxfU1RBVEVTO1xyXG4oZnVuY3Rpb24gKENIQU5ORUxfU1RBVEVTKSB7XHJcbiAgICBDSEFOTkVMX1NUQVRFU1tcImNsb3NlZFwiXSA9IFwiY2xvc2VkXCI7XHJcbiAgICBDSEFOTkVMX1NUQVRFU1tcImVycm9yZWRcIl0gPSBcImVycm9yZWRcIjtcclxuICAgIENIQU5ORUxfU1RBVEVTW1wiam9pbmVkXCJdID0gXCJqb2luZWRcIjtcclxuICAgIENIQU5ORUxfU1RBVEVTW1wiam9pbmluZ1wiXSA9IFwiam9pbmluZ1wiO1xyXG4gICAgQ0hBTk5FTF9TVEFURVNbXCJsZWF2aW5nXCJdID0gXCJsZWF2aW5nXCI7XHJcbn0pKENIQU5ORUxfU1RBVEVTIHx8IChDSEFOTkVMX1NUQVRFUyA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgQ0hBTk5FTF9FVkVOVFM7XHJcbihmdW5jdGlvbiAoQ0hBTk5FTF9FVkVOVFMpIHtcclxuICAgIENIQU5ORUxfRVZFTlRTW1wiY2xvc2VcIl0gPSBcInBoeF9jbG9zZVwiO1xyXG4gICAgQ0hBTk5FTF9FVkVOVFNbXCJlcnJvclwiXSA9IFwicGh4X2Vycm9yXCI7XHJcbiAgICBDSEFOTkVMX0VWRU5UU1tcImpvaW5cIl0gPSBcInBoeF9qb2luXCI7XHJcbiAgICBDSEFOTkVMX0VWRU5UU1tcInJlcGx5XCJdID0gXCJwaHhfcmVwbHlcIjtcclxuICAgIENIQU5ORUxfRVZFTlRTW1wibGVhdmVcIl0gPSBcInBoeF9sZWF2ZVwiO1xyXG4gICAgQ0hBTk5FTF9FVkVOVFNbXCJhY2Nlc3NfdG9rZW5cIl0gPSBcImFjY2Vzc190b2tlblwiO1xyXG59KShDSEFOTkVMX0VWRU5UUyB8fCAoQ0hBTk5FTF9FVkVOVFMgPSB7fSkpO1xyXG5leHBvcnQgdmFyIFRSQU5TUE9SVFM7XHJcbihmdW5jdGlvbiAoVFJBTlNQT1JUUykge1xyXG4gICAgVFJBTlNQT1JUU1tcIndlYnNvY2tldFwiXSA9IFwid2Vic29ja2V0XCI7XHJcbn0pKFRSQU5TUE9SVFMgfHwgKFRSQU5TUE9SVFMgPSB7fSkpO1xyXG5leHBvcnQgdmFyIENPTk5FQ1RJT05fU1RBVEU7XHJcbihmdW5jdGlvbiAoQ09OTkVDVElPTl9TVEFURSkge1xyXG4gICAgQ09OTkVDVElPTl9TVEFURVtcIkNvbm5lY3RpbmdcIl0gPSBcImNvbm5lY3RpbmdcIjtcclxuICAgIENPTk5FQ1RJT05fU1RBVEVbXCJPcGVuXCJdID0gXCJvcGVuXCI7XHJcbiAgICBDT05ORUNUSU9OX1NUQVRFW1wiQ2xvc2luZ1wiXSA9IFwiY2xvc2luZ1wiO1xyXG4gICAgQ09OTkVDVElPTl9TVEFURVtcIkNsb3NlZFwiXSA9IFwiY2xvc2VkXCI7XHJcbn0pKENPTk5FQ1RJT05fU1RBVEUgfHwgKENPTk5FQ1RJT05fU1RBVEUgPSB7fSkpO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/push.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/@supabase/realtime-js/dist/module/lib/push.js ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Push; }\n/* harmony export */ });\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/constants */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/constants.js\");\n\r\nclass Push {\r\n /**\r\n * Initializes the Push\r\n *\r\n * @param channel The Channel\r\n * @param event The event, for example `\"phx_join\"`\r\n * @param payload The payload, for example `{user_id: 123}`\r\n * @param timeout The push timeout in milliseconds\r\n */\r\n constructor(channel, event, payload = {}, timeout = _lib_constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_TIMEOUT) {\r\n this.channel = channel;\r\n this.event = event;\r\n this.payload = payload;\r\n this.timeout = timeout;\r\n this.sent = false;\r\n this.timeoutTimer = undefined;\r\n this.ref = '';\r\n this.receivedResp = null;\r\n this.recHooks = [];\r\n this.refEvent = null;\r\n }\r\n resend(timeout) {\r\n this.timeout = timeout;\r\n this._cancelRefEvent();\r\n this.ref = '';\r\n this.refEvent = null;\r\n this.receivedResp = null;\r\n this.sent = false;\r\n this.send();\r\n }\r\n send() {\r\n if (this._hasReceived('timeout')) {\r\n return;\r\n }\r\n this.startTimeout();\r\n this.sent = true;\r\n this.channel.socket.push({\r\n topic: this.channel.topic,\r\n event: this.event,\r\n payload: this.payload,\r\n ref: this.ref,\r\n join_ref: this.channel._joinRef(),\r\n });\r\n }\r\n updatePayload(payload) {\r\n this.payload = Object.assign(Object.assign({}, this.payload), payload);\r\n }\r\n receive(status, callback) {\r\n var _a;\r\n if (this._hasReceived(status)) {\r\n callback((_a = this.receivedResp) === null || _a === void 0 ? void 0 : _a.response);\r\n }\r\n this.recHooks.push({ status, callback });\r\n return this;\r\n }\r\n startTimeout() {\r\n if (this.timeoutTimer) {\r\n return;\r\n }\r\n this.ref = this.channel.socket._makeRef();\r\n this.refEvent = this.channel._replyEventName(this.ref);\r\n const callback = (payload) => {\r\n this._cancelRefEvent();\r\n this._cancelTimeout();\r\n this.receivedResp = payload;\r\n this._matchReceive(payload);\r\n };\r\n this.channel._on(this.refEvent, {}, callback);\r\n this.timeoutTimer = setTimeout(() => {\r\n this.trigger('timeout', {});\r\n }, this.timeout);\r\n }\r\n trigger(status, response) {\r\n if (this.refEvent)\r\n this.channel._trigger(this.refEvent, { status, response });\r\n }\r\n destroy() {\r\n this._cancelRefEvent();\r\n this._cancelTimeout();\r\n }\r\n _cancelRefEvent() {\r\n if (!this.refEvent) {\r\n return;\r\n }\r\n this.channel._off(this.refEvent, {});\r\n }\r\n _cancelTimeout() {\r\n clearTimeout(this.timeoutTimer);\r\n this.timeoutTimer = undefined;\r\n }\r\n _matchReceive({ status, response, }) {\r\n this.recHooks\r\n .filter((h) => h.status === status)\r\n .forEach((h) => h.callback(response));\r\n }\r\n _hasReceived(status) {\r\n return this.receivedResp && this.receivedResp.status === status;\r\n }\r\n}\r\n//# sourceMappingURL=push.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvbGliL3B1c2guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBbUQ7QUFDcEM7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlELGFBQWE7QUFDOUQ7QUFDQTtBQUNBLDRDQUE0QyxZQUFZLDJEQUFlO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLHFEQUFxRDtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsa0JBQWtCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEM7QUFDMUM7QUFDQSxzQ0FBc0M7QUFDdEMsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLG1EQUFtRCxrQkFBa0I7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsbUJBQW1CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL2xpYi9wdXNoLmpzP2FjYzEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVGQVVMVF9USU1FT1VUIH0gZnJvbSAnLi4vbGliL2NvbnN0YW50cyc7XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFB1c2gge1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyB0aGUgUHVzaFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjaGFubmVsIFRoZSBDaGFubmVsXHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50LCBmb3IgZXhhbXBsZSBgXCJwaHhfam9pblwiYFxyXG4gICAgICogQHBhcmFtIHBheWxvYWQgVGhlIHBheWxvYWQsIGZvciBleGFtcGxlIGB7dXNlcl9pZDogMTIzfWBcclxuICAgICAqIEBwYXJhbSB0aW1lb3V0IFRoZSBwdXNoIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGNoYW5uZWwsIGV2ZW50LCBwYXlsb2FkID0ge30sIHRpbWVvdXQgPSBERUZBVUxUX1RJTUVPVVQpIHtcclxuICAgICAgICB0aGlzLmNoYW5uZWwgPSBjaGFubmVsO1xyXG4gICAgICAgIHRoaXMuZXZlbnQgPSBldmVudDtcclxuICAgICAgICB0aGlzLnBheWxvYWQgPSBwYXlsb2FkO1xyXG4gICAgICAgIHRoaXMudGltZW91dCA9IHRpbWVvdXQ7XHJcbiAgICAgICAgdGhpcy5zZW50ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW1lb3V0VGltZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5yZWYgPSAnJztcclxuICAgICAgICB0aGlzLnJlY2VpdmVkUmVzcCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWNIb29rcyA9IFtdO1xyXG4gICAgICAgIHRoaXMucmVmRXZlbnQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgcmVzZW5kKHRpbWVvdXQpIHtcclxuICAgICAgICB0aGlzLnRpbWVvdXQgPSB0aW1lb3V0O1xyXG4gICAgICAgIHRoaXMuX2NhbmNlbFJlZkV2ZW50KCk7XHJcbiAgICAgICAgdGhpcy5yZWYgPSAnJztcclxuICAgICAgICB0aGlzLnJlZkV2ZW50ID0gbnVsbDtcclxuICAgICAgICB0aGlzLnJlY2VpdmVkUmVzcCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5zZW50ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zZW5kKCk7XHJcbiAgICB9XHJcbiAgICBzZW5kKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9oYXNSZWNlaXZlZCgndGltZW91dCcpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVvdXQoKTtcclxuICAgICAgICB0aGlzLnNlbnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hhbm5lbC5zb2NrZXQucHVzaCh7XHJcbiAgICAgICAgICAgIHRvcGljOiB0aGlzLmNoYW5uZWwudG9waWMsXHJcbiAgICAgICAgICAgIGV2ZW50OiB0aGlzLmV2ZW50LFxyXG4gICAgICAgICAgICBwYXlsb2FkOiB0aGlzLnBheWxvYWQsXHJcbiAgICAgICAgICAgIHJlZjogdGhpcy5yZWYsXHJcbiAgICAgICAgICAgIGpvaW5fcmVmOiB0aGlzLmNoYW5uZWwuX2pvaW5SZWYoKSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHVwZGF0ZVBheWxvYWQocGF5bG9hZCkge1xyXG4gICAgICAgIHRoaXMucGF5bG9hZCA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5wYXlsb2FkKSwgcGF5bG9hZCk7XHJcbiAgICB9XHJcbiAgICByZWNlaXZlKHN0YXR1cywgY2FsbGJhY2spIHtcclxuICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgaWYgKHRoaXMuX2hhc1JlY2VpdmVkKHN0YXR1cykpIHtcclxuICAgICAgICAgICAgY2FsbGJhY2soKF9hID0gdGhpcy5yZWNlaXZlZFJlc3ApID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXNwb25zZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVjSG9va3MucHVzaCh7IHN0YXR1cywgY2FsbGJhY2sgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICBzdGFydFRpbWVvdXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudGltZW91dFRpbWVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZWYgPSB0aGlzLmNoYW5uZWwuc29ja2V0Ll9tYWtlUmVmKCk7XHJcbiAgICAgICAgdGhpcy5yZWZFdmVudCA9IHRoaXMuY2hhbm5lbC5fcmVwbHlFdmVudE5hbWUodGhpcy5yZWYpO1xyXG4gICAgICAgIGNvbnN0IGNhbGxiYWNrID0gKHBheWxvYWQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fY2FuY2VsUmVmRXZlbnQoKTtcclxuICAgICAgICAgICAgdGhpcy5fY2FuY2VsVGltZW91dCgpO1xyXG4gICAgICAgICAgICB0aGlzLnJlY2VpdmVkUmVzcCA9IHBheWxvYWQ7XHJcbiAgICAgICAgICAgIHRoaXMuX21hdGNoUmVjZWl2ZShwYXlsb2FkKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuY2hhbm5lbC5fb24odGhpcy5yZWZFdmVudCwge30sIGNhbGxiYWNrKTtcclxuICAgICAgICB0aGlzLnRpbWVvdXRUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXIoJ3RpbWVvdXQnLCB7fSk7XHJcbiAgICAgICAgfSwgdGhpcy50aW1lb3V0KTtcclxuICAgIH1cclxuICAgIHRyaWdnZXIoc3RhdHVzLCByZXNwb25zZSkge1xyXG4gICAgICAgIGlmICh0aGlzLnJlZkV2ZW50KVxyXG4gICAgICAgICAgICB0aGlzLmNoYW5uZWwuX3RyaWdnZXIodGhpcy5yZWZFdmVudCwgeyBzdGF0dXMsIHJlc3BvbnNlIH0pO1xyXG4gICAgfVxyXG4gICAgZGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLl9jYW5jZWxSZWZFdmVudCgpO1xyXG4gICAgICAgIHRoaXMuX2NhbmNlbFRpbWVvdXQoKTtcclxuICAgIH1cclxuICAgIF9jYW5jZWxSZWZFdmVudCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMucmVmRXZlbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNoYW5uZWwuX29mZih0aGlzLnJlZkV2ZW50LCB7fSk7XHJcbiAgICB9XHJcbiAgICBfY2FuY2VsVGltZW91dCgpIHtcclxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0VGltZXIpO1xyXG4gICAgICAgIHRoaXMudGltZW91dFRpbWVyID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgX21hdGNoUmVjZWl2ZSh7IHN0YXR1cywgcmVzcG9uc2UsIH0pIHtcclxuICAgICAgICB0aGlzLnJlY0hvb2tzXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKGgpID0+IGguc3RhdHVzID09PSBzdGF0dXMpXHJcbiAgICAgICAgICAgIC5mb3JFYWNoKChoKSA9PiBoLmNhbGxiYWNrKHJlc3BvbnNlKSk7XHJcbiAgICB9XHJcbiAgICBfaGFzUmVjZWl2ZWQoc3RhdHVzKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVjZWl2ZWRSZXNwICYmIHRoaXMucmVjZWl2ZWRSZXNwLnN0YXR1cyA9PT0gc3RhdHVzO1xyXG4gICAgfVxyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXB1c2guanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/push.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/serializer.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/@supabase/realtime-js/dist/module/lib/serializer.js ***!
|
||
\**************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Serializer; }\n/* harmony export */ });\n// This file draws heavily from https://github.com/phoenixframework/phoenix/commit/cf098e9cf7a44ee6479d31d911a97d3c7430c6fe\r\n// License: https://github.com/phoenixframework/phoenix/blob/master/LICENSE.md\r\nclass Serializer {\r\n constructor() {\r\n this.HEADER_LENGTH = 1;\r\n }\r\n decode(rawPayload, callback) {\r\n if (rawPayload.constructor === ArrayBuffer) {\r\n return callback(this._binaryDecode(rawPayload));\r\n }\r\n if (typeof rawPayload === 'string') {\r\n return callback(JSON.parse(rawPayload));\r\n }\r\n return callback({});\r\n }\r\n _binaryDecode(buffer) {\r\n const view = new DataView(buffer);\r\n const decoder = new TextDecoder();\r\n return this._decodeBroadcast(buffer, view, decoder);\r\n }\r\n _decodeBroadcast(buffer, view, decoder) {\r\n const topicSize = view.getUint8(1);\r\n const eventSize = view.getUint8(2);\r\n let offset = this.HEADER_LENGTH + 2;\r\n const topic = decoder.decode(buffer.slice(offset, offset + topicSize));\r\n offset = offset + topicSize;\r\n const event = decoder.decode(buffer.slice(offset, offset + eventSize));\r\n offset = offset + eventSize;\r\n const data = JSON.parse(decoder.decode(buffer.slice(offset, buffer.byteLength)));\r\n return { ref: null, topic: topic, event: event, payload: data };\r\n }\r\n}\r\n//# sourceMappingURL=serializer.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvbGliL3NlcmlhbGl6ZXIuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9saWIvc2VyaWFsaXplci5qcz80ZTBiIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBkcmF3cyBoZWF2aWx5IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3Bob2VuaXhmcmFtZXdvcmsvcGhvZW5peC9jb21taXQvY2YwOThlOWNmN2E0NGVlNjQ3OWQzMWQ5MTFhOTdkM2M3NDMwYzZmZVxyXG4vLyBMaWNlbnNlOiBodHRwczovL2dpdGh1Yi5jb20vcGhvZW5peGZyYW1ld29yay9waG9lbml4L2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWRcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VyaWFsaXplciB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLkhFQURFUl9MRU5HVEggPSAxO1xyXG4gICAgfVxyXG4gICAgZGVjb2RlKHJhd1BheWxvYWQsIGNhbGxiYWNrKSB7XHJcbiAgICAgICAgaWYgKHJhd1BheWxvYWQuY29uc3RydWN0b3IgPT09IEFycmF5QnVmZmVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayh0aGlzLl9iaW5hcnlEZWNvZGUocmF3UGF5bG9hZCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZW9mIHJhd1BheWxvYWQgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhKU09OLnBhcnNlKHJhd1BheWxvYWQpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHt9KTtcclxuICAgIH1cclxuICAgIF9iaW5hcnlEZWNvZGUoYnVmZmVyKSB7XHJcbiAgICAgICAgY29uc3QgdmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIpO1xyXG4gICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGVjb2RlQnJvYWRjYXN0KGJ1ZmZlciwgdmlldywgZGVjb2Rlcik7XHJcbiAgICB9XHJcbiAgICBfZGVjb2RlQnJvYWRjYXN0KGJ1ZmZlciwgdmlldywgZGVjb2Rlcikge1xyXG4gICAgICAgIGNvbnN0IHRvcGljU2l6ZSA9IHZpZXcuZ2V0VWludDgoMSk7XHJcbiAgICAgICAgY29uc3QgZXZlbnRTaXplID0gdmlldy5nZXRVaW50OCgyKTtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gdGhpcy5IRUFERVJfTEVOR1RIICsgMjtcclxuICAgICAgICBjb25zdCB0b3BpYyA9IGRlY29kZXIuZGVjb2RlKGJ1ZmZlci5zbGljZShvZmZzZXQsIG9mZnNldCArIHRvcGljU2l6ZSkpO1xyXG4gICAgICAgIG9mZnNldCA9IG9mZnNldCArIHRvcGljU2l6ZTtcclxuICAgICAgICBjb25zdCBldmVudCA9IGRlY29kZXIuZGVjb2RlKGJ1ZmZlci5zbGljZShvZmZzZXQsIG9mZnNldCArIGV2ZW50U2l6ZSkpO1xyXG4gICAgICAgIG9mZnNldCA9IG9mZnNldCArIGV2ZW50U2l6ZTtcclxuICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShkZWNvZGVyLmRlY29kZShidWZmZXIuc2xpY2Uob2Zmc2V0LCBidWZmZXIuYnl0ZUxlbmd0aCkpKTtcclxuICAgICAgICByZXR1cm4geyByZWY6IG51bGwsIHRvcGljOiB0b3BpYywgZXZlbnQ6IGV2ZW50LCBwYXlsb2FkOiBkYXRhIH07XHJcbiAgICB9XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VyaWFsaXplci5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/serializer.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/timer.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/@supabase/realtime-js/dist/module/lib/timer.js ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Timer; }\n/* harmony export */ });\n/**\r\n * Creates a timer that accepts a `timerCalc` function to perform calculated timeout retries, such as exponential backoff.\r\n *\r\n * @example\r\n * let reconnectTimer = new Timer(() => this.connect(), function(tries){\r\n * return [1000, 5000, 10000][tries - 1] || 10000\r\n * })\r\n * reconnectTimer.scheduleTimeout() // fires after 1000\r\n * reconnectTimer.scheduleTimeout() // fires after 5000\r\n * reconnectTimer.reset()\r\n * reconnectTimer.scheduleTimeout() // fires after 1000\r\n */\r\nclass Timer {\r\n constructor(callback, timerCalc) {\r\n this.callback = callback;\r\n this.timerCalc = timerCalc;\r\n this.timer = undefined;\r\n this.tries = 0;\r\n this.callback = callback;\r\n this.timerCalc = timerCalc;\r\n }\r\n reset() {\r\n this.tries = 0;\r\n clearTimeout(this.timer);\r\n }\r\n // Cancels any previous scheduleTimeout and schedules callback\r\n scheduleTimeout() {\r\n clearTimeout(this.timer);\r\n this.timer = setTimeout(() => {\r\n this.tries = this.tries + 1;\r\n this.callback();\r\n }, this.timerCalc(this.tries + 1));\r\n }\r\n}\r\n//# sourceMappingURL=timer.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvbGliL3RpbWVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL2xpYi90aW1lci5qcz81NWZjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVzIGEgdGltZXIgdGhhdCBhY2NlcHRzIGEgYHRpbWVyQ2FsY2AgZnVuY3Rpb24gdG8gcGVyZm9ybSBjYWxjdWxhdGVkIHRpbWVvdXQgcmV0cmllcywgc3VjaCBhcyBleHBvbmVudGlhbCBiYWNrb2ZmLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiAgICBsZXQgcmVjb25uZWN0VGltZXIgPSBuZXcgVGltZXIoKCkgPT4gdGhpcy5jb25uZWN0KCksIGZ1bmN0aW9uKHRyaWVzKXtcclxuICogICAgICByZXR1cm4gWzEwMDAsIDUwMDAsIDEwMDAwXVt0cmllcyAtIDFdIHx8IDEwMDAwXHJcbiAqICAgIH0pXHJcbiAqICAgIHJlY29ubmVjdFRpbWVyLnNjaGVkdWxlVGltZW91dCgpIC8vIGZpcmVzIGFmdGVyIDEwMDBcclxuICogICAgcmVjb25uZWN0VGltZXIuc2NoZWR1bGVUaW1lb3V0KCkgLy8gZmlyZXMgYWZ0ZXIgNTAwMFxyXG4gKiAgICByZWNvbm5lY3RUaW1lci5yZXNldCgpXHJcbiAqICAgIHJlY29ubmVjdFRpbWVyLnNjaGVkdWxlVGltZW91dCgpIC8vIGZpcmVzIGFmdGVyIDEwMDBcclxuICovXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRpbWVyIHtcclxuICAgIGNvbnN0cnVjdG9yKGNhbGxiYWNrLCB0aW1lckNhbGMpIHtcclxuICAgICAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XHJcbiAgICAgICAgdGhpcy50aW1lckNhbGMgPSB0aW1lckNhbGM7XHJcbiAgICAgICAgdGhpcy50aW1lciA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLnRyaWVzID0gMDtcclxuICAgICAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XHJcbiAgICAgICAgdGhpcy50aW1lckNhbGMgPSB0aW1lckNhbGM7XHJcbiAgICB9XHJcbiAgICByZXNldCgpIHtcclxuICAgICAgICB0aGlzLnRyaWVzID0gMDtcclxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lcik7XHJcbiAgICB9XHJcbiAgICAvLyBDYW5jZWxzIGFueSBwcmV2aW91cyBzY2hlZHVsZVRpbWVvdXQgYW5kIHNjaGVkdWxlcyBjYWxsYmFja1xyXG4gICAgc2NoZWR1bGVUaW1lb3V0KCkge1xyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcclxuICAgICAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudHJpZXMgPSB0aGlzLnRyaWVzICsgMTtcclxuICAgICAgICAgICAgdGhpcy5jYWxsYmFjaygpO1xyXG4gICAgICAgIH0sIHRoaXMudGltZXJDYWxjKHRoaXMudHJpZXMgKyAxKSk7XHJcbiAgICB9XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGltZXIuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/timer.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/transformers.js":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/@supabase/realtime-js/dist/module/lib/transformers.js ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PostgresTypes: function() { return /* binding */ PostgresTypes; },\n/* harmony export */ convertCell: function() { return /* binding */ convertCell; },\n/* harmony export */ convertChangeData: function() { return /* binding */ convertChangeData; },\n/* harmony export */ convertColumn: function() { return /* binding */ convertColumn; },\n/* harmony export */ httpEndpointURL: function() { return /* binding */ httpEndpointURL; },\n/* harmony export */ toArray: function() { return /* binding */ toArray; },\n/* harmony export */ toBoolean: function() { return /* binding */ toBoolean; },\n/* harmony export */ toJson: function() { return /* binding */ toJson; },\n/* harmony export */ toNumber: function() { return /* binding */ toNumber; },\n/* harmony export */ toTimestampString: function() { return /* binding */ toTimestampString; }\n/* harmony export */ });\n/**\r\n * Helpers to convert the change Payload into native JS types.\r\n */\r\n// Adapted from epgsql (src/epgsql_binary.erl), this module licensed under\r\n// 3-clause BSD found here: https://raw.githubusercontent.com/epgsql/epgsql/devel/LICENSE\r\nvar PostgresTypes;\r\n(function (PostgresTypes) {\r\n PostgresTypes[\"abstime\"] = \"abstime\";\r\n PostgresTypes[\"bool\"] = \"bool\";\r\n PostgresTypes[\"date\"] = \"date\";\r\n PostgresTypes[\"daterange\"] = \"daterange\";\r\n PostgresTypes[\"float4\"] = \"float4\";\r\n PostgresTypes[\"float8\"] = \"float8\";\r\n PostgresTypes[\"int2\"] = \"int2\";\r\n PostgresTypes[\"int4\"] = \"int4\";\r\n PostgresTypes[\"int4range\"] = \"int4range\";\r\n PostgresTypes[\"int8\"] = \"int8\";\r\n PostgresTypes[\"int8range\"] = \"int8range\";\r\n PostgresTypes[\"json\"] = \"json\";\r\n PostgresTypes[\"jsonb\"] = \"jsonb\";\r\n PostgresTypes[\"money\"] = \"money\";\r\n PostgresTypes[\"numeric\"] = \"numeric\";\r\n PostgresTypes[\"oid\"] = \"oid\";\r\n PostgresTypes[\"reltime\"] = \"reltime\";\r\n PostgresTypes[\"text\"] = \"text\";\r\n PostgresTypes[\"time\"] = \"time\";\r\n PostgresTypes[\"timestamp\"] = \"timestamp\";\r\n PostgresTypes[\"timestamptz\"] = \"timestamptz\";\r\n PostgresTypes[\"timetz\"] = \"timetz\";\r\n PostgresTypes[\"tsrange\"] = \"tsrange\";\r\n PostgresTypes[\"tstzrange\"] = \"tstzrange\";\r\n})(PostgresTypes || (PostgresTypes = {}));\r\n/**\r\n * Takes an array of columns and an object of string values then converts each string value\r\n * to its mapped type.\r\n *\r\n * @param {{name: String, type: String}[]} columns\r\n * @param {Object} record\r\n * @param {Object} options The map of various options that can be applied to the mapper\r\n * @param {Array} options.skipTypes The array of types that should not be converted\r\n *\r\n * @example convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\r\n * //=>{ first_name: 'Paul', age: 33 }\r\n */\r\nconst convertChangeData = (columns, record, options = {}) => {\r\n var _a;\r\n const skipTypes = (_a = options.skipTypes) !== null && _a !== void 0 ? _a : [];\r\n return Object.keys(record).reduce((acc, rec_key) => {\r\n acc[rec_key] = convertColumn(rec_key, columns, record, skipTypes);\r\n return acc;\r\n }, {});\r\n};\r\n/**\r\n * Converts the value of an individual column.\r\n *\r\n * @param {String} columnName The column that you want to convert\r\n * @param {{name: String, type: String}[]} columns All of the columns\r\n * @param {Object} record The map of string values\r\n * @param {Array} skipTypes An array of types that should not be converted\r\n * @return {object} Useless information\r\n *\r\n * @example convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\r\n * //=> 33\r\n * @example convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\r\n * //=> \"33\"\r\n */\r\nconst convertColumn = (columnName, columns, record, skipTypes) => {\r\n const column = columns.find((x) => x.name === columnName);\r\n const colType = column === null || column === void 0 ? void 0 : column.type;\r\n const value = record[columnName];\r\n if (colType && !skipTypes.includes(colType)) {\r\n return convertCell(colType, value);\r\n }\r\n return noop(value);\r\n};\r\n/**\r\n * If the value of the cell is `null`, returns null.\r\n * Otherwise converts the string value to the correct type.\r\n * @param {String} type A postgres column type\r\n * @param {String} value The cell value\r\n *\r\n * @example convertCell('bool', 't')\r\n * //=> true\r\n * @example convertCell('int8', '10')\r\n * //=> 10\r\n * @example convertCell('_int4', '{1,2,3,4}')\r\n * //=> [1,2,3,4]\r\n */\r\nconst convertCell = (type, value) => {\r\n // if data type is an array\r\n if (type.charAt(0) === '_') {\r\n const dataType = type.slice(1, type.length);\r\n return toArray(value, dataType);\r\n }\r\n // If not null, convert to correct type.\r\n switch (type) {\r\n case PostgresTypes.bool:\r\n return toBoolean(value);\r\n case PostgresTypes.float4:\r\n case PostgresTypes.float8:\r\n case PostgresTypes.int2:\r\n case PostgresTypes.int4:\r\n case PostgresTypes.int8:\r\n case PostgresTypes.numeric:\r\n case PostgresTypes.oid:\r\n return toNumber(value);\r\n case PostgresTypes.json:\r\n case PostgresTypes.jsonb:\r\n return toJson(value);\r\n case PostgresTypes.timestamp:\r\n return toTimestampString(value); // Format to be consistent with PostgREST\r\n case PostgresTypes.abstime: // To allow users to cast it based on Timezone\r\n case PostgresTypes.date: // To allow users to cast it based on Timezone\r\n case PostgresTypes.daterange:\r\n case PostgresTypes.int4range:\r\n case PostgresTypes.int8range:\r\n case PostgresTypes.money:\r\n case PostgresTypes.reltime: // To allow users to cast it based on Timezone\r\n case PostgresTypes.text:\r\n case PostgresTypes.time: // To allow users to cast it based on Timezone\r\n case PostgresTypes.timestamptz: // To allow users to cast it based on Timezone\r\n case PostgresTypes.timetz: // To allow users to cast it based on Timezone\r\n case PostgresTypes.tsrange:\r\n case PostgresTypes.tstzrange:\r\n return noop(value);\r\n default:\r\n // Return the value for remaining types\r\n return noop(value);\r\n }\r\n};\r\nconst noop = (value) => {\r\n return value;\r\n};\r\nconst toBoolean = (value) => {\r\n switch (value) {\r\n case 't':\r\n return true;\r\n case 'f':\r\n return false;\r\n default:\r\n return value;\r\n }\r\n};\r\nconst toNumber = (value) => {\r\n if (typeof value === 'string') {\r\n const parsedValue = parseFloat(value);\r\n if (!Number.isNaN(parsedValue)) {\r\n return parsedValue;\r\n }\r\n }\r\n return value;\r\n};\r\nconst toJson = (value) => {\r\n if (typeof value === 'string') {\r\n try {\r\n return JSON.parse(value);\r\n }\r\n catch (error) {\r\n console.log(`JSON parse error: ${error}`);\r\n return value;\r\n }\r\n }\r\n return value;\r\n};\r\n/**\r\n * Converts a Postgres Array into a native JS array\r\n *\r\n * @example toArray('{}', 'int4')\r\n * //=> []\r\n * @example toArray('{\"[2021-01-01,2021-12-31)\",\"(2021-01-01,2021-12-32]\"}', 'daterange')\r\n * //=> ['[2021-01-01,2021-12-31)', '(2021-01-01,2021-12-32]']\r\n * @example toArray([1,2,3,4], 'int4')\r\n * //=> [1,2,3,4]\r\n */\r\nconst toArray = (value, type) => {\r\n if (typeof value !== 'string') {\r\n return value;\r\n }\r\n const lastIdx = value.length - 1;\r\n const closeBrace = value[lastIdx];\r\n const openBrace = value[0];\r\n // Confirm value is a Postgres array by checking curly brackets\r\n if (openBrace === '{' && closeBrace === '}') {\r\n let arr;\r\n const valTrim = value.slice(1, lastIdx);\r\n // TODO: find a better solution to separate Postgres array data\r\n try {\r\n arr = JSON.parse('[' + valTrim + ']');\r\n }\r\n catch (_) {\r\n // WARNING: splitting on comma does not cover all edge cases\r\n arr = valTrim ? valTrim.split(',') : [];\r\n }\r\n return arr.map((val) => convertCell(type, val));\r\n }\r\n return value;\r\n};\r\n/**\r\n * Fixes timestamp to be ISO-8601. Swaps the space between the date and time for a 'T'\r\n * See https://github.com/supabase/supabase/issues/18\r\n *\r\n * @example toTimestampString('2019-09-10 00:00:00')\r\n * //=> '2019-09-10T00:00:00'\r\n */\r\nconst toTimestampString = (value) => {\r\n if (typeof value === 'string') {\r\n return value.replace(' ', 'T');\r\n }\r\n return value;\r\n};\r\nconst httpEndpointURL = (socketUrl) => {\r\n let url = socketUrl;\r\n url = url.replace(/^ws/i, 'http');\r\n url = url.replace(/(\\/socket\\/websocket|\\/socket|\\/websocket)\\/?$/i, '');\r\n return url.replace(/\\/+$/, '');\r\n};\r\n//# sourceMappingURL=transformers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvbGliL3RyYW5zZm9ybWVycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHNDQUFzQztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksMkJBQTJCLElBQUk7QUFDM0MsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLE9BQU87QUFDbEI7QUFDQSxnQ0FBZ0MsaUNBQWlDLEdBQUcsMEJBQTBCLElBQUksNkJBQTZCLElBQUk7QUFDbkksU0FBUztBQUNUO0FBQ08sd0RBQXdEO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLElBQUk7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixZQUFZLDJCQUEyQixJQUFJO0FBQzNDLFdBQVcsUUFBUTtBQUNuQixXQUFXLE9BQU87QUFDbEIsWUFBWSxRQUFRO0FBQ3BCO0FBQ0EsbUNBQW1DLGlDQUFpQyxHQUFHLDBCQUEwQixJQUFJLDhCQUE4QjtBQUNuSTtBQUNBLG1DQUFtQyxpQ0FBaUMsR0FBRywwQkFBMEIsSUFBSSw4QkFBOEI7QUFDbkk7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxRQUFRO0FBQzNDO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDLE1BQU07QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBLHNCQUFzQixvREFBb0Q7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHNCQUFzQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3JlYWx0aW1lLWpzL2Rpc3QvbW9kdWxlL2xpYi90cmFuc2Zvcm1lcnMuanM/MzlmMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogSGVscGVycyB0byBjb252ZXJ0IHRoZSBjaGFuZ2UgUGF5bG9hZCBpbnRvIG5hdGl2ZSBKUyB0eXBlcy5cclxuICovXHJcbi8vIEFkYXB0ZWQgZnJvbSBlcGdzcWwgKHNyYy9lcGdzcWxfYmluYXJ5LmVybCksIHRoaXMgbW9kdWxlIGxpY2Vuc2VkIHVuZGVyXHJcbi8vIDMtY2xhdXNlIEJTRCBmb3VuZCBoZXJlOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZXBnc3FsL2VwZ3NxbC9kZXZlbC9MSUNFTlNFXHJcbmV4cG9ydCB2YXIgUG9zdGdyZXNUeXBlcztcclxuKGZ1bmN0aW9uIChQb3N0Z3Jlc1R5cGVzKSB7XHJcbiAgICBQb3N0Z3Jlc1R5cGVzW1wiYWJzdGltZVwiXSA9IFwiYWJzdGltZVwiO1xyXG4gICAgUG9zdGdyZXNUeXBlc1tcImJvb2xcIl0gPSBcImJvb2xcIjtcclxuICAgIFBvc3RncmVzVHlwZXNbXCJkYXRlXCJdID0gXCJkYXRlXCI7XHJcbiAgICBQb3N0Z3Jlc1R5cGVzW1wiZGF0ZXJhbmdlXCJdID0gXCJkYXRlcmFuZ2VcIjtcclxuICAgIFBvc3RncmVzVHlwZXNbXCJmbG9hdDRcIl0gPSBcImZsb2F0NFwiO1xyXG4gICAgUG9zdGdyZXNUeXBlc1tcImZsb2F0OFwiXSA9IFwiZmxvYXQ4XCI7XHJcbiAgICBQb3N0Z3Jlc1R5cGVzW1wiaW50MlwiXSA9IFwiaW50MlwiO1xyXG4gICAgUG9zdGdyZXNUeXBlc1tcImludDRcIl0gPSBcImludDRcIjtcclxuICAgIFBvc3RncmVzVHlwZXNbXCJpbnQ0cmFuZ2VcIl0gPSBcImludDRyYW5nZVwiO1xyXG4gICAgUG9zdGdyZXNUeXBlc1tcImludDhcIl0gPSBcImludDhcIjtcclxuICAgIFBvc3RncmVzVHlwZXNbXCJpbnQ4cmFuZ2VcIl0gPSBcImludDhyYW5nZVwiO1xyXG4gICAgUG9zdGdyZXNUeXBlc1tcImpzb25cIl0gPSBcImpzb25cIjtcclxuICAgIFBvc3RncmVzVHlwZXNbXCJqc29uYlwiXSA9IFwianNvbmJcIjtcclxuICAgIFBvc3RncmVzVHlwZXNbXCJtb25leVwiXSA9IFwibW9uZXlcIjtcclxuICAgIFBvc3RncmVzVHlwZXNbXCJudW1lcmljXCJdID0gXCJudW1lcmljXCI7XHJcbiAgICBQb3N0Z3Jlc1R5cGVzW1wib2lkXCJdID0gXCJvaWRcIjtcclxuICAgIFBvc3RncmVzVHlwZXNbXCJyZWx0aW1lXCJdID0gXCJyZWx0aW1lXCI7XHJcbiAgICBQb3N0Z3Jlc1R5cGVzW1widGV4dFwiXSA9IFwidGV4dFwiO1xyXG4gICAgUG9zdGdyZXNUeXBlc1tcInRpbWVcIl0gPSBcInRpbWVcIjtcclxuICAgIFBvc3RncmVzVHlwZXNbXCJ0aW1lc3RhbXBcIl0gPSBcInRpbWVzdGFtcFwiO1xyXG4gICAgUG9zdGdyZXNUeXBlc1tcInRpbWVzdGFtcHR6XCJdID0gXCJ0aW1lc3RhbXB0elwiO1xyXG4gICAgUG9zdGdyZXNUeXBlc1tcInRpbWV0elwiXSA9IFwidGltZXR6XCI7XHJcbiAgICBQb3N0Z3Jlc1R5cGVzW1widHNyYW5nZVwiXSA9IFwidHNyYW5nZVwiO1xyXG4gICAgUG9zdGdyZXNUeXBlc1tcInRzdHpyYW5nZVwiXSA9IFwidHN0enJhbmdlXCI7XHJcbn0pKFBvc3RncmVzVHlwZXMgfHwgKFBvc3RncmVzVHlwZXMgPSB7fSkpO1xyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2YgY29sdW1ucyBhbmQgYW4gb2JqZWN0IG9mIHN0cmluZyB2YWx1ZXMgdGhlbiBjb252ZXJ0cyBlYWNoIHN0cmluZyB2YWx1ZVxyXG4gKiB0byBpdHMgbWFwcGVkIHR5cGUuXHJcbiAqXHJcbiAqIEBwYXJhbSB7e25hbWU6IFN0cmluZywgdHlwZTogU3RyaW5nfVtdfSBjb2x1bW5zXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSByZWNvcmRcclxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgVGhlIG1hcCBvZiB2YXJpb3VzIG9wdGlvbnMgdGhhdCBjYW4gYmUgYXBwbGllZCB0byB0aGUgbWFwcGVyXHJcbiAqIEBwYXJhbSB7QXJyYXl9IG9wdGlvbnMuc2tpcFR5cGVzIFRoZSBhcnJheSBvZiB0eXBlcyB0aGF0IHNob3VsZCBub3QgYmUgY29udmVydGVkXHJcbiAqXHJcbiAqIEBleGFtcGxlIGNvbnZlcnRDaGFuZ2VEYXRhKFt7bmFtZTogJ2ZpcnN0X25hbWUnLCB0eXBlOiAndGV4dCd9LCB7bmFtZTogJ2FnZScsIHR5cGU6ICdpbnQ0J31dLCB7Zmlyc3RfbmFtZTogJ1BhdWwnLCBhZ2U6JzMzJ30sIHt9KVxyXG4gKiAvLz0+eyBmaXJzdF9uYW1lOiAnUGF1bCcsIGFnZTogMzMgfVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGNvbnZlcnRDaGFuZ2VEYXRhID0gKGNvbHVtbnMsIHJlY29yZCwgb3B0aW9ucyA9IHt9KSA9PiB7XHJcbiAgICB2YXIgX2E7XHJcbiAgICBjb25zdCBza2lwVHlwZXMgPSAoX2EgPSBvcHRpb25zLnNraXBUeXBlcykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogW107XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocmVjb3JkKS5yZWR1Y2UoKGFjYywgcmVjX2tleSkgPT4ge1xyXG4gICAgICAgIGFjY1tyZWNfa2V5XSA9IGNvbnZlcnRDb2x1bW4ocmVjX2tleSwgY29sdW1ucywgcmVjb3JkLCBza2lwVHlwZXMpO1xyXG4gICAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LCB7fSk7XHJcbn07XHJcbi8qKlxyXG4gKiBDb252ZXJ0cyB0aGUgdmFsdWUgb2YgYW4gaW5kaXZpZHVhbCBjb2x1bW4uXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb2x1bW5OYW1lIFRoZSBjb2x1bW4gdGhhdCB5b3Ugd2FudCB0byBjb252ZXJ0XHJcbiAqIEBwYXJhbSB7e25hbWU6IFN0cmluZywgdHlwZTogU3RyaW5nfVtdfSBjb2x1bW5zIEFsbCBvZiB0aGUgY29sdW1uc1xyXG4gKiBAcGFyYW0ge09iamVjdH0gcmVjb3JkIFRoZSBtYXAgb2Ygc3RyaW5nIHZhbHVlc1xyXG4gKiBAcGFyYW0ge0FycmF5fSBza2lwVHlwZXMgQW4gYXJyYXkgb2YgdHlwZXMgdGhhdCBzaG91bGQgbm90IGJlIGNvbnZlcnRlZFxyXG4gKiBAcmV0dXJuIHtvYmplY3R9IFVzZWxlc3MgaW5mb3JtYXRpb25cclxuICpcclxuICogQGV4YW1wbGUgY29udmVydENvbHVtbignYWdlJywgW3tuYW1lOiAnZmlyc3RfbmFtZScsIHR5cGU6ICd0ZXh0J30sIHtuYW1lOiAnYWdlJywgdHlwZTogJ2ludDQnfV0sIHtmaXJzdF9uYW1lOiAnUGF1bCcsIGFnZTogJzMzJ30sIFtdKVxyXG4gKiAvLz0+IDMzXHJcbiAqIEBleGFtcGxlIGNvbnZlcnRDb2x1bW4oJ2FnZScsIFt7bmFtZTogJ2ZpcnN0X25hbWUnLCB0eXBlOiAndGV4dCd9LCB7bmFtZTogJ2FnZScsIHR5cGU6ICdpbnQ0J31dLCB7Zmlyc3RfbmFtZTogJ1BhdWwnLCBhZ2U6ICczMyd9LCBbJ2ludDQnXSlcclxuICogLy89PiBcIjMzXCJcclxuICovXHJcbmV4cG9ydCBjb25zdCBjb252ZXJ0Q29sdW1uID0gKGNvbHVtbk5hbWUsIGNvbHVtbnMsIHJlY29yZCwgc2tpcFR5cGVzKSA9PiB7XHJcbiAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zLmZpbmQoKHgpID0+IHgubmFtZSA9PT0gY29sdW1uTmFtZSk7XHJcbiAgICBjb25zdCBjb2xUeXBlID0gY29sdW1uID09PSBudWxsIHx8IGNvbHVtbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29sdW1uLnR5cGU7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHJlY29yZFtjb2x1bW5OYW1lXTtcclxuICAgIGlmIChjb2xUeXBlICYmICFza2lwVHlwZXMuaW5jbHVkZXMoY29sVHlwZSkpIHtcclxuICAgICAgICByZXR1cm4gY29udmVydENlbGwoY29sVHlwZSwgdmFsdWUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5vb3AodmFsdWUpO1xyXG59O1xyXG4vKipcclxuICogSWYgdGhlIHZhbHVlIG9mIHRoZSBjZWxsIGlzIGBudWxsYCwgcmV0dXJucyBudWxsLlxyXG4gKiBPdGhlcndpc2UgY29udmVydHMgdGhlIHN0cmluZyB2YWx1ZSB0byB0aGUgY29ycmVjdCB0eXBlLlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZSBBIHBvc3RncmVzIGNvbHVtbiB0eXBlXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWx1ZSBUaGUgY2VsbCB2YWx1ZVxyXG4gKlxyXG4gKiBAZXhhbXBsZSBjb252ZXJ0Q2VsbCgnYm9vbCcsICd0JylcclxuICogLy89PiB0cnVlXHJcbiAqIEBleGFtcGxlIGNvbnZlcnRDZWxsKCdpbnQ4JywgJzEwJylcclxuICogLy89PiAxMFxyXG4gKiBAZXhhbXBsZSBjb252ZXJ0Q2VsbCgnX2ludDQnLCAnezEsMiwzLDR9JylcclxuICogLy89PiBbMSwyLDMsNF1cclxuICovXHJcbmV4cG9ydCBjb25zdCBjb252ZXJ0Q2VsbCA9ICh0eXBlLCB2YWx1ZSkgPT4ge1xyXG4gICAgLy8gaWYgZGF0YSB0eXBlIGlzIGFuIGFycmF5XHJcbiAgICBpZiAodHlwZS5jaGFyQXQoMCkgPT09ICdfJykge1xyXG4gICAgICAgIGNvbnN0IGRhdGFUeXBlID0gdHlwZS5zbGljZSgxLCB0eXBlLmxlbmd0aCk7XHJcbiAgICAgICAgcmV0dXJuIHRvQXJyYXkodmFsdWUsIGRhdGFUeXBlKTtcclxuICAgIH1cclxuICAgIC8vIElmIG5vdCBudWxsLCBjb252ZXJ0IHRvIGNvcnJlY3QgdHlwZS5cclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5ib29sOlxyXG4gICAgICAgICAgICByZXR1cm4gdG9Cb29sZWFuKHZhbHVlKTtcclxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuZmxvYXQ0OlxyXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5mbG9hdDg6XHJcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLmludDI6XHJcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLmludDQ6XHJcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLmludDg6XHJcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLm51bWVyaWM6XHJcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLm9pZDpcclxuICAgICAgICAgICAgcmV0dXJuIHRvTnVtYmVyKHZhbHVlKTtcclxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuanNvbjpcclxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuanNvbmI6XHJcbiAgICAgICAgICAgIHJldHVybiB0b0pzb24odmFsdWUpO1xyXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy50aW1lc3RhbXA6XHJcbiAgICAgICAgICAgIHJldHVybiB0b1RpbWVzdGFtcFN0cmluZyh2YWx1ZSk7IC8vIEZvcm1hdCB0byBiZSBjb25zaXN0ZW50IHdpdGggUG9zdGdSRVNUXHJcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLmFic3RpbWU6IC8vIFRvIGFsbG93IHVzZXJzIHRvIGNhc3QgaXQgYmFzZWQgb24gVGltZXpvbmVcclxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuZGF0ZTogLy8gVG8gYWxsb3cgdXNlcnMgdG8gY2FzdCBpdCBiYXNlZCBvbiBUaW1lem9uZVxyXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5kYXRlcmFuZ2U6XHJcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLmludDRyYW5nZTpcclxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMuaW50OHJhbmdlOlxyXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy5tb25leTpcclxuICAgICAgICBjYXNlIFBvc3RncmVzVHlwZXMucmVsdGltZTogLy8gVG8gYWxsb3cgdXNlcnMgdG8gY2FzdCBpdCBiYXNlZCBvbiBUaW1lem9uZVxyXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy50ZXh0OlxyXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy50aW1lOiAvLyBUbyBhbGxvdyB1c2VycyB0byBjYXN0IGl0IGJhc2VkIG9uIFRpbWV6b25lXHJcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLnRpbWVzdGFtcHR6OiAvLyBUbyBhbGxvdyB1c2VycyB0byBjYXN0IGl0IGJhc2VkIG9uIFRpbWV6b25lXHJcbiAgICAgICAgY2FzZSBQb3N0Z3Jlc1R5cGVzLnRpbWV0ejogLy8gVG8gYWxsb3cgdXNlcnMgdG8gY2FzdCBpdCBiYXNlZCBvbiBUaW1lem9uZVxyXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy50c3JhbmdlOlxyXG4gICAgICAgIGNhc2UgUG9zdGdyZXNUeXBlcy50c3R6cmFuZ2U6XHJcbiAgICAgICAgICAgIHJldHVybiBub29wKHZhbHVlKTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAvLyBSZXR1cm4gdGhlIHZhbHVlIGZvciByZW1haW5pbmcgdHlwZXNcclxuICAgICAgICAgICAgcmV0dXJuIG5vb3AodmFsdWUpO1xyXG4gICAgfVxyXG59O1xyXG5jb25zdCBub29wID0gKHZhbHVlKSA9PiB7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbn07XHJcbmV4cG9ydCBjb25zdCB0b0Jvb2xlYW4gPSAodmFsdWUpID0+IHtcclxuICAgIHN3aXRjaCAodmFsdWUpIHtcclxuICAgICAgICBjYXNlICd0JzpcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgY2FzZSAnZic6XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbn07XHJcbmV4cG9ydCBjb25zdCB0b051bWJlciA9ICh2YWx1ZSkgPT4ge1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xyXG4gICAgICAgIGlmICghTnVtYmVyLmlzTmFOKHBhcnNlZFZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gcGFyc2VkVmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59O1xyXG5leHBvcnQgY29uc3QgdG9Kc29uID0gKHZhbHVlKSA9PiB7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBKU09OIHBhcnNlIGVycm9yOiAke2Vycm9yfWApO1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59O1xyXG4vKipcclxuICogQ29udmVydHMgYSBQb3N0Z3JlcyBBcnJheSBpbnRvIGEgbmF0aXZlIEpTIGFycmF5XHJcbiAqXHJcbiAqIEBleGFtcGxlIHRvQXJyYXkoJ3t9JywgJ2ludDQnKVxyXG4gKiAvLz0+IFtdXHJcbiAqIEBleGFtcGxlIHRvQXJyYXkoJ3tcIlsyMDIxLTAxLTAxLDIwMjEtMTItMzEpXCIsXCIoMjAyMS0wMS0wMSwyMDIxLTEyLTMyXVwifScsICdkYXRlcmFuZ2UnKVxyXG4gKiAvLz0+IFsnWzIwMjEtMDEtMDEsMjAyMS0xMi0zMSknLCAnKDIwMjEtMDEtMDEsMjAyMS0xMi0zMl0nXVxyXG4gKiBAZXhhbXBsZSB0b0FycmF5KFsxLDIsMyw0XSwgJ2ludDQnKVxyXG4gKiAvLz0+IFsxLDIsMyw0XVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHRvQXJyYXkgPSAodmFsdWUsIHR5cGUpID0+IHtcclxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbGFzdElkeCA9IHZhbHVlLmxlbmd0aCAtIDE7XHJcbiAgICBjb25zdCBjbG9zZUJyYWNlID0gdmFsdWVbbGFzdElkeF07XHJcbiAgICBjb25zdCBvcGVuQnJhY2UgPSB2YWx1ZVswXTtcclxuICAgIC8vIENvbmZpcm0gdmFsdWUgaXMgYSBQb3N0Z3JlcyBhcnJheSBieSBjaGVja2luZyBjdXJseSBicmFja2V0c1xyXG4gICAgaWYgKG9wZW5CcmFjZSA9PT0gJ3snICYmIGNsb3NlQnJhY2UgPT09ICd9Jykge1xyXG4gICAgICAgIGxldCBhcnI7XHJcbiAgICAgICAgY29uc3QgdmFsVHJpbSA9IHZhbHVlLnNsaWNlKDEsIGxhc3RJZHgpO1xyXG4gICAgICAgIC8vIFRPRE86IGZpbmQgYSBiZXR0ZXIgc29sdXRpb24gdG8gc2VwYXJhdGUgUG9zdGdyZXMgYXJyYXkgZGF0YVxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGFyciA9IEpTT04ucGFyc2UoJ1snICsgdmFsVHJpbSArICddJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChfKSB7XHJcbiAgICAgICAgICAgIC8vIFdBUk5JTkc6IHNwbGl0dGluZyBvbiBjb21tYSBkb2VzIG5vdCBjb3ZlciBhbGwgZWRnZSBjYXNlc1xyXG4gICAgICAgICAgICBhcnIgPSB2YWxUcmltID8gdmFsVHJpbS5zcGxpdCgnLCcpIDogW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhcnIubWFwKCh2YWwpID0+IGNvbnZlcnRDZWxsKHR5cGUsIHZhbCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59O1xyXG4vKipcclxuICogRml4ZXMgdGltZXN0YW1wIHRvIGJlIElTTy04NjAxLiBTd2FwcyB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgZGF0ZSBhbmQgdGltZSBmb3IgYSAnVCdcclxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zdXBhYmFzZS9zdXBhYmFzZS9pc3N1ZXMvMThcclxuICpcclxuICogQGV4YW1wbGUgdG9UaW1lc3RhbXBTdHJpbmcoJzIwMTktMDktMTAgMDA6MDA6MDAnKVxyXG4gKiAvLz0+ICcyMDE5LTA5LTEwVDAwOjAwOjAwJ1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHRvVGltZXN0YW1wU3RyaW5nID0gKHZhbHVlKSA9PiB7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKCcgJywgJ1QnKTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxufTtcclxuZXhwb3J0IGNvbnN0IGh0dHBFbmRwb2ludFVSTCA9IChzb2NrZXRVcmwpID0+IHtcclxuICAgIGxldCB1cmwgPSBzb2NrZXRVcmw7XHJcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgvXndzL2ksICdodHRwJyk7XHJcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgvKFxcL3NvY2tldFxcL3dlYnNvY2tldHxcXC9zb2NrZXR8XFwvd2Vic29ja2V0KVxcLz8kL2ksICcnKTtcclxuICAgIHJldHVybiB1cmwucmVwbGFjZSgvXFwvKyQvLCAnJyk7XHJcbn07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRyYW5zZm9ybWVycy5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/transformers.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/version.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/@supabase/realtime-js/dist/module/lib/version.js ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ version: function() { return /* binding */ version; }\n/* harmony export */ });\nconst version = '2.11.15';\r\n//# sourceMappingURL=version.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcmVhbHRpbWUtanMvZGlzdC9tb2R1bGUvbGliL3ZlcnNpb24uanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPO0FBQ1AiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9yZWFsdGltZS1qcy9kaXN0L21vZHVsZS9saWIvdmVyc2lvbi5qcz84MmZjIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB2ZXJzaW9uID0gJzIuMTEuMTUnO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD12ZXJzaW9uLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/lib/version.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/StorageClient.js":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/@supabase/storage-js/dist/module/StorageClient.js ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ StorageClient: function() { return /* binding */ StorageClient; }\n/* harmony export */ });\n/* harmony import */ var _packages_StorageFileApi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./packages/StorageFileApi */ \"(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/packages/StorageFileApi.js\");\n/* harmony import */ var _packages_StorageBucketApi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./packages/StorageBucketApi */ \"(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/packages/StorageBucketApi.js\");\n\r\n\r\nclass StorageClient extends _packages_StorageBucketApi__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\r\n constructor(url, headers = {}, fetch) {\r\n super(url, headers, fetch);\r\n }\r\n /**\r\n * Perform file operation in a bucket.\r\n *\r\n * @param id The bucket id to operate on.\r\n */\r\n from(id) {\r\n return new _packages_StorageFileApi__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this.url, this.headers, id, this.fetch);\r\n }\r\n}\r\n//# sourceMappingURL=StorageClient.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9TdG9yYWdlQ2xpZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF1RDtBQUNJO0FBQ3BELDRCQUE0QixrRUFBZ0I7QUFDbkQsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsZ0VBQWM7QUFDakM7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9TdG9yYWdlQ2xpZW50LmpzPzI2MDAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN0b3JhZ2VGaWxlQXBpIGZyb20gJy4vcGFja2FnZXMvU3RvcmFnZUZpbGVBcGknO1xyXG5pbXBvcnQgU3RvcmFnZUJ1Y2tldEFwaSBmcm9tICcuL3BhY2thZ2VzL1N0b3JhZ2VCdWNrZXRBcGknO1xyXG5leHBvcnQgY2xhc3MgU3RvcmFnZUNsaWVudCBleHRlbmRzIFN0b3JhZ2VCdWNrZXRBcGkge1xyXG4gICAgY29uc3RydWN0b3IodXJsLCBoZWFkZXJzID0ge30sIGZldGNoKSB7XHJcbiAgICAgICAgc3VwZXIodXJsLCBoZWFkZXJzLCBmZXRjaCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFBlcmZvcm0gZmlsZSBvcGVyYXRpb24gaW4gYSBidWNrZXQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGlkIFRoZSBidWNrZXQgaWQgdG8gb3BlcmF0ZSBvbi5cclxuICAgICAqL1xyXG4gICAgZnJvbShpZCkge1xyXG4gICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUZpbGVBcGkodGhpcy51cmwsIHRoaXMuaGVhZGVycywgaWQsIHRoaXMuZmV0Y2gpO1xyXG4gICAgfVxyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVN0b3JhZ2VDbGllbnQuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/StorageClient.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/constants.js":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/@supabase/storage-js/dist/module/lib/constants.js ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_HEADERS: function() { return /* binding */ DEFAULT_HEADERS; }\n/* harmony export */ });\n/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ \"(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/version.js\");\n\r\nconst DEFAULT_HEADERS = { 'X-Client-Info': `storage-js/${_version__WEBPACK_IMPORTED_MODULE_0__.version}` };\r\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9saWIvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW9DO0FBQzdCLDBCQUEwQiwrQkFBK0IsNkNBQU8sQ0FBQztBQUN4RSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvbGliL2NvbnN0YW50cy5qcz9mNzJmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZlcnNpb24gfSBmcm9tICcuL3ZlcnNpb24nO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9IRUFERVJTID0geyAnWC1DbGllbnQtSW5mbyc6IGBzdG9yYWdlLWpzLyR7dmVyc2lvbn1gIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/constants.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/@supabase/storage-js/dist/module/lib/errors.js ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ StorageApiError: function() { return /* binding */ StorageApiError; },\n/* harmony export */ StorageError: function() { return /* binding */ StorageError; },\n/* harmony export */ StorageUnknownError: function() { return /* binding */ StorageUnknownError; },\n/* harmony export */ isStorageError: function() { return /* binding */ isStorageError; }\n/* harmony export */ });\nclass StorageError extends Error {\r\n constructor(message) {\r\n super(message);\r\n this.__isStorageError = true;\r\n this.name = 'StorageError';\r\n }\r\n}\r\nfunction isStorageError(error) {\r\n return typeof error === 'object' && error !== null && '__isStorageError' in error;\r\n}\r\nclass StorageApiError extends StorageError {\r\n constructor(message, status) {\r\n super(message);\r\n this.name = 'StorageApiError';\r\n this.status = status;\r\n }\r\n toJSON() {\r\n return {\r\n name: this.name,\r\n message: this.message,\r\n status: this.status,\r\n };\r\n }\r\n}\r\nclass StorageUnknownError extends StorageError {\r\n constructor(message, originalError) {\r\n super(message);\r\n this.name = 'StorageUnknownError';\r\n this.originalError = originalError;\r\n }\r\n}\r\n//# sourceMappingURL=errors.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9saWIvZXJyb3JzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9saWIvZXJyb3JzLmpzP2VhNDAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFN0b3JhZ2VFcnJvciBleHRlbmRzIEVycm9yIHtcclxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcclxuICAgICAgICBzdXBlcihtZXNzYWdlKTtcclxuICAgICAgICB0aGlzLl9faXNTdG9yYWdlRXJyb3IgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubmFtZSA9ICdTdG9yYWdlRXJyb3InO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc1N0b3JhZ2VFcnJvcihlcnJvcikge1xyXG4gICAgcmV0dXJuIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgJ19faXNTdG9yYWdlRXJyb3InIGluIGVycm9yO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBTdG9yYWdlQXBpRXJyb3IgZXh0ZW5kcyBTdG9yYWdlRXJyb3Ige1xyXG4gICAgY29uc3RydWN0b3IobWVzc2FnZSwgc3RhdHVzKSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gJ1N0b3JhZ2VBcGlFcnJvcic7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XHJcbiAgICB9XHJcbiAgICB0b0pTT04oKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLm1lc3NhZ2UsXHJcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVVua25vd25FcnJvciBleHRlbmRzIFN0b3JhZ2VFcnJvciB7XHJcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBvcmlnaW5hbEVycm9yKSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gJ1N0b3JhZ2VVbmtub3duRXJyb3InO1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxFcnJvciA9IG9yaWdpbmFsRXJyb3I7XHJcbiAgICB9XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXJyb3JzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/fetch.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/@supabase/storage-js/dist/module/lib/fetch.js ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ get: function() { return /* binding */ get; },\n/* harmony export */ head: function() { return /* binding */ head; },\n/* harmony export */ post: function() { return /* binding */ post; },\n/* harmony export */ put: function() { return /* binding */ put; },\n/* harmony export */ remove: function() { return /* binding */ remove; }\n/* harmony export */ });\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./errors */ \"(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\nconst _getErrorMessage = (err) => err.msg || err.message || err.error_description || err.error || JSON.stringify(err);\r\nconst handleError = (error, reject, options) => __awaiter(void 0, void 0, void 0, function* () {\r\n const Res = yield (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.resolveResponse)();\r\n if (error instanceof Res && !(options === null || options === void 0 ? void 0 : options.noResolveJson)) {\r\n error\r\n .json()\r\n .then((err) => {\r\n reject(new _errors__WEBPACK_IMPORTED_MODULE_1__.StorageApiError(_getErrorMessage(err), error.status || 500));\r\n })\r\n .catch((err) => {\r\n reject(new _errors__WEBPACK_IMPORTED_MODULE_1__.StorageUnknownError(_getErrorMessage(err), err));\r\n });\r\n }\r\n else {\r\n reject(new _errors__WEBPACK_IMPORTED_MODULE_1__.StorageUnknownError(_getErrorMessage(error), error));\r\n }\r\n});\r\nconst _getRequestParams = (method, options, parameters, body) => {\r\n const params = { method, headers: (options === null || options === void 0 ? void 0 : options.headers) || {} };\r\n if (method === 'GET') {\r\n return params;\r\n }\r\n params.headers = Object.assign({ 'Content-Type': 'application/json' }, options === null || options === void 0 ? void 0 : options.headers);\r\n if (body) {\r\n params.body = JSON.stringify(body);\r\n }\r\n return Object.assign(Object.assign({}, params), parameters);\r\n};\r\nfunction _handleRequest(fetcher, method, url, options, parameters, body) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => {\r\n fetcher(url, _getRequestParams(method, options, parameters, body))\r\n .then((result) => {\r\n if (!result.ok)\r\n throw result;\r\n if (options === null || options === void 0 ? void 0 : options.noResolveJson)\r\n return result;\r\n return result.json();\r\n })\r\n .then((data) => resolve(data))\r\n .catch((error) => handleError(error, reject, options));\r\n });\r\n });\r\n}\r\nfunction get(fetcher, url, options, parameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return _handleRequest(fetcher, 'GET', url, options, parameters);\r\n });\r\n}\r\nfunction post(fetcher, url, body, options, parameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return _handleRequest(fetcher, 'POST', url, options, parameters, body);\r\n });\r\n}\r\nfunction put(fetcher, url, body, options, parameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return _handleRequest(fetcher, 'PUT', url, options, parameters, body);\r\n });\r\n}\r\nfunction head(fetcher, url, options, parameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return _handleRequest(fetcher, 'HEAD', url, Object.assign(Object.assign({}, options), { noResolveJson: true }), parameters);\r\n });\r\n}\r\nfunction remove(fetcher, url, body, options, parameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return _handleRequest(fetcher, 'DELETE', url, options, parameters, body);\r\n });\r\n}\r\n//# sourceMappingURL=fetch.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9saWIvZmV0Y2guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLGlCQUFpQixTQUFJLElBQUksU0FBSTtBQUM3Qiw0QkFBNEIsK0RBQStELGlCQUFpQjtBQUM1RztBQUNBLG9DQUFvQyxNQUFNLCtCQUErQixZQUFZO0FBQ3JGLG1DQUFtQyxNQUFNLG1DQUFtQyxZQUFZO0FBQ3hGLGdDQUFnQztBQUNoQztBQUNBLEtBQUs7QUFDTDtBQUNnRTtBQUNwQjtBQUM1QztBQUNBO0FBQ0Esc0JBQXNCLHlEQUFlO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLG9EQUFlO0FBQ3RDLFNBQVM7QUFDVDtBQUNBLHVCQUF1Qix3REFBbUI7QUFDMUMsU0FBUztBQUNUO0FBQ0E7QUFDQSxtQkFBbUIsd0RBQW1CO0FBQ3RDO0FBQ0EsQ0FBQztBQUNEO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyxvQ0FBb0M7QUFDekU7QUFDQTtBQUNBO0FBQ0EseUNBQXlDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDTztBQUNQO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDTztBQUNQO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDTztBQUNQO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDTztBQUNQO0FBQ0Esa0ZBQWtGLGNBQWMscUJBQXFCO0FBQ3JILEtBQUs7QUFDTDtBQUNPO0FBQ1A7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9saWIvZmV0Y2guanM/MTg4NiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn07XHJcbmltcG9ydCB7IFN0b3JhZ2VBcGlFcnJvciwgU3RvcmFnZVVua25vd25FcnJvciB9IGZyb20gJy4vZXJyb3JzJztcclxuaW1wb3J0IHsgcmVzb2x2ZVJlc3BvbnNlIH0gZnJvbSAnLi9oZWxwZXJzJztcclxuY29uc3QgX2dldEVycm9yTWVzc2FnZSA9IChlcnIpID0+IGVyci5tc2cgfHwgZXJyLm1lc3NhZ2UgfHwgZXJyLmVycm9yX2Rlc2NyaXB0aW9uIHx8IGVyci5lcnJvciB8fCBKU09OLnN0cmluZ2lmeShlcnIpO1xyXG5jb25zdCBoYW5kbGVFcnJvciA9IChlcnJvciwgcmVqZWN0LCBvcHRpb25zKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcclxuICAgIGNvbnN0IFJlcyA9IHlpZWxkIHJlc29sdmVSZXNwb25zZSgpO1xyXG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgUmVzICYmICEob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm5vUmVzb2x2ZUpzb24pKSB7XHJcbiAgICAgICAgZXJyb3JcclxuICAgICAgICAgICAgLmpzb24oKVxyXG4gICAgICAgICAgICAudGhlbigoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlamVjdChuZXcgU3RvcmFnZUFwaUVycm9yKF9nZXRFcnJvck1lc3NhZ2UoZXJyKSwgZXJyb3Iuc3RhdHVzIHx8IDUwMCkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlamVjdChuZXcgU3RvcmFnZVVua25vd25FcnJvcihfZ2V0RXJyb3JNZXNzYWdlKGVyciksIGVycikpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgcmVqZWN0KG5ldyBTdG9yYWdlVW5rbm93bkVycm9yKF9nZXRFcnJvck1lc3NhZ2UoZXJyb3IpLCBlcnJvcikpO1xyXG4gICAgfVxyXG59KTtcclxuY29uc3QgX2dldFJlcXVlc3RQYXJhbXMgPSAobWV0aG9kLCBvcHRpb25zLCBwYXJhbWV0ZXJzLCBib2R5KSA9PiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7IG1ldGhvZCwgaGVhZGVyczogKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5oZWFkZXJzKSB8fCB7fSB9O1xyXG4gICAgaWYgKG1ldGhvZCA9PT0gJ0dFVCcpIHtcclxuICAgICAgICByZXR1cm4gcGFyYW1zO1xyXG4gICAgfVxyXG4gICAgcGFyYW1zLmhlYWRlcnMgPSBPYmplY3QuYXNzaWduKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LCBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuaGVhZGVycyk7XHJcbiAgICBpZiAoYm9keSkge1xyXG4gICAgICAgIHBhcmFtcy5ib2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwYXJhbXMpLCBwYXJhbWV0ZXJzKTtcclxufTtcclxuZnVuY3Rpb24gX2hhbmRsZVJlcXVlc3QoZmV0Y2hlciwgbWV0aG9kLCB1cmwsIG9wdGlvbnMsIHBhcmFtZXRlcnMsIGJvZHkpIHtcclxuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgZmV0Y2hlcih1cmwsIF9nZXRSZXF1ZXN0UGFyYW1zKG1ldGhvZCwgb3B0aW9ucywgcGFyYW1ldGVycywgYm9keSkpXHJcbiAgICAgICAgICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5vaylcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm5vUmVzb2x2ZUpzb24pXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuanNvbigpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHJlc29sdmUoZGF0YSkpXHJcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiBoYW5kbGVFcnJvcihlcnJvciwgcmVqZWN0LCBvcHRpb25zKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0KGZldGNoZXIsIHVybCwgb3B0aW9ucywgcGFyYW1ldGVycykge1xyXG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcclxuICAgICAgICByZXR1cm4gX2hhbmRsZVJlcXVlc3QoZmV0Y2hlciwgJ0dFVCcsIHVybCwgb3B0aW9ucywgcGFyYW1ldGVycyk7XHJcbiAgICB9KTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcG9zdChmZXRjaGVyLCB1cmwsIGJvZHksIG9wdGlvbnMsIHBhcmFtZXRlcnMpIHtcclxuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIF9oYW5kbGVSZXF1ZXN0KGZldGNoZXIsICdQT1NUJywgdXJsLCBvcHRpb25zLCBwYXJhbWV0ZXJzLCBib2R5KTtcclxuICAgIH0pO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBwdXQoZmV0Y2hlciwgdXJsLCBib2R5LCBvcHRpb25zLCBwYXJhbWV0ZXJzKSB7XHJcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xyXG4gICAgICAgIHJldHVybiBfaGFuZGxlUmVxdWVzdChmZXRjaGVyLCAnUFVUJywgdXJsLCBvcHRpb25zLCBwYXJhbWV0ZXJzLCBib2R5KTtcclxuICAgIH0pO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBoZWFkKGZldGNoZXIsIHVybCwgb3B0aW9ucywgcGFyYW1ldGVycykge1xyXG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcclxuICAgICAgICByZXR1cm4gX2hhbmRsZVJlcXVlc3QoZmV0Y2hlciwgJ0hFQUQnLCB1cmwsIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucyksIHsgbm9SZXNvbHZlSnNvbjogdHJ1ZSB9KSwgcGFyYW1ldGVycyk7XHJcbiAgICB9KTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlKGZldGNoZXIsIHVybCwgYm9keSwgb3B0aW9ucywgcGFyYW1ldGVycykge1xyXG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcclxuICAgICAgICByZXR1cm4gX2hhbmRsZVJlcXVlc3QoZmV0Y2hlciwgJ0RFTEVURScsIHVybCwgb3B0aW9ucywgcGFyYW1ldGVycywgYm9keSk7XHJcbiAgICB9KTtcclxufVxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1mZXRjaC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/fetch.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/@supabase/storage-js/dist/module/lib/helpers.js ***!
|
||
\**********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ recursiveToCamel: function() { return /* binding */ recursiveToCamel; },\n/* harmony export */ resolveFetch: function() { return /* binding */ resolveFetch; },\n/* harmony export */ resolveResponse: function() { return /* binding */ resolveResponse; }\n/* harmony export */ });\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nconst resolveFetch = (customFetch) => {\r\n let _fetch;\r\n if (customFetch) {\r\n _fetch = customFetch;\r\n }\r\n else if (typeof fetch === 'undefined') {\r\n _fetch = (...args) => Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(app-pages-browser)/./node_modules/@supabase/node-fetch/browser.js\")).then(({ default: fetch }) => fetch(...args));\r\n }\r\n else {\r\n _fetch = fetch;\r\n }\r\n return (...args) => _fetch(...args);\r\n};\r\nconst resolveResponse = () => __awaiter(void 0, void 0, void 0, function* () {\r\n if (typeof Response === 'undefined') {\r\n // @ts-ignore\r\n return (yield Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! @supabase/node-fetch */ \"(app-pages-browser)/./node_modules/@supabase/node-fetch/browser.js\"))).Response;\r\n }\r\n return Response;\r\n});\r\nconst recursiveToCamel = (item) => {\r\n if (Array.isArray(item)) {\r\n return item.map((el) => recursiveToCamel(el));\r\n }\r\n else if (typeof item === 'function' || item !== Object(item)) {\r\n return item;\r\n }\r\n const result = {};\r\n Object.entries(item).forEach(([key, value]) => {\r\n const newKey = key.replace(/([-_][a-z])/gi, (c) => c.toUpperCase().replace(/[-_]/g, ''));\r\n result[newKey] = recursiveToCamel(value);\r\n });\r\n return result;\r\n};\r\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9saWIvaGVscGVycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxpQkFBaUIsU0FBSSxJQUFJLFNBQUk7QUFDN0IsNEJBQTRCLCtEQUErRCxpQkFBaUI7QUFDNUc7QUFDQSxvQ0FBb0MsTUFBTSwrQkFBK0IsWUFBWTtBQUNyRixtQ0FBbUMsTUFBTSxtQ0FBbUMsWUFBWTtBQUN4RixnQ0FBZ0M7QUFDaEM7QUFDQSxLQUFLO0FBQ0w7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsc0xBQThCLFNBQVMsZ0JBQWdCO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBLHNCQUFzQixzTEFBOEI7QUFDcEQ7QUFDQTtBQUNBLENBQUM7QUFDTTtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvbGliL2hlbHBlcnMuanM/ZjY5OSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn07XHJcbmV4cG9ydCBjb25zdCByZXNvbHZlRmV0Y2ggPSAoY3VzdG9tRmV0Y2gpID0+IHtcclxuICAgIGxldCBfZmV0Y2g7XHJcbiAgICBpZiAoY3VzdG9tRmV0Y2gpIHtcclxuICAgICAgICBfZmV0Y2ggPSBjdXN0b21GZXRjaDtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHR5cGVvZiBmZXRjaCA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICBfZmV0Y2ggPSAoLi4uYXJncykgPT4gaW1wb3J0KCdAc3VwYWJhc2Uvbm9kZS1mZXRjaCcpLnRoZW4oKHsgZGVmYXVsdDogZmV0Y2ggfSkgPT4gZmV0Y2goLi4uYXJncykpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgX2ZldGNoID0gZmV0Y2g7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKC4uLmFyZ3MpID0+IF9mZXRjaCguLi5hcmdzKTtcclxufTtcclxuZXhwb3J0IGNvbnN0IHJlc29sdmVSZXNwb25zZSA9ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xyXG4gICAgaWYgKHR5cGVvZiBSZXNwb25zZSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgcmV0dXJuICh5aWVsZCBpbXBvcnQoJ0BzdXBhYmFzZS9ub2RlLWZldGNoJykpLlJlc3BvbnNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc3BvbnNlO1xyXG59KTtcclxuZXhwb3J0IGNvbnN0IHJlY3Vyc2l2ZVRvQ2FtZWwgPSAoaXRlbSkgPT4ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5tYXAoKGVsKSA9PiByZWN1cnNpdmVUb0NhbWVsKGVsKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgaXRlbSA9PT0gJ2Z1bmN0aW9uJyB8fCBpdGVtICE9PSBPYmplY3QoaXRlbSkpIHtcclxuICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgIH1cclxuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xyXG4gICAgT2JqZWN0LmVudHJpZXMoaXRlbSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3S2V5ID0ga2V5LnJlcGxhY2UoLyhbLV9dW2Etel0pL2dpLCAoYykgPT4gYy50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoL1stX10vZywgJycpKTtcclxuICAgICAgICByZXN1bHRbbmV3S2V5XSA9IHJlY3Vyc2l2ZVRvQ2FtZWwodmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWxwZXJzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/version.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/@supabase/storage-js/dist/module/lib/version.js ***!
|
||
\**********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ version: function() { return /* binding */ version; }\n/* harmony export */ });\n// generated by genversion\r\nconst version = '2.7.1';\r\n//# sourceMappingURL=version.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9saWIvdmVyc2lvbi5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDTztBQUNQIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9saWIvdmVyc2lvbi5qcz9mODllIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGdlbmVyYXRlZCBieSBnZW52ZXJzaW9uXHJcbmV4cG9ydCBjb25zdCB2ZXJzaW9uID0gJzIuNy4xJztcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmVyc2lvbi5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/version.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/packages/StorageBucketApi.js":
|
||
/*!************************************************************************************!*\
|
||
!*** ./node_modules/@supabase/storage-js/dist/module/packages/StorageBucketApi.js ***!
|
||
\************************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ StorageBucketApi; }\n/* harmony export */ });\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/constants */ \"(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib/errors */ \"(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js\");\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/fetch */ \"(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/helpers */ \"(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\n\r\n\r\nclass StorageBucketApi {\r\n constructor(url, headers = {}, fetch) {\r\n this.url = url;\r\n this.headers = Object.assign(Object.assign({}, _lib_constants__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_HEADERS), headers);\r\n this.fetch = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_1__.resolveFetch)(fetch);\r\n }\r\n /**\r\n * Retrieves the details of all Storage buckets within an existing project.\r\n */\r\n listBuckets() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.get)(this.fetch, `${this.url}/bucket`, { headers: this.headers });\r\n return { data, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Retrieves the details of an existing Storage bucket.\r\n *\r\n * @param id The unique identifier of the bucket you would like to retrieve.\r\n */\r\n getBucket(id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.get)(this.fetch, `${this.url}/bucket/${id}`, { headers: this.headers });\r\n return { data, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Creates a new Storage bucket\r\n *\r\n * @param id A unique identifier for the bucket you are creating.\r\n * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations. By default, buckets are private.\r\n * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket.\r\n * The global file size limit takes precedence over this value.\r\n * The default value is null, which doesn't set a per bucket file size limit.\r\n * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload.\r\n * The default value is null, which allows files with all mime types to be uploaded.\r\n * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png.\r\n * @returns newly created bucket id\r\n */\r\n createBucket(id, options = {\r\n public: false,\r\n }) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/bucket`, {\r\n id,\r\n name: id,\r\n public: options.public,\r\n file_size_limit: options.fileSizeLimit,\r\n allowed_mime_types: options.allowedMimeTypes,\r\n }, { headers: this.headers });\r\n return { data, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Updates a Storage bucket\r\n *\r\n * @param id A unique identifier for the bucket you are updating.\r\n * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations.\r\n * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket.\r\n * The global file size limit takes precedence over this value.\r\n * The default value is null, which doesn't set a per bucket file size limit.\r\n * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload.\r\n * The default value is null, which allows files with all mime types to be uploaded.\r\n * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png.\r\n */\r\n updateBucket(id, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.put)(this.fetch, `${this.url}/bucket/${id}`, {\r\n id,\r\n name: id,\r\n public: options.public,\r\n file_size_limit: options.fileSizeLimit,\r\n allowed_mime_types: options.allowedMimeTypes,\r\n }, { headers: this.headers });\r\n return { data, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Removes all objects inside a single bucket.\r\n *\r\n * @param id The unique identifier of the bucket you would like to empty.\r\n */\r\n emptyBucket(id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/bucket/${id}/empty`, {}, { headers: this.headers });\r\n return { data, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Deletes an existing bucket. A bucket can't be deleted with existing objects inside it.\r\n * You must first `empty()` the bucket.\r\n *\r\n * @param id The unique identifier of the bucket you would like to delete.\r\n */\r\n deleteBucket(id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.remove)(this.fetch, `${this.url}/bucket/${id}`, {}, { headers: this.headers });\r\n return { data, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_3__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=StorageBucketApi.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9wYWNrYWdlcy9TdG9yYWdlQnVja2V0QXBpLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsaUJBQWlCLFNBQUksSUFBSSxTQUFJO0FBQzdCLDRCQUE0QiwrREFBK0QsaUJBQWlCO0FBQzVHO0FBQ0Esb0NBQW9DLE1BQU0sK0JBQStCLFlBQVk7QUFDckYsbUNBQW1DLE1BQU0sbUNBQW1DLFlBQVk7QUFDeEYsZ0NBQWdDO0FBQ2hDO0FBQ0EsS0FBSztBQUNMO0FBQ21EO0FBQ0o7QUFDTztBQUNSO0FBQy9CO0FBQ2YsaUNBQWlDO0FBQ2pDO0FBQ0EscURBQXFELEVBQUUsMkRBQWU7QUFDdEUscUJBQXFCLDBEQUFZO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLCtDQUFHLGdCQUFnQixTQUFTLFlBQVksdUJBQXVCO0FBQ2xHLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0Esb0JBQW9CLDJEQUFjO0FBQ2xDLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLCtDQUFHLGdCQUFnQixTQUFTLFVBQVUsR0FBRyxLQUFLLHVCQUF1QjtBQUN4Ryx5QkFBeUI7QUFDekI7QUFDQTtBQUNBLG9CQUFvQiwyREFBYztBQUNsQyw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxtQ0FBbUMsZ0RBQUksZ0JBQWdCLFNBQVM7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixJQUFJLHVCQUF1QjtBQUM1Qyx5QkFBeUI7QUFDekI7QUFDQTtBQUNBLG9CQUFvQiwyREFBYztBQUNsQyw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLCtDQUFHLGdCQUFnQixTQUFTLFVBQVUsR0FBRztBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLElBQUksdUJBQXVCO0FBQzVDLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0Esb0JBQW9CLDJEQUFjO0FBQ2xDLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLGdEQUFJLGdCQUFnQixTQUFTLFVBQVUsR0FBRyxXQUFXLElBQUksdUJBQXVCO0FBQ25ILHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0Esb0JBQW9CLDJEQUFjO0FBQ2xDLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsa0RBQU0sZ0JBQWdCLFNBQVMsVUFBVSxHQUFHLEtBQUssSUFBSSx1QkFBdUI7QUFDL0cseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQSxvQkFBb0IsMkRBQWM7QUFDbEMsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdG9yYWdlLWpzL2Rpc3QvbW9kdWxlL3BhY2thZ2VzL1N0b3JhZ2VCdWNrZXRBcGkuanM/YzY4NCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn07XHJcbmltcG9ydCB7IERFRkFVTFRfSEVBREVSUyB9IGZyb20gJy4uL2xpYi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBpc1N0b3JhZ2VFcnJvciB9IGZyb20gJy4uL2xpYi9lcnJvcnMnO1xyXG5pbXBvcnQgeyBnZXQsIHBvc3QsIHB1dCwgcmVtb3ZlIH0gZnJvbSAnLi4vbGliL2ZldGNoJztcclxuaW1wb3J0IHsgcmVzb2x2ZUZldGNoIH0gZnJvbSAnLi4vbGliL2hlbHBlcnMnO1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdG9yYWdlQnVja2V0QXBpIHtcclxuICAgIGNvbnN0cnVjdG9yKHVybCwgaGVhZGVycyA9IHt9LCBmZXRjaCkge1xyXG4gICAgICAgIHRoaXMudXJsID0gdXJsO1xyXG4gICAgICAgIHRoaXMuaGVhZGVycyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9IRUFERVJTKSwgaGVhZGVycyk7XHJcbiAgICAgICAgdGhpcy5mZXRjaCA9IHJlc29sdmVGZXRjaChmZXRjaCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgZGV0YWlscyBvZiBhbGwgU3RvcmFnZSBidWNrZXRzIHdpdGhpbiBhbiBleGlzdGluZyBwcm9qZWN0LlxyXG4gICAgICovXHJcbiAgICBsaXN0QnVja2V0cygpIHtcclxuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGdldCh0aGlzLmZldGNoLCBgJHt0aGlzLnVybH0vYnVja2V0YCwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGRldGFpbHMgb2YgYW4gZXhpc3RpbmcgU3RvcmFnZSBidWNrZXQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGlkIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYnVja2V0IHlvdSB3b3VsZCBsaWtlIHRvIHJldHJpZXZlLlxyXG4gICAgICovXHJcbiAgICBnZXRCdWNrZXQoaWQpIHtcclxuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGdldCh0aGlzLmZldGNoLCBgJHt0aGlzLnVybH0vYnVja2V0LyR7aWR9YCwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGEgbmV3IFN0b3JhZ2UgYnVja2V0XHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGlkIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBidWNrZXQgeW91IGFyZSBjcmVhdGluZy5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLnB1YmxpYyBUaGUgdmlzaWJpbGl0eSBvZiB0aGUgYnVja2V0LiBQdWJsaWMgYnVja2V0cyBkb24ndCByZXF1aXJlIGFuIGF1dGhvcml6YXRpb24gdG9rZW4gdG8gZG93bmxvYWQgb2JqZWN0cywgYnV0IHN0aWxsIHJlcXVpcmUgYSB2YWxpZCB0b2tlbiBmb3IgYWxsIG90aGVyIG9wZXJhdGlvbnMuIEJ5IGRlZmF1bHQsIGJ1Y2tldHMgYXJlIHByaXZhdGUuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5maWxlU2l6ZUxpbWl0IHNwZWNpZmllcyB0aGUgbWF4IGZpbGUgc2l6ZSBpbiBieXRlcyB0aGF0IGNhbiBiZSB1cGxvYWRlZCB0byB0aGlzIGJ1Y2tldC5cclxuICAgICAqIFRoZSBnbG9iYWwgZmlsZSBzaXplIGxpbWl0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGlzIHZhbHVlLlxyXG4gICAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgbnVsbCwgd2hpY2ggZG9lc24ndCBzZXQgYSBwZXIgYnVja2V0IGZpbGUgc2l6ZSBsaW1pdC5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmFsbG93ZWRNaW1lVHlwZXMgc3BlY2lmaWVzIHRoZSBhbGxvd2VkIG1pbWUgdHlwZXMgdGhhdCB0aGlzIGJ1Y2tldCBjYW4gYWNjZXB0IGR1cmluZyB1cGxvYWQuXHJcbiAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBudWxsLCB3aGljaCBhbGxvd3MgZmlsZXMgd2l0aCBhbGwgbWltZSB0eXBlcyB0byBiZSB1cGxvYWRlZC5cclxuICAgICAqIEVhY2ggbWltZSB0eXBlIHNwZWNpZmllZCBjYW4gYmUgYSB3aWxkY2FyZCwgZS5nLiBpbWFnZS8qLCBvciBhIHNwZWNpZmljIG1pbWUgdHlwZSwgZS5nLiBpbWFnZS9wbmcuXHJcbiAgICAgKiBAcmV0dXJucyBuZXdseSBjcmVhdGVkIGJ1Y2tldCBpZFxyXG4gICAgICovXHJcbiAgICBjcmVhdGVCdWNrZXQoaWQsIG9wdGlvbnMgPSB7XHJcbiAgICAgICAgcHVibGljOiBmYWxzZSxcclxuICAgIH0pIHtcclxuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHBvc3QodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L2J1Y2tldGAsIHtcclxuICAgICAgICAgICAgICAgICAgICBpZCxcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBpZCxcclxuICAgICAgICAgICAgICAgICAgICBwdWJsaWM6IG9wdGlvbnMucHVibGljLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGVfc2l6ZV9saW1pdDogb3B0aW9ucy5maWxlU2l6ZUxpbWl0LFxyXG4gICAgICAgICAgICAgICAgICAgIGFsbG93ZWRfbWltZV90eXBlczogb3B0aW9ucy5hbGxvd2VkTWltZVR5cGVzLFxyXG4gICAgICAgICAgICAgICAgfSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIGEgU3RvcmFnZSBidWNrZXRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gaWQgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGJ1Y2tldCB5b3UgYXJlIHVwZGF0aW5nLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMucHVibGljIFRoZSB2aXNpYmlsaXR5IG9mIHRoZSBidWNrZXQuIFB1YmxpYyBidWNrZXRzIGRvbid0IHJlcXVpcmUgYW4gYXV0aG9yaXphdGlvbiB0b2tlbiB0byBkb3dubG9hZCBvYmplY3RzLCBidXQgc3RpbGwgcmVxdWlyZSBhIHZhbGlkIHRva2VuIGZvciBhbGwgb3RoZXIgb3BlcmF0aW9ucy5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmZpbGVTaXplTGltaXQgc3BlY2lmaWVzIHRoZSBtYXggZmlsZSBzaXplIGluIGJ5dGVzIHRoYXQgY2FuIGJlIHVwbG9hZGVkIHRvIHRoaXMgYnVja2V0LlxyXG4gICAgICogVGhlIGdsb2JhbCBmaWxlIHNpemUgbGltaXQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoaXMgdmFsdWUuXHJcbiAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBudWxsLCB3aGljaCBkb2Vzbid0IHNldCBhIHBlciBidWNrZXQgZmlsZSBzaXplIGxpbWl0LlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuYWxsb3dlZE1pbWVUeXBlcyBzcGVjaWZpZXMgdGhlIGFsbG93ZWQgbWltZSB0eXBlcyB0aGF0IHRoaXMgYnVja2V0IGNhbiBhY2NlcHQgZHVyaW5nIHVwbG9hZC5cclxuICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIG51bGwsIHdoaWNoIGFsbG93cyBmaWxlcyB3aXRoIGFsbCBtaW1lIHR5cGVzIHRvIGJlIHVwbG9hZGVkLlxyXG4gICAgICogRWFjaCBtaW1lIHR5cGUgc3BlY2lmaWVkIGNhbiBiZSBhIHdpbGRjYXJkLCBlLmcuIGltYWdlLyosIG9yIGEgc3BlY2lmaWMgbWltZSB0eXBlLCBlLmcuIGltYWdlL3BuZy5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlQnVja2V0KGlkLCBvcHRpb25zKSB7XHJcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBwdXQodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L2J1Y2tldC8ke2lkfWAsIHtcclxuICAgICAgICAgICAgICAgICAgICBpZCxcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBpZCxcclxuICAgICAgICAgICAgICAgICAgICBwdWJsaWM6IG9wdGlvbnMucHVibGljLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGVfc2l6ZV9saW1pdDogb3B0aW9ucy5maWxlU2l6ZUxpbWl0LFxyXG4gICAgICAgICAgICAgICAgICAgIGFsbG93ZWRfbWltZV90eXBlczogb3B0aW9ucy5hbGxvd2VkTWltZVR5cGVzLFxyXG4gICAgICAgICAgICAgICAgfSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIGFsbCBvYmplY3RzIGluc2lkZSBhIHNpbmdsZSBidWNrZXQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGlkIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYnVja2V0IHlvdSB3b3VsZCBsaWtlIHRvIGVtcHR5LlxyXG4gICAgICovXHJcbiAgICBlbXB0eUJ1Y2tldChpZCkge1xyXG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcG9zdCh0aGlzLmZldGNoLCBgJHt0aGlzLnVybH0vYnVja2V0LyR7aWR9L2VtcHR5YCwge30sIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogRGVsZXRlcyBhbiBleGlzdGluZyBidWNrZXQuIEEgYnVja2V0IGNhbid0IGJlIGRlbGV0ZWQgd2l0aCBleGlzdGluZyBvYmplY3RzIGluc2lkZSBpdC5cclxuICAgICAqIFlvdSBtdXN0IGZpcnN0IGBlbXB0eSgpYCB0aGUgYnVja2V0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpZCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGJ1Y2tldCB5b3Ugd291bGQgbGlrZSB0byBkZWxldGUuXHJcbiAgICAgKi9cclxuICAgIGRlbGV0ZUJ1Y2tldChpZCkge1xyXG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcmVtb3ZlKHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9idWNrZXQvJHtpZH1gLCB7fSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVN0b3JhZ2VCdWNrZXRBcGkuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/packages/StorageBucketApi.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/packages/StorageFileApi.js":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/@supabase/storage-js/dist/module/packages/StorageFileApi.js ***!
|
||
\**********************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ StorageFileApi; }\n/* harmony export */ });\n/* harmony import */ var _lib_errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/errors */ \"(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/errors.js\");\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/fetch */ \"(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/helpers */ \"(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/lib/helpers.js\");\n/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"(app-pages-browser)/./node_modules/next/dist/compiled/buffer/index.js\")[\"Buffer\"];\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\n\r\nconst DEFAULT_SEARCH_OPTIONS = {\r\n limit: 100,\r\n offset: 0,\r\n sortBy: {\r\n column: 'name',\r\n order: 'asc',\r\n },\r\n};\r\nconst DEFAULT_FILE_OPTIONS = {\r\n cacheControl: '3600',\r\n contentType: 'text/plain;charset=UTF-8',\r\n upsert: false,\r\n};\r\nclass StorageFileApi {\r\n constructor(url, headers = {}, bucketId, fetch) {\r\n this.url = url;\r\n this.headers = headers;\r\n this.bucketId = bucketId;\r\n this.fetch = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_0__.resolveFetch)(fetch);\r\n }\r\n /**\r\n * Uploads a file to an existing bucket or replaces an existing file at the specified path with a new one.\r\n *\r\n * @param method HTTP method.\r\n * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\r\n * @param fileBody The body of the file to be stored in the bucket.\r\n */\r\n uploadOrUpdate(method, path, fileBody, fileOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n let body;\r\n const options = Object.assign(Object.assign({}, DEFAULT_FILE_OPTIONS), fileOptions);\r\n let headers = Object.assign(Object.assign({}, this.headers), (method === 'POST' && { 'x-upsert': String(options.upsert) }));\r\n const metadata = options.metadata;\r\n if (typeof Blob !== 'undefined' && fileBody instanceof Blob) {\r\n body = new FormData();\r\n body.append('cacheControl', options.cacheControl);\r\n if (metadata) {\r\n body.append('metadata', this.encodeMetadata(metadata));\r\n }\r\n body.append('', fileBody);\r\n }\r\n else if (typeof FormData !== 'undefined' && fileBody instanceof FormData) {\r\n body = fileBody;\r\n body.append('cacheControl', options.cacheControl);\r\n if (metadata) {\r\n body.append('metadata', this.encodeMetadata(metadata));\r\n }\r\n }\r\n else {\r\n body = fileBody;\r\n headers['cache-control'] = `max-age=${options.cacheControl}`;\r\n headers['content-type'] = options.contentType;\r\n if (metadata) {\r\n headers['x-metadata'] = this.toBase64(this.encodeMetadata(metadata));\r\n }\r\n }\r\n if (fileOptions === null || fileOptions === void 0 ? void 0 : fileOptions.headers) {\r\n headers = Object.assign(Object.assign({}, headers), fileOptions.headers);\r\n }\r\n const cleanPath = this._removeEmptyFolders(path);\r\n const _path = this._getFinalPath(cleanPath);\r\n const res = yield this.fetch(`${this.url}/object/${_path}`, Object.assign({ method, body: body, headers }, ((options === null || options === void 0 ? void 0 : options.duplex) ? { duplex: options.duplex } : {})));\r\n const data = yield res.json();\r\n if (res.ok) {\r\n return {\r\n data: { path: cleanPath, id: data.Id, fullPath: data.Key },\r\n error: null,\r\n };\r\n }\r\n else {\r\n const error = data;\r\n return { data: null, error };\r\n }\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Uploads a file to an existing bucket.\r\n *\r\n * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\r\n * @param fileBody The body of the file to be stored in the bucket.\r\n */\r\n upload(path, fileBody, fileOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return this.uploadOrUpdate('POST', path, fileBody, fileOptions);\r\n });\r\n }\r\n /**\r\n * Upload a file with a token generated from `createSignedUploadUrl`.\r\n * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\r\n * @param token The token generated from `createSignedUploadUrl`\r\n * @param fileBody The body of the file to be stored in the bucket.\r\n */\r\n uploadToSignedUrl(path, token, fileBody, fileOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const cleanPath = this._removeEmptyFolders(path);\r\n const _path = this._getFinalPath(cleanPath);\r\n const url = new URL(this.url + `/object/upload/sign/${_path}`);\r\n url.searchParams.set('token', token);\r\n try {\r\n let body;\r\n const options = Object.assign({ upsert: DEFAULT_FILE_OPTIONS.upsert }, fileOptions);\r\n const headers = Object.assign(Object.assign({}, this.headers), { 'x-upsert': String(options.upsert) });\r\n if (typeof Blob !== 'undefined' && fileBody instanceof Blob) {\r\n body = new FormData();\r\n body.append('cacheControl', options.cacheControl);\r\n body.append('', fileBody);\r\n }\r\n else if (typeof FormData !== 'undefined' && fileBody instanceof FormData) {\r\n body = fileBody;\r\n body.append('cacheControl', options.cacheControl);\r\n }\r\n else {\r\n body = fileBody;\r\n headers['cache-control'] = `max-age=${options.cacheControl}`;\r\n headers['content-type'] = options.contentType;\r\n }\r\n const res = yield this.fetch(url.toString(), {\r\n method: 'PUT',\r\n body: body,\r\n headers,\r\n });\r\n const data = yield res.json();\r\n if (res.ok) {\r\n return {\r\n data: { path: cleanPath, fullPath: data.Key },\r\n error: null,\r\n };\r\n }\r\n else {\r\n const error = data;\r\n return { data: null, error };\r\n }\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Creates a signed upload URL.\r\n * Signed upload URLs can be used to upload files to the bucket without further authentication.\r\n * They are valid for 2 hours.\r\n * @param path The file path, including the current file name. For example `folder/image.png`.\r\n * @param options.upsert If set to true, allows the file to be overwritten if it already exists.\r\n */\r\n createSignedUploadUrl(path, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n let _path = this._getFinalPath(path);\r\n const headers = Object.assign({}, this.headers);\r\n if (options === null || options === void 0 ? void 0 : options.upsert) {\r\n headers['x-upsert'] = 'true';\r\n }\r\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/upload/sign/${_path}`, {}, { headers });\r\n const url = new URL(this.url + data.url);\r\n const token = url.searchParams.get('token');\r\n if (!token) {\r\n throw new _lib_errors__WEBPACK_IMPORTED_MODULE_1__.StorageError('No token returned by API');\r\n }\r\n return { data: { signedUrl: url.toString(), path, token }, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Replaces an existing file at the specified path with a new one.\r\n *\r\n * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to update.\r\n * @param fileBody The body of the file to be stored in the bucket.\r\n */\r\n update(path, fileBody, fileOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return this.uploadOrUpdate('PUT', path, fileBody, fileOptions);\r\n });\r\n }\r\n /**\r\n * Moves an existing file to a new path in the same bucket.\r\n *\r\n * @param fromPath The original file path, including the current file name. For example `folder/image.png`.\r\n * @param toPath The new file path, including the new file name. For example `folder/image-new.png`.\r\n * @param options The destination options.\r\n */\r\n move(fromPath, toPath, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/move`, {\r\n bucketId: this.bucketId,\r\n sourceKey: fromPath,\r\n destinationKey: toPath,\r\n destinationBucket: options === null || options === void 0 ? void 0 : options.destinationBucket,\r\n }, { headers: this.headers });\r\n return { data, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Copies an existing file to a new path in the same bucket.\r\n *\r\n * @param fromPath The original file path, including the current file name. For example `folder/image.png`.\r\n * @param toPath The new file path, including the new file name. For example `folder/image-copy.png`.\r\n * @param options The destination options.\r\n */\r\n copy(fromPath, toPath, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/copy`, {\r\n bucketId: this.bucketId,\r\n sourceKey: fromPath,\r\n destinationKey: toPath,\r\n destinationBucket: options === null || options === void 0 ? void 0 : options.destinationBucket,\r\n }, { headers: this.headers });\r\n return { data: { path: data.Key }, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Creates a signed URL. Use a signed URL to share a file for a fixed amount of time.\r\n *\r\n * @param path The file path, including the current file name. For example `folder/image.png`.\r\n * @param expiresIn The number of seconds until the signed URL expires. For example, `60` for a URL which is valid for one minute.\r\n * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\r\n * @param options.transform Transform the asset before serving it to the client.\r\n */\r\n createSignedUrl(path, expiresIn, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n let _path = this._getFinalPath(path);\r\n let data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/sign/${_path}`, Object.assign({ expiresIn }, ((options === null || options === void 0 ? void 0 : options.transform) ? { transform: options.transform } : {})), { headers: this.headers });\r\n const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download)\r\n ? `&download=${options.download === true ? '' : options.download}`\r\n : '';\r\n const signedUrl = encodeURI(`${this.url}${data.signedURL}${downloadQueryParam}`);\r\n data = { signedUrl };\r\n return { data, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Creates multiple signed URLs. Use a signed URL to share a file for a fixed amount of time.\r\n *\r\n * @param paths The file paths to be downloaded, including the current file names. For example `['folder/image.png', 'folder2/image2.png']`.\r\n * @param expiresIn The number of seconds until the signed URLs expire. For example, `60` for URLs which are valid for one minute.\r\n * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\r\n */\r\n createSignedUrls(paths, expiresIn, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/sign/${this.bucketId}`, { expiresIn, paths }, { headers: this.headers });\r\n const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download)\r\n ? `&download=${options.download === true ? '' : options.download}`\r\n : '';\r\n return {\r\n data: data.map((datum) => (Object.assign(Object.assign({}, datum), { signedUrl: datum.signedURL\r\n ? encodeURI(`${this.url}${datum.signedURL}${downloadQueryParam}`)\r\n : null }))),\r\n error: null,\r\n };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Downloads a file from a private bucket. For public buckets, make a request to the URL returned from `getPublicUrl` instead.\r\n *\r\n * @param path The full path and file name of the file to be downloaded. For example `folder/image.png`.\r\n * @param options.transform Transform the asset before serving it to the client.\r\n */\r\n download(path, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const wantsTransformation = typeof (options === null || options === void 0 ? void 0 : options.transform) !== 'undefined';\r\n const renderPath = wantsTransformation ? 'render/image/authenticated' : 'object';\r\n const transformationQuery = this.transformOptsToQueryString((options === null || options === void 0 ? void 0 : options.transform) || {});\r\n const queryString = transformationQuery ? `?${transformationQuery}` : '';\r\n try {\r\n const _path = this._getFinalPath(path);\r\n const res = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.get)(this.fetch, `${this.url}/${renderPath}/${_path}${queryString}`, {\r\n headers: this.headers,\r\n noResolveJson: true,\r\n });\r\n const data = yield res.blob();\r\n return { data, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Retrieves the details of an existing file.\r\n * @param path\r\n */\r\n info(path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const _path = this._getFinalPath(path);\r\n try {\r\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.get)(this.fetch, `${this.url}/object/info/${_path}`, {\r\n headers: this.headers,\r\n });\r\n return { data: (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_0__.recursiveToCamel)(data), error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Checks the existence of a file.\r\n * @param path\r\n */\r\n exists(path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const _path = this._getFinalPath(path);\r\n try {\r\n yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.head)(this.fetch, `${this.url}/object/${_path}`, {\r\n headers: this.headers,\r\n });\r\n return { data: true, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error) && error instanceof _lib_errors__WEBPACK_IMPORTED_MODULE_1__.StorageUnknownError) {\r\n const originalError = error.originalError;\r\n if ([400, 404].includes(originalError === null || originalError === void 0 ? void 0 : originalError.status)) {\r\n return { data: false, error };\r\n }\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * A simple convenience function to get the URL for an asset in a public bucket. If you do not want to use this function, you can construct the public URL by concatenating the bucket URL with the path to the asset.\r\n * This function does not verify if the bucket is public. If a public URL is created for a bucket which is not public, you will not be able to download the asset.\r\n *\r\n * @param path The path and name of the file to generate the public URL for. For example `folder/image.png`.\r\n * @param options.download Triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\r\n * @param options.transform Transform the asset before serving it to the client.\r\n */\r\n getPublicUrl(path, options) {\r\n const _path = this._getFinalPath(path);\r\n const _queryString = [];\r\n const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download)\r\n ? `download=${options.download === true ? '' : options.download}`\r\n : '';\r\n if (downloadQueryParam !== '') {\r\n _queryString.push(downloadQueryParam);\r\n }\r\n const wantsTransformation = typeof (options === null || options === void 0 ? void 0 : options.transform) !== 'undefined';\r\n const renderPath = wantsTransformation ? 'render/image' : 'object';\r\n const transformationQuery = this.transformOptsToQueryString((options === null || options === void 0 ? void 0 : options.transform) || {});\r\n if (transformationQuery !== '') {\r\n _queryString.push(transformationQuery);\r\n }\r\n let queryString = _queryString.join('&');\r\n if (queryString !== '') {\r\n queryString = `?${queryString}`;\r\n }\r\n return {\r\n data: { publicUrl: encodeURI(`${this.url}/${renderPath}/public/${_path}${queryString}`) },\r\n };\r\n }\r\n /**\r\n * Deletes files within the same bucket\r\n *\r\n * @param paths An array of files to delete, including the path and file name. For example [`'folder/image.png'`].\r\n */\r\n remove(paths) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.remove)(this.fetch, `${this.url}/object/${this.bucketId}`, { prefixes: paths }, { headers: this.headers });\r\n return { data, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Get file metadata\r\n * @param id the file id to retrieve metadata\r\n */\r\n // async getMetadata(\r\n // id: string\r\n // ): Promise<\r\n // | {\r\n // data: Metadata\r\n // error: null\r\n // }\r\n // | {\r\n // data: null\r\n // error: StorageError\r\n // }\r\n // > {\r\n // try {\r\n // const data = await get(this.fetch, `${this.url}/metadata/${id}`, { headers: this.headers })\r\n // return { data, error: null }\r\n // } catch (error) {\r\n // if (isStorageError(error)) {\r\n // return { data: null, error }\r\n // }\r\n // throw error\r\n // }\r\n // }\r\n /**\r\n * Update file metadata\r\n * @param id the file id to update metadata\r\n * @param meta the new file metadata\r\n */\r\n // async updateMetadata(\r\n // id: string,\r\n // meta: Metadata\r\n // ): Promise<\r\n // | {\r\n // data: Metadata\r\n // error: null\r\n // }\r\n // | {\r\n // data: null\r\n // error: StorageError\r\n // }\r\n // > {\r\n // try {\r\n // const data = await post(\r\n // this.fetch,\r\n // `${this.url}/metadata/${id}`,\r\n // { ...meta },\r\n // { headers: this.headers }\r\n // )\r\n // return { data, error: null }\r\n // } catch (error) {\r\n // if (isStorageError(error)) {\r\n // return { data: null, error }\r\n // }\r\n // throw error\r\n // }\r\n // }\r\n /**\r\n * Lists all the files within a bucket.\r\n * @param path The folder path.\r\n */\r\n list(path, options, parameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const body = Object.assign(Object.assign(Object.assign({}, DEFAULT_SEARCH_OPTIONS), options), { prefix: path || '' });\r\n const data = yield (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_2__.post)(this.fetch, `${this.url}/object/list/${this.bucketId}`, body, { headers: this.headers }, parameters);\r\n return { data, error: null };\r\n }\r\n catch (error) {\r\n if ((0,_lib_errors__WEBPACK_IMPORTED_MODULE_1__.isStorageError)(error)) {\r\n return { data: null, error };\r\n }\r\n throw error;\r\n }\r\n });\r\n }\r\n encodeMetadata(metadata) {\r\n return JSON.stringify(metadata);\r\n }\r\n toBase64(data) {\r\n if (typeof Buffer !== 'undefined') {\r\n return Buffer.from(data).toString('base64');\r\n }\r\n return btoa(data);\r\n }\r\n _getFinalPath(path) {\r\n return `${this.bucketId}/${path}`;\r\n }\r\n _removeEmptyFolders(path) {\r\n return path.replace(/^\\/|\\/$/g, '').replace(/\\/+/g, '/');\r\n }\r\n transformOptsToQueryString(transform) {\r\n const params = [];\r\n if (transform.width) {\r\n params.push(`width=${transform.width}`);\r\n }\r\n if (transform.height) {\r\n params.push(`height=${transform.height}`);\r\n }\r\n if (transform.resize) {\r\n params.push(`resize=${transform.resize}`);\r\n }\r\n if (transform.format) {\r\n params.push(`format=${transform.format}`);\r\n }\r\n if (transform.quality) {\r\n params.push(`quality=${transform.quality}`);\r\n }\r\n return params.join('&');\r\n }\r\n}\r\n//# sourceMappingURL=StorageFileApi.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3RvcmFnZS1qcy9kaXN0L21vZHVsZS9wYWNrYWdlcy9TdG9yYWdlRmlsZUFwaS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLGlCQUFpQixTQUFJLElBQUksU0FBSTtBQUM3Qiw0QkFBNEIsK0RBQStELGlCQUFpQjtBQUM1RztBQUNBLG9DQUFvQyxNQUFNLCtCQUErQixZQUFZO0FBQ3JGLG1DQUFtQyxNQUFNLG1DQUFtQyxZQUFZO0FBQ3hGLGdDQUFnQztBQUNoQztBQUNBLEtBQUs7QUFDTDtBQUNrRjtBQUMzQjtBQUNTO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNlO0FBQ2YsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiwwREFBWTtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4REFBOEQ7QUFDOUQsNERBQTRELHlDQUF5QyxvQ0FBb0M7QUFDekk7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMERBQTBELHFCQUFxQjtBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7QUFDNUQ7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdELFNBQVMsVUFBVSxNQUFNLG1CQUFtQiw2QkFBNkIsMEVBQTBFLHlCQUF5QixJQUFJO0FBQ2hPO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyxrREFBa0Q7QUFDbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsMkRBQWM7QUFDbEMsNkJBQTZCO0FBQzdCO0FBQ0E7QUFD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O0FBQ0E7QUFDQSxtQkFBbUIsTUFBTTtBQUN6QixtQkFBbUIsTUFBTTtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixjQUFjLEdBQUcsS0FBSztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQyxnQkFBZ0I7QUFDakQ7QUFDQTtBQUNBLGtDQUFrQyxpQkFBaUI7QUFDbkQ7QUFDQTtBQUNBLGtDQUFrQyxpQkFBaUI7QUFDbkQ7QUFDQTtBQUNBLGtDQUFrQyxpQkFBaUI7QUFDbkQ7QUFDQTtBQUNBLG1DQUFtQyxrQkFBa0I7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N0b3JhZ2UtanMvZGlzdC9tb2R1bGUvcGFja2FnZXMvU3RvcmFnZUZpbGVBcGkuanM/YTQ1NyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn07XHJcbmltcG9ydCB7IGlzU3RvcmFnZUVycm9yLCBTdG9yYWdlRXJyb3IsIFN0b3JhZ2VVbmtub3duRXJyb3IgfSBmcm9tICcuLi9saWIvZXJyb3JzJztcclxuaW1wb3J0IHsgZ2V0LCBoZWFkLCBwb3N0LCByZW1vdmUgfSBmcm9tICcuLi9saWIvZmV0Y2gnO1xyXG5pbXBvcnQgeyByZWN1cnNpdmVUb0NhbWVsLCByZXNvbHZlRmV0Y2ggfSBmcm9tICcuLi9saWIvaGVscGVycyc7XHJcbmNvbnN0IERFRkFVTFRfU0VBUkNIX09QVElPTlMgPSB7XHJcbiAgICBsaW1pdDogMTAwLFxyXG4gICAgb2Zmc2V0OiAwLFxyXG4gICAgc29ydEJ5OiB7XHJcbiAgICAgICAgY29sdW1uOiAnbmFtZScsXHJcbiAgICAgICAgb3JkZXI6ICdhc2MnLFxyXG4gICAgfSxcclxufTtcclxuY29uc3QgREVGQVVMVF9GSUxFX09QVElPTlMgPSB7XHJcbiAgICBjYWNoZUNvbnRyb2w6ICczNjAwJyxcclxuICAgIGNvbnRlbnRUeXBlOiAndGV4dC9wbGFpbjtjaGFyc2V0PVVURi04JyxcclxuICAgIHVwc2VydDogZmFsc2UsXHJcbn07XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN0b3JhZ2VGaWxlQXBpIHtcclxuICAgIGNvbnN0cnVjdG9yKHVybCwgaGVhZGVycyA9IHt9LCBidWNrZXRJZCwgZmV0Y2gpIHtcclxuICAgICAgICB0aGlzLnVybCA9IHVybDtcclxuICAgICAgICB0aGlzLmhlYWRlcnMgPSBoZWFkZXJzO1xyXG4gICAgICAgIHRoaXMuYnVja2V0SWQgPSBidWNrZXRJZDtcclxuICAgICAgICB0aGlzLmZldGNoID0gcmVzb2x2ZUZldGNoKGZldGNoKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVXBsb2FkcyBhIGZpbGUgdG8gYW4gZXhpc3RpbmcgYnVja2V0IG9yIHJlcGxhY2VzIGFuIGV4aXN0aW5nIGZpbGUgYXQgdGhlIHNwZWNpZmllZCBwYXRoIHdpdGggYSBuZXcgb25lLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBtZXRob2QgSFRUUCBtZXRob2QuXHJcbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgcmVsYXRpdmUgZmlsZSBwYXRoLiBTaG91bGQgYmUgb2YgdGhlIGZvcm1hdCBgZm9sZGVyL3N1YmZvbGRlci9maWxlbmFtZS5wbmdgLiBUaGUgYnVja2V0IG11c3QgYWxyZWFkeSBleGlzdCBiZWZvcmUgYXR0ZW1wdGluZyB0byB1cGxvYWQuXHJcbiAgICAgKiBAcGFyYW0gZmlsZUJvZHkgVGhlIGJvZHkgb2YgdGhlIGZpbGUgdG8gYmUgc3RvcmVkIGluIHRoZSBidWNrZXQuXHJcbiAgICAgKi9cclxuICAgIHVwbG9hZE9yVXBkYXRlKG1ldGhvZCwgcGF0aCwgZmlsZUJvZHksIGZpbGVPcHRpb25zKSB7XHJcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGxldCBib2R5O1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9GSUxFX09QVElPTlMpLCBmaWxlT3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICBsZXQgaGVhZGVycyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5oZWFkZXJzKSwgKG1ldGhvZCA9PT0gJ1BPU1QnICYmIHsgJ3gtdXBzZXJ0JzogU3RyaW5nKG9wdGlvbnMudXBzZXJ0KSB9KSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtZXRhZGF0YSA9IG9wdGlvbnMubWV0YWRhdGE7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIEJsb2IgIT09ICd1bmRlZmluZWQnICYmIGZpbGVCb2R5IGluc3RhbmNlb2YgQmxvYikge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvZHkgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgICAgICAgICAgICAgICBib2R5LmFwcGVuZCgnY2FjaGVDb250cm9sJywgb3B0aW9ucy5jYWNoZUNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXRhZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5LmFwcGVuZCgnbWV0YWRhdGEnLCB0aGlzLmVuY29kZU1ldGFkYXRhKG1ldGFkYXRhKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJvZHkuYXBwZW5kKCcnLCBmaWxlQm9keSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgRm9ybURhdGEgIT09ICd1bmRlZmluZWQnICYmIGZpbGVCb2R5IGluc3RhbmNlb2YgRm9ybURhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICBib2R5ID0gZmlsZUJvZHk7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9keS5hcHBlbmQoJ2NhY2hlQ29udHJvbCcsIG9wdGlvbnMuY2FjaGVDb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobWV0YWRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keS5hcHBlbmQoJ21ldGFkYXRhJywgdGhpcy5lbmNvZGVNZXRhZGF0YShtZXRhZGF0YSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvZHkgPSBmaWxlQm9keTtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzWydjYWNoZS1jb250cm9sJ10gPSBgbWF4LWFnZT0ke29wdGlvbnMuY2FjaGVDb250cm9sfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyc1snY29udGVudC10eXBlJ10gPSBvcHRpb25zLmNvbnRlbnRUeXBlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXRhZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzWyd4LW1ldGFkYXRhJ10gPSB0aGlzLnRvQmFzZTY0KHRoaXMuZW5jb2RlTWV0YWRhdGEobWV0YWRhdGEpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsZU9wdGlvbnMgPT09IG51bGwgfHwgZmlsZU9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpbGVPcHRpb25zLmhlYWRlcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBoZWFkZXJzKSwgZmlsZU9wdGlvbnMuaGVhZGVycyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbGVhblBhdGggPSB0aGlzLl9yZW1vdmVFbXB0eUZvbGRlcnMocGF0aCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBfcGF0aCA9IHRoaXMuX2dldEZpbmFsUGF0aChjbGVhblBhdGgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0geWllbGQgdGhpcy5mZXRjaChgJHt0aGlzLnVybH0vb2JqZWN0LyR7X3BhdGh9YCwgT2JqZWN0LmFzc2lnbih7IG1ldGhvZCwgYm9keTogYm9keSwgaGVhZGVycyB9LCAoKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5kdXBsZXgpID8geyBkdXBsZXg6IG9wdGlvbnMuZHVwbGV4IH0gOiB7fSkpKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCByZXMuanNvbigpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcy5vaykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHsgcGF0aDogY2xlYW5QYXRoLCBpZDogZGF0YS5JZCwgZnVsbFBhdGg6IGRhdGEuS2V5IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVXBsb2FkcyBhIGZpbGUgdG8gYW4gZXhpc3RpbmcgYnVja2V0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBmaWxlIHBhdGgsIGluY2x1ZGluZyB0aGUgZmlsZSBuYW1lLiBTaG91bGQgYmUgb2YgdGhlIGZvcm1hdCBgZm9sZGVyL3N1YmZvbGRlci9maWxlbmFtZS5wbmdgLiBUaGUgYnVja2V0IG11c3QgYWxyZWFkeSBleGlzdCBiZWZvcmUgYXR0ZW1wdGluZyB0byB1cGxvYWQuXHJcbiAgICAgKiBAcGFyYW0gZmlsZUJvZHkgVGhlIGJvZHkgb2YgdGhlIGZpbGUgdG8gYmUgc3RvcmVkIGluIHRoZSBidWNrZXQuXHJcbiAgICAgKi9cclxuICAgIHVwbG9hZChwYXRoLCBmaWxlQm9keSwgZmlsZU9wdGlvbnMpIHtcclxuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRPclVwZGF0ZSgnUE9TVCcsIHBhdGgsIGZpbGVCb2R5LCBmaWxlT3B0aW9ucyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFVwbG9hZCBhIGZpbGUgd2l0aCBhIHRva2VuIGdlbmVyYXRlZCBmcm9tIGBjcmVhdGVTaWduZWRVcGxvYWRVcmxgLlxyXG4gICAgICogQHBhcmFtIHBhdGggVGhlIGZpbGUgcGF0aCwgaW5jbHVkaW5nIHRoZSBmaWxlIG5hbWUuIFNob3VsZCBiZSBvZiB0aGUgZm9ybWF0IGBmb2xkZXIvc3ViZm9sZGVyL2ZpbGVuYW1lLnBuZ2AuIFRoZSBidWNrZXQgbXVzdCBhbHJlYWR5IGV4aXN0IGJlZm9yZSBhdHRlbXB0aW5nIHRvIHVwbG9hZC5cclxuICAgICAqIEBwYXJhbSB0b2tlbiBUaGUgdG9rZW4gZ2VuZXJhdGVkIGZyb20gYGNyZWF0ZVNpZ25lZFVwbG9hZFVybGBcclxuICAgICAqIEBwYXJhbSBmaWxlQm9keSBUaGUgYm9keSBvZiB0aGUgZmlsZSB0byBiZSBzdG9yZWQgaW4gdGhlIGJ1Y2tldC5cclxuICAgICAqL1xyXG4gICAgdXBsb2FkVG9TaWduZWRVcmwocGF0aCwgdG9rZW4sIGZpbGVCb2R5LCBmaWxlT3B0aW9ucykge1xyXG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuUGF0aCA9IHRoaXMuX3JlbW92ZUVtcHR5Rm9sZGVycyhwYXRoKTtcclxuICAgICAgICAgICAgY29uc3QgX3BhdGggPSB0aGlzLl9nZXRGaW5hbFBhdGgoY2xlYW5QYXRoKTtcclxuICAgICAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLnVybCArIGAvb2JqZWN0L3VwbG9hZC9zaWduLyR7X3BhdGh9YCk7XHJcbiAgICAgICAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCd0b2tlbicsIHRva2VuKTtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGxldCBib2R5O1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oeyB1cHNlcnQ6IERFRkFVTFRfRklMRV9PUFRJT05TLnVwc2VydCB9LCBmaWxlT3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0aGlzLmhlYWRlcnMpLCB7ICd4LXVwc2VydCc6IFN0cmluZyhvcHRpb25zLnVwc2VydCkgfSk7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIEJsb2IgIT09ICd1bmRlZmluZWQnICYmIGZpbGVCb2R5IGluc3RhbmNlb2YgQmxvYikge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvZHkgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgICAgICAgICAgICAgICBib2R5LmFwcGVuZCgnY2FjaGVDb250cm9sJywgb3B0aW9ucy5jYWNoZUNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvZHkuYXBwZW5kKCcnLCBmaWxlQm9keSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgRm9ybURhdGEgIT09ICd1bmRlZmluZWQnICYmIGZpbGVCb2R5IGluc3RhbmNlb2YgRm9ybURhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICBib2R5ID0gZmlsZUJvZHk7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9keS5hcHBlbmQoJ2NhY2hlQ29udHJvbCcsIG9wdGlvbnMuY2FjaGVDb250cm9sKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvZHkgPSBmaWxlQm9keTtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzWydjYWNoZS1jb250cm9sJ10gPSBgbWF4LWFnZT0ke29wdGlvbnMuY2FjaGVDb250cm9sfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyc1snY29udGVudC10eXBlJ10gPSBvcHRpb25zLmNvbnRlbnRUeXBlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0geWllbGQgdGhpcy5mZXRjaCh1cmwudG9TdHJpbmcoKSwge1xyXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BVVCcsXHJcbiAgICAgICAgICAgICAgICAgICAgYm9keTogYm9keSxcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcmVzLmpzb24oKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMub2spIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7IHBhdGg6IGNsZWFuUGF0aCwgZnVsbFBhdGg6IGRhdGEuS2V5IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIHNpZ25lZCB1cGxvYWQgVVJMLlxyXG4gICAgICogU2lnbmVkIHVwbG9hZCBVUkxzIGNhbiBiZSB1c2VkIHRvIHVwbG9hZCBmaWxlcyB0byB0aGUgYnVja2V0IHdpdGhvdXQgZnVydGhlciBhdXRoZW50aWNhdGlvbi5cclxuICAgICAqIFRoZXkgYXJlIHZhbGlkIGZvciAyIGhvdXJzLlxyXG4gICAgICogQHBhcmFtIHBhdGggVGhlIGZpbGUgcGF0aCwgaW5jbHVkaW5nIHRoZSBjdXJyZW50IGZpbGUgbmFtZS4gRm9yIGV4YW1wbGUgYGZvbGRlci9pbWFnZS5wbmdgLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMudXBzZXJ0IElmIHNldCB0byB0cnVlLCBhbGxvd3MgdGhlIGZpbGUgdG8gYmUgb3ZlcndyaXR0ZW4gaWYgaXQgYWxyZWFkeSBleGlzdHMuXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZVNpZ25lZFVwbG9hZFVybChwYXRoLCBvcHRpb25zKSB7XHJcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGxldCBfcGF0aCA9IHRoaXMuX2dldEZpbmFsUGF0aChwYXRoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmhlYWRlcnMpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy51cHNlcnQpIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzWyd4LXVwc2VydCddID0gJ3RydWUnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHBvc3QodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L29iamVjdC91cGxvYWQvc2lnbi8ke19wYXRofWAsIHt9LCB7IGhlYWRlcnMgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHRoaXMudXJsICsgZGF0YS51cmwpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB1cmwuc2VhcmNoUGFyYW1zLmdldCgndG9rZW4nKTtcclxuICAgICAgICAgICAgICAgIGlmICghdG9rZW4pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RvcmFnZUVycm9yKCdObyB0b2tlbiByZXR1cm5lZCBieSBBUEknKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHsgc2lnbmVkVXJsOiB1cmwudG9TdHJpbmcoKSwgcGF0aCwgdG9rZW4gfSwgZXJyb3I6IG51bGwgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUmVwbGFjZXMgYW4gZXhpc3RpbmcgZmlsZSBhdCB0aGUgc3BlY2lmaWVkIHBhdGggd2l0aCBhIG5ldyBvbmUuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHBhdGggVGhlIHJlbGF0aXZlIGZpbGUgcGF0aC4gU2hvdWxkIGJlIG9mIHRoZSBmb3JtYXQgYGZvbGRlci9zdWJmb2xkZXIvZmlsZW5hbWUucG5nYC4gVGhlIGJ1Y2tldCBtdXN0IGFscmVhZHkgZXhpc3QgYmVmb3JlIGF0dGVtcHRpbmcgdG8gdXBkYXRlLlxyXG4gICAgICogQHBhcmFtIGZpbGVCb2R5IFRoZSBib2R5IG9mIHRoZSBmaWxlIHRvIGJlIHN0b3JlZCBpbiB0aGUgYnVja2V0LlxyXG4gICAgICovXHJcbiAgICB1cGRhdGUocGF0aCwgZmlsZUJvZHksIGZpbGVPcHRpb25zKSB7XHJcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkT3JVcGRhdGUoJ1BVVCcsIHBhdGgsIGZpbGVCb2R5LCBmaWxlT3B0aW9ucyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIE1vdmVzIGFuIGV4aXN0aW5nIGZpbGUgdG8gYSBuZXcgcGF0aCBpbiB0aGUgc2FtZSBidWNrZXQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGZyb21QYXRoIFRoZSBvcmlnaW5hbCBmaWxlIHBhdGgsIGluY2x1ZGluZyB0aGUgY3VycmVudCBmaWxlIG5hbWUuIEZvciBleGFtcGxlIGBmb2xkZXIvaW1hZ2UucG5nYC5cclxuICAgICAqIEBwYXJhbSB0b1BhdGggVGhlIG5ldyBmaWxlIHBhdGgsIGluY2x1ZGluZyB0aGUgbmV3IGZpbGUgbmFtZS4gRm9yIGV4YW1wbGUgYGZvbGRlci9pbWFnZS1uZXcucG5nYC5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBkZXN0aW5hdGlvbiBvcHRpb25zLlxyXG4gICAgICovXHJcbiAgICBtb3ZlKGZyb21QYXRoLCB0b1BhdGgsIG9wdGlvbnMpIHtcclxuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHBvc3QodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L29iamVjdC9tb3ZlYCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGJ1Y2tldElkOiB0aGlzLmJ1Y2tldElkLFxyXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZUtleTogZnJvbVBhdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25LZXk6IHRvUGF0aCxcclxuICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmRlc3RpbmF0aW9uQnVja2V0LFxyXG4gICAgICAgICAgICAgICAgfSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBDb3BpZXMgYW4gZXhpc3RpbmcgZmlsZSB0byBhIG5ldyBwYXRoIGluIHRoZSBzYW1lIGJ1Y2tldC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gZnJvbVBhdGggVGhlIG9yaWdpbmFsIGZpbGUgcGF0aCwgaW5jbHVkaW5nIHRoZSBjdXJyZW50IGZpbGUgbmFtZS4gRm9yIGV4YW1wbGUgYGZvbGRlci9pbWFnZS5wbmdgLlxyXG4gICAgICogQHBhcmFtIHRvUGF0aCBUaGUgbmV3IGZpbGUgcGF0aCwgaW5jbHVkaW5nIHRoZSBuZXcgZmlsZSBuYW1lLiBGb3IgZXhhbXBsZSBgZm9sZGVyL2ltYWdlLWNvcHkucG5nYC5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBkZXN0aW5hdGlvbiBvcHRpb25zLlxyXG4gICAgICovXHJcbiAgICBjb3B5KGZyb21QYXRoLCB0b1BhdGgsIG9wdGlvbnMpIHtcclxuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHBvc3QodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L29iamVjdC9jb3B5YCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGJ1Y2tldElkOiB0aGlzLmJ1Y2tldElkLFxyXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZUtleTogZnJvbVBhdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25LZXk6IHRvUGF0aCxcclxuICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmRlc3RpbmF0aW9uQnVja2V0LFxyXG4gICAgICAgICAgICAgICAgfSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiB7IHBhdGg6IGRhdGEuS2V5IH0sIGVycm9yOiBudWxsIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYSBzaWduZWQgVVJMLiBVc2UgYSBzaWduZWQgVVJMIHRvIHNoYXJlIGEgZmlsZSBmb3IgYSBmaXhlZCBhbW91bnQgb2YgdGltZS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgZmlsZSBwYXRoLCBpbmNsdWRpbmcgdGhlIGN1cnJlbnQgZmlsZSBuYW1lLiBGb3IgZXhhbXBsZSBgZm9sZGVyL2ltYWdlLnBuZ2AuXHJcbiAgICAgKiBAcGFyYW0gZXhwaXJlc0luIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyB1bnRpbCB0aGUgc2lnbmVkIFVSTCBleHBpcmVzLiBGb3IgZXhhbXBsZSwgYDYwYCBmb3IgYSBVUkwgd2hpY2ggaXMgdmFsaWQgZm9yIG9uZSBtaW51dGUuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5kb3dubG9hZCB0cmlnZ2VycyB0aGUgZmlsZSBhcyBhIGRvd25sb2FkIGlmIHNldCB0byB0cnVlLiBTZXQgdGhpcyBwYXJhbWV0ZXIgYXMgdGhlIG5hbWUgb2YgdGhlIGZpbGUgaWYgeW91IHdhbnQgdG8gdHJpZ2dlciB0aGUgZG93bmxvYWQgd2l0aCBhIGRpZmZlcmVudCBmaWxlbmFtZS5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLnRyYW5zZm9ybSBUcmFuc2Zvcm0gdGhlIGFzc2V0IGJlZm9yZSBzZXJ2aW5nIGl0IHRvIHRoZSBjbGllbnQuXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZVNpZ25lZFVybChwYXRoLCBleHBpcmVzSW4sIG9wdGlvbnMpIHtcclxuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgbGV0IF9wYXRoID0gdGhpcy5fZ2V0RmluYWxQYXRoKHBhdGgpO1xyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB5aWVsZCBwb3N0KHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9vYmplY3Qvc2lnbi8ke19wYXRofWAsIE9iamVjdC5hc3NpZ24oeyBleHBpcmVzSW4gfSwgKChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMudHJhbnNmb3JtKSA/IHsgdHJhbnNmb3JtOiBvcHRpb25zLnRyYW5zZm9ybSB9IDoge30pKSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkb3dubG9hZFF1ZXJ5UGFyYW0gPSAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmRvd25sb2FkKVxyXG4gICAgICAgICAgICAgICAgICAgID8gYCZkb3dubG9hZD0ke29wdGlvbnMuZG93bmxvYWQgPT09IHRydWUgPyAnJyA6IG9wdGlvbnMuZG93bmxvYWR9YFxyXG4gICAgICAgICAgICAgICAgICAgIDogJyc7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzaWduZWRVcmwgPSBlbmNvZGVVUkkoYCR7dGhpcy51cmx9JHtkYXRhLnNpZ25lZFVSTH0ke2Rvd25sb2FkUXVlcnlQYXJhbX1gKTtcclxuICAgICAgICAgICAgICAgIGRhdGEgPSB7IHNpZ25lZFVybCB9O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBtdWx0aXBsZSBzaWduZWQgVVJMcy4gVXNlIGEgc2lnbmVkIFVSTCB0byBzaGFyZSBhIGZpbGUgZm9yIGEgZml4ZWQgYW1vdW50IG9mIHRpbWUuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHBhdGhzIFRoZSBmaWxlIHBhdGhzIHRvIGJlIGRvd25sb2FkZWQsIGluY2x1ZGluZyB0aGUgY3VycmVudCBmaWxlIG5hbWVzLiBGb3IgZXhhbXBsZSBgWydmb2xkZXIvaW1hZ2UucG5nJywgJ2ZvbGRlcjIvaW1hZ2UyLnBuZyddYC5cclxuICAgICAqIEBwYXJhbSBleHBpcmVzSW4gVGhlIG51bWJlciBvZiBzZWNvbmRzIHVudGlsIHRoZSBzaWduZWQgVVJMcyBleHBpcmUuIEZvciBleGFtcGxlLCBgNjBgIGZvciBVUkxzIHdoaWNoIGFyZSB2YWxpZCBmb3Igb25lIG1pbnV0ZS5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmRvd25sb2FkIHRyaWdnZXJzIHRoZSBmaWxlIGFzIGEgZG93bmxvYWQgaWYgc2V0IHRvIHRydWUuIFNldCB0aGlzIHBhcmFtZXRlciBhcyB0aGUgbmFtZSBvZiB0aGUgZmlsZSBpZiB5b3Ugd2FudCB0byB0cmlnZ2VyIHRoZSBkb3dubG9hZCB3aXRoIGEgZGlmZmVyZW50IGZpbGVuYW1lLlxyXG4gICAgICovXHJcbiAgICBjcmVhdGVTaWduZWRVcmxzKHBhdGhzLCBleHBpcmVzSW4sIG9wdGlvbnMpIHtcclxuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHBvc3QodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L29iamVjdC9zaWduLyR7dGhpcy5idWNrZXRJZH1gLCB7IGV4cGlyZXNJbiwgcGF0aHMgfSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkb3dubG9hZFF1ZXJ5UGFyYW0gPSAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmRvd25sb2FkKVxyXG4gICAgICAgICAgICAgICAgICAgID8gYCZkb3dubG9hZD0ke29wdGlvbnMuZG93bmxvYWQgPT09IHRydWUgPyAnJyA6IG9wdGlvbnMuZG93bmxvYWR9YFxyXG4gICAgICAgICAgICAgICAgICAgIDogJyc7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEubWFwKChkYXR1bSkgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZGF0dW0pLCB7IHNpZ25lZFVybDogZGF0dW0uc2lnbmVkVVJMXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGVuY29kZVVSSShgJHt0aGlzLnVybH0ke2RhdHVtLnNpZ25lZFVSTH0ke2Rvd25sb2FkUXVlcnlQYXJhbX1gKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IG51bGwsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBEb3dubG9hZHMgYSBmaWxlIGZyb20gYSBwcml2YXRlIGJ1Y2tldC4gRm9yIHB1YmxpYyBidWNrZXRzLCBtYWtlIGEgcmVxdWVzdCB0byB0aGUgVVJMIHJldHVybmVkIGZyb20gYGdldFB1YmxpY1VybGAgaW5zdGVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgZnVsbCBwYXRoIGFuZCBmaWxlIG5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgZG93bmxvYWRlZC4gRm9yIGV4YW1wbGUgYGZvbGRlci9pbWFnZS5wbmdgLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMudHJhbnNmb3JtIFRyYW5zZm9ybSB0aGUgYXNzZXQgYmVmb3JlIHNlcnZpbmcgaXQgdG8gdGhlIGNsaWVudC5cclxuICAgICAqL1xyXG4gICAgZG93bmxvYWQocGF0aCwgb3B0aW9ucykge1xyXG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHdhbnRzVHJhbnNmb3JtYXRpb24gPSB0eXBlb2YgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy50cmFuc2Zvcm0pICE9PSAndW5kZWZpbmVkJztcclxuICAgICAgICAgICAgY29uc3QgcmVuZGVyUGF0aCA9IHdhbnRzVHJhbnNmb3JtYXRpb24gPyAncmVuZGVyL2ltYWdlL2F1dGhlbnRpY2F0ZWQnIDogJ29iamVjdCc7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWF0aW9uUXVlcnkgPSB0aGlzLnRyYW5zZm9ybU9wdHNUb1F1ZXJ5U3RyaW5nKChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMudHJhbnNmb3JtKSB8fCB7fSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gdHJhbnNmb3JtYXRpb25RdWVyeSA/IGA/JHt0cmFuc2Zvcm1hdGlvblF1ZXJ5fWAgOiAnJztcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IF9wYXRoID0gdGhpcy5fZ2V0RmluYWxQYXRoKHBhdGgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0geWllbGQgZ2V0KHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS8ke3JlbmRlclBhdGh9LyR7X3BhdGh9JHtxdWVyeVN0cmluZ31gLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgIG5vUmVzb2x2ZUpzb246IHRydWUsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCByZXMuYmxvYigpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSBkZXRhaWxzIG9mIGFuIGV4aXN0aW5nIGZpbGUuXHJcbiAgICAgKiBAcGFyYW0gcGF0aFxyXG4gICAgICovXHJcbiAgICBpbmZvKHBhdGgpIHtcclxuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xyXG4gICAgICAgICAgICBjb25zdCBfcGF0aCA9IHRoaXMuX2dldEZpbmFsUGF0aChwYXRoKTtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBnZXQodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L29iamVjdC9pbmZvLyR7X3BhdGh9YCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogcmVjdXJzaXZlVG9DYW1lbChkYXRhKSwgZXJyb3I6IG51bGwgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2tzIHRoZSBleGlzdGVuY2Ugb2YgYSBmaWxlLlxyXG4gICAgICogQHBhcmFtIHBhdGhcclxuICAgICAqL1xyXG4gICAgZXhpc3RzKHBhdGgpIHtcclxuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xyXG4gICAgICAgICAgICBjb25zdCBfcGF0aCA9IHRoaXMuX2dldEZpbmFsUGF0aChwYXRoKTtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHlpZWxkIGhlYWQodGhpcy5mZXRjaCwgYCR7dGhpcy51cmx9L29iamVjdC8ke19wYXRofWAsIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IHRydWUsIGVycm9yOiBudWxsIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpICYmIGVycm9yIGluc3RhbmNlb2YgU3RvcmFnZVVua25vd25FcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsRXJyb3IgPSBlcnJvci5vcmlnaW5hbEVycm9yO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChbNDAwLCA0MDRdLmluY2x1ZGVzKG9yaWdpbmFsRXJyb3IgPT09IG51bGwgfHwgb3JpZ2luYWxFcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3JpZ2luYWxFcnJvci5zdGF0dXMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IGZhbHNlLCBlcnJvciB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEEgc2ltcGxlIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHRvIGdldCB0aGUgVVJMIGZvciBhbiBhc3NldCBpbiBhIHB1YmxpYyBidWNrZXQuIElmIHlvdSBkbyBub3Qgd2FudCB0byB1c2UgdGhpcyBmdW5jdGlvbiwgeW91IGNhbiBjb25zdHJ1Y3QgdGhlIHB1YmxpYyBVUkwgYnkgY29uY2F0ZW5hdGluZyB0aGUgYnVja2V0IFVSTCB3aXRoIHRoZSBwYXRoIHRvIHRoZSBhc3NldC5cclxuICAgICAqIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgdmVyaWZ5IGlmIHRoZSBidWNrZXQgaXMgcHVibGljLiBJZiBhIHB1YmxpYyBVUkwgaXMgY3JlYXRlZCBmb3IgYSBidWNrZXQgd2hpY2ggaXMgbm90IHB1YmxpYywgeW91IHdpbGwgbm90IGJlIGFibGUgdG8gZG93bmxvYWQgdGhlIGFzc2V0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIGFuZCBuYW1lIG9mIHRoZSBmaWxlIHRvIGdlbmVyYXRlIHRoZSBwdWJsaWMgVVJMIGZvci4gRm9yIGV4YW1wbGUgYGZvbGRlci9pbWFnZS5wbmdgLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZG93bmxvYWQgVHJpZ2dlcnMgdGhlIGZpbGUgYXMgYSBkb3dubG9hZCBpZiBzZXQgdG8gdHJ1ZS4gU2V0IHRoaXMgcGFyYW1ldGVyIGFzIHRoZSBuYW1lIG9mIHRoZSBmaWxlIGlmIHlvdSB3YW50IHRvIHRyaWdnZXIgdGhlIGRvd25sb2FkIHdpdGggYSBkaWZmZXJlbnQgZmlsZW5hbWUuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy50cmFuc2Zvcm0gVHJhbnNmb3JtIHRoZSBhc3NldCBiZWZvcmUgc2VydmluZyBpdCB0byB0aGUgY2xpZW50LlxyXG4gICAgICovXHJcbiAgICBnZXRQdWJsaWNVcmwocGF0aCwgb3B0aW9ucykge1xyXG4gICAgICAgIGNvbnN0IF9wYXRoID0gdGhpcy5fZ2V0RmluYWxQYXRoKHBhdGgpO1xyXG4gICAgICAgIGNvbnN0IF9xdWVyeVN0cmluZyA9IFtdO1xyXG4gICAgICAgIGNvbnN0IGRvd25sb2FkUXVlcnlQYXJhbSA9IChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZG93bmxvYWQpXHJcbiAgICAgICAgICAgID8gYGRvd25sb2FkPSR7b3B0aW9ucy5kb3dubG9hZCA9PT0gdHJ1ZSA/ICcnIDogb3B0aW9ucy5kb3dubG9hZH1gXHJcbiAgICAgICAgICAgIDogJyc7XHJcbiAgICAgICAgaWYgKGRvd25sb2FkUXVlcnlQYXJhbSAhPT0gJycpIHtcclxuICAgICAgICAgICAgX3F1ZXJ5U3RyaW5nLnB1c2goZG93bmxvYWRRdWVyeVBhcmFtKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgd2FudHNUcmFuc2Zvcm1hdGlvbiA9IHR5cGVvZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnRyYW5zZm9ybSkgIT09ICd1bmRlZmluZWQnO1xyXG4gICAgICAgIGNvbnN0IHJlbmRlclBhdGggPSB3YW50c1RyYW5zZm9ybWF0aW9uID8gJ3JlbmRlci9pbWFnZScgOiAnb2JqZWN0JztcclxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1hdGlvblF1ZXJ5ID0gdGhpcy50cmFuc2Zvcm1PcHRzVG9RdWVyeVN0cmluZygob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnRyYW5zZm9ybSkgfHwge30pO1xyXG4gICAgICAgIGlmICh0cmFuc2Zvcm1hdGlvblF1ZXJ5ICE9PSAnJykge1xyXG4gICAgICAgICAgICBfcXVlcnlTdHJpbmcucHVzaCh0cmFuc2Zvcm1hdGlvblF1ZXJ5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHF1ZXJ5U3RyaW5nID0gX3F1ZXJ5U3RyaW5nLmpvaW4oJyYnKTtcclxuICAgICAgICBpZiAocXVlcnlTdHJpbmcgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nID0gYD8ke3F1ZXJ5U3RyaW5nfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGRhdGE6IHsgcHVibGljVXJsOiBlbmNvZGVVUkkoYCR7dGhpcy51cmx9LyR7cmVuZGVyUGF0aH0vcHVibGljLyR7X3BhdGh9JHtxdWVyeVN0cmluZ31gKSB9LFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIERlbGV0ZXMgZmlsZXMgd2l0aGluIHRoZSBzYW1lIGJ1Y2tldFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBwYXRocyBBbiBhcnJheSBvZiBmaWxlcyB0byBkZWxldGUsIGluY2x1ZGluZyB0aGUgcGF0aCBhbmQgZmlsZSBuYW1lLiBGb3IgZXhhbXBsZSBbYCdmb2xkZXIvaW1hZ2UucG5nJ2BdLlxyXG4gICAgICovXHJcbiAgICByZW1vdmUocGF0aHMpIHtcclxuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHJlbW92ZSh0aGlzLmZldGNoLCBgJHt0aGlzLnVybH0vb2JqZWN0LyR7dGhpcy5idWNrZXRJZH1gLCB7IHByZWZpeGVzOiBwYXRocyB9LCB7IGhlYWRlcnM6IHRoaXMuaGVhZGVycyB9KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGEsIGVycm9yOiBudWxsIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEdldCBmaWxlIG1ldGFkYXRhXHJcbiAgICAgKiBAcGFyYW0gaWQgdGhlIGZpbGUgaWQgdG8gcmV0cmlldmUgbWV0YWRhdGFcclxuICAgICAqL1xyXG4gICAgLy8gYXN5bmMgZ2V0TWV0YWRhdGEoXHJcbiAgICAvLyAgIGlkOiBzdHJpbmdcclxuICAgIC8vICk6IFByb21pc2U8XHJcbiAgICAvLyAgIHwge1xyXG4gICAgLy8gICAgICAgZGF0YTogTWV0YWRhdGFcclxuICAgIC8vICAgICAgIGVycm9yOiBudWxsXHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB8IHtcclxuICAgIC8vICAgICAgIGRhdGE6IG51bGxcclxuICAgIC8vICAgICAgIGVycm9yOiBTdG9yYWdlRXJyb3JcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyA+IHtcclxuICAgIC8vICAgdHJ5IHtcclxuICAgIC8vICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0KHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9tZXRhZGF0YS8ke2lkfWAsIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pXHJcbiAgICAvLyAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfVxyXG4gICAgLy8gICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8gICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcclxuICAgIC8vICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH1cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgdGhyb3cgZXJyb3JcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGUgZmlsZSBtZXRhZGF0YVxyXG4gICAgICogQHBhcmFtIGlkIHRoZSBmaWxlIGlkIHRvIHVwZGF0ZSBtZXRhZGF0YVxyXG4gICAgICogQHBhcmFtIG1ldGEgdGhlIG5ldyBmaWxlIG1ldGFkYXRhXHJcbiAgICAgKi9cclxuICAgIC8vIGFzeW5jIHVwZGF0ZU1ldGFkYXRhKFxyXG4gICAgLy8gICBpZDogc3RyaW5nLFxyXG4gICAgLy8gICBtZXRhOiBNZXRhZGF0YVxyXG4gICAgLy8gKTogUHJvbWlzZTxcclxuICAgIC8vICAgfCB7XHJcbiAgICAvLyAgICAgICBkYXRhOiBNZXRhZGF0YVxyXG4gICAgLy8gICAgICAgZXJyb3I6IG51bGxcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIHwge1xyXG4gICAgLy8gICAgICAgZGF0YTogbnVsbFxyXG4gICAgLy8gICAgICAgZXJyb3I6IFN0b3JhZ2VFcnJvclxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vID4ge1xyXG4gICAgLy8gICB0cnkge1xyXG4gICAgLy8gICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBwb3N0KFxyXG4gICAgLy8gICAgICAgdGhpcy5mZXRjaCxcclxuICAgIC8vICAgICAgIGAke3RoaXMudXJsfS9tZXRhZGF0YS8ke2lkfWAsXHJcbiAgICAvLyAgICAgICB7IC4uLm1ldGEgfSxcclxuICAgIC8vICAgICAgIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH1cclxuICAgIC8vICAgICApXHJcbiAgICAvLyAgICAgcmV0dXJuIHsgZGF0YSwgZXJyb3I6IG51bGwgfVxyXG4gICAgLy8gICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8gICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcclxuICAgIC8vICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH1cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgdGhyb3cgZXJyb3JcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0cyBhbGwgdGhlIGZpbGVzIHdpdGhpbiBhIGJ1Y2tldC5cclxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBmb2xkZXIgcGF0aC5cclxuICAgICAqL1xyXG4gICAgbGlzdChwYXRoLCBvcHRpb25zLCBwYXJhbWV0ZXJzKSB7XHJcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGJvZHkgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9TRUFSQ0hfT1BUSU9OUyksIG9wdGlvbnMpLCB7IHByZWZpeDogcGF0aCB8fCAnJyB9KTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBwb3N0KHRoaXMuZmV0Y2gsIGAke3RoaXMudXJsfS9vYmplY3QvbGlzdC8ke3RoaXMuYnVja2V0SWR9YCwgYm9keSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSwgcGFyYW1ldGVycyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkYXRhLCBlcnJvcjogbnVsbCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZW5jb2RlTWV0YWRhdGEobWV0YWRhdGEpIHtcclxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobWV0YWRhdGEpO1xyXG4gICAgfVxyXG4gICAgdG9CYXNlNjQoZGF0YSkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgQnVmZmVyICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICByZXR1cm4gQnVmZmVyLmZyb20oZGF0YSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYnRvYShkYXRhKTtcclxuICAgIH1cclxuICAgIF9nZXRGaW5hbFBhdGgocGF0aCkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLmJ1Y2tldElkfS8ke3BhdGh9YDtcclxuICAgIH1cclxuICAgIF9yZW1vdmVFbXB0eUZvbGRlcnMocGF0aCkge1xyXG4gICAgICAgIHJldHVybiBwYXRoLnJlcGxhY2UoL15cXC98XFwvJC9nLCAnJykucmVwbGFjZSgvXFwvKy9nLCAnLycpO1xyXG4gICAgfVxyXG4gICAgdHJhbnNmb3JtT3B0c1RvUXVlcnlTdHJpbmcodHJhbnNmb3JtKSB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gW107XHJcbiAgICAgICAgaWYgKHRyYW5zZm9ybS53aWR0aCkge1xyXG4gICAgICAgICAgICBwYXJhbXMucHVzaChgd2lkdGg9JHt0cmFuc2Zvcm0ud2lkdGh9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0cmFuc2Zvcm0uaGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIHBhcmFtcy5wdXNoKGBoZWlnaHQ9JHt0cmFuc2Zvcm0uaGVpZ2h0fWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHJhbnNmb3JtLnJlc2l6ZSkge1xyXG4gICAgICAgICAgICBwYXJhbXMucHVzaChgcmVzaXplPSR7dHJhbnNmb3JtLnJlc2l6ZX1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRyYW5zZm9ybS5mb3JtYXQpIHtcclxuICAgICAgICAgICAgcGFyYW1zLnB1c2goYGZvcm1hdD0ke3RyYW5zZm9ybS5mb3JtYXR9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0cmFuc2Zvcm0ucXVhbGl0eSkge1xyXG4gICAgICAgICAgICBwYXJhbXMucHVzaChgcXVhbGl0eT0ke3RyYW5zZm9ybS5xdWFsaXR5fWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcGFyYW1zLmpvaW4oJyYnKTtcclxuICAgIH1cclxufVxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1TdG9yYWdlRmlsZUFwaS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/packages/StorageFileApi.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js ***!
|
||
\**************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ SupabaseClient; }\n/* harmony export */ });\n/* harmony import */ var _supabase_functions_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @supabase/functions-js */ \"(app-pages-browser)/./node_modules/@supabase/functions-js/dist/module/FunctionsClient.js\");\n/* harmony import */ var _supabase_postgrest_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/postgrest-js */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/esm/wrapper.mjs\");\n/* harmony import */ var _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @supabase/realtime-js */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/index.js\");\n/* harmony import */ var _supabase_storage_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @supabase/storage-js */ \"(app-pages-browser)/./node_modules/@supabase/storage-js/dist/module/StorageClient.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/constants */ \"(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/constants.js\");\n/* harmony import */ var _lib_fetch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/fetch */ \"(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/fetch.js\");\n/* harmony import */ var _lib_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/helpers */ \"(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/helpers.js\");\n/* harmony import */ var _lib_SupabaseAuthClient__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./lib/SupabaseAuthClient */ \"(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/SupabaseAuthClient.js\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Supabase Client.\r\n *\r\n * An isomorphic Javascript client for interacting with Postgres.\r\n */\r\nclass SupabaseClient {\r\n /**\r\n * Create a new client for use in the browser.\r\n * @param supabaseUrl The unique Supabase URL which is supplied when you create a new project in your project dashboard.\r\n * @param supabaseKey The unique Supabase Key which is supplied when you create a new project in your project dashboard.\r\n * @param options.db.schema You can switch in between schemas. The schema needs to be on the list of exposed schemas inside Supabase.\r\n * @param options.auth.autoRefreshToken Set to \"true\" if you want to automatically refresh the token before expiring.\r\n * @param options.auth.persistSession Set to \"true\" if you want to automatically save the user session into local storage.\r\n * @param options.auth.detectSessionInUrl Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user.\r\n * @param options.realtime Options passed along to realtime-js constructor.\r\n * @param options.global.fetch A custom fetch implementation.\r\n * @param options.global.headers Any additional headers to send with each network request.\r\n */\r\n constructor(supabaseUrl, supabaseKey, options) {\r\n var _a, _b, _c;\r\n this.supabaseUrl = supabaseUrl;\r\n this.supabaseKey = supabaseKey;\r\n if (!supabaseUrl)\r\n throw new Error('supabaseUrl is required.');\r\n if (!supabaseKey)\r\n throw new Error('supabaseKey is required.');\r\n const _supabaseUrl = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_2__.ensureTrailingSlash)(supabaseUrl);\r\n const baseUrl = new URL(_supabaseUrl);\r\n this.realtimeUrl = new URL('realtime/v1', baseUrl);\r\n this.realtimeUrl.protocol = this.realtimeUrl.protocol.replace('http', 'ws');\r\n this.authUrl = new URL('auth/v1', baseUrl);\r\n this.storageUrl = new URL('storage/v1', baseUrl);\r\n this.functionsUrl = new URL('functions/v1', baseUrl);\r\n // default storage key uses the supabase project ref as a namespace\r\n const defaultStorageKey = `sb-${baseUrl.hostname.split('.')[0]}-auth-token`;\r\n const DEFAULTS = {\r\n db: _lib_constants__WEBPACK_IMPORTED_MODULE_3__.DEFAULT_DB_OPTIONS,\r\n realtime: _lib_constants__WEBPACK_IMPORTED_MODULE_3__.DEFAULT_REALTIME_OPTIONS,\r\n auth: Object.assign(Object.assign({}, _lib_constants__WEBPACK_IMPORTED_MODULE_3__.DEFAULT_AUTH_OPTIONS), { storageKey: defaultStorageKey }),\r\n global: _lib_constants__WEBPACK_IMPORTED_MODULE_3__.DEFAULT_GLOBAL_OPTIONS,\r\n };\r\n const settings = (0,_lib_helpers__WEBPACK_IMPORTED_MODULE_2__.applySettingDefaults)(options !== null && options !== void 0 ? options : {}, DEFAULTS);\r\n this.storageKey = (_a = settings.auth.storageKey) !== null && _a !== void 0 ? _a : '';\r\n this.headers = (_b = settings.global.headers) !== null && _b !== void 0 ? _b : {};\r\n if (!settings.accessToken) {\r\n this.auth = this._initSupabaseAuthClient((_c = settings.auth) !== null && _c !== void 0 ? _c : {}, this.headers, settings.global.fetch);\r\n }\r\n else {\r\n this.accessToken = settings.accessToken;\r\n this.auth = new Proxy({}, {\r\n get: (_, prop) => {\r\n throw new Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(prop)} is not possible`);\r\n },\r\n });\r\n }\r\n this.fetch = (0,_lib_fetch__WEBPACK_IMPORTED_MODULE_4__.fetchWithAuth)(supabaseKey, this._getAccessToken.bind(this), settings.global.fetch);\r\n this.realtime = this._initRealtimeClient(Object.assign({ headers: this.headers, accessToken: this._getAccessToken.bind(this) }, settings.realtime));\r\n this.rest = new _supabase_postgrest_js__WEBPACK_IMPORTED_MODULE_0__.PostgrestClient(new URL('rest/v1', baseUrl).href, {\r\n headers: this.headers,\r\n schema: settings.db.schema,\r\n fetch: this.fetch,\r\n });\r\n if (!settings.accessToken) {\r\n this._listenForAuthEvents();\r\n }\r\n }\r\n /**\r\n * Supabase Functions allows you to deploy and invoke edge functions.\r\n */\r\n get functions() {\r\n return new _supabase_functions_js__WEBPACK_IMPORTED_MODULE_5__.FunctionsClient(this.functionsUrl.href, {\r\n headers: this.headers,\r\n customFetch: this.fetch,\r\n });\r\n }\r\n /**\r\n * Supabase Storage allows you to manage user-generated content, such as photos or videos.\r\n */\r\n get storage() {\r\n return new _supabase_storage_js__WEBPACK_IMPORTED_MODULE_6__.StorageClient(this.storageUrl.href, this.headers, this.fetch);\r\n }\r\n /**\r\n * Perform a query on a table or a view.\r\n *\r\n * @param relation - The table or view name to query\r\n */\r\n from(relation) {\r\n return this.rest.from(relation);\r\n }\r\n // NOTE: signatures must be kept in sync with PostgrestClient.schema\r\n /**\r\n * Select a schema to query or perform an function (rpc) call.\r\n *\r\n * The schema needs to be on the list of exposed schemas inside Supabase.\r\n *\r\n * @param schema - The schema to query\r\n */\r\n schema(schema) {\r\n return this.rest.schema(schema);\r\n }\r\n // NOTE: signatures must be kept in sync with PostgrestClient.rpc\r\n /**\r\n * Perform a function call.\r\n *\r\n * @param fn - The function name to call\r\n * @param args - The arguments to pass to the function call\r\n * @param options - Named parameters\r\n * @param options.head - When set to `true`, `data` will not be returned.\r\n * Useful if you only need the count.\r\n * @param options.get - When set to `true`, the function will be called with\r\n * read-only access mode.\r\n * @param options.count - Count algorithm to use to count rows returned by the\r\n * function. Only applicable for [set-returning\r\n * functions](https://www.postgresql.org/docs/current/functions-srf.html).\r\n *\r\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\r\n * hood.\r\n *\r\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\r\n * statistics under the hood.\r\n *\r\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\r\n * numbers.\r\n */\r\n rpc(fn, args = {}, options = {}) {\r\n return this.rest.rpc(fn, args, options);\r\n }\r\n /**\r\n * Creates a Realtime channel with Broadcast, Presence, and Postgres Changes.\r\n *\r\n * @param {string} name - The name of the Realtime channel.\r\n * @param {Object} opts - The options to pass to the Realtime channel.\r\n *\r\n */\r\n channel(name, opts = { config: {} }) {\r\n return this.realtime.channel(name, opts);\r\n }\r\n /**\r\n * Returns all Realtime channels.\r\n */\r\n getChannels() {\r\n return this.realtime.getChannels();\r\n }\r\n /**\r\n * Unsubscribes and removes Realtime channel from Realtime client.\r\n *\r\n * @param {RealtimeChannel} channel - The name of the Realtime channel.\r\n *\r\n */\r\n removeChannel(channel) {\r\n return this.realtime.removeChannel(channel);\r\n }\r\n /**\r\n * Unsubscribes and removes all Realtime channels from Realtime client.\r\n */\r\n removeAllChannels() {\r\n return this.realtime.removeAllChannels();\r\n }\r\n _getAccessToken() {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.accessToken) {\r\n return yield this.accessToken();\r\n }\r\n const { data } = yield this.auth.getSession();\r\n return (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : null;\r\n });\r\n }\r\n _initSupabaseAuthClient({ autoRefreshToken, persistSession, detectSessionInUrl, storage, storageKey, flowType, lock, debug, }, headers, fetch) {\r\n const authHeaders = {\r\n Authorization: `Bearer ${this.supabaseKey}`,\r\n apikey: `${this.supabaseKey}`,\r\n };\r\n return new _lib_SupabaseAuthClient__WEBPACK_IMPORTED_MODULE_7__.SupabaseAuthClient({\r\n url: this.authUrl.href,\r\n headers: Object.assign(Object.assign({}, authHeaders), headers),\r\n storageKey: storageKey,\r\n autoRefreshToken,\r\n persistSession,\r\n detectSessionInUrl,\r\n storage,\r\n flowType,\r\n lock,\r\n debug,\r\n fetch,\r\n // auth checks if there is a custom authorizaiton header using this flag\r\n // so it knows whether to return an error when getUser is called with no session\r\n hasCustomAuthorizationHeader: 'Authorization' in this.headers,\r\n });\r\n }\r\n _initRealtimeClient(options) {\r\n return new _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_1__.RealtimeClient(this.realtimeUrl.href, Object.assign(Object.assign({}, options), { params: Object.assign({ apikey: this.supabaseKey }, options === null || options === void 0 ? void 0 : options.params) }));\r\n }\r\n _listenForAuthEvents() {\r\n let data = this.auth.onAuthStateChange((event, session) => {\r\n this._handleTokenChanged(event, 'CLIENT', session === null || session === void 0 ? void 0 : session.access_token);\r\n });\r\n return data;\r\n }\r\n _handleTokenChanged(event, source, token) {\r\n if ((event === 'TOKEN_REFRESHED' || event === 'SIGNED_IN') &&\r\n this.changedAccessToken !== token) {\r\n this.changedAccessToken = token;\r\n }\r\n else if (event === 'SIGNED_OUT') {\r\n this.realtime.setAuth();\r\n if (source == 'STORAGE')\r\n this.auth.signOut();\r\n this.changedAccessToken = undefined;\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=SupabaseClient.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3VwYWJhc2UtanMvZGlzdC9tb2R1bGUvU3VwYWJhc2VDbGllbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsaUJBQWlCLFNBQUksSUFBSSxTQUFJO0FBQzdCLDRCQUE0QiwrREFBK0QsaUJBQWlCO0FBQzVHO0FBQ0Esb0NBQW9DLE1BQU0sK0JBQStCLFlBQVk7QUFDckYsbUNBQW1DLE1BQU0sbUNBQW1DLFlBQVk7QUFDeEYsZ0NBQWdDO0FBQ2hDO0FBQ0EsS0FBSztBQUNMO0FBQ3lEO0FBQ0M7QUFDRjtBQUNzQjtBQUNnRDtBQUNsRjtBQUM4QjtBQUNaO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsaUVBQW1CO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLCtCQUErQjtBQUN2RTtBQUNBLGdCQUFnQiw4REFBa0I7QUFDbEMsc0JBQXNCLG9FQUF3QjtBQUM5QyxnREFBZ0QsRUFBRSxnRUFBb0IsS0FBSywrQkFBK0I7QUFDMUcsb0JBQW9CLGtFQUFzQjtBQUMxQztBQUNBLHlCQUF5QixrRUFBb0Isc0RBQXNEO0FBQ25HO0FBQ0E7QUFDQTtBQUNBLDZHQUE2RztBQUM3RztBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEM7QUFDQSxpSkFBaUosY0FBYztBQUMvSixpQkFBaUI7QUFDakIsYUFBYTtBQUNiO0FBQ0EscUJBQXFCLHlEQUFhO0FBQ2xDLGlFQUFpRSxxRUFBcUU7QUFDdEksd0JBQXdCLG1FQUFlO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1FQUFlO0FBQ2xDO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwrREFBcUI7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixjQUFjO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZUFBZSxRQUFRO0FBQ3ZCO0FBQ0E7QUFDQSwyQkFBMkIsWUFBWTtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxpQkFBaUI7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixPQUFPO0FBQzNCO0FBQ0EsU0FBUztBQUNUO0FBQ0EsOEJBQThCLG1HQUFtRztBQUNqSTtBQUNBLHFDQUFxQyxpQkFBaUI7QUFDdEQsdUJBQXVCLGlCQUFpQjtBQUN4QztBQUNBLG1CQUFtQix1RUFBa0I7QUFDckM7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxtQkFBbUIsaUVBQWMsc0RBQXNELGNBQWMsd0JBQXdCLDBCQUEwQixxRUFBcUU7QUFDNU47QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9TdXBhYmFzZUNsaWVudC5qcz8xZDM3Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufTtcclxuaW1wb3J0IHsgRnVuY3Rpb25zQ2xpZW50IH0gZnJvbSAnQHN1cGFiYXNlL2Z1bmN0aW9ucy1qcyc7XHJcbmltcG9ydCB7IFBvc3RncmVzdENsaWVudCwgfSBmcm9tICdAc3VwYWJhc2UvcG9zdGdyZXN0LWpzJztcclxuaW1wb3J0IHsgUmVhbHRpbWVDbGllbnQsIH0gZnJvbSAnQHN1cGFiYXNlL3JlYWx0aW1lLWpzJztcclxuaW1wb3J0IHsgU3RvcmFnZUNsaWVudCBhcyBTdXBhYmFzZVN0b3JhZ2VDbGllbnQgfSBmcm9tICdAc3VwYWJhc2Uvc3RvcmFnZS1qcyc7XHJcbmltcG9ydCB7IERFRkFVTFRfR0xPQkFMX09QVElPTlMsIERFRkFVTFRfREJfT1BUSU9OUywgREVGQVVMVF9BVVRIX09QVElPTlMsIERFRkFVTFRfUkVBTFRJTUVfT1BUSU9OUywgfSBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBmZXRjaFdpdGhBdXRoIH0gZnJvbSAnLi9saWIvZmV0Y2gnO1xyXG5pbXBvcnQgeyBlbnN1cmVUcmFpbGluZ1NsYXNoLCBhcHBseVNldHRpbmdEZWZhdWx0cyB9IGZyb20gJy4vbGliL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBTdXBhYmFzZUF1dGhDbGllbnQgfSBmcm9tICcuL2xpYi9TdXBhYmFzZUF1dGhDbGllbnQnO1xyXG4vKipcclxuICogU3VwYWJhc2UgQ2xpZW50LlxyXG4gKlxyXG4gKiBBbiBpc29tb3JwaGljIEphdmFzY3JpcHQgY2xpZW50IGZvciBpbnRlcmFjdGluZyB3aXRoIFBvc3RncmVzLlxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3VwYWJhc2VDbGllbnQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGUgYSBuZXcgY2xpZW50IGZvciB1c2UgaW4gdGhlIGJyb3dzZXIuXHJcbiAgICAgKiBAcGFyYW0gc3VwYWJhc2VVcmwgVGhlIHVuaXF1ZSBTdXBhYmFzZSBVUkwgd2hpY2ggaXMgc3VwcGxpZWQgd2hlbiB5b3UgY3JlYXRlIGEgbmV3IHByb2plY3QgaW4geW91ciBwcm9qZWN0IGRhc2hib2FyZC5cclxuICAgICAqIEBwYXJhbSBzdXBhYmFzZUtleSBUaGUgdW5pcXVlIFN1cGFiYXNlIEtleSB3aGljaCBpcyBzdXBwbGllZCB3aGVuIHlvdSBjcmVhdGUgYSBuZXcgcHJvamVjdCBpbiB5b3VyIHByb2plY3QgZGFzaGJvYXJkLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZGIuc2NoZW1hIFlvdSBjYW4gc3dpdGNoIGluIGJldHdlZW4gc2NoZW1hcy4gVGhlIHNjaGVtYSBuZWVkcyB0byBiZSBvbiB0aGUgbGlzdCBvZiBleHBvc2VkIHNjaGVtYXMgaW5zaWRlIFN1cGFiYXNlLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuYXV0aC5hdXRvUmVmcmVzaFRva2VuIFNldCB0byBcInRydWVcIiBpZiB5b3Ugd2FudCB0byBhdXRvbWF0aWNhbGx5IHJlZnJlc2ggdGhlIHRva2VuIGJlZm9yZSBleHBpcmluZy5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmF1dGgucGVyc2lzdFNlc3Npb24gU2V0IHRvIFwidHJ1ZVwiIGlmIHlvdSB3YW50IHRvIGF1dG9tYXRpY2FsbHkgc2F2ZSB0aGUgdXNlciBzZXNzaW9uIGludG8gbG9jYWwgc3RvcmFnZS5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zLmF1dGguZGV0ZWN0U2Vzc2lvbkluVXJsIFNldCB0byBcInRydWVcIiBpZiB5b3Ugd2FudCB0byBhdXRvbWF0aWNhbGx5IGRldGVjdHMgT0F1dGggZ3JhbnRzIGluIHRoZSBVUkwgYW5kIHNpZ25zIGluIHRoZSB1c2VyLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMucmVhbHRpbWUgT3B0aW9ucyBwYXNzZWQgYWxvbmcgdG8gcmVhbHRpbWUtanMgY29uc3RydWN0b3IuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5nbG9iYWwuZmV0Y2ggQSBjdXN0b20gZmV0Y2ggaW1wbGVtZW50YXRpb24uXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucy5nbG9iYWwuaGVhZGVycyBBbnkgYWRkaXRpb25hbCBoZWFkZXJzIHRvIHNlbmQgd2l0aCBlYWNoIG5ldHdvcmsgcmVxdWVzdC5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3Ioc3VwYWJhc2VVcmwsIHN1cGFiYXNlS2V5LCBvcHRpb25zKSB7XHJcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XHJcbiAgICAgICAgdGhpcy5zdXBhYmFzZVVybCA9IHN1cGFiYXNlVXJsO1xyXG4gICAgICAgIHRoaXMuc3VwYWJhc2VLZXkgPSBzdXBhYmFzZUtleTtcclxuICAgICAgICBpZiAoIXN1cGFiYXNlVXJsKVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3N1cGFiYXNlVXJsIGlzIHJlcXVpcmVkLicpO1xyXG4gICAgICAgIGlmICghc3VwYWJhc2VLZXkpXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc3VwYWJhc2VLZXkgaXMgcmVxdWlyZWQuJyk7XHJcbiAgICAgICAgY29uc3QgX3N1cGFiYXNlVXJsID0gZW5zdXJlVHJhaWxpbmdTbGFzaChzdXBhYmFzZVVybCk7XHJcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IG5ldyBVUkwoX3N1cGFiYXNlVXJsKTtcclxuICAgICAgICB0aGlzLnJlYWx0aW1lVXJsID0gbmV3IFVSTCgncmVhbHRpbWUvdjEnLCBiYXNlVXJsKTtcclxuICAgICAgICB0aGlzLnJlYWx0aW1lVXJsLnByb3RvY29sID0gdGhpcy5yZWFsdGltZVVybC5wcm90b2NvbC5yZXBsYWNlKCdodHRwJywgJ3dzJyk7XHJcbiAgICAgICAgdGhpcy5hdXRoVXJsID0gbmV3IFVSTCgnYXV0aC92MScsIGJhc2VVcmwpO1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVVybCA9IG5ldyBVUkwoJ3N0b3JhZ2UvdjEnLCBiYXNlVXJsKTtcclxuICAgICAgICB0aGlzLmZ1bmN0aW9uc1VybCA9IG5ldyBVUkwoJ2Z1bmN0aW9ucy92MScsIGJhc2VVcmwpO1xyXG4gICAgICAgIC8vIGRlZmF1bHQgc3RvcmFnZSBrZXkgdXNlcyB0aGUgc3VwYWJhc2UgcHJvamVjdCByZWYgYXMgYSBuYW1lc3BhY2VcclxuICAgICAgICBjb25zdCBkZWZhdWx0U3RvcmFnZUtleSA9IGBzYi0ke2Jhc2VVcmwuaG9zdG5hbWUuc3BsaXQoJy4nKVswXX0tYXV0aC10b2tlbmA7XHJcbiAgICAgICAgY29uc3QgREVGQVVMVFMgPSB7XHJcbiAgICAgICAgICAgIGRiOiBERUZBVUxUX0RCX09QVElPTlMsXHJcbiAgICAgICAgICAgIHJlYWx0aW1lOiBERUZBVUxUX1JFQUxUSU1FX09QVElPTlMsXHJcbiAgICAgICAgICAgIGF1dGg6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9BVVRIX09QVElPTlMpLCB7IHN0b3JhZ2VLZXk6IGRlZmF1bHRTdG9yYWdlS2V5IH0pLFxyXG4gICAgICAgICAgICBnbG9iYWw6IERFRkFVTFRfR0xPQkFMX09QVElPTlMsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IGFwcGx5U2V0dGluZ0RlZmF1bHRzKG9wdGlvbnMgIT09IG51bGwgJiYgb3B0aW9ucyAhPT0gdm9pZCAwID8gb3B0aW9ucyA6IHt9LCBERUZBVUxUUyk7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlS2V5ID0gKF9hID0gc2V0dGluZ3MuYXV0aC5zdG9yYWdlS2V5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJztcclxuICAgICAgICB0aGlzLmhlYWRlcnMgPSAoX2IgPSBzZXR0aW5ncy5nbG9iYWwuaGVhZGVycykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDoge307XHJcbiAgICAgICAgaWYgKCFzZXR0aW5ncy5hY2Nlc3NUb2tlbikge1xyXG4gICAgICAgICAgICB0aGlzLmF1dGggPSB0aGlzLl9pbml0U3VwYWJhc2VBdXRoQ2xpZW50KChfYyA9IHNldHRpbmdzLmF1dGgpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IHt9LCB0aGlzLmhlYWRlcnMsIHNldHRpbmdzLmdsb2JhbC5mZXRjaCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gc2V0dGluZ3MuYWNjZXNzVG9rZW47XHJcbiAgICAgICAgICAgIHRoaXMuYXV0aCA9IG5ldyBQcm94eSh7fSwge1xyXG4gICAgICAgICAgICAgICAgZ2V0OiAoXywgcHJvcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQHN1cGFiYXNlL3N1cGFiYXNlLWpzOiBTdXBhYmFzZSBDbGllbnQgaXMgY29uZmlndXJlZCB3aXRoIHRoZSBhY2Nlc3NUb2tlbiBvcHRpb24sIGFjY2Vzc2luZyBzdXBhYmFzZS5hdXRoLiR7U3RyaW5nKHByb3ApfSBpcyBub3QgcG9zc2libGVgKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZldGNoID0gZmV0Y2hXaXRoQXV0aChzdXBhYmFzZUtleSwgdGhpcy5fZ2V0QWNjZXNzVG9rZW4uYmluZCh0aGlzKSwgc2V0dGluZ3MuZ2xvYmFsLmZldGNoKTtcclxuICAgICAgICB0aGlzLnJlYWx0aW1lID0gdGhpcy5faW5pdFJlYWx0aW1lQ2xpZW50KE9iamVjdC5hc3NpZ24oeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsIGFjY2Vzc1Rva2VuOiB0aGlzLl9nZXRBY2Nlc3NUb2tlbi5iaW5kKHRoaXMpIH0sIHNldHRpbmdzLnJlYWx0aW1lKSk7XHJcbiAgICAgICAgdGhpcy5yZXN0ID0gbmV3IFBvc3RncmVzdENsaWVudChuZXcgVVJMKCdyZXN0L3YxJywgYmFzZVVybCkuaHJlZiwge1xyXG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgICAgIHNjaGVtYTogc2V0dGluZ3MuZGIuc2NoZW1hLFxyXG4gICAgICAgICAgICBmZXRjaDogdGhpcy5mZXRjaCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoIXNldHRpbmdzLmFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xpc3RlbkZvckF1dGhFdmVudHMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFN1cGFiYXNlIEZ1bmN0aW9ucyBhbGxvd3MgeW91IHRvIGRlcGxveSBhbmQgaW52b2tlIGVkZ2UgZnVuY3Rpb25zLlxyXG4gICAgICovXHJcbiAgICBnZXQgZnVuY3Rpb25zKCkge1xyXG4gICAgICAgIHJldHVybiBuZXcgRnVuY3Rpb25zQ2xpZW50KHRoaXMuZnVuY3Rpb25zVXJsLmhyZWYsIHtcclxuICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgICBjdXN0b21GZXRjaDogdGhpcy5mZXRjaCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogU3VwYWJhc2UgU3RvcmFnZSBhbGxvd3MgeW91IHRvIG1hbmFnZSB1c2VyLWdlbmVyYXRlZCBjb250ZW50LCBzdWNoIGFzIHBob3RvcyBvciB2aWRlb3MuXHJcbiAgICAgKi9cclxuICAgIGdldCBzdG9yYWdlKCkge1xyXG4gICAgICAgIHJldHVybiBuZXcgU3VwYWJhc2VTdG9yYWdlQ2xpZW50KHRoaXMuc3RvcmFnZVVybC5ocmVmLCB0aGlzLmhlYWRlcnMsIHRoaXMuZmV0Y2gpO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJmb3JtIGEgcXVlcnkgb24gYSB0YWJsZSBvciBhIHZpZXcuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlbGF0aW9uIC0gVGhlIHRhYmxlIG9yIHZpZXcgbmFtZSB0byBxdWVyeVxyXG4gICAgICovXHJcbiAgICBmcm9tKHJlbGF0aW9uKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzdC5mcm9tKHJlbGF0aW9uKTtcclxuICAgIH1cclxuICAgIC8vIE5PVEU6IHNpZ25hdHVyZXMgbXVzdCBiZSBrZXB0IGluIHN5bmMgd2l0aCBQb3N0Z3Jlc3RDbGllbnQuc2NoZW1hXHJcbiAgICAvKipcclxuICAgICAqIFNlbGVjdCBhIHNjaGVtYSB0byBxdWVyeSBvciBwZXJmb3JtIGFuIGZ1bmN0aW9uIChycGMpIGNhbGwuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIHNjaGVtYSBuZWVkcyB0byBiZSBvbiB0aGUgbGlzdCBvZiBleHBvc2VkIHNjaGVtYXMgaW5zaWRlIFN1cGFiYXNlLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBzY2hlbWEgLSBUaGUgc2NoZW1hIHRvIHF1ZXJ5XHJcbiAgICAgKi9cclxuICAgIHNjaGVtYShzY2hlbWEpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZXN0LnNjaGVtYShzY2hlbWEpO1xyXG4gICAgfVxyXG4gICAgLy8gTk9URTogc2lnbmF0dXJlcyBtdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIFBvc3RncmVzdENsaWVudC5ycGNcclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybSBhIGZ1bmN0aW9uIGNhbGwuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGZuIC0gVGhlIGZ1bmN0aW9uIG5hbWUgdG8gY2FsbFxyXG4gICAgICogQHBhcmFtIGFyZ3MgLSBUaGUgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGZ1bmN0aW9uIGNhbGxcclxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gTmFtZWQgcGFyYW1ldGVyc1xyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuaGVhZCAtIFdoZW4gc2V0IHRvIGB0cnVlYCwgYGRhdGFgIHdpbGwgbm90IGJlIHJldHVybmVkLlxyXG4gICAgICogVXNlZnVsIGlmIHlvdSBvbmx5IG5lZWQgdGhlIGNvdW50LlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuZ2V0IC0gV2hlbiBzZXQgdG8gYHRydWVgLCB0aGUgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2l0aFxyXG4gICAgICogcmVhZC1vbmx5IGFjY2VzcyBtb2RlLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMuY291bnQgLSBDb3VudCBhbGdvcml0aG0gdG8gdXNlIHRvIGNvdW50IHJvd3MgcmV0dXJuZWQgYnkgdGhlXHJcbiAgICAgKiBmdW5jdGlvbi4gT25seSBhcHBsaWNhYmxlIGZvciBbc2V0LXJldHVybmluZ1xyXG4gICAgICogZnVuY3Rpb25zXShodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvZnVuY3Rpb25zLXNyZi5odG1sKS5cclxuICAgICAqXHJcbiAgICAgKiBgXCJleGFjdFwiYDogRXhhY3QgYnV0IHNsb3cgY291bnQgYWxnb3JpdGhtLiBQZXJmb3JtcyBhIGBDT1VOVCgqKWAgdW5kZXIgdGhlXHJcbiAgICAgKiBob29kLlxyXG4gICAgICpcclxuICAgICAqIGBcInBsYW5uZWRcImA6IEFwcHJveGltYXRlZCBidXQgZmFzdCBjb3VudCBhbGdvcml0aG0uIFVzZXMgdGhlIFBvc3RncmVzXHJcbiAgICAgKiBzdGF0aXN0aWNzIHVuZGVyIHRoZSBob29kLlxyXG4gICAgICpcclxuICAgICAqIGBcImVzdGltYXRlZFwiYDogVXNlcyBleGFjdCBjb3VudCBmb3IgbG93IG51bWJlcnMgYW5kIHBsYW5uZWQgY291bnQgZm9yIGhpZ2hcclxuICAgICAqIG51bWJlcnMuXHJcbiAgICAgKi9cclxuICAgIHJwYyhmbiwgYXJncyA9IHt9LCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZXN0LnJwYyhmbiwgYXJncywgb3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYSBSZWFsdGltZSBjaGFubmVsIHdpdGggQnJvYWRjYXN0LCBQcmVzZW5jZSwgYW5kIFBvc3RncmVzIENoYW5nZXMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgUmVhbHRpbWUgY2hhbm5lbC5cclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gVGhlIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgUmVhbHRpbWUgY2hhbm5lbC5cclxuICAgICAqXHJcbiAgICAgKi9cclxuICAgIGNoYW5uZWwobmFtZSwgb3B0cyA9IHsgY29uZmlnOiB7fSB9KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhbHRpbWUuY2hhbm5lbChuYW1lLCBvcHRzKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhbGwgUmVhbHRpbWUgY2hhbm5lbHMuXHJcbiAgICAgKi9cclxuICAgIGdldENoYW5uZWxzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlYWx0aW1lLmdldENoYW5uZWxzKCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFVuc3Vic2NyaWJlcyBhbmQgcmVtb3ZlcyBSZWFsdGltZSBjaGFubmVsIGZyb20gUmVhbHRpbWUgY2xpZW50LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UmVhbHRpbWVDaGFubmVsfSBjaGFubmVsIC0gVGhlIG5hbWUgb2YgdGhlIFJlYWx0aW1lIGNoYW5uZWwuXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICByZW1vdmVDaGFubmVsKGNoYW5uZWwpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZWFsdGltZS5yZW1vdmVDaGFubmVsKGNoYW5uZWwpO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBVbnN1YnNjcmliZXMgYW5kIHJlbW92ZXMgYWxsIFJlYWx0aW1lIGNoYW5uZWxzIGZyb20gUmVhbHRpbWUgY2xpZW50LlxyXG4gICAgICovXHJcbiAgICByZW1vdmVBbGxDaGFubmVscygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZWFsdGltZS5yZW1vdmVBbGxDaGFubmVscygpO1xyXG4gICAgfVxyXG4gICAgX2dldEFjY2Vzc1Rva2VuKCkge1xyXG4gICAgICAgIHZhciBfYSwgX2I7XHJcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYWNjZXNzVG9rZW4pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCB0aGlzLmFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgeyBkYXRhIH0gPSB5aWVsZCB0aGlzLmF1dGguZ2V0U2Vzc2lvbigpO1xyXG4gICAgICAgICAgICByZXR1cm4gKF9iID0gKF9hID0gZGF0YS5zZXNzaW9uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYWNjZXNzX3Rva2VuKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgX2luaXRTdXBhYmFzZUF1dGhDbGllbnQoeyBhdXRvUmVmcmVzaFRva2VuLCBwZXJzaXN0U2Vzc2lvbiwgZGV0ZWN0U2Vzc2lvbkluVXJsLCBzdG9yYWdlLCBzdG9yYWdlS2V5LCBmbG93VHlwZSwgbG9jaywgZGVidWcsIH0sIGhlYWRlcnMsIGZldGNoKSB7XHJcbiAgICAgICAgY29uc3QgYXV0aEhlYWRlcnMgPSB7XHJcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLnN1cGFiYXNlS2V5fWAsXHJcbiAgICAgICAgICAgIGFwaWtleTogYCR7dGhpcy5zdXBhYmFzZUtleX1gLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTdXBhYmFzZUF1dGhDbGllbnQoe1xyXG4gICAgICAgICAgICB1cmw6IHRoaXMuYXV0aFVybC5ocmVmLFxyXG4gICAgICAgICAgICBoZWFkZXJzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGF1dGhIZWFkZXJzKSwgaGVhZGVycyksXHJcbiAgICAgICAgICAgIHN0b3JhZ2VLZXk6IHN0b3JhZ2VLZXksXHJcbiAgICAgICAgICAgIGF1dG9SZWZyZXNoVG9rZW4sXHJcbiAgICAgICAgICAgIHBlcnNpc3RTZXNzaW9uLFxyXG4gICAgICAgICAgICBkZXRlY3RTZXNzaW9uSW5VcmwsXHJcbiAgICAgICAgICAgIHN0b3JhZ2UsXHJcbiAgICAgICAgICAgIGZsb3dUeXBlLFxyXG4gICAgICAgICAgICBsb2NrLFxyXG4gICAgICAgICAgICBkZWJ1ZyxcclxuICAgICAgICAgICAgZmV0Y2gsXHJcbiAgICAgICAgICAgIC8vIGF1dGggY2hlY2tzIGlmIHRoZXJlIGlzIGEgY3VzdG9tIGF1dGhvcml6YWl0b24gaGVhZGVyIHVzaW5nIHRoaXMgZmxhZ1xyXG4gICAgICAgICAgICAvLyBzbyBpdCBrbm93cyB3aGV0aGVyIHRvIHJldHVybiBhbiBlcnJvciB3aGVuIGdldFVzZXIgaXMgY2FsbGVkIHdpdGggbm8gc2Vzc2lvblxyXG4gICAgICAgICAgICBoYXNDdXN0b21BdXRob3JpemF0aW9uSGVhZGVyOiAnQXV0aG9yaXphdGlvbicgaW4gdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgX2luaXRSZWFsdGltZUNsaWVudChvcHRpb25zKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBSZWFsdGltZUNsaWVudCh0aGlzLnJlYWx0aW1lVXJsLmhyZWYsIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucyksIHsgcGFyYW1zOiBPYmplY3QuYXNzaWduKHsgYXBpa2V5OiB0aGlzLnN1cGFiYXNlS2V5IH0sIG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wYXJhbXMpIH0pKTtcclxuICAgIH1cclxuICAgIF9saXN0ZW5Gb3JBdXRoRXZlbnRzKCkge1xyXG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5hdXRoLm9uQXV0aFN0YXRlQ2hhbmdlKChldmVudCwgc2Vzc2lvbikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVUb2tlbkNoYW5nZWQoZXZlbnQsICdDTElFTlQnLCBzZXNzaW9uID09PSBudWxsIHx8IHNlc3Npb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlc3Npb24uYWNjZXNzX3Rva2VuKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgIH1cclxuICAgIF9oYW5kbGVUb2tlbkNoYW5nZWQoZXZlbnQsIHNvdXJjZSwgdG9rZW4pIHtcclxuICAgICAgICBpZiAoKGV2ZW50ID09PSAnVE9LRU5fUkVGUkVTSEVEJyB8fCBldmVudCA9PT0gJ1NJR05FRF9JTicpICYmXHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlZEFjY2Vzc1Rva2VuICE9PSB0b2tlbikge1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZWRBY2Nlc3NUb2tlbiA9IHRva2VuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChldmVudCA9PT0gJ1NJR05FRF9PVVQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVhbHRpbWUuc2V0QXV0aCgpO1xyXG4gICAgICAgICAgICBpZiAoc291cmNlID09ICdTVE9SQUdFJylcclxuICAgICAgICAgICAgICAgIHRoaXMuYXV0aC5zaWduT3V0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlZEFjY2Vzc1Rva2VuID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1TdXBhYmFzZUNsaWVudC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/index.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/@supabase/supabase-js/dist/module/index.js ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AuthAdminApi: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.AuthAdminApi; },\n/* harmony export */ AuthApiError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.AuthApiError; },\n/* harmony export */ AuthClient: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.AuthClient; },\n/* harmony export */ AuthError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.AuthError; },\n/* harmony export */ AuthImplicitGrantRedirectError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.AuthImplicitGrantRedirectError; },\n/* harmony export */ AuthInvalidCredentialsError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.AuthInvalidCredentialsError; },\n/* harmony export */ AuthInvalidJwtError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.AuthInvalidJwtError; },\n/* harmony export */ AuthInvalidTokenResponseError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.AuthInvalidTokenResponseError; },\n/* harmony export */ AuthPKCEGrantCodeExchangeError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.AuthPKCEGrantCodeExchangeError; },\n/* harmony export */ AuthRetryableFetchError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.AuthRetryableFetchError; },\n/* harmony export */ AuthSessionMissingError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.AuthSessionMissingError; },\n/* harmony export */ AuthUnknownError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.AuthUnknownError; },\n/* harmony export */ AuthWeakPasswordError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.AuthWeakPasswordError; },\n/* harmony export */ CustomAuthError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.CustomAuthError; },\n/* harmony export */ FunctionRegion: function() { return /* reexport safe */ _supabase_functions_js__WEBPACK_IMPORTED_MODULE_2__.FunctionRegion; },\n/* harmony export */ FunctionsError: function() { return /* reexport safe */ _supabase_functions_js__WEBPACK_IMPORTED_MODULE_2__.FunctionsError; },\n/* harmony export */ FunctionsFetchError: function() { return /* reexport safe */ _supabase_functions_js__WEBPACK_IMPORTED_MODULE_2__.FunctionsFetchError; },\n/* harmony export */ FunctionsHttpError: function() { return /* reexport safe */ _supabase_functions_js__WEBPACK_IMPORTED_MODULE_2__.FunctionsHttpError; },\n/* harmony export */ FunctionsRelayError: function() { return /* reexport safe */ _supabase_functions_js__WEBPACK_IMPORTED_MODULE_2__.FunctionsRelayError; },\n/* harmony export */ GoTrueAdminApi: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.GoTrueAdminApi; },\n/* harmony export */ GoTrueClient: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.GoTrueClient; },\n/* harmony export */ NavigatorLockAcquireTimeoutError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.NavigatorLockAcquireTimeoutError; },\n/* harmony export */ PostgrestError: function() { return /* reexport safe */ _supabase_postgrest_js__WEBPACK_IMPORTED_MODULE_1__.PostgrestError; },\n/* harmony export */ REALTIME_CHANNEL_STATES: function() { return /* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_3__.REALTIME_CHANNEL_STATES; },\n/* harmony export */ REALTIME_LISTEN_TYPES: function() { return /* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_3__.REALTIME_LISTEN_TYPES; },\n/* harmony export */ REALTIME_POSTGRES_CHANGES_LISTEN_EVENT: function() { return /* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_3__.REALTIME_POSTGRES_CHANGES_LISTEN_EVENT; },\n/* harmony export */ REALTIME_PRESENCE_LISTEN_EVENTS: function() { return /* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_3__.REALTIME_PRESENCE_LISTEN_EVENTS; },\n/* harmony export */ REALTIME_SUBSCRIBE_STATES: function() { return /* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_3__.REALTIME_SUBSCRIBE_STATES; },\n/* harmony export */ RealtimeChannel: function() { return /* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_3__.RealtimeChannel; },\n/* harmony export */ RealtimeClient: function() { return /* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_3__.RealtimeClient; },\n/* harmony export */ RealtimePresence: function() { return /* reexport safe */ _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_3__.RealtimePresence; },\n/* harmony export */ SIGN_OUT_SCOPES: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.SIGN_OUT_SCOPES; },\n/* harmony export */ SupabaseClient: function() { return /* reexport safe */ _SupabaseClient__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; },\n/* harmony export */ createClient: function() { return /* binding */ createClient; },\n/* harmony export */ isAuthApiError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.isAuthApiError; },\n/* harmony export */ isAuthError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.isAuthError; },\n/* harmony export */ isAuthImplicitGrantRedirectError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.isAuthImplicitGrantRedirectError; },\n/* harmony export */ isAuthRetryableFetchError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.isAuthRetryableFetchError; },\n/* harmony export */ isAuthSessionMissingError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.isAuthSessionMissingError; },\n/* harmony export */ isAuthWeakPasswordError: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.isAuthWeakPasswordError; },\n/* harmony export */ lockInternals: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.lockInternals; },\n/* harmony export */ navigatorLock: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.navigatorLock; },\n/* harmony export */ processLock: function() { return /* reexport safe */ _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.processLock; }\n/* harmony export */ });\n/* harmony import */ var _SupabaseClient__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SupabaseClient */ \"(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js\");\n/* harmony import */ var _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/auth-js */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/index.js\");\n/* harmony import */ var _supabase_postgrest_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @supabase/postgrest-js */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/esm/wrapper.mjs\");\n/* harmony import */ var _supabase_functions_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @supabase/functions-js */ \"(app-pages-browser)/./node_modules/@supabase/functions-js/dist/module/types.js\");\n/* harmony import */ var _supabase_realtime_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @supabase/realtime-js */ \"(app-pages-browser)/./node_modules/@supabase/realtime-js/dist/module/index.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Creates a new Supabase Client.\r\n */\r\nconst createClient = (supabaseUrl, supabaseKey, options) => {\r\n return new _SupabaseClient__WEBPACK_IMPORTED_MODULE_4__[\"default\"](supabaseUrl, supabaseKey, options);\r\n};\r\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3VwYWJhc2UtanMvZGlzdC9tb2R1bGUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQThDO0FBQ1o7QUFDdUI7QUFDOEU7QUFDakc7QUFDdUI7QUFDN0Q7QUFDQTtBQUNBO0FBQ087QUFDUCxlQUFlLHVEQUFjO0FBQzdCO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9pbmRleC5qcz84NjY3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTdXBhYmFzZUNsaWVudCBmcm9tICcuL1N1cGFiYXNlQ2xpZW50JztcclxuZXhwb3J0ICogZnJvbSAnQHN1cGFiYXNlL2F1dGgtanMnO1xyXG5leHBvcnQgeyBQb3N0Z3Jlc3RFcnJvciwgfSBmcm9tICdAc3VwYWJhc2UvcG9zdGdyZXN0LWpzJztcclxuZXhwb3J0IHsgRnVuY3Rpb25zSHR0cEVycm9yLCBGdW5jdGlvbnNGZXRjaEVycm9yLCBGdW5jdGlvbnNSZWxheUVycm9yLCBGdW5jdGlvbnNFcnJvciwgRnVuY3Rpb25SZWdpb24sIH0gZnJvbSAnQHN1cGFiYXNlL2Z1bmN0aW9ucy1qcyc7XHJcbmV4cG9ydCAqIGZyb20gJ0BzdXBhYmFzZS9yZWFsdGltZS1qcyc7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3VwYWJhc2VDbGllbnQgfSBmcm9tICcuL1N1cGFiYXNlQ2xpZW50JztcclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBuZXcgU3VwYWJhc2UgQ2xpZW50LlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNsaWVudCA9IChzdXBhYmFzZVVybCwgc3VwYWJhc2VLZXksIG9wdGlvbnMpID0+IHtcclxuICAgIHJldHVybiBuZXcgU3VwYWJhc2VDbGllbnQoc3VwYWJhc2VVcmwsIHN1cGFiYXNlS2V5LCBvcHRpb25zKTtcclxufTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/index.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/SupabaseAuthClient.js":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/@supabase/supabase-js/dist/module/lib/SupabaseAuthClient.js ***!
|
||
\**********************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SupabaseAuthClient: function() { return /* binding */ SupabaseAuthClient; }\n/* harmony export */ });\n/* harmony import */ var _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/auth-js */ \"(app-pages-browser)/./node_modules/@supabase/auth-js/dist/module/index.js\");\n\r\nclass SupabaseAuthClient extends _supabase_auth_js__WEBPACK_IMPORTED_MODULE_0__.AuthClient {\r\n constructor(options) {\r\n super(options);\r\n }\r\n}\r\n//# sourceMappingURL=SupabaseAuthClient.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3VwYWJhc2UtanMvZGlzdC9tb2R1bGUvbGliL1N1cGFiYXNlQXV0aENsaWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUErQztBQUN4QyxpQ0FBaUMseURBQVU7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N1cGFiYXNlLWpzL2Rpc3QvbW9kdWxlL2xpYi9TdXBhYmFzZUF1dGhDbGllbnQuanM/NzA4MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoQ2xpZW50IH0gZnJvbSAnQHN1cGFiYXNlL2F1dGgtanMnO1xyXG5leHBvcnQgY2xhc3MgU3VwYWJhc2VBdXRoQ2xpZW50IGV4dGVuZHMgQXV0aENsaWVudCB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICB9XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U3VwYWJhc2VBdXRoQ2xpZW50LmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/SupabaseAuthClient.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/constants.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/@supabase/supabase-js/dist/module/lib/constants.js ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_AUTH_OPTIONS: function() { return /* binding */ DEFAULT_AUTH_OPTIONS; },\n/* harmony export */ DEFAULT_DB_OPTIONS: function() { return /* binding */ DEFAULT_DB_OPTIONS; },\n/* harmony export */ DEFAULT_GLOBAL_OPTIONS: function() { return /* binding */ DEFAULT_GLOBAL_OPTIONS; },\n/* harmony export */ DEFAULT_HEADERS: function() { return /* binding */ DEFAULT_HEADERS; },\n/* harmony export */ DEFAULT_REALTIME_OPTIONS: function() { return /* binding */ DEFAULT_REALTIME_OPTIONS; }\n/* harmony export */ });\n/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ \"(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/version.js\");\n\r\nlet JS_ENV = '';\r\n// @ts-ignore\r\nif (typeof Deno !== 'undefined') {\r\n JS_ENV = 'deno';\r\n}\r\nelse if (typeof document !== 'undefined') {\r\n JS_ENV = 'web';\r\n}\r\nelse if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\r\n JS_ENV = 'react-native';\r\n}\r\nelse {\r\n JS_ENV = 'node';\r\n}\r\nconst DEFAULT_HEADERS = { 'X-Client-Info': `supabase-js-${JS_ENV}/${_version__WEBPACK_IMPORTED_MODULE_0__.version}` };\r\nconst DEFAULT_GLOBAL_OPTIONS = {\r\n headers: DEFAULT_HEADERS,\r\n};\r\nconst DEFAULT_DB_OPTIONS = {\r\n schema: 'public',\r\n};\r\nconst DEFAULT_AUTH_OPTIONS = {\r\n autoRefreshToken: true,\r\n persistSession: true,\r\n detectSessionInUrl: true,\r\n flowType: 'implicit',\r\n};\r\nconst DEFAULT_REALTIME_OPTIONS = {};\r\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3VwYWJhc2UtanMvZGlzdC9tb2R1bGUvbGliL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLDBCQUEwQixnQ0FBZ0MsT0FBTyxHQUFHLDZDQUFPLENBQUM7QUFDNUU7QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N1cGFiYXNlLWpzL2Rpc3QvbW9kdWxlL2xpYi9jb25zdGFudHMuanM/MTlmNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi92ZXJzaW9uJztcclxubGV0IEpTX0VOViA9ICcnO1xyXG4vLyBAdHMtaWdub3JlXHJcbmlmICh0eXBlb2YgRGVubyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgIEpTX0VOViA9ICdkZW5vJztcclxufVxyXG5lbHNlIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICBKU19FTlYgPSAnd2ViJztcclxufVxyXG5lbHNlIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IucHJvZHVjdCA9PT0gJ1JlYWN0TmF0aXZlJykge1xyXG4gICAgSlNfRU5WID0gJ3JlYWN0LW5hdGl2ZSc7XHJcbn1cclxuZWxzZSB7XHJcbiAgICBKU19FTlYgPSAnbm9kZSc7XHJcbn1cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSEVBREVSUyA9IHsgJ1gtQ2xpZW50LUluZm8nOiBgc3VwYWJhc2UtanMtJHtKU19FTlZ9LyR7dmVyc2lvbn1gIH07XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0dMT0JBTF9PUFRJT05TID0ge1xyXG4gICAgaGVhZGVyczogREVGQVVMVF9IRUFERVJTLFxyXG59O1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQl9PUFRJT05TID0ge1xyXG4gICAgc2NoZW1hOiAncHVibGljJyxcclxufTtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQVVUSF9PUFRJT05TID0ge1xyXG4gICAgYXV0b1JlZnJlc2hUb2tlbjogdHJ1ZSxcclxuICAgIHBlcnNpc3RTZXNzaW9uOiB0cnVlLFxyXG4gICAgZGV0ZWN0U2Vzc2lvbkluVXJsOiB0cnVlLFxyXG4gICAgZmxvd1R5cGU6ICdpbXBsaWNpdCcsXHJcbn07XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFQUxUSU1FX09QVElPTlMgPSB7fTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/constants.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/fetch.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/@supabase/supabase-js/dist/module/lib/fetch.js ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fetchWithAuth: function() { return /* binding */ fetchWithAuth; },\n/* harmony export */ resolveFetch: function() { return /* binding */ resolveFetch; },\n/* harmony export */ resolveHeadersConstructor: function() { return /* binding */ resolveHeadersConstructor; }\n/* harmony export */ });\n/* harmony import */ var _supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/node-fetch */ \"(app-pages-browser)/./node_modules/@supabase/node-fetch/browser.js\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n// @ts-ignore\r\n\r\nconst resolveFetch = (customFetch) => {\r\n let _fetch;\r\n if (customFetch) {\r\n _fetch = customFetch;\r\n }\r\n else if (typeof fetch === 'undefined') {\r\n _fetch = _supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\r\n }\r\n else {\r\n _fetch = fetch;\r\n }\r\n return (...args) => _fetch(...args);\r\n};\r\nconst resolveHeadersConstructor = () => {\r\n if (typeof Headers === 'undefined') {\r\n return _supabase_node_fetch__WEBPACK_IMPORTED_MODULE_0__.Headers;\r\n }\r\n return Headers;\r\n};\r\nconst fetchWithAuth = (supabaseKey, getAccessToken, customFetch) => {\r\n const fetch = resolveFetch(customFetch);\r\n const HeadersConstructor = resolveHeadersConstructor();\r\n return (input, init) => __awaiter(void 0, void 0, void 0, function* () {\r\n var _a;\r\n const accessToken = (_a = (yield getAccessToken())) !== null && _a !== void 0 ? _a : supabaseKey;\r\n let headers = new HeadersConstructor(init === null || init === void 0 ? void 0 : init.headers);\r\n if (!headers.has('apikey')) {\r\n headers.set('apikey', supabaseKey);\r\n }\r\n if (!headers.has('Authorization')) {\r\n headers.set('Authorization', `Bearer ${accessToken}`);\r\n }\r\n return fetch(input, Object.assign(Object.assign({}, init), { headers }));\r\n });\r\n};\r\n//# sourceMappingURL=fetch.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3VwYWJhc2UtanMvZGlzdC9tb2R1bGUvbGliL2ZldGNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxpQkFBaUIsU0FBSSxJQUFJLFNBQUk7QUFDN0IsNEJBQTRCLCtEQUErRCxpQkFBaUI7QUFDNUc7QUFDQSxvQ0FBb0MsTUFBTSwrQkFBK0IsWUFBWTtBQUNyRixtQ0FBbUMsTUFBTSxtQ0FBbUMsWUFBWTtBQUN4RixnQ0FBZ0M7QUFDaEM7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUM4RTtBQUN2RTtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsNERBQVM7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBLGVBQWUseURBQWdCO0FBQy9CO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQsWUFBWTtBQUMvRDtBQUNBLDBEQUEwRCxXQUFXLFNBQVM7QUFDOUUsS0FBSztBQUNMO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9saWIvZmV0Y2guanM/MTgxZSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn07XHJcbi8vIEB0cy1pZ25vcmVcclxuaW1wb3J0IG5vZGVGZXRjaCwgeyBIZWFkZXJzIGFzIE5vZGVGZXRjaEhlYWRlcnMgfSBmcm9tICdAc3VwYWJhc2Uvbm9kZS1mZXRjaCc7XHJcbmV4cG9ydCBjb25zdCByZXNvbHZlRmV0Y2ggPSAoY3VzdG9tRmV0Y2gpID0+IHtcclxuICAgIGxldCBfZmV0Y2g7XHJcbiAgICBpZiAoY3VzdG9tRmV0Y2gpIHtcclxuICAgICAgICBfZmV0Y2ggPSBjdXN0b21GZXRjaDtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHR5cGVvZiBmZXRjaCA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICBfZmV0Y2ggPSBub2RlRmV0Y2g7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBfZmV0Y2ggPSBmZXRjaDtcclxuICAgIH1cclxuICAgIHJldHVybiAoLi4uYXJncykgPT4gX2ZldGNoKC4uLmFyZ3MpO1xyXG59O1xyXG5leHBvcnQgY29uc3QgcmVzb2x2ZUhlYWRlcnNDb25zdHJ1Y3RvciA9ICgpID0+IHtcclxuICAgIGlmICh0eXBlb2YgSGVhZGVycyA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICByZXR1cm4gTm9kZUZldGNoSGVhZGVycztcclxuICAgIH1cclxuICAgIHJldHVybiBIZWFkZXJzO1xyXG59O1xyXG5leHBvcnQgY29uc3QgZmV0Y2hXaXRoQXV0aCA9IChzdXBhYmFzZUtleSwgZ2V0QWNjZXNzVG9rZW4sIGN1c3RvbUZldGNoKSA9PiB7XHJcbiAgICBjb25zdCBmZXRjaCA9IHJlc29sdmVGZXRjaChjdXN0b21GZXRjaCk7XHJcbiAgICBjb25zdCBIZWFkZXJzQ29uc3RydWN0b3IgPSByZXNvbHZlSGVhZGVyc0NvbnN0cnVjdG9yKCk7XHJcbiAgICByZXR1cm4gKGlucHV0LCBpbml0KSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcclxuICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSAoX2EgPSAoeWllbGQgZ2V0QWNjZXNzVG9rZW4oKSkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHN1cGFiYXNlS2V5O1xyXG4gICAgICAgIGxldCBoZWFkZXJzID0gbmV3IEhlYWRlcnNDb25zdHJ1Y3Rvcihpbml0ID09PSBudWxsIHx8IGluaXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGluaXQuaGVhZGVycyk7XHJcbiAgICAgICAgaWYgKCFoZWFkZXJzLmhhcygnYXBpa2V5JykpIHtcclxuICAgICAgICAgICAgaGVhZGVycy5zZXQoJ2FwaWtleScsIHN1cGFiYXNlS2V5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFoZWFkZXJzLmhhcygnQXV0aG9yaXphdGlvbicpKSB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgYEJlYXJlciAke2FjY2Vzc1Rva2VufWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmV0Y2goaW5wdXQsIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgaW5pdCksIHsgaGVhZGVycyB9KSk7XHJcbiAgICB9KTtcclxufTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmV0Y2guanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/fetch.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/helpers.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/@supabase/supabase-js/dist/module/lib/helpers.js ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applySettingDefaults: function() { return /* binding */ applySettingDefaults; },\n/* harmony export */ ensureTrailingSlash: function() { return /* binding */ ensureTrailingSlash; },\n/* harmony export */ isBrowser: function() { return /* binding */ isBrowser; },\n/* harmony export */ uuid: function() { return /* binding */ uuid; }\n/* harmony export */ });\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nfunction uuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\nfunction ensureTrailingSlash(url) {\r\n return url.endsWith('/') ? url : url + '/';\r\n}\r\nconst isBrowser = () => typeof window !== 'undefined';\r\nfunction applySettingDefaults(options, defaults) {\r\n var _a, _b;\r\n const { db: dbOptions, auth: authOptions, realtime: realtimeOptions, global: globalOptions, } = options;\r\n const { db: DEFAULT_DB_OPTIONS, auth: DEFAULT_AUTH_OPTIONS, realtime: DEFAULT_REALTIME_OPTIONS, global: DEFAULT_GLOBAL_OPTIONS, } = defaults;\r\n const result = {\r\n db: Object.assign(Object.assign({}, DEFAULT_DB_OPTIONS), dbOptions),\r\n auth: Object.assign(Object.assign({}, DEFAULT_AUTH_OPTIONS), authOptions),\r\n realtime: Object.assign(Object.assign({}, DEFAULT_REALTIME_OPTIONS), realtimeOptions),\r\n global: Object.assign(Object.assign(Object.assign({}, DEFAULT_GLOBAL_OPTIONS), globalOptions), { headers: Object.assign(Object.assign({}, ((_a = DEFAULT_GLOBAL_OPTIONS === null || DEFAULT_GLOBAL_OPTIONS === void 0 ? void 0 : DEFAULT_GLOBAL_OPTIONS.headers) !== null && _a !== void 0 ? _a : {})), ((_b = globalOptions === null || globalOptions === void 0 ? void 0 : globalOptions.headers) !== null && _b !== void 0 ? _b : {})) }),\r\n accessToken: () => __awaiter(this, void 0, void 0, function* () { return ''; }),\r\n };\r\n if (options.accessToken) {\r\n result.accessToken = options.accessToken;\r\n }\r\n else {\r\n // hack around Required<>\r\n delete result.accessToken;\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3VwYWJhc2UtanMvZGlzdC9tb2R1bGUvbGliL2hlbHBlcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLGlCQUFpQixTQUFJLElBQUksU0FBSTtBQUM3Qiw0QkFBNEIsK0RBQStELGlCQUFpQjtBQUM1RztBQUNBLG9DQUFvQyxNQUFNLCtCQUErQixZQUFZO0FBQ3JGLG1DQUFtQyxNQUFNLG1DQUFtQyxZQUFZO0FBQ3hGLGdDQUFnQztBQUNoQztBQUNBLEtBQUs7QUFDTDtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDQTtBQUNQO0FBQ0EsWUFBWSxzRkFBc0Y7QUFDbEcsWUFBWSwwSEFBMEg7QUFDdEk7QUFDQSwwQ0FBMEM7QUFDMUMsNENBQTRDO0FBQzVDLGdEQUFnRDtBQUNoRCw0REFBNEQsNkNBQTZDLHVDQUF1Qyw0SkFBNEosbUlBQW1JLElBQUk7QUFDbmIsMEVBQTBFLFlBQVk7QUFDdEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N1cGFiYXNlLWpzL2Rpc3QvbW9kdWxlL2xpYi9oZWxwZXJzLmpzPzdmZjYiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgIH0pO1xyXG59O1xyXG5leHBvcnQgZnVuY3Rpb24gdXVpZCgpIHtcclxuICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9uIChjKSB7XHJcbiAgICAgICAgdmFyIHIgPSAoTWF0aC5yYW5kb20oKSAqIDE2KSB8IDAsIHYgPSBjID09ICd4JyA/IHIgOiAociAmIDB4MykgfCAweDg7XHJcbiAgICAgICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xyXG4gICAgfSk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVRyYWlsaW5nU2xhc2godXJsKSB7XHJcbiAgICByZXR1cm4gdXJsLmVuZHNXaXRoKCcvJykgPyB1cmwgOiB1cmwgKyAnLyc7XHJcbn1cclxuZXhwb3J0IGNvbnN0IGlzQnJvd3NlciA9ICgpID0+IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnO1xyXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlTZXR0aW5nRGVmYXVsdHMob3B0aW9ucywgZGVmYXVsdHMpIHtcclxuICAgIHZhciBfYSwgX2I7XHJcbiAgICBjb25zdCB7IGRiOiBkYk9wdGlvbnMsIGF1dGg6IGF1dGhPcHRpb25zLCByZWFsdGltZTogcmVhbHRpbWVPcHRpb25zLCBnbG9iYWw6IGdsb2JhbE9wdGlvbnMsIH0gPSBvcHRpb25zO1xyXG4gICAgY29uc3QgeyBkYjogREVGQVVMVF9EQl9PUFRJT05TLCBhdXRoOiBERUZBVUxUX0FVVEhfT1BUSU9OUywgcmVhbHRpbWU6IERFRkFVTFRfUkVBTFRJTUVfT1BUSU9OUywgZ2xvYmFsOiBERUZBVUxUX0dMT0JBTF9PUFRJT05TLCB9ID0gZGVmYXVsdHM7XHJcbiAgICBjb25zdCByZXN1bHQgPSB7XHJcbiAgICAgICAgZGI6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9EQl9PUFRJT05TKSwgZGJPcHRpb25zKSxcclxuICAgICAgICBhdXRoOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfQVVUSF9PUFRJT05TKSwgYXV0aE9wdGlvbnMpLFxyXG4gICAgICAgIHJlYWx0aW1lOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfUkVBTFRJTUVfT1BUSU9OUyksIHJlYWx0aW1lT3B0aW9ucyksXHJcbiAgICAgICAgZ2xvYmFsOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9HTE9CQUxfT1BUSU9OUyksIGdsb2JhbE9wdGlvbnMpLCB7IGhlYWRlcnM6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgKChfYSA9IERFRkFVTFRfR0xPQkFMX09QVElPTlMgPT09IG51bGwgfHwgREVGQVVMVF9HTE9CQUxfT1BUSU9OUyA9PT0gdm9pZCAwID8gdm9pZCAwIDogREVGQVVMVF9HTE9CQUxfT1BUSU9OUy5oZWFkZXJzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB7fSkpLCAoKF9iID0gZ2xvYmFsT3B0aW9ucyA9PT0gbnVsbCB8fCBnbG9iYWxPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBnbG9iYWxPcHRpb25zLmhlYWRlcnMpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHt9KSkgfSksXHJcbiAgICAgICAgYWNjZXNzVG9rZW46ICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsgcmV0dXJuICcnOyB9KSxcclxuICAgIH07XHJcbiAgICBpZiAob3B0aW9ucy5hY2Nlc3NUb2tlbikge1xyXG4gICAgICAgIHJlc3VsdC5hY2Nlc3NUb2tlbiA9IG9wdGlvbnMuYWNjZXNzVG9rZW47XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICAvLyBoYWNrIGFyb3VuZCBSZXF1aXJlZDw+XHJcbiAgICAgICAgZGVsZXRlIHJlc3VsdC5hY2Nlc3NUb2tlbjtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVscGVycy5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/helpers.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/version.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/@supabase/supabase-js/dist/module/lib/version.js ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ version: function() { return /* binding */ version; }\n/* harmony export */ });\nconst version = '2.52.0';\r\n//# sourceMappingURL=version.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2Uvc3VwYWJhc2UtanMvZGlzdC9tb2R1bGUvbGliL3ZlcnNpb24uanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPO0FBQ1AiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BzdXBhYmFzZS9zdXBhYmFzZS1qcy9kaXN0L21vZHVsZS9saWIvdmVyc2lvbi5qcz8wODEwIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB2ZXJzaW9uID0gJzIuNTIuMCc7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZlcnNpb24uanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/lib/version.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/gsap/CSSPlugin.js":
|
||
/*!****************************************!*\
|
||
!*** ./node_modules/gsap/CSSPlugin.js ***!
|
||
\****************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CSSPlugin: function() { return /* binding */ CSSPlugin; },\n/* harmony export */ _createElement: function() { return /* binding */ _createElement; },\n/* harmony export */ _getBBox: function() { return /* binding */ _getBBox; },\n/* harmony export */ checkPrefix: function() { return /* binding */ _checkPropPrefix; },\n/* harmony export */ \"default\": function() { return /* binding */ CSSPlugin; }\n/* harmony export */ });\n/* harmony import */ var _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./gsap-core.js */ \"(app-pages-browser)/./node_modules/gsap/gsap-core.js\");\n/*!\r\n * CSSPlugin 3.13.0\r\n * https://gsap.com\r\n *\r\n * Copyright 2008-2025, GreenSock. All rights reserved.\r\n * Subject to the terms at https://gsap.com/standard-license\r\n * @author: Jack Doyle, jack@greensock.com\r\n*/\r\n\r\n/* eslint-disable */\r\n\r\n\r\nvar _win,\r\n _doc,\r\n _docElement,\r\n _pluginInitted,\r\n _tempDiv,\r\n _tempDivStyler,\r\n _recentSetterPlugin,\r\n _reverting,\r\n _windowExists = function _windowExists() {\r\n return typeof window !== \"undefined\";\r\n},\r\n _transformProps = {},\r\n _RAD2DEG = 180 / Math.PI,\r\n _DEG2RAD = Math.PI / 180,\r\n _atan2 = Math.atan2,\r\n _bigNum = 1e8,\r\n _capsExp = /([A-Z])/g,\r\n _horizontalExp = /(left|right|width|margin|padding|x)/i,\r\n _complexExp = /[\\s,\\(]\\S/,\r\n _propertyAliases = {\r\n autoAlpha: \"opacity,visibility\",\r\n scale: \"scaleX,scaleY\",\r\n alpha: \"opacity\"\r\n},\r\n _renderCSSProp = function _renderCSSProp(ratio, data) {\r\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\r\n},\r\n _renderPropWithEnd = function _renderPropWithEnd(ratio, data) {\r\n return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\r\n},\r\n _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning(ratio, data) {\r\n return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u : data.b, data);\r\n},\r\n //if units change, we need a way to render the original unit/value when the tween goes all the way back to the beginning (ratio:0)\r\n_renderRoundedCSSProp = function _renderRoundedCSSProp(ratio, data) {\r\n var value = data.s + data.c * ratio;\r\n data.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data);\r\n},\r\n _renderNonTweeningValue = function _renderNonTweeningValue(ratio, data) {\r\n return data.set(data.t, data.p, ratio ? data.e : data.b, data);\r\n},\r\n _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd(ratio, data) {\r\n return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);\r\n},\r\n _setterCSSStyle = function _setterCSSStyle(target, property, value) {\r\n return target.style[property] = value;\r\n},\r\n _setterCSSProp = function _setterCSSProp(target, property, value) {\r\n return target.style.setProperty(property, value);\r\n},\r\n _setterTransform = function _setterTransform(target, property, value) {\r\n return target._gsap[property] = value;\r\n},\r\n _setterScale = function _setterScale(target, property, value) {\r\n return target._gsap.scaleX = target._gsap.scaleY = value;\r\n},\r\n _setterScaleWithRender = function _setterScaleWithRender(target, property, value, data, ratio) {\r\n var cache = target._gsap;\r\n cache.scaleX = cache.scaleY = value;\r\n cache.renderTransform(ratio, cache);\r\n},\r\n _setterTransformWithRender = function _setterTransformWithRender(target, property, value, data, ratio) {\r\n var cache = target._gsap;\r\n cache[property] = value;\r\n cache.renderTransform(ratio, cache);\r\n},\r\n _transformProp = \"transform\",\r\n _transformOriginProp = _transformProp + \"Origin\",\r\n _saveStyle = function _saveStyle(property, isNotCSS) {\r\n var _this = this;\r\n\r\n var target = this.target,\r\n style = target.style,\r\n cache = target._gsap;\r\n\r\n if (property in _transformProps && style) {\r\n this.tfm = this.tfm || {};\r\n\r\n if (property !== \"transform\") {\r\n property = _propertyAliases[property] || property;\r\n ~property.indexOf(\",\") ? property.split(\",\").forEach(function (a) {\r\n return _this.tfm[a] = _get(target, a);\r\n }) : this.tfm[property] = cache.x ? cache[property] : _get(target, property); // note: scale would map to \"scaleX,scaleY\", thus we loop and apply them both.\r\n\r\n property === _transformOriginProp && (this.tfm.zOrigin = cache.zOrigin);\r\n } else {\r\n return _propertyAliases.transform.split(\",\").forEach(function (p) {\r\n return _saveStyle.call(_this, p, isNotCSS);\r\n });\r\n }\r\n\r\n if (this.props.indexOf(_transformProp) >= 0) {\r\n return;\r\n }\r\n\r\n if (cache.svg) {\r\n this.svgo = target.getAttribute(\"data-svg-origin\");\r\n this.props.push(_transformOriginProp, isNotCSS, \"\");\r\n }\r\n\r\n property = _transformProp;\r\n }\r\n\r\n (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]);\r\n},\r\n _removeIndependentTransforms = function _removeIndependentTransforms(style) {\r\n if (style.translate) {\r\n style.removeProperty(\"translate\");\r\n style.removeProperty(\"scale\");\r\n style.removeProperty(\"rotate\");\r\n }\r\n},\r\n _revertStyle = function _revertStyle() {\r\n var props = this.props,\r\n target = this.target,\r\n style = target.style,\r\n cache = target._gsap,\r\n i,\r\n p;\r\n\r\n for (i = 0; i < props.length; i += 3) {\r\n // stored like this: property, isNotCSS, value\r\n if (!props[i + 1]) {\r\n props[i + 2] ? style[props[i]] = props[i + 2] : style.removeProperty(props[i].substr(0, 2) === \"--\" ? props[i] : props[i].replace(_capsExp, \"-$1\").toLowerCase());\r\n } else if (props[i + 1] === 2) {\r\n // non-CSS value (function-based)\r\n target[props[i]](props[i + 2]);\r\n } else {\r\n // non-CSS value (not function-based)\r\n target[props[i]] = props[i + 2];\r\n }\r\n }\r\n\r\n if (this.tfm) {\r\n for (p in this.tfm) {\r\n cache[p] = this.tfm[p];\r\n }\r\n\r\n if (cache.svg) {\r\n cache.renderTransform();\r\n target.setAttribute(\"data-svg-origin\", this.svgo || \"\");\r\n }\r\n\r\n i = _reverting();\r\n\r\n if ((!i || !i.isStart) && !style[_transformProp]) {\r\n _removeIndependentTransforms(style);\r\n\r\n if (cache.zOrigin && style[_transformOriginProp]) {\r\n style[_transformOriginProp] += \" \" + cache.zOrigin + \"px\"; // since we're uncaching, we must put the zOrigin back into the transformOrigin so that we can pull it out accurately when we parse again. Otherwise, we'd lose the z portion of the origin since we extract it to protect from Safari bugs.\r\n\r\n cache.zOrigin = 0;\r\n cache.renderTransform();\r\n }\r\n\r\n cache.uncache = 1; // if it's a startAt that's being reverted in the _initTween() of the core, we don't need to uncache transforms. This is purely a performance optimization.\r\n }\r\n }\r\n},\r\n _getStyleSaver = function _getStyleSaver(target, properties) {\r\n var saver = {\r\n target: target,\r\n props: [],\r\n revert: _revertStyle,\r\n save: _saveStyle\r\n };\r\n target._gsap || _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.gsap.core.getCache(target); // just make sure there's a _gsap cache defined because we read from it in _saveStyle() and it's more efficient to just check it here once.\r\n\r\n properties && target.style && target.nodeType && properties.split(\",\").forEach(function (p) {\r\n return saver.save(p);\r\n }); // make sure it's a DOM node too.\r\n\r\n return saver;\r\n},\r\n _supports3D,\r\n _createElement = function _createElement(type, ns) {\r\n var e = _doc.createElementNS ? _doc.createElementNS((ns || \"http://www.w3.org/1999/xhtml\").replace(/^https/, \"http\"), type) : _doc.createElement(type); //some servers swap in https for http in the namespace which can break things, making \"style\" inaccessible.\r\n\r\n return e && e.style ? e : _doc.createElement(type); //some environments won't allow access to the element's style when created with a namespace in which case we default to the standard createElement() to work around the issue. Also note that when GSAP is embedded directly inside an SVG file, createElement() won't allow access to the style object in Firefox (see https://gsap.com/forums/topic/20215-problem-using-tweenmax-in-standalone-self-containing-svg-file-err-cannot-set-property-csstext-of-undefined/).\r\n},\r\n _getComputedProperty = function _getComputedProperty(target, property, skipPrefixFallback) {\r\n var cs = getComputedStyle(target);\r\n return cs[property] || cs.getPropertyValue(property.replace(_capsExp, \"-$1\").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1) || \"\"; //css variables may not need caps swapped out for dashes and lowercase.\r\n},\r\n _prefixes = \"O,Moz,ms,Ms,Webkit\".split(\",\"),\r\n _checkPropPrefix = function _checkPropPrefix(property, element, preferPrefix) {\r\n var e = element || _tempDiv,\r\n s = e.style,\r\n i = 5;\r\n\r\n if (property in s && !preferPrefix) {\r\n return property;\r\n }\r\n\r\n property = property.charAt(0).toUpperCase() + property.substr(1);\r\n\r\n while (i-- && !(_prefixes[i] + property in s)) {}\r\n\r\n return i < 0 ? null : (i === 3 ? \"ms\" : i >= 0 ? _prefixes[i] : \"\") + property;\r\n},\r\n _initCore = function _initCore() {\r\n if (_windowExists() && window.document) {\r\n _win = window;\r\n _doc = _win.document;\r\n _docElement = _doc.documentElement;\r\n _tempDiv = _createElement(\"div\") || {\r\n style: {}\r\n };\r\n _tempDivStyler = _createElement(\"div\");\r\n _transformProp = _checkPropPrefix(_transformProp);\r\n _transformOriginProp = _transformProp + \"Origin\";\r\n _tempDiv.style.cssText = \"border-width:0;line-height:0;position:absolute;padding:0\"; //make sure to override certain properties that may contaminate measurements, in case the user has overreaching style sheets.\r\n\r\n _supports3D = !!_checkPropPrefix(\"perspective\");\r\n _reverting = _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.gsap.core.reverting;\r\n _pluginInitted = 1;\r\n }\r\n},\r\n _getReparentedCloneBBox = function _getReparentedCloneBBox(target) {\r\n //works around issues in some browsers (like Firefox) that don't correctly report getBBox() on SVG elements inside a <defs> element and/or <mask>. We try creating an SVG, adding it to the documentElement and toss the element in there so that it's definitely part of the rendering tree, then grab the bbox and if it works, we actually swap out the original getBBox() method for our own that does these extra steps whenever getBBox is needed. This helps ensure that performance is optimal (only do all these extra steps when absolutely necessary...most elements don't need it).\r\n var owner = target.ownerSVGElement,\r\n svg = _createElement(\"svg\", owner && owner.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\"),\r\n clone = target.cloneNode(true),\r\n bbox;\r\n\r\n clone.style.display = \"block\";\r\n svg.appendChild(clone);\r\n\r\n _docElement.appendChild(svg);\r\n\r\n try {\r\n bbox = clone.getBBox();\r\n } catch (e) {}\r\n\r\n svg.removeChild(clone);\r\n\r\n _docElement.removeChild(svg);\r\n\r\n return bbox;\r\n},\r\n _getAttributeFallbacks = function _getAttributeFallbacks(target, attributesArray) {\r\n var i = attributesArray.length;\r\n\r\n while (i--) {\r\n if (target.hasAttribute(attributesArray[i])) {\r\n return target.getAttribute(attributesArray[i]);\r\n }\r\n }\r\n},\r\n _getBBox = function _getBBox(target) {\r\n var bounds, cloned;\r\n\r\n try {\r\n bounds = target.getBBox(); //Firefox throws errors if you try calling getBBox() on an SVG element that's not rendered (like in a <symbol> or <defs>). https://bugzilla.mozilla.org/show_bug.cgi?id=612118\r\n } catch (error) {\r\n bounds = _getReparentedCloneBBox(target);\r\n cloned = 1;\r\n }\r\n\r\n bounds && (bounds.width || bounds.height) || cloned || (bounds = _getReparentedCloneBBox(target)); //some browsers (like Firefox) misreport the bounds if the element has zero width and height (it just assumes it's at x:0, y:0), thus we need to manually grab the position in that case.\r\n\r\n return bounds && !bounds.width && !bounds.x && !bounds.y ? {\r\n x: +_getAttributeFallbacks(target, [\"x\", \"cx\", \"x1\"]) || 0,\r\n y: +_getAttributeFallbacks(target, [\"y\", \"cy\", \"y1\"]) || 0,\r\n width: 0,\r\n height: 0\r\n } : bounds;\r\n},\r\n _isSVG = function _isSVG(e) {\r\n return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e));\r\n},\r\n //reports if the element is an SVG on which getBBox() actually works\r\n_removeProperty = function _removeProperty(target, property) {\r\n if (property) {\r\n var style = target.style,\r\n first2Chars;\r\n\r\n if (property in _transformProps && property !== _transformOriginProp) {\r\n property = _transformProp;\r\n }\r\n\r\n if (style.removeProperty) {\r\n first2Chars = property.substr(0, 2);\r\n\r\n if (first2Chars === \"ms\" || property.substr(0, 6) === \"webkit\") {\r\n //Microsoft and some Webkit browsers don't conform to the standard of capitalizing the first prefix character, so we adjust so that when we prefix the caps with a dash, it's correct (otherwise it'd be \"ms-transform\" instead of \"-ms-transform\" for IE9, for example)\r\n property = \"-\" + property;\r\n }\r\n\r\n style.removeProperty(first2Chars === \"--\" ? property : property.replace(_capsExp, \"-$1\").toLowerCase());\r\n } else {\r\n //note: old versions of IE use \"removeAttribute()\" instead of \"removeProperty()\"\r\n style.removeAttribute(property);\r\n }\r\n }\r\n},\r\n _addNonTweeningPT = function _addNonTweeningPT(plugin, target, property, beginning, end, onlySetAtEnd) {\r\n var pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);\r\n plugin._pt = pt;\r\n pt.b = beginning;\r\n pt.e = end;\r\n\r\n plugin._props.push(property);\r\n\r\n return pt;\r\n},\r\n _nonConvertibleUnits = {\r\n deg: 1,\r\n rad: 1,\r\n turn: 1\r\n},\r\n _nonStandardLayouts = {\r\n grid: 1,\r\n flex: 1\r\n},\r\n //takes a single value like 20px and converts it to the unit specified, like \"%\", returning only the numeric amount.\r\n_convertToUnit = function _convertToUnit(target, property, value, unit) {\r\n var curValue = parseFloat(value) || 0,\r\n curUnit = (value + \"\").trim().substr((curValue + \"\").length) || \"px\",\r\n // some browsers leave extra whitespace at the beginning of CSS variables, hence the need to trim()\r\n style = _tempDiv.style,\r\n horizontal = _horizontalExp.test(property),\r\n isRootSVG = target.tagName.toLowerCase() === \"svg\",\r\n measureProperty = (isRootSVG ? \"client\" : \"offset\") + (horizontal ? \"Width\" : \"Height\"),\r\n amount = 100,\r\n toPixels = unit === \"px\",\r\n toPercent = unit === \"%\",\r\n px,\r\n parent,\r\n cache,\r\n isSVG;\r\n\r\n if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {\r\n return curValue;\r\n }\r\n\r\n curUnit !== \"px\" && !toPixels && (curValue = _convertToUnit(target, property, value, \"px\"));\r\n isSVG = target.getCTM && _isSVG(target);\r\n\r\n if ((toPercent || curUnit === \"%\") && (_transformProps[property] || ~property.indexOf(\"adius\"))) {\r\n px = isSVG ? target.getBBox()[horizontal ? \"width\" : \"height\"] : target[measureProperty];\r\n return (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(toPercent ? curValue / px * amount : curValue / 100 * px);\r\n }\r\n\r\n style[horizontal ? \"width\" : \"height\"] = amount + (toPixels ? curUnit : unit);\r\n parent = unit !== \"rem\" && ~property.indexOf(\"adius\") || unit === \"em\" && target.appendChild && !isRootSVG ? target : target.parentNode;\r\n\r\n if (isSVG) {\r\n parent = (target.ownerSVGElement || {}).parentNode;\r\n }\r\n\r\n if (!parent || parent === _doc || !parent.appendChild) {\r\n parent = _doc.body;\r\n }\r\n\r\n cache = parent._gsap;\r\n\r\n if (cache && toPercent && cache.width && horizontal && cache.time === _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._ticker.time && !cache.uncache) {\r\n return (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(curValue / cache.width * amount);\r\n } else {\r\n if (toPercent && (property === \"height\" || property === \"width\")) {\r\n // if we're dealing with width/height that's inside a container with padding and/or it's a flexbox/grid container, we must apply it to the target itself rather than the _tempDiv in order to ensure complete accuracy, factoring in the parent's padding.\r\n var v = target.style[property];\r\n target.style[property] = amount + unit;\r\n px = target[measureProperty];\r\n v ? target.style[property] = v : _removeProperty(target, property);\r\n } else {\r\n (toPercent || curUnit === \"%\") && !_nonStandardLayouts[_getComputedProperty(parent, \"display\")] && (style.position = _getComputedProperty(target, \"position\"));\r\n parent === target && (style.position = \"static\"); // like for borderRadius, if it's a % we must have it relative to the target itself but that may not have position: relative or position: absolute in which case it'd go up the chain until it finds its offsetParent (bad). position: static protects against that.\r\n\r\n parent.appendChild(_tempDiv);\r\n px = _tempDiv[measureProperty];\r\n parent.removeChild(_tempDiv);\r\n style.position = \"absolute\";\r\n }\r\n\r\n if (horizontal && toPercent) {\r\n cache = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._getCache)(parent);\r\n cache.time = _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._ticker.time;\r\n cache.width = parent[measureProperty];\r\n }\r\n }\r\n\r\n return (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);\r\n},\r\n _get = function _get(target, property, unit, uncache) {\r\n var value;\r\n _pluginInitted || _initCore();\r\n\r\n if (property in _propertyAliases && property !== \"transform\") {\r\n property = _propertyAliases[property];\r\n\r\n if (~property.indexOf(\",\")) {\r\n property = property.split(\",\")[0];\r\n }\r\n }\r\n\r\n if (_transformProps[property] && property !== \"transform\") {\r\n value = _parseTransform(target, uncache);\r\n value = property !== \"transformOrigin\" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + \" \" + value.zOrigin + \"px\";\r\n } else {\r\n value = target.style[property];\r\n\r\n if (!value || value === \"auto\" || uncache || ~(value + \"\").indexOf(\"calc(\")) {\r\n value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._getProperty)(target, property) || (property === \"opacity\" ? 1 : 0); // note: some browsers, like Firefox, don't report borderRadius correctly! Instead, it only reports every corner like borderTopLeftRadius\r\n }\r\n }\r\n\r\n return unit && !~(value + \"\").trim().indexOf(\" \") ? _convertToUnit(target, property, value, unit) + unit : value;\r\n},\r\n _tweenComplexCSSString = function _tweenComplexCSSString(target, prop, start, end) {\r\n // note: we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\r\n if (!start || start === \"none\") {\r\n // some browsers like Safari actually PREFER the prefixed property and mis-report the unprefixed value like clipPath (BUG). In other words, even though clipPath exists in the style (\"clipPath\" in target.style) and it's set in the CSS properly (along with -webkit-clip-path), Safari reports clipPath as \"none\" whereas WebkitClipPath reports accurately like \"ellipse(100% 0% at 50% 0%)\", so in this case we must SWITCH to using the prefixed property instead. See https://gsap.com/forums/topic/18310-clippath-doesnt-work-on-ios/\r\n var p = _checkPropPrefix(prop, target, 1),\r\n s = p && _getComputedProperty(target, p, 1);\r\n\r\n if (s && s !== start) {\r\n prop = p;\r\n start = s;\r\n } else if (prop === \"borderColor\") {\r\n start = _getComputedProperty(target, \"borderTopColor\"); // Firefox bug: always reports \"borderColor\" as \"\", so we must fall back to borderTopColor. See https://gsap.com/forums/topic/24583-how-to-return-colors-that-i-had-after-reverse/\r\n }\r\n }\r\n\r\n var pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(this._pt, target.style, prop, 0, 1, _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._renderComplexString),\r\n index = 0,\r\n matchIndex = 0,\r\n a,\r\n result,\r\n startValues,\r\n startNum,\r\n color,\r\n startValue,\r\n endValue,\r\n endNum,\r\n chunk,\r\n endUnit,\r\n startUnit,\r\n endValues;\r\n pt.b = start;\r\n pt.e = end;\r\n start += \"\"; // ensure values are strings\r\n\r\n end += \"\";\r\n\r\n if (end.substring(0, 6) === \"var(--\") {\r\n end = _getComputedProperty(target, end.substring(4, end.indexOf(\")\")));\r\n }\r\n\r\n if (end === \"auto\") {\r\n startValue = target.style[prop];\r\n target.style[prop] = end;\r\n end = _getComputedProperty(target, prop) || end;\r\n startValue ? target.style[prop] = startValue : _removeProperty(target, prop);\r\n }\r\n\r\n a = [start, end];\r\n\r\n (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._colorStringFilter)(a); // pass an array with the starting and ending values and let the filter do whatever it needs to the values. If colors are found, it returns true and then we must match where the color shows up order-wise because for things like boxShadow, sometimes the browser provides the computed values with the color FIRST, but the user provides it with the color LAST, so flip them if necessary. Same for drop-shadow().\r\n\r\n\r\n start = a[0];\r\n end = a[1];\r\n startValues = start.match(_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._numWithUnitExp) || [];\r\n endValues = end.match(_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._numWithUnitExp) || [];\r\n\r\n if (endValues.length) {\r\n while (result = _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._numWithUnitExp.exec(end)) {\r\n endValue = result[0];\r\n chunk = end.substring(index, result.index);\r\n\r\n if (color) {\r\n color = (color + 1) % 5;\r\n } else if (chunk.substr(-5) === \"rgba(\" || chunk.substr(-5) === \"hsla(\") {\r\n color = 1;\r\n }\r\n\r\n if (endValue !== (startValue = startValues[matchIndex++] || \"\")) {\r\n startNum = parseFloat(startValue) || 0;\r\n startUnit = startValue.substr((startNum + \"\").length);\r\n endValue.charAt(1) === \"=\" && (endValue = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._parseRelative)(startNum, endValue) + startUnit);\r\n endNum = parseFloat(endValue);\r\n endUnit = endValue.substr((endNum + \"\").length);\r\n index = _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._numWithUnitExp.lastIndex - endUnit.length;\r\n\r\n if (!endUnit) {\r\n //if something like \"perspective:300\" is passed in and we must add a unit to the end\r\n endUnit = endUnit || _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._config.units[prop] || startUnit;\r\n\r\n if (index === end.length) {\r\n end += endUnit;\r\n pt.e += endUnit;\r\n }\r\n }\r\n\r\n if (startUnit !== endUnit) {\r\n startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;\r\n } // these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\r\n\r\n\r\n pt._pt = {\r\n _next: pt._pt,\r\n p: chunk || matchIndex === 1 ? chunk : \",\",\r\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\r\n s: startNum,\r\n c: endNum - startNum,\r\n m: color && color < 4 || prop === \"zIndex\" ? Math.round : 0\r\n };\r\n }\r\n }\r\n\r\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\r\n } else {\r\n pt.r = prop === \"display\" && end === \"none\" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;\r\n }\r\n\r\n _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._relExp.test(end) && (pt.e = 0); //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\r\n\r\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within another plugin too, thus \"this\" would refer to the plugin.\r\n\r\n return pt;\r\n},\r\n _keywordToPercent = {\r\n top: \"0%\",\r\n bottom: \"100%\",\r\n left: \"0%\",\r\n right: \"100%\",\r\n center: \"50%\"\r\n},\r\n _convertKeywordsToPercentages = function _convertKeywordsToPercentages(value) {\r\n var split = value.split(\" \"),\r\n x = split[0],\r\n y = split[1] || \"50%\";\r\n\r\n if (x === \"top\" || x === \"bottom\" || y === \"left\" || y === \"right\") {\r\n //the user provided them in the wrong order, so flip them\r\n value = x;\r\n x = y;\r\n y = value;\r\n }\r\n\r\n split[0] = _keywordToPercent[x] || x;\r\n split[1] = _keywordToPercent[y] || y;\r\n return split.join(\" \");\r\n},\r\n _renderClearProps = function _renderClearProps(ratio, data) {\r\n if (data.tween && data.tween._time === data.tween._dur) {\r\n var target = data.t,\r\n style = target.style,\r\n props = data.u,\r\n cache = target._gsap,\r\n prop,\r\n clearTransforms,\r\n i;\r\n\r\n if (props === \"all\" || props === true) {\r\n style.cssText = \"\";\r\n clearTransforms = 1;\r\n } else {\r\n props = props.split(\",\");\r\n i = props.length;\r\n\r\n while (--i > -1) {\r\n prop = props[i];\r\n\r\n if (_transformProps[prop]) {\r\n clearTransforms = 1;\r\n prop = prop === \"transformOrigin\" ? _transformOriginProp : _transformProp;\r\n }\r\n\r\n _removeProperty(target, prop);\r\n }\r\n }\r\n\r\n if (clearTransforms) {\r\n _removeProperty(target, _transformProp);\r\n\r\n if (cache) {\r\n cache.svg && target.removeAttribute(\"transform\");\r\n style.scale = style.rotate = style.translate = \"none\";\r\n\r\n _parseTransform(target, 1); // force all the cached values back to \"normal\"/identity, otherwise if there's another tween that's already set to render transforms on this element, it could display the wrong values.\r\n\r\n\r\n cache.uncache = 1;\r\n\r\n _removeIndependentTransforms(style);\r\n }\r\n }\r\n }\r\n},\r\n // note: specialProps should return 1 if (and only if) they have a non-zero priority. It indicates we need to sort the linked list.\r\n_specialProps = {\r\n clearProps: function clearProps(plugin, target, property, endValue, tween) {\r\n if (tween.data !== \"isFromStart\") {\r\n var pt = plugin._pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);\r\n pt.u = endValue;\r\n pt.pr = -10;\r\n pt.tween = tween;\r\n\r\n plugin._props.push(property);\r\n\r\n return 1;\r\n }\r\n }\r\n /* className feature (about 0.4kb gzipped).\r\n , className(plugin, target, property, endValue, tween) {\r\n \tlet _renderClassName = (ratio, data) => {\r\n \t\t\tdata.css.render(ratio, data.css);\r\n \t\t\tif (!ratio || ratio === 1) {\r\n \t\t\t\tlet inline = data.rmv,\r\n \t\t\t\t\ttarget = data.t,\r\n \t\t\t\t\tp;\r\n \t\t\t\ttarget.setAttribute(\"class\", ratio ? data.e : data.b);\r\n \t\t\t\tfor (p in inline) {\r\n \t\t\t\t\t_removeProperty(target, p);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t},\r\n \t\t_getAllStyles = (target) => {\r\n \t\t\tlet styles = {},\r\n \t\t\t\tcomputed = getComputedStyle(target),\r\n \t\t\t\tp;\r\n \t\t\tfor (p in computed) {\r\n \t\t\t\tif (isNaN(p) && p !== \"cssText\" && p !== \"length\") {\r\n \t\t\t\t\tstyles[p] = computed[p];\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\t_setDefaults(styles, _parseTransform(target, 1));\r\n \t\t\treturn styles;\r\n \t\t},\r\n \t\tstartClassList = target.getAttribute(\"class\"),\r\n \t\tstyle = target.style,\r\n \t\tcssText = style.cssText,\r\n \t\tcache = target._gsap,\r\n \t\tclassPT = cache.classPT,\r\n \t\tinlineToRemoveAtEnd = {},\r\n \t\tdata = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== \"=\") ? endValue : startClassList.replace(new RegExp(\"(?:\\\\s|^)\" + endValue.substr(2) + \"(?![\\\\w-])\"), \"\") + ((endValue.charAt(0) === \"+\") ? \" \" + endValue.substr(2) : \"\")},\r\n \t\tchangingVars = {},\r\n \t\tstartVars = _getAllStyles(target),\r\n \t\ttransformRelated = /(transform|perspective)/i,\r\n \t\tendVars, p;\r\n \tif (classPT) {\r\n \t\tclassPT.r(1, classPT.d);\r\n \t\t_removeLinkedListItem(classPT.d.plugin, classPT, \"_pt\");\r\n \t}\r\n \ttarget.setAttribute(\"class\", data.e);\r\n \tendVars = _getAllStyles(target, true);\r\n \ttarget.setAttribute(\"class\", startClassList);\r\n \tfor (p in endVars) {\r\n \t\tif (endVars[p] !== startVars[p] && !transformRelated.test(p)) {\r\n \t\t\tchangingVars[p] = endVars[p];\r\n \t\t\tif (!style[p] && style[p] !== \"0\") {\r\n \t\t\t\tinlineToRemoveAtEnd[p] = 1;\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n \tcache.classPT = plugin._pt = new PropTween(plugin._pt, target, \"className\", 0, 0, _renderClassName, data, 0, -11);\r\n \tif (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://gsap.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/.\r\n \t\tstyle.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).\r\n \t}\r\n \t_parseTransform(target, true); //to clear the caching of transforms\r\n \tdata.css = new gsap.plugins.css();\r\n \tdata.css.init(target, changingVars, tween);\r\n \tplugin._props.push(...data.css._props);\r\n \treturn 1;\r\n }\r\n */\r\n\r\n},\r\n\r\n/*\r\n * --------------------------------------------------------------------------------------\r\n * TRANSFORMS\r\n * --------------------------------------------------------------------------------------\r\n */\r\n_identity2DMatrix = [1, 0, 0, 1, 0, 0],\r\n _rotationalProperties = {},\r\n _isNullTransform = function _isNullTransform(value) {\r\n return value === \"matrix(1, 0, 0, 1, 0, 0)\" || value === \"none\" || !value;\r\n},\r\n _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray(target) {\r\n var matrixString = _getComputedProperty(target, _transformProp);\r\n\r\n return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._numExp).map(_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round);\r\n},\r\n _getMatrix = function _getMatrix(target, force2D) {\r\n var cache = target._gsap || (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._getCache)(target),\r\n style = target.style,\r\n matrix = _getComputedTransformMatrixAsArray(target),\r\n parent,\r\n nextSibling,\r\n temp,\r\n addedToDOM;\r\n\r\n if (cache.svg && target.getAttribute(\"transform\")) {\r\n temp = target.transform.baseVal.consolidate().matrix; //ensures that even complex values like \"translate(50,60) rotate(135,0,0)\" are parsed because it mashes it into a matrix.\r\n\r\n matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];\r\n return matrix.join(\",\") === \"1,0,0,1,0,0\" ? _identity2DMatrix : matrix;\r\n } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {\r\n //note: if offsetParent is null, that means the element isn't in the normal document flow, like if it has display:none or one of its ancestors has display:none). Firefox returns null for getComputedStyle() if the element is in an iframe that has display:none. https://bugzilla.mozilla.org/show_bug.cgi?id=548397\r\n //browsers don't report transforms accurately unless the element is in the DOM and has a display value that's not \"none\". Firefox and Microsoft browsers have a partial bug where they'll report transforms even if display:none BUT not any percentage-based values like translate(-50%, 8px) will be reported as if it's translate(0, 8px).\r\n temp = style.display;\r\n style.display = \"block\";\r\n parent = target.parentNode;\r\n\r\n if (!parent || !target.offsetParent && !target.getBoundingClientRect().width) {\r\n // note: in 3.3.0 we switched target.offsetParent to _doc.body.contains(target) to avoid [sometimes unnecessary] MutationObserver calls but that wasn't adequate because there are edge cases where nested position: fixed elements need to get reparented to accurately sense transforms. See https://github.com/greensock/GSAP/issues/388 and https://github.com/greensock/GSAP/issues/375. Note: position: fixed elements report a null offsetParent but they could also be invisible because they're in an ancestor with display: none, so we check getBoundingClientRect(). We only want to alter the DOM if we absolutely have to because it can cause iframe content to reload, like a Vimeo video.\r\n addedToDOM = 1; //flag\r\n\r\n nextSibling = target.nextElementSibling;\r\n\r\n _docElement.appendChild(target); //we must add it to the DOM in order to get values properly\r\n\r\n }\r\n\r\n matrix = _getComputedTransformMatrixAsArray(target);\r\n temp ? style.display = temp : _removeProperty(target, \"display\");\r\n\r\n if (addedToDOM) {\r\n nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);\r\n }\r\n }\r\n\r\n return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;\r\n},\r\n _applySVGOrigin = function _applySVGOrigin(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {\r\n var cache = target._gsap,\r\n matrix = matrixArray || _getMatrix(target, true),\r\n xOriginOld = cache.xOrigin || 0,\r\n yOriginOld = cache.yOrigin || 0,\r\n xOffsetOld = cache.xOffset || 0,\r\n yOffsetOld = cache.yOffset || 0,\r\n a = matrix[0],\r\n b = matrix[1],\r\n c = matrix[2],\r\n d = matrix[3],\r\n tx = matrix[4],\r\n ty = matrix[5],\r\n originSplit = origin.split(\" \"),\r\n xOrigin = parseFloat(originSplit[0]) || 0,\r\n yOrigin = parseFloat(originSplit[1]) || 0,\r\n bounds,\r\n determinant,\r\n x,\r\n y;\r\n\r\n if (!originIsAbsolute) {\r\n bounds = _getBBox(target);\r\n xOrigin = bounds.x + (~originSplit[0].indexOf(\"%\") ? xOrigin / 100 * bounds.width : xOrigin);\r\n yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf(\"%\") ? yOrigin / 100 * bounds.height : yOrigin); // if (!(\"xOrigin\" in cache) && (xOrigin || yOrigin)) { // added in 3.12.3, reverted in 3.12.4; requires more exploration\r\n // \txOrigin -= bounds.x;\r\n // \tyOrigin -= bounds.y;\r\n // }\r\n } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) {\r\n //if it's zero (like if scaleX and scaleY are zero), skip it to avoid errors with dividing by zero.\r\n x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant;\r\n y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant;\r\n xOrigin = x;\r\n yOrigin = y; // theory: we only had to do this for smoothing and it assumes that the previous one was not originIsAbsolute.\r\n }\r\n\r\n if (smooth || smooth !== false && cache.smooth) {\r\n tx = xOrigin - xOriginOld;\r\n ty = yOrigin - yOriginOld;\r\n cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;\r\n cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;\r\n } else {\r\n cache.xOffset = cache.yOffset = 0;\r\n }\r\n\r\n cache.xOrigin = xOrigin;\r\n cache.yOrigin = yOrigin;\r\n cache.smooth = !!smooth;\r\n cache.origin = origin;\r\n cache.originIsAbsolute = !!originIsAbsolute;\r\n target.style[_transformOriginProp] = \"0px 0px\"; //otherwise, if someone sets an origin via CSS, it will likely interfere with the SVG transform attribute ones (because remember, we're baking the origin into the matrix() value).\r\n\r\n if (pluginToAddPropTweensTo) {\r\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOrigin\", xOriginOld, xOrigin);\r\n\r\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOrigin\", yOriginOld, yOrigin);\r\n\r\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOffset\", xOffsetOld, cache.xOffset);\r\n\r\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOffset\", yOffsetOld, cache.yOffset);\r\n }\r\n\r\n target.setAttribute(\"data-svg-origin\", xOrigin + \" \" + yOrigin);\r\n},\r\n _parseTransform = function _parseTransform(target, uncache) {\r\n var cache = target._gsap || new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.GSCache(target);\r\n\r\n if (\"x\" in cache && !uncache && !cache.uncache) {\r\n return cache;\r\n }\r\n\r\n var style = target.style,\r\n invertedScaleX = cache.scaleX < 0,\r\n px = \"px\",\r\n deg = \"deg\",\r\n cs = getComputedStyle(target),\r\n origin = _getComputedProperty(target, _transformOriginProp) || \"0\",\r\n x,\r\n y,\r\n z,\r\n scaleX,\r\n scaleY,\r\n rotation,\r\n rotationX,\r\n rotationY,\r\n skewX,\r\n skewY,\r\n perspective,\r\n xOrigin,\r\n yOrigin,\r\n matrix,\r\n angle,\r\n cos,\r\n sin,\r\n a,\r\n b,\r\n c,\r\n d,\r\n a12,\r\n a22,\r\n t1,\r\n t2,\r\n t3,\r\n a13,\r\n a23,\r\n a33,\r\n a42,\r\n a43,\r\n a32;\r\n x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;\r\n scaleX = scaleY = 1;\r\n cache.svg = !!(target.getCTM && _isSVG(target));\r\n\r\n if (cs.translate) {\r\n // accommodate independent transforms by combining them into normal ones.\r\n if (cs.translate !== \"none\" || cs.scale !== \"none\" || cs.rotate !== \"none\") {\r\n style[_transformProp] = (cs.translate !== \"none\" ? \"translate3d(\" + (cs.translate + \" 0 0\").split(\" \").slice(0, 3).join(\", \") + \") \" : \"\") + (cs.rotate !== \"none\" ? \"rotate(\" + cs.rotate + \") \" : \"\") + (cs.scale !== \"none\" ? \"scale(\" + cs.scale.split(\" \").join(\",\") + \") \" : \"\") + (cs[_transformProp] !== \"none\" ? cs[_transformProp] : \"\");\r\n }\r\n\r\n style.scale = style.rotate = style.translate = \"none\";\r\n }\r\n\r\n matrix = _getMatrix(target, cache.svg);\r\n\r\n if (cache.svg) {\r\n if (cache.uncache) {\r\n // if cache.uncache is true (and maybe if origin is 0,0), we need to set element.style.transformOrigin = (cache.xOrigin - bbox.x) + \"px \" + (cache.yOrigin - bbox.y) + \"px\". Previously we let the data-svg-origin stay instead, but when introducing revert(), it complicated things.\r\n t2 = target.getBBox();\r\n origin = cache.xOrigin - t2.x + \"px \" + (cache.yOrigin - t2.y) + \"px\";\r\n t1 = \"\";\r\n } else {\r\n t1 = !uncache && target.getAttribute(\"data-svg-origin\"); // Remember, to work around browser inconsistencies we always force SVG elements' transformOrigin to 0,0 and offset the translation accordingly.\r\n }\r\n\r\n _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);\r\n }\r\n\r\n xOrigin = cache.xOrigin || 0;\r\n yOrigin = cache.yOrigin || 0;\r\n\r\n if (matrix !== _identity2DMatrix) {\r\n a = matrix[0]; //a11\r\n\r\n b = matrix[1]; //a21\r\n\r\n c = matrix[2]; //a31\r\n\r\n d = matrix[3]; //a41\r\n\r\n x = a12 = matrix[4];\r\n y = a22 = matrix[5]; //2D matrix\r\n\r\n if (matrix.length === 6) {\r\n scaleX = Math.sqrt(a * a + b * b);\r\n scaleY = Math.sqrt(d * d + c * c);\r\n rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0; //note: if scaleX is 0, we cannot accurately measure rotation. Same for skewX with a scaleY of 0. Therefore, we default to the previously recorded value (or zero if that doesn't exist).\r\n\r\n skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0;\r\n skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));\r\n\r\n if (cache.svg) {\r\n x -= xOrigin - (xOrigin * a + yOrigin * c);\r\n y -= yOrigin - (xOrigin * b + yOrigin * d);\r\n } //3D matrix\r\n\r\n } else {\r\n a32 = matrix[6];\r\n a42 = matrix[7];\r\n a13 = matrix[8];\r\n a23 = matrix[9];\r\n a33 = matrix[10];\r\n a43 = matrix[11];\r\n x = matrix[12];\r\n y = matrix[13];\r\n z = matrix[14];\r\n angle = _atan2(a32, a33);\r\n rotationX = angle * _RAD2DEG; //rotationX\r\n\r\n if (angle) {\r\n cos = Math.cos(-angle);\r\n sin = Math.sin(-angle);\r\n t1 = a12 * cos + a13 * sin;\r\n t2 = a22 * cos + a23 * sin;\r\n t3 = a32 * cos + a33 * sin;\r\n a13 = a12 * -sin + a13 * cos;\r\n a23 = a22 * -sin + a23 * cos;\r\n a33 = a32 * -sin + a33 * cos;\r\n a43 = a42 * -sin + a43 * cos;\r\n a12 = t1;\r\n a22 = t2;\r\n a32 = t3;\r\n } //rotationY\r\n\r\n\r\n angle = _atan2(-c, a33);\r\n rotationY = angle * _RAD2DEG;\r\n\r\n if (angle) {\r\n cos = Math.cos(-angle);\r\n sin = Math.sin(-angle);\r\n t1 = a * cos - a13 * sin;\r\n t2 = b * cos - a23 * sin;\r\n t3 = c * cos - a33 * sin;\r\n a43 = d * sin + a43 * cos;\r\n a = t1;\r\n b = t2;\r\n c = t3;\r\n } //rotationZ\r\n\r\n\r\n angle = _atan2(b, a);\r\n rotation = angle * _RAD2DEG;\r\n\r\n if (angle) {\r\n cos = Math.cos(angle);\r\n sin = Math.sin(angle);\r\n t1 = a * cos + b * sin;\r\n t2 = a12 * cos + a22 * sin;\r\n b = b * cos - a * sin;\r\n a22 = a22 * cos - a12 * sin;\r\n a = t1;\r\n a12 = t2;\r\n }\r\n\r\n if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {\r\n //when rotationY is set, it will often be parsed as 180 degrees different than it should be, and rotationX and rotation both being 180 (it looks the same), so we adjust for that here.\r\n rotationX = rotation = 0;\r\n rotationY = 180 - rotationY;\r\n }\r\n\r\n scaleX = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(Math.sqrt(a * a + b * b + c * c));\r\n scaleY = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(Math.sqrt(a22 * a22 + a32 * a32));\r\n angle = _atan2(a12, a22);\r\n skewX = Math.abs(angle) > 0.0002 ? angle * _RAD2DEG : 0;\r\n perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;\r\n }\r\n\r\n if (cache.svg) {\r\n //sense if there are CSS transforms applied on an SVG element in which case we must overwrite them when rendering. The transform attribute is more reliable cross-browser, but we can't just remove the CSS ones because they may be applied in a CSS rule somewhere (not just inline).\r\n t1 = target.getAttribute(\"transform\");\r\n cache.forceCSS = target.setAttribute(\"transform\", \"\") || !_isNullTransform(_getComputedProperty(target, _transformProp));\r\n t1 && target.setAttribute(\"transform\", t1);\r\n }\r\n }\r\n\r\n if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {\r\n if (invertedScaleX) {\r\n scaleX *= -1;\r\n skewX += rotation <= 0 ? 180 : -180;\r\n rotation += rotation <= 0 ? 180 : -180;\r\n } else {\r\n scaleY *= -1;\r\n skewX += skewX <= 0 ? 180 : -180;\r\n }\r\n }\r\n\r\n uncache = uncache || cache.uncache;\r\n cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;\r\n cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;\r\n cache.z = z + px;\r\n cache.scaleX = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(scaleX);\r\n cache.scaleY = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(scaleY);\r\n cache.rotation = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(rotation) + deg;\r\n cache.rotationX = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(rotationX) + deg;\r\n cache.rotationY = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(rotationY) + deg;\r\n cache.skewX = skewX + deg;\r\n cache.skewY = skewY + deg;\r\n cache.transformPerspective = perspective + px;\r\n\r\n if (cache.zOrigin = parseFloat(origin.split(\" \")[2]) || !uncache && cache.zOrigin || 0) {\r\n style[_transformOriginProp] = _firstTwoOnly(origin);\r\n }\r\n\r\n cache.xOffset = cache.yOffset = 0;\r\n cache.force3D = _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._config.force3D;\r\n cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;\r\n cache.uncache = 0;\r\n return cache;\r\n},\r\n _firstTwoOnly = function _firstTwoOnly(value) {\r\n return (value = value.split(\" \"))[0] + \" \" + value[1];\r\n},\r\n //for handling transformOrigin values, stripping out the 3rd dimension\r\n_addPxTranslate = function _addPxTranslate(target, start, value) {\r\n var unit = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(start);\r\n return (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(parseFloat(start) + parseFloat(_convertToUnit(target, \"x\", value + \"px\", unit))) + unit;\r\n},\r\n _renderNon3DTransforms = function _renderNon3DTransforms(ratio, cache) {\r\n cache.z = \"0px\";\r\n cache.rotationY = cache.rotationX = \"0deg\";\r\n cache.force3D = 0;\r\n\r\n _renderCSSTransforms(ratio, cache);\r\n},\r\n _zeroDeg = \"0deg\",\r\n _zeroPx = \"0px\",\r\n _endParenthesis = \") \",\r\n _renderCSSTransforms = function _renderCSSTransforms(ratio, cache) {\r\n var _ref = cache || this,\r\n xPercent = _ref.xPercent,\r\n yPercent = _ref.yPercent,\r\n x = _ref.x,\r\n y = _ref.y,\r\n z = _ref.z,\r\n rotation = _ref.rotation,\r\n rotationY = _ref.rotationY,\r\n rotationX = _ref.rotationX,\r\n skewX = _ref.skewX,\r\n skewY = _ref.skewY,\r\n scaleX = _ref.scaleX,\r\n scaleY = _ref.scaleY,\r\n transformPerspective = _ref.transformPerspective,\r\n force3D = _ref.force3D,\r\n target = _ref.target,\r\n zOrigin = _ref.zOrigin,\r\n transforms = \"\",\r\n use3D = force3D === \"auto\" && ratio && ratio !== 1 || force3D === true; // Safari has a bug that causes it not to render 3D transform-origin values properly, so we force the z origin to 0, record it in the cache, and then do the math here to offset the translate values accordingly (basically do the 3D transform-origin part manually)\r\n\r\n\r\n if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {\r\n var angle = parseFloat(rotationY) * _DEG2RAD,\r\n a13 = Math.sin(angle),\r\n a33 = Math.cos(angle),\r\n cos;\r\n\r\n angle = parseFloat(rotationX) * _DEG2RAD;\r\n cos = Math.cos(angle);\r\n x = _addPxTranslate(target, x, a13 * cos * -zOrigin);\r\n y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);\r\n z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);\r\n }\r\n\r\n if (transformPerspective !== _zeroPx) {\r\n transforms += \"perspective(\" + transformPerspective + _endParenthesis;\r\n }\r\n\r\n if (xPercent || yPercent) {\r\n transforms += \"translate(\" + xPercent + \"%, \" + yPercent + \"%) \";\r\n }\r\n\r\n if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {\r\n transforms += z !== _zeroPx || use3D ? \"translate3d(\" + x + \", \" + y + \", \" + z + \") \" : \"translate(\" + x + \", \" + y + _endParenthesis;\r\n }\r\n\r\n if (rotation !== _zeroDeg) {\r\n transforms += \"rotate(\" + rotation + _endParenthesis;\r\n }\r\n\r\n if (rotationY !== _zeroDeg) {\r\n transforms += \"rotateY(\" + rotationY + _endParenthesis;\r\n }\r\n\r\n if (rotationX !== _zeroDeg) {\r\n transforms += \"rotateX(\" + rotationX + _endParenthesis;\r\n }\r\n\r\n if (skewX !== _zeroDeg || skewY !== _zeroDeg) {\r\n transforms += \"skew(\" + skewX + \", \" + skewY + _endParenthesis;\r\n }\r\n\r\n if (scaleX !== 1 || scaleY !== 1) {\r\n transforms += \"scale(\" + scaleX + \", \" + scaleY + _endParenthesis;\r\n }\r\n\r\n target.style[_transformProp] = transforms || \"translate(0, 0)\";\r\n},\r\n _renderSVGTransforms = function _renderSVGTransforms(ratio, cache) {\r\n var _ref2 = cache || this,\r\n xPercent = _ref2.xPercent,\r\n yPercent = _ref2.yPercent,\r\n x = _ref2.x,\r\n y = _ref2.y,\r\n rotation = _ref2.rotation,\r\n skewX = _ref2.skewX,\r\n skewY = _ref2.skewY,\r\n scaleX = _ref2.scaleX,\r\n scaleY = _ref2.scaleY,\r\n target = _ref2.target,\r\n xOrigin = _ref2.xOrigin,\r\n yOrigin = _ref2.yOrigin,\r\n xOffset = _ref2.xOffset,\r\n yOffset = _ref2.yOffset,\r\n forceCSS = _ref2.forceCSS,\r\n tx = parseFloat(x),\r\n ty = parseFloat(y),\r\n a11,\r\n a21,\r\n a12,\r\n a22,\r\n temp;\r\n\r\n rotation = parseFloat(rotation);\r\n skewX = parseFloat(skewX);\r\n skewY = parseFloat(skewY);\r\n\r\n if (skewY) {\r\n //for performance reasons, we combine all skewing into the skewX and rotation values. Remember, a skewY of 10 degrees looks the same as a rotation of 10 degrees plus a skewX of 10 degrees.\r\n skewY = parseFloat(skewY);\r\n skewX += skewY;\r\n rotation += skewY;\r\n }\r\n\r\n if (rotation || skewX) {\r\n rotation *= _DEG2RAD;\r\n skewX *= _DEG2RAD;\r\n a11 = Math.cos(rotation) * scaleX;\r\n a21 = Math.sin(rotation) * scaleX;\r\n a12 = Math.sin(rotation - skewX) * -scaleY;\r\n a22 = Math.cos(rotation - skewX) * scaleY;\r\n\r\n if (skewX) {\r\n skewY *= _DEG2RAD;\r\n temp = Math.tan(skewX - skewY);\r\n temp = Math.sqrt(1 + temp * temp);\r\n a12 *= temp;\r\n a22 *= temp;\r\n\r\n if (skewY) {\r\n temp = Math.tan(skewY);\r\n temp = Math.sqrt(1 + temp * temp);\r\n a11 *= temp;\r\n a21 *= temp;\r\n }\r\n }\r\n\r\n a11 = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(a11);\r\n a21 = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(a21);\r\n a12 = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(a12);\r\n a22 = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(a22);\r\n } else {\r\n a11 = scaleX;\r\n a22 = scaleY;\r\n a21 = a12 = 0;\r\n }\r\n\r\n if (tx && !~(x + \"\").indexOf(\"px\") || ty && !~(y + \"\").indexOf(\"px\")) {\r\n tx = _convertToUnit(target, \"x\", x, \"px\");\r\n ty = _convertToUnit(target, \"y\", y, \"px\");\r\n }\r\n\r\n if (xOrigin || yOrigin || xOffset || yOffset) {\r\n tx = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);\r\n ty = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);\r\n }\r\n\r\n if (xPercent || yPercent) {\r\n //The SVG spec doesn't support percentage-based translation in the \"transform\" attribute, so we merge it into the translation to simulate it.\r\n temp = target.getBBox();\r\n tx = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(tx + xPercent / 100 * temp.width);\r\n ty = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(ty + yPercent / 100 * temp.height);\r\n }\r\n\r\n temp = \"matrix(\" + a11 + \",\" + a21 + \",\" + a12 + \",\" + a22 + \",\" + tx + \",\" + ty + \")\";\r\n target.setAttribute(\"transform\", temp);\r\n forceCSS && (target.style[_transformProp] = temp); //some browsers prioritize CSS transforms over the transform attribute. When we sense that the user has CSS transforms applied, we must overwrite them this way (otherwise some browser simply won't render the transform attribute changes!)\r\n},\r\n _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue) {\r\n var cap = 360,\r\n isString = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._isString)(endValue),\r\n endNum = parseFloat(endValue) * (isString && ~endValue.indexOf(\"rad\") ? _RAD2DEG : 1),\r\n change = endNum - startNum,\r\n finalValue = startNum + change + \"deg\",\r\n direction,\r\n pt;\r\n\r\n if (isString) {\r\n direction = endValue.split(\"_\")[1];\r\n\r\n if (direction === \"short\") {\r\n change %= cap;\r\n\r\n if (change !== change % (cap / 2)) {\r\n change += change < 0 ? cap : -cap;\r\n }\r\n }\r\n\r\n if (direction === \"cw\" && change < 0) {\r\n change = (change + cap * _bigNum) % cap - ~~(change / cap) * cap;\r\n } else if (direction === \"ccw\" && change > 0) {\r\n change = (change - cap * _bigNum) % cap - ~~(change / cap) * cap;\r\n }\r\n }\r\n\r\n plugin._pt = pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);\r\n pt.e = finalValue;\r\n pt.u = \"deg\";\r\n\r\n plugin._props.push(property);\r\n\r\n return pt;\r\n},\r\n _assign = function _assign(target, source) {\r\n // Internet Explorer doesn't have Object.assign(), so we recreate it here.\r\n for (var p in source) {\r\n target[p] = source[p];\r\n }\r\n\r\n return target;\r\n},\r\n _addRawTransformPTs = function _addRawTransformPTs(plugin, transforms, target) {\r\n //for handling cases where someone passes in a whole transform string, like transform: \"scale(2, 3) rotate(20deg) translateY(30em)\"\r\n var startCache = _assign({}, target._gsap),\r\n exclude = \"perspective,force3D,transformOrigin,svgOrigin\",\r\n style = target.style,\r\n endCache,\r\n p,\r\n startValue,\r\n endValue,\r\n startNum,\r\n endNum,\r\n startUnit,\r\n endUnit;\r\n\r\n if (startCache.svg) {\r\n startValue = target.getAttribute(\"transform\");\r\n target.setAttribute(\"transform\", \"\");\r\n style[_transformProp] = transforms;\r\n endCache = _parseTransform(target, 1);\r\n\r\n _removeProperty(target, _transformProp);\r\n\r\n target.setAttribute(\"transform\", startValue);\r\n } else {\r\n startValue = getComputedStyle(target)[_transformProp];\r\n style[_transformProp] = transforms;\r\n endCache = _parseTransform(target, 1);\r\n style[_transformProp] = startValue;\r\n }\r\n\r\n for (p in _transformProps) {\r\n startValue = startCache[p];\r\n endValue = endCache[p];\r\n\r\n if (startValue !== endValue && exclude.indexOf(p) < 0) {\r\n //tweening to no perspective gives very unintuitive results - just keep the same perspective in that case.\r\n startUnit = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(startValue);\r\n endUnit = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(endValue);\r\n startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);\r\n endNum = parseFloat(endValue);\r\n plugin._pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);\r\n plugin._pt.u = endUnit || 0;\r\n\r\n plugin._props.push(p);\r\n }\r\n }\r\n\r\n _assign(endCache, startCache);\r\n}; // handle splitting apart padding, margin, borderWidth, and borderRadius into their 4 components. Firefox, for example, won't report borderRadius correctly - it will only do borderTopLeftRadius and the other corners. We also want to handle paddingTop, marginLeft, borderRightWidth, etc.\r\n\r\n\r\n(0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._forEachName)(\"padding,margin,Width,Radius\", function (name, index) {\r\n var t = \"Top\",\r\n r = \"Right\",\r\n b = \"Bottom\",\r\n l = \"Left\",\r\n props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function (side) {\r\n return index < 2 ? name + side : \"border\" + side + name;\r\n });\r\n\r\n _specialProps[index > 1 ? \"border\" + name : name] = function (plugin, target, property, endValue, tween) {\r\n var a, vars;\r\n\r\n if (arguments.length < 4) {\r\n // getter, passed target, property, and unit (from _get())\r\n a = props.map(function (prop) {\r\n return _get(plugin, prop, property);\r\n });\r\n vars = a.join(\" \");\r\n return vars.split(a[0]).length === 5 ? a[0] : vars;\r\n }\r\n\r\n a = (endValue + \"\").split(\" \");\r\n vars = {};\r\n props.forEach(function (prop, i) {\r\n return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0];\r\n });\r\n plugin.init(target, vars, tween);\r\n };\r\n});\r\n\r\nvar CSSPlugin = {\r\n name: \"css\",\r\n register: _initCore,\r\n targetTest: function targetTest(target) {\r\n return target.style && target.nodeType;\r\n },\r\n init: function init(target, vars, tween, index, targets) {\r\n var props = this._props,\r\n style = target.style,\r\n startAt = tween.vars.startAt,\r\n startValue,\r\n endValue,\r\n endNum,\r\n startNum,\r\n type,\r\n specialProp,\r\n p,\r\n startUnit,\r\n endUnit,\r\n relative,\r\n isTransformRelated,\r\n transformPropTween,\r\n cache,\r\n smooth,\r\n hasPriority,\r\n inlineProps;\r\n _pluginInitted || _initCore(); // we may call init() multiple times on the same plugin instance, like when adding special properties, so make sure we don't overwrite the revert data or inlineProps\r\n\r\n this.styles = this.styles || _getStyleSaver(target);\r\n inlineProps = this.styles.props;\r\n this.tween = tween;\r\n\r\n for (p in vars) {\r\n if (p === \"autoRound\") {\r\n continue;\r\n }\r\n\r\n endValue = vars[p];\r\n\r\n if (_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._plugins[p] && (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._checkPlugin)(p, vars, tween, index, target, targets)) {\r\n // plugins\r\n continue;\r\n }\r\n\r\n type = typeof endValue;\r\n specialProp = _specialProps[p];\r\n\r\n if (type === \"function\") {\r\n endValue = endValue.call(tween, index, target, targets);\r\n type = typeof endValue;\r\n }\r\n\r\n if (type === \"string\" && ~endValue.indexOf(\"random(\")) {\r\n endValue = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._replaceRandom)(endValue);\r\n }\r\n\r\n if (specialProp) {\r\n specialProp(this, target, p, endValue, tween) && (hasPriority = 1);\r\n } else if (p.substr(0, 2) === \"--\") {\r\n //CSS variable\r\n startValue = (getComputedStyle(target).getPropertyValue(p) + \"\").trim();\r\n endValue += \"\";\r\n _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._colorExp.lastIndex = 0;\r\n\r\n if (!_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._colorExp.test(startValue)) {\r\n // colors don't have units\r\n startUnit = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(startValue);\r\n endUnit = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(endValue);\r\n }\r\n\r\n endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);\r\n this.add(style, \"setProperty\", startValue, endValue, index, targets, 0, 0, p);\r\n props.push(p);\r\n inlineProps.push(p, 0, style[p]);\r\n } else if (type !== \"undefined\") {\r\n if (startAt && p in startAt) {\r\n // in case someone hard-codes a complex value as the start, like top: \"calc(2vh / 2)\". Without this, it'd use the computed value (always in px)\r\n startValue = typeof startAt[p] === \"function\" ? startAt[p].call(tween, index, target, targets) : startAt[p];\r\n (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._isString)(startValue) && ~startValue.indexOf(\"random(\") && (startValue = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._replaceRandom)(startValue));\r\n (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(startValue + \"\") || startValue === \"auto\" || (startValue += _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._config.units[p] || (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(_get(target, p)) || \"\"); // for cases when someone passes in a unitless value like {x: 100}; if we try setting translate(100, 0px) it won't work.\r\n\r\n (startValue + \"\").charAt(1) === \"=\" && (startValue = _get(target, p)); // can't work with relative values\r\n } else {\r\n startValue = _get(target, p);\r\n }\r\n\r\n startNum = parseFloat(startValue);\r\n relative = type === \"string\" && endValue.charAt(1) === \"=\" && endValue.substr(0, 2);\r\n relative && (endValue = endValue.substr(2));\r\n endNum = parseFloat(endValue);\r\n\r\n if (p in _propertyAliases) {\r\n if (p === \"autoAlpha\") {\r\n //special case where we control the visibility along with opacity. We still allow the opacity value to pass through and get tweened.\r\n if (startNum === 1 && _get(target, \"visibility\") === \"hidden\" && endNum) {\r\n //if visibility is initially set to \"hidden\", we should interpret that as intent to make opacity 0 (a convenience)\r\n startNum = 0;\r\n }\r\n\r\n inlineProps.push(\"visibility\", 0, style.visibility);\r\n\r\n _addNonTweeningPT(this, style, \"visibility\", startNum ? \"inherit\" : \"hidden\", endNum ? \"inherit\" : \"hidden\", !endNum);\r\n }\r\n\r\n if (p !== \"scale\" && p !== \"transform\") {\r\n p = _propertyAliases[p];\r\n ~p.indexOf(\",\") && (p = p.split(\",\")[0]);\r\n }\r\n }\r\n\r\n isTransformRelated = p in _transformProps; //--- TRANSFORM-RELATED ---\r\n\r\n if (isTransformRelated) {\r\n this.styles.save(p);\r\n\r\n if (type === \"string\" && endValue.substring(0, 6) === \"var(--\") {\r\n endValue = _getComputedProperty(target, endValue.substring(4, endValue.indexOf(\")\")));\r\n endNum = parseFloat(endValue);\r\n }\r\n\r\n if (!transformPropTween) {\r\n cache = target._gsap;\r\n cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); // if, for example, gsap.set(... {transform:\"translateX(50vw)\"}), the _get() call doesn't parse the transform, thus cache.renderTransform won't be set yet so force the parsing of the transform here.\r\n\r\n smooth = vars.smoothOrigin !== false && cache.smooth;\r\n transformPropTween = this._pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); //the first time through, create the rendering PropTween so that it runs LAST (in the linked list, we keep adding to the beginning)\r\n\r\n transformPropTween.dep = 1; //flag it as dependent so that if things get killed/overwritten and this is the only PropTween left, we can safely kill the whole tween.\r\n }\r\n\r\n if (p === \"scale\") {\r\n this._pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(this._pt, cache, \"scaleY\", cache.scaleY, (relative ? (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._parseRelative)(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp);\r\n this._pt.u = 0;\r\n props.push(\"scaleY\", p);\r\n p += \"X\";\r\n } else if (p === \"transformOrigin\") {\r\n inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]);\r\n endValue = _convertKeywordsToPercentages(endValue); //in case something like \"left top\" or \"bottom right\" is passed in. Convert to percentages.\r\n\r\n if (cache.svg) {\r\n _applySVGOrigin(target, endValue, 0, smooth, 0, this);\r\n } else {\r\n endUnit = parseFloat(endValue.split(\" \")[2]) || 0; //handle the zOrigin separately!\r\n\r\n endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, \"zOrigin\", cache.zOrigin, endUnit);\r\n\r\n _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));\r\n }\r\n\r\n continue;\r\n } else if (p === \"svgOrigin\") {\r\n _applySVGOrigin(target, endValue, 1, smooth, 0, this);\r\n\r\n continue;\r\n } else if (p in _rotationalProperties) {\r\n _addRotationalPropTween(this, cache, p, startNum, relative ? (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._parseRelative)(startNum, relative + endValue) : endValue);\r\n\r\n continue;\r\n } else if (p === \"smoothOrigin\") {\r\n _addNonTweeningPT(this, cache, \"smooth\", cache.smooth, endValue);\r\n\r\n continue;\r\n } else if (p === \"force3D\") {\r\n cache[p] = endValue;\r\n continue;\r\n } else if (p === \"transform\") {\r\n _addRawTransformPTs(this, endValue, target);\r\n\r\n continue;\r\n }\r\n } else if (!(p in style)) {\r\n p = _checkPropPrefix(p) || p;\r\n }\r\n\r\n if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) {\r\n startUnit = (startValue + \"\").substr((startNum + \"\").length);\r\n endNum || (endNum = 0); // protect against NaN\r\n\r\n endUnit = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(endValue) || (p in _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._config.units ? _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._config.units[p] : startUnit);\r\n startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));\r\n this._pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._parseRelative)(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === \"px\" || p === \"zIndex\") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);\r\n this._pt.u = endUnit || 0;\r\n\r\n if (startUnit !== endUnit && endUnit !== \"%\") {\r\n //when the tween goes all the way back to the beginning, we need to revert it to the OLD/ORIGINAL value (with those units). We record that as a \"b\" (beginning) property and point to a render method that handles that. (performance optimization)\r\n this._pt.b = startValue;\r\n this._pt.r = _renderCSSPropWithBeginning;\r\n }\r\n } else if (!(p in style)) {\r\n if (p in target) {\r\n //maybe it's not a style - it could be a property added directly to an element in which case we'll try to animate that.\r\n this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets);\r\n } else if (p !== \"parseTransform\") {\r\n (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._missingPlugin)(p, endValue);\r\n\r\n continue;\r\n }\r\n } else {\r\n _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue);\r\n }\r\n\r\n isTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : typeof target[p] === \"function\" ? inlineProps.push(p, 2, target[p]()) : inlineProps.push(p, 1, startValue || target[p]));\r\n props.push(p);\r\n }\r\n }\r\n\r\n hasPriority && (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._sortPropTweensByPriority)(this);\r\n },\r\n render: function render(ratio, data) {\r\n if (data.tween._time || !_reverting()) {\r\n var pt = data._pt;\r\n\r\n while (pt) {\r\n pt.r(ratio, pt.d);\r\n pt = pt._next;\r\n }\r\n } else {\r\n data.styles.revert();\r\n }\r\n },\r\n get: _get,\r\n aliases: _propertyAliases,\r\n getSetter: function getSetter(target, property, plugin) {\r\n //returns a setter function that accepts target, property, value and applies it accordingly. Remember, properties like \"x\" aren't as simple as target.style.property = value because they've got to be applied to a proxy object and then merged into a transform string in a renderer.\r\n var p = _propertyAliases[property];\r\n p && p.indexOf(\",\") < 0 && (property = p);\r\n return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, \"x\")) ? plugin && _recentSetterPlugin === plugin ? property === \"scale\" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === \"scale\" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !(0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._isUndefined)(target.style[property]) ? _setterCSSStyle : ~property.indexOf(\"-\") ? _setterCSSProp : (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._getSetter)(target, property);\r\n },\r\n core: {\r\n _removeProperty: _removeProperty,\r\n _getMatrix: _getMatrix\r\n }\r\n};\r\n_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.gsap.utils.checkPrefix = _checkPropPrefix;\r\n_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.gsap.core.getStyleSaver = _getStyleSaver;\r\n\r\n(function (positionAndScale, rotation, others, aliases) {\r\n var all = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._forEachName)(positionAndScale + \",\" + rotation + \",\" + others, function (name) {\r\n _transformProps[name] = 1;\r\n });\r\n\r\n (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._forEachName)(rotation, function (name) {\r\n _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._config.units[name] = \"deg\";\r\n _rotationalProperties[name] = 1;\r\n });\r\n\r\n _propertyAliases[all[13]] = positionAndScale + \",\" + rotation;\r\n\r\n (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._forEachName)(aliases, function (name) {\r\n var split = name.split(\":\");\r\n _propertyAliases[split[1]] = all[split[0]];\r\n });\r\n})(\"x,y,z,scale,scaleX,scaleY,xPercent,yPercent\", \"rotation,rotationX,rotationY,skewX,skewY\", \"transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective\", \"0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY\");\r\n\r\n(0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._forEachName)(\"x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective\", function (name) {\r\n _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._config.units[name] = \"px\";\r\n});\r\n\r\n_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.gsap.registerPlugin(CSSPlugin);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9nc2FwL0NTU1BsdWdpbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUV3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyw2RUFBNkU7QUFDcEY7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsa0JBQWtCO0FBQ2hDO0FBQ0E7QUFD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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixrREFBTztBQUN6QjtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsYUFBYSxzREFBTztBQUNwQixTQUFTLHFEQUFNO0FBQ2YsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhFQUE4RTtBQUM5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUscURBQU07QUFDaEIsVUFBVSxxREFBTTtBQUNoQixVQUFVLHFEQUFNO0FBQ2hCLFVBQVUscURBQU07QUFDaEIsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLHFEQUFNO0FBQ2YsU0FBUyxxREFBTTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLHFEQUFNO0FBQ2YsU0FBUyxxREFBTTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFEO0FBQ3JELENBQUM7QUFDRDtBQUNBO0FBQ0EsaUJBQWlCLHdEQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLG9EQUFTO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLHNEQUFPO0FBQ3pCLGdCQUFnQixzREFBTztBQUN2QjtBQUNBO0FBQ0EsdUJBQXVCLG9EQUFTO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSwyREFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLG1EQUFRLE9BQU8sMkRBQVk7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsNkRBQWM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsUUFBUSxvREFBUztBQUNqQjtBQUNBLGFBQWEsb0RBQVM7QUFDdEI7QUFDQSxzQkFBc0Isc0RBQU87QUFDN0Isb0JBQW9CLHNEQUFPO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxVQUFVLHdEQUFTLGdFQUFnRSw2REFBYztBQUNqRyxVQUFVLHNEQUFPLDZEQUE2RCxrREFBTyxhQUFhLHNEQUFPLDBCQUEwQiwyREFBMkQsU0FBUztBQUN2TTtBQUNBLGlGQUFpRjtBQUNqRixVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQW1EO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyR0FBMkcsa0NBQWtDLDZCQUE2QjtBQUMxSztBQUNBO0FBQ0EsZ0RBQWdELG9EQUFTLDhFQUE4RTtBQUN2STtBQUNBLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsb0RBQVMsc0RBQXNELDZEQUFjO0FBQ3hHO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBLGdFQUFnRTtBQUNoRTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2QsaUVBQWlFO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWix5RUFBeUUsNkRBQWM7QUFDdkY7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0Esb0JBQW9CLHNEQUFPLG9CQUFvQixrREFBTyxTQUFTLGtEQUFPO0FBQ3RFO0FBQ0EseUJBQXlCLG9EQUFTLHdFQUF3RSw2REFBYztBQUN4SDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1osWUFBWSw2REFBYztBQUMxQjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQix3RUFBeUI7QUFDNUMsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4UEFBOFAscUdBQXFHLDJEQUFZLHVGQUF1Rix5REFBVTtBQUNoZCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUFJO0FBQ0osK0NBQUk7QUFDSjtBQUNBO0FBQ0EsWUFBWSwyREFBWTtBQUN4QjtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsMkRBQVk7QUFDZCxJQUFJLGtEQUFPO0FBQ1g7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsRUFBRSwyREFBWTtBQUNkO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsQ0FBQztBQUNEO0FBQ0EsMkRBQVk7QUFDWixFQUFFLGtEQUFPO0FBQ1QsQ0FBQztBQUNEO0FBQ0EsK0NBQUkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2dzYXAvQ1NTUGx1Z2luLmpzPzgxZWQiXSwic291cmNlc0NvbnRlbnQiOlsiLyohXHJcbiAqIENTU1BsdWdpbiAzLjEzLjBcclxuICogaHR0cHM6Ly9nc2FwLmNvbVxyXG4gKlxyXG4gKiBDb3B5cmlnaHQgMjAwOC0yMDI1LCBHcmVlblNvY2suIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIFN1YmplY3QgdG8gdGhlIHRlcm1zIGF0IGh0dHBzOi8vZ3NhcC5jb20vc3RhbmRhcmQtbGljZW5zZVxyXG4gKiBAYXV0aG9yOiBKYWNrIERveWxlLCBqYWNrQGdyZWVuc29jay5jb21cclxuKi9cclxuXHJcbi8qIGVzbGludC1kaXNhYmxlICovXHJcbmltcG9ydCB7IGdzYXAsIF9nZXRQcm9wZXJ0eSwgX251bUV4cCwgX251bVdpdGhVbml0RXhwLCBnZXRVbml0LCBfaXNTdHJpbmcsIF9pc1VuZGVmaW5lZCwgX3JlbmRlckNvbXBsZXhTdHJpbmcsIF9yZWxFeHAsIF9mb3JFYWNoTmFtZSwgX3NvcnRQcm9wVHdlZW5zQnlQcmlvcml0eSwgX2NvbG9yU3RyaW5nRmlsdGVyLCBfY2hlY2tQbHVnaW4sIF9yZXBsYWNlUmFuZG9tLCBfcGx1Z2lucywgR1NDYWNoZSwgUHJvcFR3ZWVuLCBfY29uZmlnLCBfdGlja2VyLCBfcm91bmQsIF9taXNzaW5nUGx1Z2luLCBfZ2V0U2V0dGVyLCBfZ2V0Q2FjaGUsIF9jb2xvckV4cCwgX3BhcnNlUmVsYXRpdmUsIF9zZXREZWZhdWx0cywgX3JlbW92ZUxpbmtlZExpc3RJdGVtIC8vZm9yIHRoZSBjb21tZW50ZWQtb3V0IGNsYXNzTmFtZSBmZWF0dXJlLlxyXG59IGZyb20gXCIuL2dzYXAtY29yZS5qc1wiO1xyXG5cclxudmFyIF93aW4sXHJcbiAgICBfZG9jLFxyXG4gICAgX2RvY0VsZW1lbnQsXHJcbiAgICBfcGx1Z2luSW5pdHRlZCxcclxuICAgIF90ZW1wRGl2LFxyXG4gICAgX3RlbXBEaXZTdHlsZXIsXHJcbiAgICBfcmVjZW50U2V0dGVyUGx1Z2luLFxyXG4gICAgX3JldmVydGluZyxcclxuICAgIF93aW5kb3dFeGlzdHMgPSBmdW5jdGlvbiBfd2luZG93RXhpc3RzKCkge1xyXG4gIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiO1xyXG59LFxyXG4gICAgX3RyYW5zZm9ybVByb3BzID0ge30sXHJcbiAgICBfUkFEMkRFRyA9IDE4MCAvIE1hdGguUEksXHJcbiAgICBfREVHMlJBRCA9IE1hdGguUEkgLyAxODAsXHJcbiAgICBfYXRhbjIgPSBNYXRoLmF0YW4yLFxyXG4gICAgX2JpZ051bSA9IDFlOCxcclxuICAgIF9jYXBzRXhwID0gLyhbQS1aXSkvZyxcclxuICAgIF9ob3Jpem9udGFsRXhwID0gLyhsZWZ0fHJpZ2h0fHdpZHRofG1hcmdpbnxwYWRkaW5nfHgpL2ksXHJcbiAgICBfY29tcGxleEV4cCA9IC9bXFxzLFxcKF1cXFMvLFxyXG4gICAgX3Byb3BlcnR5QWxpYXNlcyA9IHtcclxuICBhdXRvQWxwaGE6IFwib3BhY2l0eSx2aXNpYmlsaXR5XCIsXHJcbiAgc2NhbGU6IFwic2NhbGVYLHNjYWxlWVwiLFxyXG4gIGFscGhhOiBcIm9wYWNpdHlcIlxyXG59LFxyXG4gICAgX3JlbmRlckNTU1Byb3AgPSBmdW5jdGlvbiBfcmVuZGVyQ1NTUHJvcChyYXRpbywgZGF0YSkge1xyXG4gIHJldHVybiBkYXRhLnNldChkYXRhLnQsIGRhdGEucCwgTWF0aC5yb3VuZCgoZGF0YS5zICsgZGF0YS5jICogcmF0aW8pICogMTAwMDApIC8gMTAwMDAgKyBkYXRhLnUsIGRhdGEpO1xyXG59LFxyXG4gICAgX3JlbmRlclByb3BXaXRoRW5kID0gZnVuY3Rpb24gX3JlbmRlclByb3BXaXRoRW5kKHJhdGlvLCBkYXRhKSB7XHJcbiAgcmV0dXJuIGRhdGEuc2V0KGRhdGEudCwgZGF0YS5wLCByYXRpbyA9PT0gMSA/IGRhdGEuZSA6IE1hdGgucm91bmQoKGRhdGEucyArIGRhdGEuYyAqIHJhdGlvKSAqIDEwMDAwKSAvIDEwMDAwICsgZGF0YS51LCBkYXRhKTtcclxufSxcclxuICAgIF9yZW5kZXJDU1NQcm9wV2l0aEJlZ2lubmluZyA9IGZ1bmN0aW9uIF9yZW5kZXJDU1NQcm9wV2l0aEJlZ2lubmluZyhyYXRpbywgZGF0YSkge1xyXG4gIHJldHVybiBkYXRhLnNldChkYXRhLnQsIGRhdGEucCwgcmF0aW8gPyBNYXRoLnJvdW5kKChkYXRhLnMgKyBkYXRhLmMgKiByYXRpbykgKiAxMDAwMCkgLyAxMDAwMCArIGRhdGEudSA6IGRhdGEuYiwgZGF0YSk7XHJcbn0sXHJcbiAgICAvL2lmIHVuaXRzIGNoYW5nZSwgd2UgbmVlZCBhIHdheSB0byByZW5kZXIgdGhlIG9yaWdpbmFsIHVuaXQvdmFsdWUgd2hlbiB0aGUgdHdlZW4gZ29lcyBhbGwgdGhlIHdheSBiYWNrIHRvIHRoZSBiZWdpbm5pbmcgKHJhdGlvOjApXHJcbl9yZW5kZXJSb3VuZGVkQ1NTUHJvcCA9IGZ1bmN0aW9uIF9yZW5kZXJSb3VuZGVkQ1NTUHJvcChyYXRpbywgZGF0YSkge1xyXG4gIHZhciB2YWx1ZSA9IGRhdGEucyArIGRhdGEuYyAqIHJhdGlvO1xyXG4gIGRhdGEuc2V0KGRhdGEudCwgZGF0YS5wLCB+fih2YWx1ZSArICh2YWx1ZSA8IDAgPyAtLjUgOiAuNSkpICsgZGF0YS51LCBkYXRhKTtcclxufSxcclxuICAgIF9yZW5kZXJOb25Ud2VlbmluZ1ZhbHVlID0gZnVuY3Rpb24gX3JlbmRlck5vblR3ZWVuaW5nVmFsdWUocmF0aW8sIGRhdGEpIHtcclxuICByZXR1cm4gZGF0YS5zZXQoZGF0YS50LCBkYXRhLnAsIHJhdGlvID8gZGF0YS5lIDogZGF0YS5iLCBkYXRhKTtcclxufSxcclxuICAgIF9yZW5kZXJOb25Ud2VlbmluZ1ZhbHVlT25seUF0RW5kID0gZnVuY3Rpb24gX3JlbmRlck5vblR3ZWVuaW5nVmFsdWVPbmx5QXRFbmQocmF0aW8sIGRhdGEpIHtcclxuICByZXR1cm4gZGF0YS5zZXQoZGF0YS50LCBkYXRhLnAsIHJhdGlvICE9PSAxID8gZGF0YS5iIDogZGF0YS5lLCBkYXRhKTtcclxufSxcclxuICAgIF9zZXR0ZXJDU1NTdHlsZSA9IGZ1bmN0aW9uIF9zZXR0ZXJDU1NTdHlsZSh0YXJnZXQsIHByb3BlcnR5LCB2YWx1ZSkge1xyXG4gIHJldHVybiB0YXJnZXQuc3R5bGVbcHJvcGVydHldID0gdmFsdWU7XHJcbn0sXHJcbiAgICBfc2V0dGVyQ1NTUHJvcCA9IGZ1bmN0aW9uIF9zZXR0ZXJDU1NQcm9wKHRhcmdldCwgcHJvcGVydHksIHZhbHVlKSB7XHJcbiAgcmV0dXJuIHRhcmdldC5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpO1xyXG59LFxyXG4gICAgX3NldHRlclRyYW5zZm9ybSA9IGZ1bmN0aW9uIF9zZXR0ZXJUcmFuc2Zvcm0odGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUpIHtcclxuICByZXR1cm4gdGFyZ2V0Ll9nc2FwW3Byb3BlcnR5XSA9IHZhbHVlO1xyXG59LFxyXG4gICAgX3NldHRlclNjYWxlID0gZnVuY3Rpb24gX3NldHRlclNjYWxlKHRhcmdldCwgcHJvcGVydHksIHZhbHVlKSB7XHJcbiAgcmV0dXJuIHRhcmdldC5fZ3NhcC5zY2FsZVggPSB0YXJnZXQuX2dzYXAuc2NhbGVZID0gdmFsdWU7XHJcbn0sXHJcbiAgICBfc2V0dGVyU2NhbGVXaXRoUmVuZGVyID0gZnVuY3Rpb24gX3NldHRlclNjYWxlV2l0aFJlbmRlcih0YXJnZXQsIHByb3BlcnR5LCB2YWx1ZSwgZGF0YSwgcmF0aW8pIHtcclxuICB2YXIgY2FjaGUgPSB0YXJnZXQuX2dzYXA7XHJcbiAgY2FjaGUuc2NhbGVYID0gY2FjaGUuc2NhbGVZID0gdmFsdWU7XHJcbiAgY2FjaGUucmVuZGVyVHJhbnNmb3JtKHJhdGlvLCBjYWNoZSk7XHJcbn0sXHJcbiAgICBfc2V0dGVyVHJhbnNmb3JtV2l0aFJlbmRlciA9IGZ1bmN0aW9uIF9zZXR0ZXJUcmFuc2Zvcm1XaXRoUmVuZGVyKHRhcmdldCwgcHJvcGVydHksIHZhbHVlLCBkYXRhLCByYXRpbykge1xyXG4gIHZhciBjYWNoZSA9IHRhcmdldC5fZ3NhcDtcclxuICBjYWNoZVtwcm9wZXJ0eV0gPSB2YWx1ZTtcclxuICBjYWNoZS5yZW5kZXJUcmFuc2Zvcm0ocmF0aW8sIGNhY2hlKTtcclxufSxcclxuICAgIF90cmFuc2Zvcm1Qcm9wID0gXCJ0cmFuc2Zvcm1cIixcclxuICAgIF90cmFuc2Zvcm1PcmlnaW5Qcm9wID0gX3RyYW5zZm9ybVByb3AgKyBcIk9yaWdpblwiLFxyXG4gICAgX3NhdmVTdHlsZSA9IGZ1bmN0aW9uIF9zYXZlU3R5bGUocHJvcGVydHksIGlzTm90Q1NTKSB7XHJcbiAgdmFyIF90aGlzID0gdGhpcztcclxuXHJcbiAgdmFyIHRhcmdldCA9IHRoaXMudGFyZ2V0LFxyXG4gICAgICBzdHlsZSA9IHRhcmdldC5zdHlsZSxcclxuICAgICAgY2FjaGUgPSB0YXJnZXQuX2dzYXA7XHJcblxyXG4gIGlmIChwcm9wZXJ0eSBpbiBfdHJhbnNmb3JtUHJvcHMgJiYgc3R5bGUpIHtcclxuICAgIHRoaXMudGZtID0gdGhpcy50Zm0gfHwge307XHJcblxyXG4gICAgaWYgKHByb3BlcnR5ICE9PSBcInRyYW5zZm9ybVwiKSB7XHJcbiAgICAgIHByb3BlcnR5ID0gX3Byb3BlcnR5QWxpYXNlc1twcm9wZXJ0eV0gfHwgcHJvcGVydHk7XHJcbiAgICAgIH5wcm9wZXJ0eS5pbmRleE9mKFwiLFwiKSA/IHByb3BlcnR5LnNwbGl0KFwiLFwiKS5mb3JFYWNoKGZ1bmN0aW9uIChhKSB7XHJcbiAgICAgICAgcmV0dXJuIF90aGlzLnRmbVthXSA9IF9nZXQodGFyZ2V0LCBhKTtcclxuICAgICAgfSkgOiB0aGlzLnRmbVtwcm9wZXJ0eV0gPSBjYWNoZS54ID8gY2FjaGVbcHJvcGVydHldIDogX2dldCh0YXJnZXQsIHByb3BlcnR5KTsgLy8gbm90ZTogc2NhbGUgd291bGQgbWFwIHRvIFwic2NhbGVYLHNjYWxlWVwiLCB0aHVzIHdlIGxvb3AgYW5kIGFwcGx5IHRoZW0gYm90aC5cclxuXHJcbiAgICAgIHByb3BlcnR5ID09PSBfdHJhbnNmb3JtT3JpZ2luUHJvcCAmJiAodGhpcy50Zm0uek9yaWdpbiA9IGNhY2hlLnpPcmlnaW4pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIF9wcm9wZXJ0eUFsaWFzZXMudHJhbnNmb3JtLnNwbGl0KFwiLFwiKS5mb3JFYWNoKGZ1bmN0aW9uIChwKSB7XHJcbiAgICAgICAgcmV0dXJuIF9zYXZlU3R5bGUuY2FsbChfdGhpcywgcCwgaXNOb3RDU1MpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wcm9wcy5pbmRleE9mKF90cmFuc2Zvcm1Qcm9wKSA+PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2FjaGUuc3ZnKSB7XHJcbiAgICAgIHRoaXMuc3ZnbyA9IHRhcmdldC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXN2Zy1vcmlnaW5cIik7XHJcbiAgICAgIHRoaXMucHJvcHMucHVzaChfdHJhbnNmb3JtT3JpZ2luUHJvcCwgaXNOb3RDU1MsIFwiXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3BlcnR5ID0gX3RyYW5zZm9ybVByb3A7XHJcbiAgfVxyXG5cclxuICAoc3R5bGUgfHwgaXNOb3RDU1MpICYmIHRoaXMucHJvcHMucHVzaChwcm9wZXJ0eSwgaXNOb3RDU1MsIHN0eWxlW3Byb3BlcnR5XSk7XHJcbn0sXHJcbiAgICBfcmVtb3ZlSW5kZXBlbmRlbnRUcmFuc2Zvcm1zID0gZnVuY3Rpb24gX3JlbW92ZUluZGVwZW5kZW50VHJhbnNmb3JtcyhzdHlsZSkge1xyXG4gIGlmIChzdHlsZS50cmFuc2xhdGUpIHtcclxuICAgIHN0eWxlLnJlbW92ZVByb3BlcnR5KFwidHJhbnNsYXRlXCIpO1xyXG4gICAgc3R5bGUucmVtb3ZlUHJvcGVydHkoXCJzY2FsZVwiKTtcclxuICAgIHN0eWxlLnJlbW92ZVByb3BlcnR5KFwicm90YXRlXCIpO1xyXG4gIH1cclxufSxcclxuICAgIF9yZXZlcnRTdHlsZSA9IGZ1bmN0aW9uIF9yZXZlcnRTdHlsZSgpIHtcclxuICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzLFxyXG4gICAgICB0YXJnZXQgPSB0aGlzLnRhcmdldCxcclxuICAgICAgc3R5bGUgPSB0YXJnZXQuc3R5bGUsXHJcbiAgICAgIGNhY2hlID0gdGFyZ2V0Ll9nc2FwLFxyXG4gICAgICBpLFxyXG4gICAgICBwO1xyXG5cclxuICBmb3IgKGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpICs9IDMpIHtcclxuICAgIC8vIHN0b3JlZCBsaWtlIHRoaXM6IHByb3BlcnR5LCBpc05vdENTUywgdmFsdWVcclxuICAgIGlmICghcHJvcHNbaSArIDFdKSB7XHJcbiAgICAgIHByb3BzW2kgKyAyXSA/IHN0eWxlW3Byb3BzW2ldXSA9IHByb3BzW2kgKyAyXSA6IHN0eWxlLnJlbW92ZVByb3BlcnR5KHByb3BzW2ldLnN1YnN0cigwLCAyKSA9PT0gXCItLVwiID8gcHJvcHNbaV0gOiBwcm9wc1tpXS5yZXBsYWNlKF9jYXBzRXhwLCBcIi0kMVwiKS50b0xvd2VyQ2FzZSgpKTtcclxuICAgIH0gZWxzZSBpZiAocHJvcHNbaSArIDFdID09PSAyKSB7XHJcbiAgICAgIC8vIG5vbi1DU1MgdmFsdWUgKGZ1bmN0aW9uLWJhc2VkKVxyXG4gICAgICB0YXJnZXRbcHJvcHNbaV1dKHByb3BzW2kgKyAyXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBub24tQ1NTIHZhbHVlIChub3QgZnVuY3Rpb24tYmFzZWQpXHJcbiAgICAgIHRhcmdldFtwcm9wc1tpXV0gPSBwcm9wc1tpICsgMl07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpZiAodGhpcy50Zm0pIHtcclxuICAgIGZvciAocCBpbiB0aGlzLnRmbSkge1xyXG4gICAgICBjYWNoZVtwXSA9IHRoaXMudGZtW3BdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjYWNoZS5zdmcpIHtcclxuICAgICAgY2FjaGUucmVuZGVyVHJhbnNmb3JtKCk7XHJcbiAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoXCJkYXRhLXN2Zy1vcmlnaW5cIiwgdGhpcy5zdmdvIHx8IFwiXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGkgPSBfcmV2ZXJ0aW5nKCk7XHJcblxyXG4gICAgaWYgKCghaSB8fCAhaS5pc1N0YXJ0KSAmJiAhc3R5bGVbX3RyYW5zZm9ybVByb3BdKSB7XHJcbiAgICAgIF9yZW1vdmVJbmRlcGVuZGVudFRyYW5zZm9ybXMoc3R5bGUpO1xyXG5cclxuICAgICAgaWYgKGNhY2hlLnpPcmlnaW4gJiYgc3R5bGVbX3RyYW5zZm9ybU9yaWdpblByb3BdKSB7XHJcbiAgICAgICAgc3R5bGVbX3RyYW5zZm9ybU9yaWdpblByb3BdICs9IFwiIFwiICsgY2FjaGUuek9yaWdpbiArIFwicHhcIjsgLy8gc2luY2Ugd2UncmUgdW5jYWNoaW5nLCB3ZSBtdXN0IHB1dCB0aGUgek9yaWdpbiBiYWNrIGludG8gdGhlIHRyYW5zZm9ybU9yaWdpbiBzbyB0aGF0IHdlIGNhbiBwdWxsIGl0IG91dCBhY2N1cmF0ZWx5IHdoZW4gd2UgcGFyc2UgYWdhaW4uIE90aGVyd2lzZSwgd2UnZCBsb3NlIHRoZSB6IHBvcnRpb24gb2YgdGhlIG9yaWdpbiBzaW5jZSB3ZSBleHRyYWN0IGl0IHRvIHByb3RlY3QgZnJvbSBTYWZhcmkgYnVncy5cclxuXHJcbiAgICAgICAgY2FjaGUuek9yaWdpbiA9IDA7XHJcbiAgICAgICAgY2FjaGUucmVuZGVyVHJhbnNmb3JtKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNhY2hlLnVuY2FjaGUgPSAxOyAvLyBpZiBpdCdzIGEgc3RhcnRBdCB0aGF0J3MgYmVpbmcgcmV2ZXJ0ZWQgaW4gdGhlIF9pbml0VHdlZW4oKSBvZiB0aGUgY29yZSwgd2UgZG9uJ3QgbmVlZCB0byB1bmNhY2hlIHRyYW5zZm9ybXMuIFRoaXMgaXMgcHVyZWx5IGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLlxyXG4gICAgfVxyXG4gIH1cclxufSxcclxuICAgIF9nZXRTdHlsZVNhdmVyID0gZnVuY3Rpb24gX2dldFN0eWxlU2F2ZXIodGFyZ2V0LCBwcm9wZXJ0aWVzKSB7XHJcbiAgdmFyIHNhdmVyID0ge1xyXG4gICAgdGFyZ2V0OiB0YXJnZXQsXHJcbiAgICBwcm9wczogW10sXHJcbiAgICByZXZlcnQ6IF9yZXZlcnRTdHlsZSxcclxuICAgIHNhdmU6IF9zYXZlU3R5bGVcclxuICB9O1xyXG4gIHRhcmdldC5fZ3NhcCB8fCBnc2FwLmNvcmUuZ2V0Q2FjaGUodGFyZ2V0KTsgLy8ganVzdCBtYWtlIHN1cmUgdGhlcmUncyBhIF9nc2FwIGNhY2hlIGRlZmluZWQgYmVjYXVzZSB3ZSByZWFkIGZyb20gaXQgaW4gX3NhdmVTdHlsZSgpIGFuZCBpdCdzIG1vcmUgZWZmaWNpZW50IHRvIGp1c3QgY2hlY2sgaXQgaGVyZSBvbmNlLlxyXG5cclxuICBwcm9wZXJ0aWVzICYmIHRhcmdldC5zdHlsZSAmJiB0YXJnZXQubm9kZVR5cGUgJiYgcHJvcGVydGllcy5zcGxpdChcIixcIikuZm9yRWFjaChmdW5jdGlvbiAocCkge1xyXG4gICAgcmV0dXJuIHNhdmVyLnNhdmUocCk7XHJcbiAgfSk7IC8vIG1ha2Ugc3VyZSBpdCdzIGEgRE9NIG5vZGUgdG9vLlxyXG5cclxuICByZXR1cm4gc2F2ZXI7XHJcbn0sXHJcbiAgICBfc3VwcG9ydHMzRCxcclxuICAgIF9jcmVhdGVFbGVtZW50ID0gZnVuY3Rpb24gX2NyZWF0ZUVsZW1lbnQodHlwZSwgbnMpIHtcclxuICB2YXIgZSA9IF9kb2MuY3JlYXRlRWxlbWVudE5TID8gX2RvYy5jcmVhdGVFbGVtZW50TlMoKG5zIHx8IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiKS5yZXBsYWNlKC9eaHR0cHMvLCBcImh0dHBcIiksIHR5cGUpIDogX2RvYy5jcmVhdGVFbGVtZW50KHR5cGUpOyAvL3NvbWUgc2VydmVycyBzd2FwIGluIGh0dHBzIGZvciBodHRwIGluIHRoZSBuYW1lc3BhY2Ugd2hpY2ggY2FuIGJyZWFrIHRoaW5ncywgbWFraW5nIFwic3R5bGVcIiBpbmFjY2Vzc2libGUuXHJcblxyXG4gIHJldHVybiBlICYmIGUuc3R5bGUgPyBlIDogX2RvYy5jcmVhdGVFbGVtZW50KHR5cGUpOyAvL3NvbWUgZW52aXJvbm1lbnRzIHdvbid0IGFsbG93IGFjY2VzcyB0byB0aGUgZWxlbWVudCdzIHN0eWxlIHdoZW4gY3JlYXRlZCB3aXRoIGEgbmFtZXNwYWNlIGluIHdoaWNoIGNhc2Ugd2UgZGVmYXVsdCB0byB0aGUgc3RhbmRhcmQgY3JlYXRlRWxlbWVudCgpIHRvIHdvcmsgYXJvdW5kIHRoZSBpc3N1ZS4gQWxzbyBub3RlIHRoYXQgd2hlbiBHU0FQIGlzIGVtYmVkZGVkIGRpcmVjdGx5IGluc2lkZSBhbiBTVkcgZmlsZSwgY3JlYXRlRWxlbWVudCgpIHdvbid0IGFsbG93IGFjY2VzcyB0byB0aGUgc3R5bGUgb2JqZWN0IGluIEZpcmVmb3ggKHNlZSBodHRwczovL2dzYXAuY29tL2ZvcnVtcy90b3BpYy8yMDIxNS1wcm9ibGVtLXVzaW5nLXR3ZWVubWF4LWluLXN0YW5kYWxvbmUtc2VsZi1jb250YWluaW5nLXN2Zy1maWxlLWVyci1jYW5ub3Qtc2V0LXByb3BlcnR5LWNzc3RleHQtb2YtdW5kZWZpbmVkLykuXHJcbn0sXHJcbiAgICBfZ2V0Q29tcHV0ZWRQcm9wZXJ0eSA9IGZ1bmN0aW9uIF9nZXRDb21wdXRlZFByb3BlcnR5KHRhcmdldCwgcHJvcGVydHksIHNraXBQcmVmaXhGYWxsYmFjaykge1xyXG4gIHZhciBjcyA9IGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KTtcclxuICByZXR1cm4gY3NbcHJvcGVydHldIHx8IGNzLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkucmVwbGFjZShfY2Fwc0V4cCwgXCItJDFcIikudG9Mb3dlckNhc2UoKSkgfHwgY3MuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSkgfHwgIXNraXBQcmVmaXhGYWxsYmFjayAmJiBfZ2V0Q29tcHV0ZWRQcm9wZXJ0eSh0YXJnZXQsIF9jaGVja1Byb3BQcmVmaXgocHJvcGVydHkpIHx8IHByb3BlcnR5LCAxKSB8fCBcIlwiOyAvL2NzcyB2YXJpYWJsZXMgbWF5IG5vdCBuZWVkIGNhcHMgc3dhcHBlZCBvdXQgZm9yIGRhc2hlcyBhbmQgbG93ZXJjYXNlLlxyXG59LFxyXG4gICAgX3ByZWZpeGVzID0gXCJPLE1veixtcyxNcyxXZWJraXRcIi5zcGxpdChcIixcIiksXHJcbiAgICBfY2hlY2tQcm9wUHJlZml4ID0gZnVuY3Rpb24gX2NoZWNrUHJvcFByZWZpeChwcm9wZXJ0eSwgZWxlbWVudCwgcHJlZmVyUHJlZml4KSB7XHJcbiAgdmFyIGUgPSBlbGVtZW50IHx8IF90ZW1wRGl2LFxyXG4gICAgICBzID0gZS5zdHlsZSxcclxuICAgICAgaSA9IDU7XHJcblxyXG4gIGlmIChwcm9wZXJ0eSBpbiBzICYmICFwcmVmZXJQcmVmaXgpIHtcclxuICAgIHJldHVybiBwcm9wZXJ0eTtcclxuICB9XHJcblxyXG4gIHByb3BlcnR5ID0gcHJvcGVydHkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwcm9wZXJ0eS5zdWJzdHIoMSk7XHJcblxyXG4gIHdoaWxlIChpLS0gJiYgIShfcHJlZml4ZXNbaV0gKyBwcm9wZXJ0eSBpbiBzKSkge31cclxuXHJcbiAgcmV0dXJuIGkgPCAwID8gbnVsbCA6IChpID09PSAzID8gXCJtc1wiIDogaSA+PSAwID8gX3ByZWZpeGVzW2ldIDogXCJcIikgKyBwcm9wZXJ0eTtcclxufSxcclxuICAgIF9pbml0Q29yZSA9IGZ1bmN0aW9uIF9pbml0Q29yZSgpIHtcclxuICBpZiAoX3dpbmRvd0V4aXN0cygpICYmIHdpbmRvdy5kb2N1bWVudCkge1xyXG4gICAgX3dpbiA9IHdpbmRvdztcclxuICAgIF9kb2MgPSBfd2luLmRvY3VtZW50O1xyXG4gICAgX2RvY0VsZW1lbnQgPSBfZG9jLmRvY3VtZW50RWxlbWVudDtcclxuICAgIF90ZW1wRGl2ID0gX2NyZWF0ZUVsZW1lbnQoXCJkaXZcIikgfHwge1xyXG4gICAgICBzdHlsZToge31cclxuICAgIH07XHJcbiAgICBfdGVtcERpdlN0eWxlciA9IF9jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gICAgX3RyYW5zZm9ybVByb3AgPSBfY2hlY2tQcm9wUHJlZml4KF90cmFuc2Zvcm1Qcm9wKTtcclxuICAgIF90cmFuc2Zvcm1PcmlnaW5Qcm9wID0gX3RyYW5zZm9ybVByb3AgKyBcIk9yaWdpblwiO1xyXG4gICAgX3RlbXBEaXYuc3R5bGUuY3NzVGV4dCA9IFwiYm9yZGVyLXdpZHRoOjA7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtwYWRkaW5nOjBcIjsgLy9tYWtlIHN1cmUgdG8gb3ZlcnJpZGUgY2VydGFpbiBwcm9wZXJ0aWVzIHRoYXQgbWF5IGNvbnRhbWluYXRlIG1lYXN1cmVtZW50cywgaW4gY2FzZSB0aGUgdXNlciBoYXMgb3ZlcnJlYWNoaW5nIHN0eWxlIHNoZWV0cy5cclxuXHJcbiAgICBfc3VwcG9ydHMzRCA9ICEhX2NoZWNrUHJvcFByZWZpeChcInBlcnNwZWN0aXZlXCIpO1xyXG4gICAgX3JldmVydGluZyA9IGdzYXAuY29yZS5yZXZlcnRpbmc7XHJcbiAgICBfcGx1Z2luSW5pdHRlZCA9IDE7XHJcbiAgfVxyXG59LFxyXG4gICAgX2dldFJlcGFyZW50ZWRDbG9uZUJCb3ggPSBmdW5jdGlvbiBfZ2V0UmVwYXJlbnRlZENsb25lQkJveCh0YXJnZXQpIHtcclxuICAvL3dvcmtzIGFyb3VuZCBpc3N1ZXMgaW4gc29tZSBicm93c2VycyAobGlrZSBGaXJlZm94KSB0aGF0IGRvbid0IGNvcnJlY3RseSByZXBvcnQgZ2V0QkJveCgpIG9uIFNWRyBlbGVtZW50cyBpbnNpZGUgYSA8ZGVmcz4gZWxlbWVudCBhbmQvb3IgPG1hc2s+LiBXZSB0cnkgY3JlYXRpbmcgYW4gU1ZHLCBhZGRpbmcgaXQgdG8gdGhlIGRvY3VtZW50RWxlbWVudCBhbmQgdG9zcyB0aGUgZWxlbWVudCBpbiB0aGVyZSBzbyB0aGF0IGl0J3MgZGVmaW5pdGVseSBwYXJ0IG9mIHRoZSByZW5kZXJpbmcgdHJlZSwgdGhlbiBncmFiIHRoZSBiYm94IGFuZCBpZiBpdCB3b3Jrcywgd2UgYWN0dWFsbHkgc3dhcCBvdXQgdGhlIG9yaWdpbmFsIGdldEJCb3goKSBtZXRob2QgZm9yIG91ciBvd24gdGhhdCBkb2VzIHRoZXNlIGV4dHJhIHN0ZXBzIHdoZW5ldmVyIGdldEJCb3ggaXMgbmVlZGVkLiBUaGlzIGhlbHBzIGVuc3VyZSB0aGF0IHBlcmZvcm1hbmNlIGlzIG9wdGltYWwgKG9ubHkgZG8gYWxsIHRoZXNlIGV4dHJhIHN0ZXBzIHdoZW4gYWJzb2x1dGVseSBuZWNlc3NhcnkuLi5tb3N0IGVsZW1lbnRzIGRvbid0IG5lZWQgaXQpLlxyXG4gIHZhciBvd25lciA9IHRhcmdldC5vd25lclNWR0VsZW1lbnQsXHJcbiAgICAgIHN2ZyA9IF9jcmVhdGVFbGVtZW50KFwic3ZnXCIsIG93bmVyICYmIG93bmVyLmdldEF0dHJpYnV0ZShcInhtbG5zXCIpIHx8IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiksXHJcbiAgICAgIGNsb25lID0gdGFyZ2V0LmNsb25lTm9kZSh0cnVlKSxcclxuICAgICAgYmJveDtcclxuXHJcbiAgY2xvbmUuc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tcIjtcclxuICBzdmcuYXBwZW5kQ2hpbGQoY2xvbmUpO1xyXG5cclxuICBfZG9jRWxlbWVudC5hcHBlbmRDaGlsZChzdmcpO1xyXG5cclxuICB0cnkge1xyXG4gICAgYmJveCA9IGNsb25lLmdldEJCb3goKTtcclxuICB9IGNhdGNoIChlKSB7fVxyXG5cclxuICBzdmcucmVtb3ZlQ2hpbGQoY2xvbmUpO1xyXG5cclxuICBfZG9jRWxlbWVudC5yZW1vdmVDaGlsZChzdmcpO1xyXG5cclxuICByZXR1cm4gYmJveDtcclxufSxcclxuICAgIF9nZXRBdHRyaWJ1dGVGYWxsYmFja3MgPSBmdW5jdGlvbiBfZ2V0QXR0cmlidXRlRmFsbGJhY2tzKHRhcmdldCwgYXR0cmlidXRlc0FycmF5KSB7XHJcbiAgdmFyIGkgPSBhdHRyaWJ1dGVzQXJyYXkubGVuZ3RoO1xyXG5cclxuICB3aGlsZSAoaS0tKSB7XHJcbiAgICBpZiAodGFyZ2V0Lmhhc0F0dHJpYnV0ZShhdHRyaWJ1dGVzQXJyYXlbaV0pKSB7XHJcbiAgICAgIHJldHVybiB0YXJnZXQuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZXNBcnJheVtpXSk7XHJcbiAgICB9XHJcbiAgfVxyXG59LFxyXG4gICAgX2dldEJCb3ggPSBmdW5jdGlvbiBfZ2V0QkJveCh0YXJnZXQpIHtcclxuICB2YXIgYm91bmRzLCBjbG9uZWQ7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBib3VuZHMgPSB0YXJnZXQuZ2V0QkJveCgpOyAvL0ZpcmVmb3ggdGhyb3dzIGVycm9ycyBpZiB5b3UgdHJ5IGNhbGxpbmcgZ2V0QkJveCgpIG9uIGFuIFNWRyBlbGVtZW50IHRoYXQncyBub3QgcmVuZGVyZWQgKGxpa2UgaW4gYSA8c3ltYm9sPiBvciA8ZGVmcz4pLiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02MTIxMThcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgYm91bmRzID0gX2dldFJlcGFyZW50ZWRDbG9uZUJCb3godGFyZ2V0KTtcclxuICAgIGNsb25lZCA9IDE7XHJcbiAgfVxyXG5cclxuICBib3VuZHMgJiYgKGJvdW5kcy53aWR0aCB8fCBib3VuZHMuaGVpZ2h0KSB8fCBjbG9uZWQgfHwgKGJvdW5kcyA9IF9nZXRSZXBhcmVudGVkQ2xvbmVCQm94KHRhcmdldCkpOyAvL3NvbWUgYnJvd3NlcnMgKGxpa2UgRmlyZWZveCkgbWlzcmVwb3J0IHRoZSBib3VuZHMgaWYgdGhlIGVsZW1lbnQgaGFzIHplcm8gd2lkdGggYW5kIGhlaWdodCAoaXQganVzdCBhc3N1bWVzIGl0J3MgYXQgeDowLCB5OjApLCB0aHVzIHdlIG5lZWQgdG8gbWFudWFsbHkgZ3JhYiB0aGUgcG9zaXRpb24gaW4gdGhhdCBjYXNlLlxyXG5cclxuICByZXR1cm4gYm91bmRzICYmICFib3VuZHMud2lkdGggJiYgIWJvdW5kcy54ICYmICFib3VuZHMueSA/IHtcclxuICAgIHg6ICtfZ2V0QXR0cmlidXRlRmFsbGJhY2tzKHRhcmdldCwgW1wieFwiLCBcImN4XCIsIFwieDFcIl0pIHx8IDAsXHJcbiAgICB5OiArX2dldEF0dHJpYnV0ZUZhbGxiYWNrcyh0YXJnZXQsIFtcInlcIiwgXCJjeVwiLCBcInkxXCJdKSB8fCAwLFxyXG4gICAgd2lkdGg6IDAsXHJcbiAgICBoZWlnaHQ6IDBcclxuICB9IDogYm91bmRzO1xyXG59LFxyXG4gICAgX2lzU1ZHID0gZnVuY3Rpb24gX2lzU1ZHKGUpIHtcclxuICByZXR1cm4gISEoZS5nZXRDVE0gJiYgKCFlLnBhcmVudE5vZGUgfHwgZS5vd25lclNWR0VsZW1lbnQpICYmIF9nZXRCQm94KGUpKTtcclxufSxcclxuICAgIC8vcmVwb3J0cyBpZiB0aGUgZWxlbWVudCBpcyBhbiBTVkcgb24gd2hpY2ggZ2V0QkJveCgpIGFjdHVhbGx5IHdvcmtzXHJcbl9yZW1vdmVQcm9wZXJ0eSA9IGZ1bmN0aW9uIF9yZW1vdmVQcm9wZXJ0eSh0YXJnZXQsIHByb3BlcnR5KSB7XHJcbiAgaWYgKHByb3BlcnR5KSB7XHJcbiAgICB2YXIgc3R5bGUgPSB0YXJnZXQuc3R5bGUsXHJcbiAgICAgICAgZmlyc3QyQ2hhcnM7XHJcblxyXG4gICAgaWYgKHByb3BlcnR5IGluIF90cmFuc2Zvcm1Qcm9wcyAmJiBwcm9wZXJ0eSAhPT0gX3RyYW5zZm9ybU9yaWdpblByb3ApIHtcclxuICAgICAgcHJvcGVydHkgPSBfdHJhbnNmb3JtUHJvcDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3R5bGUucmVtb3ZlUHJvcGVydHkpIHtcclxuICAgICAgZmlyc3QyQ2hhcnMgPSBwcm9wZXJ0eS5zdWJzdHIoMCwgMik7XHJcblxyXG4gICAgICBpZiAoZmlyc3QyQ2hhcnMgPT09IFwibXNcIiB8fCBwcm9wZXJ0eS5zdWJzdHIoMCwgNikgPT09IFwid2Via2l0XCIpIHtcclxuICAgICAgICAvL01pY3Jvc29mdCBhbmQgc29tZSBXZWJraXQgYnJvd3NlcnMgZG9uJ3QgY29uZm9ybSB0byB0aGUgc3RhbmRhcmQgb2YgY2FwaXRhbGl6aW5nIHRoZSBmaXJzdCBwcmVmaXggY2hhcmFjdGVyLCBzbyB3ZSBhZGp1c3Qgc28gdGhhdCB3aGVuIHdlIHByZWZpeCB0aGUgY2FwcyB3aXRoIGEgZGFzaCwgaXQncyBjb3JyZWN0IChvdGhlcndpc2UgaXQnZCBiZSBcIm1zLXRyYW5zZm9ybVwiIGluc3RlYWQgb2YgXCItbXMtdHJhbnNmb3JtXCIgZm9yIElFOSwgZm9yIGV4YW1wbGUpXHJcbiAgICAgICAgcHJvcGVydHkgPSBcIi1cIiArIHByb3BlcnR5O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdHlsZS5yZW1vdmVQcm9wZXJ0eShmaXJzdDJDaGFycyA9PT0gXCItLVwiID8gcHJvcGVydHkgOiBwcm9wZXJ0eS5yZXBsYWNlKF9jYXBzRXhwLCBcIi0kMVwiKS50b0xvd2VyQ2FzZSgpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vbm90ZTogb2xkIHZlcnNpb25zIG9mIElFIHVzZSBcInJlbW92ZUF0dHJpYnV0ZSgpXCIgaW5zdGVhZCBvZiBcInJlbW92ZVByb3BlcnR5KClcIlxyXG4gICAgICBzdHlsZS5yZW1vdmVBdHRyaWJ1dGUocHJvcGVydHkpO1xyXG4gICAgfVxyXG4gIH1cclxufSxcclxuICAgIF9hZGROb25Ud2VlbmluZ1BUID0gZnVuY3Rpb24gX2FkZE5vblR3ZWVuaW5nUFQocGx1Z2luLCB0YXJnZXQsIHByb3BlcnR5LCBiZWdpbm5pbmcsIGVuZCwgb25seVNldEF0RW5kKSB7XHJcbiAgdmFyIHB0ID0gbmV3IFByb3BUd2VlbihwbHVnaW4uX3B0LCB0YXJnZXQsIHByb3BlcnR5LCAwLCAxLCBvbmx5U2V0QXRFbmQgPyBfcmVuZGVyTm9uVHdlZW5pbmdWYWx1ZU9ubHlBdEVuZCA6IF9yZW5kZXJOb25Ud2VlbmluZ1ZhbHVlKTtcclxuICBwbHVnaW4uX3B0ID0gcHQ7XHJcbiAgcHQuYiA9IGJlZ2lubmluZztcclxuICBwdC5lID0gZW5kO1xyXG5cclxuICBwbHVnaW4uX3Byb3BzLnB1c2gocHJvcGVydHkpO1xyXG5cclxuICByZXR1cm4gcHQ7XHJcbn0sXHJcbiAgICBfbm9uQ29udmVydGlibGVVbml0cyA9IHtcclxuICBkZWc6IDEsXHJcbiAgcmFkOiAxLFxyXG4gIHR1cm46IDFcclxufSxcclxuICAgIF9ub25TdGFuZGFyZExheW91dHMgPSB7XHJcbiAgZ3JpZDogMSxcclxuICBmbGV4OiAxXHJcbn0sXHJcbiAgICAvL3Rha2VzIGEgc2luZ2xlIHZhbHVlIGxpa2UgMjBweCBhbmQgY29udmVydHMgaXQgdG8gdGhlIHVuaXQgc3BlY2lmaWVkLCBsaWtlIFwiJVwiLCByZXR1cm5pbmcgb25seSB0aGUgbnVtZXJpYyBhbW91bnQuXHJcbl9jb252ZXJ0VG9Vbml0ID0gZnVuY3Rpb24gX2NvbnZlcnRUb1VuaXQodGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUsIHVuaXQpIHtcclxuICB2YXIgY3VyVmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKSB8fCAwLFxyXG4gICAgICBjdXJVbml0ID0gKHZhbHVlICsgXCJcIikudHJpbSgpLnN1YnN0cigoY3VyVmFsdWUgKyBcIlwiKS5sZW5ndGgpIHx8IFwicHhcIixcclxuICAgICAgLy8gc29tZSBicm93c2VycyBsZWF2ZSBleHRyYSB3aGl0ZXNwYWNlIGF0IHRoZSBiZWdpbm5pbmcgb2YgQ1NTIHZhcmlhYmxlcywgaGVuY2UgdGhlIG5lZWQgdG8gdHJpbSgpXHJcbiAgc3R5bGUgPSBfdGVtcERpdi5zdHlsZSxcclxuICAgICAgaG9yaXpvbnRhbCA9IF9ob3Jpem9udGFsRXhwLnRlc3QocHJvcGVydHkpLFxyXG4gICAgICBpc1Jvb3RTVkcgPSB0YXJnZXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSBcInN2Z1wiLFxyXG4gICAgICBtZWFzdXJlUHJvcGVydHkgPSAoaXNSb290U1ZHID8gXCJjbGllbnRcIiA6IFwib2Zmc2V0XCIpICsgKGhvcml6b250YWwgPyBcIldpZHRoXCIgOiBcIkhlaWdodFwiKSxcclxuICAgICAgYW1vdW50ID0gMTAwLFxyXG4gICAgICB0b1BpeGVscyA9IHVuaXQgPT09IFwicHhcIixcclxuICAgICAgdG9QZXJjZW50ID0gdW5pdCA9PT0gXCIlXCIsXHJcbiAgICAgIHB4LFxyXG4gICAgICBwYXJlbnQsXHJcbiAgICAgIGNhY2hlLFxyXG4gICAgICBpc1NWRztcclxuXHJcbiAgaWYgKHVuaXQgPT09IGN1clVuaXQgfHwgIWN1clZhbHVlIHx8IF9ub25Db252ZXJ0aWJsZVVuaXRzW3VuaXRdIHx8IF9ub25Db252ZXJ0aWJsZVVuaXRzW2N1clVuaXRdKSB7XHJcbiAgICByZXR1cm4gY3VyVmFsdWU7XHJcbiAgfVxyXG5cclxuICBjdXJVbml0ICE9PSBcInB4XCIgJiYgIXRvUGl4ZWxzICYmIChjdXJWYWx1ZSA9IF9jb252ZXJ0VG9Vbml0KHRhcmdldCwgcHJvcGVydHksIHZhbHVlLCBcInB4XCIpKTtcclxuICBpc1NWRyA9IHRhcmdldC5nZXRDVE0gJiYgX2lzU1ZHKHRhcmdldCk7XHJcblxyXG4gIGlmICgodG9QZXJjZW50IHx8IGN1clVuaXQgPT09IFwiJVwiKSAmJiAoX3RyYW5zZm9ybVByb3BzW3Byb3BlcnR5XSB8fCB+cHJvcGVydHkuaW5kZXhPZihcImFkaXVzXCIpKSkge1xyXG4gICAgcHggPSBpc1NWRyA/IHRhcmdldC5nZXRCQm94KClbaG9yaXpvbnRhbCA/IFwid2lkdGhcIiA6IFwiaGVpZ2h0XCJdIDogdGFyZ2V0W21lYXN1cmVQcm9wZXJ0eV07XHJcbiAgICByZXR1cm4gX3JvdW5kKHRvUGVyY2VudCA/IGN1clZhbHVlIC8gcHggKiBhbW91bnQgOiBjdXJWYWx1ZSAvIDEwMCAqIHB4KTtcclxuICB9XHJcblxyXG4gIHN0eWxlW2hvcml6b250YWwgPyBcIndpZHRoXCIgOiBcImhlaWdodFwiXSA9IGFtb3VudCArICh0b1BpeGVscyA/IGN1clVuaXQgOiB1bml0KTtcclxuICBwYXJlbnQgPSB1bml0ICE9PSBcInJlbVwiICYmIH5wcm9wZXJ0eS5pbmRleE9mKFwiYWRpdXNcIikgfHwgdW5pdCA9PT0gXCJlbVwiICYmIHRhcmdldC5hcHBlbmRDaGlsZCAmJiAhaXNSb290U1ZHID8gdGFyZ2V0IDogdGFyZ2V0LnBhcmVudE5vZGU7XHJcblxyXG4gIGlmIChpc1NWRykge1xyXG4gICAgcGFyZW50ID0gKHRhcmdldC5vd25lclNWR0VsZW1lbnQgfHwge30pLnBhcmVudE5vZGU7XHJcbiAgfVxyXG5cclxuICBpZiAoIXBhcmVudCB8fCBwYXJlbnQgPT09IF9kb2MgfHwgIXBhcmVudC5hcHBlbmRDaGlsZCkge1xyXG4gICAgcGFyZW50ID0gX2RvYy5ib2R5O1xyXG4gIH1cclxuXHJcbiAgY2FjaGUgPSBwYXJlbnQuX2dzYXA7XHJcblxyXG4gIGlmIChjYWNoZSAmJiB0b1BlcmNlbnQgJiYgY2FjaGUud2lkdGggJiYgaG9yaXpvbnRhbCAmJiBjYWNoZS50aW1lID09PSBfdGlja2VyLnRpbWUgJiYgIWNhY2hlLnVuY2FjaGUpIHtcclxuICAgIHJldHVybiBfcm91bmQoY3VyVmFsdWUgLyBjYWNoZS53aWR0aCAqIGFtb3VudCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGlmICh0b1BlcmNlbnQgJiYgKHByb3BlcnR5ID09PSBcImhlaWdodFwiIHx8IHByb3BlcnR5ID09PSBcIndpZHRoXCIpKSB7XHJcbiAgICAgIC8vIGlmIHdlJ3JlIGRlYWxpbmcgd2l0aCB3aWR0aC9oZWlnaHQgdGhhdCdzIGluc2lkZSBhIGNvbnRhaW5lciB3aXRoIHBhZGRpbmcgYW5kL29yIGl0J3MgYSBmbGV4Ym94L2dyaWQgY29udGFpbmVyLCB3ZSBtdXN0IGFwcGx5IGl0IHRvIHRoZSB0YXJnZXQgaXRzZWxmIHJhdGhlciB0aGFuIHRoZSBfdGVtcERpdiBpbiBvcmRlciB0byBlbnN1cmUgY29tcGxldGUgYWNjdXJhY3ksIGZhY3RvcmluZyBpbiB0aGUgcGFyZW50J3MgcGFkZGluZy5cclxuICAgICAgdmFyIHYgPSB0YXJnZXQuc3R5bGVbcHJvcGVydHldO1xyXG4gICAgICB0YXJnZXQuc3R5bGVbcHJvcGVydHldID0gYW1vdW50ICsgdW5pdDtcclxuICAgICAgcHggPSB0YXJnZXRbbWVhc3VyZVByb3BlcnR5XTtcclxuICAgICAgdiA/IHRhcmdldC5zdHlsZVtwcm9wZXJ0eV0gPSB2IDogX3JlbW92ZVByb3BlcnR5KHRhcmdldCwgcHJvcGVydHkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgKHRvUGVyY2VudCB8fCBjdXJVbml0ID09PSBcIiVcIikgJiYgIV9ub25TdGFuZGFyZExheW91dHNbX2dldENvbXB1dGVkUHJvcGVydHkocGFyZW50LCBcImRpc3BsYXlcIildICYmIChzdHlsZS5wb3NpdGlvbiA9IF9nZXRDb21wdXRlZFByb3BlcnR5KHRhcmdldCwgXCJwb3NpdGlvblwiKSk7XHJcbiAgICAgIHBhcmVudCA9PT0gdGFyZ2V0ICYmIChzdHlsZS5wb3NpdGlvbiA9IFwic3RhdGljXCIpOyAvLyBsaWtlIGZvciBib3JkZXJSYWRpdXMsIGlmIGl0J3MgYSAlIHdlIG11c3QgaGF2ZSBpdCByZWxhdGl2ZSB0byB0aGUgdGFyZ2V0IGl0c2VsZiBidXQgdGhhdCBtYXkgbm90IGhhdmUgcG9zaXRpb246IHJlbGF0aXZlIG9yIHBvc2l0aW9uOiBhYnNvbHV0ZSBpbiB3aGljaCBjYXNlIGl0J2QgZ28gdXAgdGhlIGNoYWluIHVudGlsIGl0IGZpbmRzIGl0cyBvZmZzZXRQYXJlbnQgKGJhZCkuIHBvc2l0aW9uOiBzdGF0aWMgcHJvdGVjdHMgYWdhaW5zdCB0aGF0LlxyXG5cclxuICAgICAgcGFyZW50LmFwcGVuZENoaWxkKF90ZW1wRGl2KTtcclxuICAgICAgcHggPSBfdGVtcERpdlttZWFzdXJlUHJvcGVydHldO1xyXG4gICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQoX3RlbXBEaXYpO1xyXG4gICAgICBzdHlsZS5wb3NpdGlvbiA9IFwiYWJzb2x1dGVcIjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaG9yaXpvbnRhbCAmJiB0b1BlcmNlbnQpIHtcclxuICAgICAgY2FjaGUgPSBfZ2V0Q2FjaGUocGFyZW50KTtcclxuICAgICAgY2FjaGUudGltZSA9IF90aWNrZXIudGltZTtcclxuICAgICAgY2FjaGUud2lkdGggPSBwYXJlbnRbbWVhc3VyZVByb3BlcnR5XTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBfcm91bmQodG9QaXhlbHMgPyBweCAqIGN1clZhbHVlIC8gYW1vdW50IDogcHggJiYgY3VyVmFsdWUgPyBhbW91bnQgLyBweCAqIGN1clZhbHVlIDogMCk7XHJcbn0sXHJcbiAgICBfZ2V0ID0gZnVuY3Rpb24gX2dldCh0YXJnZXQsIHByb3BlcnR5LCB1bml0LCB1bmNhY2hlKSB7XHJcbiAgdmFyIHZhbHVlO1xyXG4gIF9wbHVnaW5Jbml0dGVkIHx8IF9pbml0Q29yZSgpO1xyXG5cclxuICBpZiAocHJvcGVydHkgaW4gX3Byb3BlcnR5QWxpYXNlcyAmJiBwcm9wZXJ0eSAhPT0gXCJ0cmFuc2Zvcm1cIikge1xyXG4gICAgcHJvcGVydHkgPSBfcHJvcGVydHlBbGlhc2VzW3Byb3BlcnR5XTtcclxuXHJcbiAgICBpZiAofnByb3BlcnR5LmluZGV4T2YoXCIsXCIpKSB7XHJcbiAgICAgIHByb3BlcnR5ID0gcHJvcGVydHkuc3BsaXQoXCIsXCIpWzBdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaWYgKF90cmFuc2Zvcm1Qcm9wc1twcm9wZXJ0eV0gJiYgcHJvcGVydHkgIT09IFwidHJhbnNmb3JtXCIpIHtcclxuICAgIHZhbHVlID0gX3BhcnNlVHJhbnNmb3JtKHRhcmdldCwgdW5jYWNoZSk7XHJcbiAgICB2YWx1ZSA9IHByb3BlcnR5ICE9PSBcInRyYW5zZm9ybU9yaWdpblwiID8gdmFsdWVbcHJvcGVydHldIDogdmFsdWUuc3ZnID8gdmFsdWUub3JpZ2luIDogX2ZpcnN0VHdvT25seShfZ2V0Q29tcHV0ZWRQcm9wZXJ0eSh0YXJnZXQsIF90cmFuc2Zvcm1PcmlnaW5Qcm9wKSkgKyBcIiBcIiArIHZhbHVlLnpPcmlnaW4gKyBcInB4XCI7XHJcbiAgfSBlbHNlIHtcclxuICAgIHZhbHVlID0gdGFyZ2V0LnN0eWxlW3Byb3BlcnR5XTtcclxuXHJcbiAgICBpZiAoIXZhbHVlIHx8IHZhbHVlID09PSBcImF1dG9cIiB8fCB1bmNhY2hlIHx8IH4odmFsdWUgKyBcIlwiKS5pbmRleE9mKFwiY2FsYyhcIikpIHtcclxuICAgICAgdmFsdWUgPSBfc3BlY2lhbFByb3BzW3Byb3BlcnR5XSAmJiBfc3BlY2lhbFByb3BzW3Byb3BlcnR5XSh0YXJnZXQsIHByb3BlcnR5LCB1bml0KSB8fCBfZ2V0Q29tcHV0ZWRQcm9wZXJ0eSh0YXJnZXQsIHByb3BlcnR5KSB8fCBfZ2V0UHJvcGVydHkodGFyZ2V0LCBwcm9wZXJ0eSkgfHwgKHByb3BlcnR5ID09PSBcIm9wYWNpdHlcIiA/IDEgOiAwKTsgLy8gbm90ZTogc29tZSBicm93c2VycywgbGlrZSBGaXJlZm94LCBkb24ndCByZXBvcnQgYm9yZGVyUmFkaXVzIGNvcnJlY3RseSEgSW5zdGVhZCwgaXQgb25seSByZXBvcnRzIGV2ZXJ5IGNvcm5lciBsaWtlICBib3JkZXJUb3BMZWZ0UmFkaXVzXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdW5pdCAmJiAhfih2YWx1ZSArIFwiXCIpLnRyaW0oKS5pbmRleE9mKFwiIFwiKSA/IF9jb252ZXJ0VG9Vbml0KHRhcmdldCwgcHJvcGVydHksIHZhbHVlLCB1bml0KSArIHVuaXQgOiB2YWx1ZTtcclxufSxcclxuICAgIF90d2VlbkNvbXBsZXhDU1NTdHJpbmcgPSBmdW5jdGlvbiBfdHdlZW5Db21wbGV4Q1NTU3RyaW5nKHRhcmdldCwgcHJvcCwgc3RhcnQsIGVuZCkge1xyXG4gIC8vIG5vdGU6IHdlIGNhbGwgX3R3ZWVuQ29tcGxleENTU1N0cmluZy5jYWxsKHBsdWdpbkluc3RhbmNlLi4uKSB0byBlbnN1cmUgdGhhdCBpdCdzIHNjb3BlZCBwcm9wZXJseS4gV2UgbWF5IGNhbGwgaXQgZnJvbSB3aXRoaW4gYSBwbHVnaW4gdG9vLCB0aHVzIFwidGhpc1wiIHdvdWxkIHJlZmVyIHRvIHRoZSBwbHVnaW4uXHJcbiAgaWYgKCFzdGFydCB8fCBzdGFydCA9PT0gXCJub25lXCIpIHtcclxuICAgIC8vIHNvbWUgYnJvd3NlcnMgbGlrZSBTYWZhcmkgYWN0dWFsbHkgUFJFRkVSIHRoZSBwcmVmaXhlZCBwcm9wZXJ0eSBhbmQgbWlzLXJlcG9ydCB0aGUgdW5wcmVmaXhlZCB2YWx1ZSBsaWtlIGNsaXBQYXRoIChCVUcpLiBJbiBvdGhlciB3b3JkcywgZXZlbiB0aG91Z2ggY2xpcFBhdGggZXhpc3RzIGluIHRoZSBzdHlsZSAoXCJjbGlwUGF0aFwiIGluIHRhcmdldC5zdHlsZSkgYW5kIGl0J3Mgc2V0IGluIHRoZSBDU1MgcHJvcGVybHkgKGFsb25nIHdpdGggLXdlYmtpdC1jbGlwLXBhdGgpLCBTYWZhcmkgcmVwb3J0cyBjbGlwUGF0aCBhcyBcIm5vbmVcIiB3aGVyZWFzIFdlYmtpdENsaXBQYXRoIHJlcG9ydHMgYWNjdXJhdGVseSBsaWtlIFwiZWxsaXBzZSgxMDAlIDAlIGF0IDUwJSAwJSlcIiwgc28gaW4gdGhpcyBjYXNlIHdlIG11c3QgU1dJVENIIHRvIHVzaW5nIHRoZSBwcmVmaXhlZCBwcm9wZXJ0eSBpbnN0ZWFkLiBTZWUgaHR0cHM6Ly9nc2FwLmNvbS9mb3J1bXMvdG9waWMvMTgzMTAtY2xpcHBhdGgtZG9lc250LXdvcmstb24taW9zL1xyXG4gICAgdmFyIHAgPSBfY2hlY2tQcm9wUHJlZml4KHByb3AsIHRhcmdldCwgMSksXHJcbiAgICAgICAgcyA9IHAgJiYgX2dldENvbXB1dGVkUHJvcGVydHkodGFyZ2V0LCBwLCAxKTtcclxuXHJcbiAgICBpZiAocyAmJiBzICE9PSBzdGFydCkge1xyXG4gICAgICBwcm9wID0gcDtcclxuICAgICAgc3RhcnQgPSBzO1xyXG4gICAgfSBlbHNlIGlmIChwcm9wID09PSBcImJvcmRlckNvbG9yXCIpIHtcclxuICAgICAgc3RhcnQgPSBfZ2V0Q29tcHV0ZWRQcm9wZXJ0eSh0YXJnZXQsIFwiYm9yZGVyVG9wQ29sb3JcIik7IC8vIEZpcmVmb3ggYnVnOiBhbHdheXMgcmVwb3J0cyBcImJvcmRlckNvbG9yXCIgYXMgXCJcIiwgc28gd2UgbXVzdCBmYWxsIGJhY2sgdG8gYm9yZGVyVG9wQ29sb3IuIFNlZSBodHRwczovL2dzYXAuY29tL2ZvcnVtcy90b3BpYy8yNDU4My1ob3ctdG8tcmV0dXJuLWNvbG9ycy10aGF0LWktaGFkLWFmdGVyLXJldmVyc2UvXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YXIgcHQgPSBuZXcgUHJvcFR3ZWVuKHRoaXMuX3B0LCB0YXJnZXQuc3R5bGUsIHByb3AsIDAsIDEsIF9yZW5kZXJDb21wbGV4U3RyaW5nKSxcclxuICAgICAgaW5kZXggPSAwLFxyXG4gICAgICBtYXRjaEluZGV4ID0gMCxcclxuICAgICAgYSxcclxuICAgICAgcmVzdWx0LFxyXG4gICAgICBzdGFydFZhbHVlcyxcclxuICAgICAgc3RhcnROdW0sXHJcbiAgICAgIGNvbG9yLFxyXG4gICAgICBzdGFydFZhbHVlLFxyXG4gICAgICBlbmRWYWx1ZSxcclxuICAgICAgZW5kTnVtLFxyXG4gICAgICBjaHVuayxcclxuICAgICAgZW5kVW5pdCxcclxuICAgICAgc3RhcnRVbml0LFxyXG4gICAgICBlbmRWYWx1ZXM7XHJcbiAgcHQuYiA9IHN0YXJ0O1xyXG4gIHB0LmUgPSBlbmQ7XHJcbiAgc3RhcnQgKz0gXCJcIjsgLy8gZW5zdXJlIHZhbHVlcyBhcmUgc3RyaW5nc1xyXG5cclxuICBlbmQgKz0gXCJcIjtcclxuXHJcbiAgaWYgKGVuZC5zdWJzdHJpbmcoMCwgNikgPT09IFwidmFyKC0tXCIpIHtcclxuICAgIGVuZCA9IF9nZXRDb21wdXRlZFByb3BlcnR5KHRhcmdldCwgZW5kLnN1YnN0cmluZyg0LCBlbmQuaW5kZXhPZihcIilcIikpKTtcclxuICB9XHJcblxyXG4gIGlmIChlbmQgPT09IFwiYXV0b1wiKSB7XHJcbiAgICBzdGFydFZhbHVlID0gdGFyZ2V0LnN0eWxlW3Byb3BdO1xyXG4gICAgdGFyZ2V0LnN0eWxlW3Byb3BdID0gZW5kO1xyXG4gICAgZW5kID0gX2dldENvbXB1dGVkUHJvcGVydHkodGFyZ2V0LCBwcm9wKSB8fCBlbmQ7XHJcbiAgICBzdGFydFZhbHVlID8gdGFyZ2V0LnN0eWxlW3Byb3BdID0gc3RhcnRWYWx1ZSA6IF9yZW1vdmVQcm9wZXJ0eSh0YXJnZXQsIHByb3ApO1xyXG4gIH1cclxuXHJcbiAgYSA9IFtzdGFydCwgZW5kXTtcclxuXHJcbiAgX2NvbG9yU3RyaW5nRmlsdGVyKGEpOyAvLyBwYXNzIGFuIGFycmF5IHdpdGggdGhlIHN0YXJ0aW5nIGFuZCBlbmRpbmcgdmFsdWVzIGFuZCBsZXQgdGhlIGZpbHRlciBkbyB3aGF0ZXZlciBpdCBuZWVkcyB0byB0aGUgdmFsdWVzLiBJZiBjb2xvcnMgYXJlIGZvdW5kLCBpdCByZXR1cm5zIHRydWUgYW5kIHRoZW4gd2UgbXVzdCBtYXRjaCB3aGVyZSB0aGUgY29sb3Igc2hvd3MgdXAgb3JkZXItd2lzZSBiZWNhdXNlIGZvciB0aGluZ3MgbGlrZSBib3hTaGFkb3csIHNvbWV0aW1lcyB0aGUgYnJvd3NlciBwcm92aWRlcyB0aGUgY29tcHV0ZWQgdmFsdWVzIHdpdGggdGhlIGNvbG9yIEZJUlNULCBidXQgdGhlIHVzZXIgcHJvdmlkZXMgaXQgd2l0aCB0aGUgY29sb3IgTEFTVCwgc28gZmxpcCB0aGVtIGlmIG5lY2Vzc2FyeS4gU2FtZSBmb3IgZHJvcC1zaGFkb3coKS5cclxuXHJcblxyXG4gIHN0YXJ0ID0gYVswXTtcclxuICBlbmQgPSBhWzFdO1xyXG4gIHN0YXJ0VmFsdWVzID0gc3RhcnQubWF0Y2goX251bVdpdGhVbml0RXhwKSB8fCBbXTtcclxuICBlbmRWYWx1ZXMgPSBlbmQubWF0Y2goX251bVdpdGhVbml0RXhwKSB8fCBbXTtcclxuXHJcbiAgaWYgKGVuZFZhbHVlcy5sZW5ndGgpIHtcclxuICAgIHdoaWxlIChyZXN1bHQgPSBfbnVtV2l0aFVuaXRFeHAuZXhlYyhlbmQpKSB7XHJcbiAgICAgIGVuZFZhbHVlID0gcmVzdWx0WzBdO1xyXG4gICAgICBjaHVuayA9IGVuZC5zdWJzdHJpbmcoaW5kZXgsIHJlc3VsdC5pbmRleCk7XHJcblxyXG4gICAgICBpZiAoY29sb3IpIHtcclxuICAgICAgICBjb2xvciA9IChjb2xvciArIDEpICUgNTtcclxuICAgICAgfSBlbHNlIGlmIChjaHVuay5zdWJzdHIoLTUpID09PSBcInJnYmEoXCIgfHwgY2h1bmsuc3Vic3RyKC01KSA9PT0gXCJoc2xhKFwiKSB7XHJcbiAgICAgICAgY29sb3IgPSAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZW5kVmFsdWUgIT09IChzdGFydFZhbHVlID0gc3RhcnRWYWx1ZXNbbWF0Y2hJbmRleCsrXSB8fCBcIlwiKSkge1xyXG4gICAgICAgIHN0YXJ0TnVtID0gcGFyc2VGbG9hdChzdGFydFZhbHVlKSB8fCAwO1xyXG4gICAgICAgIHN0YXJ0VW5pdCA9IHN0YXJ0VmFsdWUuc3Vic3RyKChzdGFydE51bSArIFwiXCIpLmxlbmd0aCk7XHJcbiAgICAgICAgZW5kVmFsdWUuY2hhckF0KDEpID09PSBcIj1cIiAmJiAoZW5kVmFsdWUgPSBfcGFyc2VSZWxhdGl2ZShzdGFydE51bSwgZW5kVmFsdWUpICsgc3RhcnRVbml0KTtcclxuICAgICAgICBlbmROdW0gPSBwYXJzZUZsb2F0KGVuZFZhbHVlKTtcclxuICAgICAgICBlbmRVbml0ID0gZW5kVmFsdWUuc3Vic3RyKChlbmROdW0gKyBcIlwiKS5sZW5ndGgpO1xyXG4gICAgICAgIGluZGV4ID0gX251bVdpdGhVbml0RXhwLmxhc3RJbmRleCAtIGVuZFVuaXQubGVuZ3RoO1xyXG5cclxuICAgICAgICBpZiAoIWVuZFVuaXQpIHtcclxuICAgICAgICAgIC8vaWYgc29tZXRoaW5nIGxpa2UgXCJwZXJzcGVjdGl2ZTozMDBcIiBpcyBwYXNzZWQgaW4gYW5kIHdlIG11c3QgYWRkIGEgdW5pdCB0byB0aGUgZW5kXHJcbiAgICAgICAgICBlbmRVbml0ID0gZW5kVW5pdCB8fCBfY29uZmlnLnVuaXRzW3Byb3BdIHx8IHN0YXJ0VW5pdDtcclxuXHJcbiAgICAgICAgICBpZiAoaW5kZXggPT09IGVuZC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgZW5kICs9IGVuZFVuaXQ7XHJcbiAgICAgICAgICAgIHB0LmUgKz0gZW5kVW5pdDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzdGFydFVuaXQgIT09IGVuZFVuaXQpIHtcclxuICAgICAgICAgIHN0YXJ0TnVtID0gX2NvbnZlcnRUb1VuaXQodGFyZ2V0LCBwcm9wLCBzdGFydFZhbHVlLCBlbmRVbml0KSB8fCAwO1xyXG4gICAgICAgIH0gLy8gdGhlc2UgbmVzdGVkIFByb3BUd2VlbnMgYXJlIGhhbmRsZWQgaW4gYSBzcGVjaWFsIHdheSAtIHdlJ2xsIG5ldmVyIGFjdHVhbGx5IGNhbGwgYSByZW5kZXIgb3Igc2V0dGVyIG1ldGhvZCBvbiB0aGVtLiBXZSdsbCBqdXN0IGxvb3AgdGhyb3VnaCB0aGVtIGluIHRoZSBwYXJlbnQgY29tcGxleCBzdHJpbmcgUHJvcFR3ZWVuJ3MgcmVuZGVyIG1ldGhvZC5cclxuXHJcblxyXG4gICAgICAgIHB0Ll9wdCA9IHtcclxuICAgICAgICAgIF9uZXh0OiBwdC5fcHQsXHJcbiAgICAgICAgICBwOiBjaHVuayB8fCBtYXRjaEluZGV4ID09PSAxID8gY2h1bmsgOiBcIixcIixcclxuICAgICAgICAgIC8vbm90ZTogU1ZHIHNwZWMgYWxsb3dzIG9taXNzaW9uIG9mIGNvbW1hL3NwYWNlIHdoZW4gYSBuZWdhdGl2ZSBzaWduIGlzIHdlZGdlZCBiZXR3ZWVuIHR3byBudW1iZXJzLCBsaWtlIDIuNS01LjMgaW5zdGVhZCBvZiAyLjUsLTUuMyBidXQgd2hlbiB0d2VlbmluZywgdGhlIG5lZ2F0aXZlIHZhbHVlIG1heSBzd2l0Y2ggdG8gcG9zaXRpdmUsIHNvIHdlIGluc2VydCB0aGUgY29tbWEganVzdCBpbiBjYXNlLlxyXG4gICAgICAgICAgczogc3RhcnROdW0sXHJcbiAgICAgICAgICBjOiBlbmROdW0gLSBzdGFydE51bSxcclxuICAgICAgICAgIG06IGNvbG9yICYmIGNvbG9yIDwgNCB8fCBwcm9wID09PSBcInpJbmRleFwiID8gTWF0aC5yb3VuZCA6IDBcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHQuYyA9IGluZGV4IDwgZW5kLmxlbmd0aCA/IGVuZC5zdWJzdHJpbmcoaW5kZXgsIGVuZC5sZW5ndGgpIDogXCJcIjsgLy93ZSB1c2UgdGhlIFwiY1wiIG9mIHRoZSBQcm9wVHdlZW4gdG8gc3RvcmUgdGhlIGZpbmFsIHBhcnQgb2YgdGhlIHN0cmluZyAoYWZ0ZXIgdGhlIGxhc3QgbnVtYmVyKVxyXG4gIH0gZWxzZSB7XHJcbiAgICBwdC5yID0gcHJvcCA9PT0gXCJkaXNwbGF5XCIgJiYgZW5kID09PSBcIm5vbmVcIiA/IF9yZW5kZXJOb25Ud2VlbmluZ1ZhbHVlT25seUF0RW5kIDogX3JlbmRlck5vblR3ZWVuaW5nVmFsdWU7XHJcbiAgfVxyXG5cclxuICBfcmVsRXhwLnRlc3QoZW5kKSAmJiAocHQuZSA9IDApOyAvL2lmIHRoZSBlbmQgc3RyaW5nIGNvbnRhaW5zIHJlbGF0aXZlIHZhbHVlcyBvciBkeW5hbWljIHJhbmRvbSguLi4pIHZhbHVlcywgZGVsZXRlIHRoZSBlbmQgaXQgc28gdGhhdCBvbiB0aGUgZmluYWwgcmVuZGVyIHdlIGRvbid0IGFjdHVhbGx5IHNldCBpdCB0byB0aGUgc3RyaW5nIHdpdGggKz0gb3IgLT0gY2hhcmFjdGVycyAoZm9yY2VzIGl0IHRvIHVzZSB0aGUgY2FsY3VsYXRlZCB2YWx1ZSkuXHJcblxyXG4gIHRoaXMuX3B0ID0gcHQ7IC8vc3RhcnQgdGhlIGxpbmtlZCBsaXN0IHdpdGggdGhpcyBuZXcgUHJvcFR3ZWVuLiBSZW1lbWJlciwgd2UgY2FsbCBfdHdlZW5Db21wbGV4Q1NTU3RyaW5nLmNhbGwocGx1Z2luSW5zdGFuY2UuLi4pIHRvIGVuc3VyZSB0aGF0IGl0J3Mgc2NvcGVkIHByb3Blcmx5LiBXZSBtYXkgY2FsbCBpdCBmcm9tIHdpdGhpbiBhbm90aGVyIHBsdWdpbiB0b28sIHRodXMgXCJ0aGlzXCIgd291bGQgcmVmZXIgdG8gdGhlIHBsdWdpbi5cclxuXHJcbiAgcmV0dXJuIHB0O1xyXG59LFxyXG4gICAgX2tleXdvcmRUb1BlcmNlbnQgPSB7XHJcbiAgdG9wOiBcIjAlXCIsXHJcbiAgYm90dG9tOiBcIjEwMCVcIixcclxuICBsZWZ0OiBcIjAlXCIsXHJcbiAgcmlnaHQ6IFwiMTAwJVwiLFxyXG4gIGNlbnRlcjogXCI1MCVcIlxyXG59LFxyXG4gICAgX2NvbnZlcnRLZXl3b3Jkc1RvUGVyY2VudGFnZXMgPSBmdW5jdGlvbiBfY29udmVydEtleXdvcmRzVG9QZXJjZW50YWdlcyh2YWx1ZSkge1xyXG4gIHZhciBzcGxpdCA9IHZhbHVlLnNwbGl0KFwiIFwiKSxcclxuICAgICAgeCA9IHNwbGl0WzBdLFxyXG4gICAgICB5ID0gc3BsaXRbMV0gfHwgXCI1MCVcIjtcclxuXHJcbiAgaWYgKHggPT09IFwidG9wXCIgfHwgeCA9PT0gXCJib3R0b21cIiB8fCB5ID09PSBcImxlZnRcIiB8fCB5ID09PSBcInJpZ2h0XCIpIHtcclxuICAgIC8vdGhlIHVzZXIgcHJvdmlkZWQgdGhlbSBpbiB0aGUgd3Jvbmcgb3JkZXIsIHNvIGZsaXAgdGhlbVxyXG4gICAgdmFsdWUgPSB4O1xyXG4gICAgeCA9IHk7XHJcbiAgICB5ID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzcGxpdFswXSA9IF9rZXl3b3JkVG9QZXJjZW50W3hdIHx8IHg7XHJcbiAgc3BsaXRbMV0gPSBfa2V5d29yZFRvUGVyY2VudFt5XSB8fCB5O1xyXG4gIHJldHVybiBzcGxpdC5qb2luKFwiIFwiKTtcclxufSxcclxuICAgIF9yZW5kZXJDbGVhclByb3BzID0gZnVuY3Rpb24gX3JlbmRlckNsZWFyUHJvcHMocmF0aW8sIGRhdGEpIHtcclxuICBpZiAoZGF0YS50d2VlbiAmJiBkYXRhLnR3ZWVuLl90aW1lID09PSBkYXRhLnR3ZWVuLl9kdXIpIHtcclxuICAgIHZhciB0YXJnZXQgPSBkYXRhLnQsXHJcbiAgICAgICAgc3R5bGUgPSB0YXJnZXQuc3R5bGUsXHJcbiAgICAgICAgcHJvcHMgPSBkYXRhLnUsXHJcbiAgICAgICAgY2FjaGUgPSB0YXJnZXQuX2dzYXAsXHJcbiAgICAgICAgcHJvcCxcclxuICAgICAgICBjbGVhclRyYW5zZm9ybXMsXHJcbiAgICAgICAgaTtcclxuXHJcbiAgICBpZiAocHJvcHMgPT09IFwiYWxsXCIgfHwgcHJvcHMgPT09IHRydWUpIHtcclxuICAgICAgc3R5bGUuY3NzVGV4dCA9IFwiXCI7XHJcbiAgICAgIGNsZWFyVHJhbnNmb3JtcyA9IDE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwcm9wcyA9IHByb3BzLnNwbGl0KFwiLFwiKTtcclxuICAgICAgaSA9IHByb3BzLmxlbmd0aDtcclxuXHJcbiAgICAgIHdoaWxlICgtLWkgPiAtMSkge1xyXG4gICAgICAgIHByb3AgPSBwcm9wc1tpXTtcclxuXHJcbiAgICAgICAgaWYgKF90cmFuc2Zvcm1Qcm9wc1twcm9wXSkge1xyXG4gICAgICAgICAgY2xlYXJUcmFuc2Zvcm1zID0gMTtcclxuICAgICAgICAgIHByb3AgPSBwcm9wID09PSBcInRyYW5zZm9ybU9yaWdpblwiID8gX3RyYW5zZm9ybU9yaWdpblByb3AgOiBfdHJhbnNmb3JtUHJvcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIF9yZW1vdmVQcm9wZXJ0eSh0YXJnZXQsIHByb3ApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNsZWFyVHJhbnNmb3Jtcykge1xyXG4gICAgICBfcmVtb3ZlUHJvcGVydHkodGFyZ2V0LCBfdHJhbnNmb3JtUHJvcCk7XHJcblxyXG4gICAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgICBjYWNoZS5zdmcgJiYgdGFyZ2V0LnJlbW92ZUF0dHJpYnV0ZShcInRyYW5zZm9ybVwiKTtcclxuICAgICAgICBzdHlsZS5zY2FsZSA9IHN0eWxlLnJvdGF0ZSA9IHN0eWxlLnRyYW5zbGF0ZSA9IFwibm9uZVwiO1xyXG5cclxuICAgICAgICBfcGFyc2VUcmFuc2Zvcm0odGFyZ2V0LCAxKTsgLy8gZm9yY2UgYWxsIHRoZSBjYWNoZWQgdmFsdWVzIGJhY2sgdG8gXCJub3JtYWxcIi9pZGVudGl0eSwgb3RoZXJ3aXNlIGlmIHRoZXJlJ3MgYW5vdGhlciB0d2VlbiB0aGF0J3MgYWxyZWFkeSBzZXQgdG8gcmVuZGVyIHRyYW5zZm9ybXMgb24gdGhpcyBlbGVtZW50LCBpdCBjb3VsZCBkaXNwbGF5IHRoZSB3cm9uZyB2YWx1ZXMuXHJcblxyXG5cclxuICAgICAgICBjYWNoZS51bmNhY2hlID0gMTtcclxuXHJcbiAgICAgICAgX3JlbW92ZUluZGVwZW5kZW50VHJhbnNmb3JtcyhzdHlsZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0sXHJcbiAgICAvLyBub3RlOiBzcGVjaWFsUHJvcHMgc2hvdWxkIHJldHVybiAxIGlmIChhbmQgb25seSBpZikgdGhleSBoYXZlIGEgbm9uLXplcm8gcHJpb3JpdHkuIEl0IGluZGljYXRlcyB3ZSBuZWVkIHRvIHNvcnQgdGhlIGxpbmtlZCBsaXN0LlxyXG5fc3BlY2lhbFByb3BzID0ge1xyXG4gIGNsZWFyUHJvcHM6IGZ1bmN0aW9uIGNsZWFyUHJvcHMocGx1Z2luLCB0YXJnZXQsIHByb3BlcnR5LCBlbmRWYWx1ZSwgdHdlZW4pIHtcclxuICAgIGlmICh0d2Vlbi5kYXRhICE9PSBcImlzRnJvbVN0YXJ0XCIpIHtcclxuICAgICAgdmFyIHB0ID0gcGx1Z2luLl9wdCA9IG5ldyBQcm9wVHdlZW4ocGx1Z2luLl9wdCwgdGFyZ2V0LCBwcm9wZXJ0eSwgMCwgMCwgX3JlbmRlckNsZWFyUHJvcHMpO1xyXG4gICAgICBwdC51ID0gZW5kVmFsdWU7XHJcbiAgICAgIHB0LnByID0gLTEwO1xyXG4gICAgICBwdC50d2VlbiA9IHR3ZWVuO1xyXG5cclxuICAgICAgcGx1Z2luLl9wcm9wcy5wdXNoKHByb3BlcnR5KTtcclxuXHJcbiAgICAgIHJldHVybiAxO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKiBjbGFzc05hbWUgZmVhdHVyZSAoYWJvdXQgMC40a2IgZ3ppcHBlZCkuXHJcbiAgLCBjbGFzc05hbWUocGx1Z2luLCB0YXJnZXQsIHByb3BlcnR5LCBlbmRWYWx1ZSwgdHdlZW4pIHtcclxuICBcdGxldCBfcmVuZGVyQ2xhc3NOYW1lID0gKHJhdGlvLCBkYXRhKSA9PiB7XHJcbiAgXHRcdFx0ZGF0YS5jc3MucmVuZGVyKHJhdGlvLCBkYXRhLmNzcyk7XHJcbiAgXHRcdFx0aWYgKCFyYXRpbyB8fCByYXRpbyA9PT0gMSkge1xyXG4gIFx0XHRcdFx0bGV0IGlubGluZSA9IGRhdGEucm12LFxyXG4gIFx0XHRcdFx0XHR0YXJnZXQgPSBkYXRhLnQsXHJcbiAgXHRcdFx0XHRcdHA7XHJcbiAgXHRcdFx0XHR0YXJnZXQuc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgcmF0aW8gPyBkYXRhLmUgOiBkYXRhLmIpO1xyXG4gIFx0XHRcdFx0Zm9yIChwIGluIGlubGluZSkge1xyXG4gIFx0XHRcdFx0XHRfcmVtb3ZlUHJvcGVydHkodGFyZ2V0LCBwKTtcclxuICBcdFx0XHRcdH1cclxuICBcdFx0XHR9XHJcbiAgXHRcdH0sXHJcbiAgXHRcdF9nZXRBbGxTdHlsZXMgPSAodGFyZ2V0KSA9PiB7XHJcbiAgXHRcdFx0bGV0IHN0eWxlcyA9IHt9LFxyXG4gIFx0XHRcdFx0Y29tcHV0ZWQgPSBnZXRDb21wdXRlZFN0eWxlKHRhcmdldCksXHJcbiAgXHRcdFx0XHRwO1xyXG4gIFx0XHRcdGZvciAocCBpbiBjb21wdXRlZCkge1xyXG4gIFx0XHRcdFx0aWYgKGlzTmFOKHApICYmIHAgIT09IFwiY3NzVGV4dFwiICYmIHAgIT09IFwibGVuZ3RoXCIpIHtcclxuICBcdFx0XHRcdFx0c3R5bGVzW3BdID0gY29tcHV0ZWRbcF07XHJcbiAgXHRcdFx0XHR9XHJcbiAgXHRcdFx0fVxyXG4gIFx0XHRcdF9zZXREZWZhdWx0cyhzdHlsZXMsIF9wYXJzZVRyYW5zZm9ybSh0YXJnZXQsIDEpKTtcclxuICBcdFx0XHRyZXR1cm4gc3R5bGVzO1xyXG4gIFx0XHR9LFxyXG4gIFx0XHRzdGFydENsYXNzTGlzdCA9IHRhcmdldC5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKSxcclxuICBcdFx0c3R5bGUgPSB0YXJnZXQuc3R5bGUsXHJcbiAgXHRcdGNzc1RleHQgPSBzdHlsZS5jc3NUZXh0LFxyXG4gIFx0XHRjYWNoZSA9IHRhcmdldC5fZ3NhcCxcclxuICBcdFx0Y2xhc3NQVCA9IGNhY2hlLmNsYXNzUFQsXHJcbiAgXHRcdGlubGluZVRvUmVtb3ZlQXRFbmQgPSB7fSxcclxuICBcdFx0ZGF0YSA9IHt0OnRhcmdldCwgcGx1Z2luOnBsdWdpbiwgcm12OmlubGluZVRvUmVtb3ZlQXRFbmQsIGI6c3RhcnRDbGFzc0xpc3QsIGU6KGVuZFZhbHVlLmNoYXJBdCgxKSAhPT0gXCI9XCIpID8gZW5kVmFsdWUgOiBzdGFydENsYXNzTGlzdC5yZXBsYWNlKG5ldyBSZWdFeHAoXCIoPzpcXFxcc3xeKVwiICsgZW5kVmFsdWUuc3Vic3RyKDIpICsgXCIoPyFbXFxcXHctXSlcIiksIFwiXCIpICsgKChlbmRWYWx1ZS5jaGFyQXQoMCkgPT09IFwiK1wiKSA/IFwiIFwiICsgZW5kVmFsdWUuc3Vic3RyKDIpIDogXCJcIil9LFxyXG4gIFx0XHRjaGFuZ2luZ1ZhcnMgPSB7fSxcclxuICBcdFx0c3RhcnRWYXJzID0gX2dldEFsbFN0eWxlcyh0YXJnZXQpLFxyXG4gIFx0XHR0cmFuc2Zvcm1SZWxhdGVkID0gLyh0cmFuc2Zvcm18cGVyc3BlY3RpdmUpL2ksXHJcbiAgXHRcdGVuZFZhcnMsIHA7XHJcbiAgXHRpZiAoY2xhc3NQVCkge1xyXG4gIFx0XHRjbGFzc1BULnIoMSwgY2xhc3NQVC5kKTtcclxuICBcdFx0X3JlbW92ZUxpbmtlZExpc3RJdGVtKGNsYXNzUFQuZC5wbHVnaW4sIGNsYXNzUFQsIFwiX3B0XCIpO1xyXG4gIFx0fVxyXG4gIFx0dGFyZ2V0LnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIGRhdGEuZSk7XHJcbiAgXHRlbmRWYXJzID0gX2dldEFsbFN0eWxlcyh0YXJnZXQsIHRydWUpO1xyXG4gIFx0dGFyZ2V0LnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIHN0YXJ0Q2xhc3NMaXN0KTtcclxuICBcdGZvciAocCBpbiBlbmRWYXJzKSB7XHJcbiAgXHRcdGlmIChlbmRWYXJzW3BdICE9PSBzdGFydFZhcnNbcF0gJiYgIXRyYW5zZm9ybVJlbGF0ZWQudGVzdChwKSkge1xyXG4gIFx0XHRcdGNoYW5naW5nVmFyc1twXSA9IGVuZFZhcnNbcF07XHJcbiAgXHRcdFx0aWYgKCFzdHlsZVtwXSAmJiBzdHlsZVtwXSAhPT0gXCIwXCIpIHtcclxuICBcdFx0XHRcdGlubGluZVRvUmVtb3ZlQXRFbmRbcF0gPSAxO1xyXG4gIFx0XHRcdH1cclxuICBcdFx0fVxyXG4gIFx0fVxyXG4gIFx0Y2FjaGUuY2xhc3NQVCA9IHBsdWdpbi5fcHQgPSBuZXcgUHJvcFR3ZWVuKHBsdWdpbi5fcHQsIHRhcmdldCwgXCJjbGFzc05hbWVcIiwgMCwgMCwgX3JlbmRlckNsYXNzTmFtZSwgZGF0YSwgMCwgLTExKTtcclxuICBcdGlmIChzdHlsZS5jc3NUZXh0ICE9PSBjc3NUZXh0KSB7IC8vb25seSBhcHBseSBpZiB0aGluZ3MgY2hhbmdlLiBPdGhlcndpc2UsIGluIGNhc2VzIGxpa2UgYSBiYWNrZ3JvdW5kLWltYWdlIHRoYXQncyBwdWxsZWQgZHluYW1pY2FsbHksIGl0IGNvdWxkIGNhdXNlIGEgcmVmcmVzaC4gU2VlIGh0dHBzOi8vZ3NhcC5jb20vZm9ydW1zL3RvcGljLzIwMzY4LXBvc3NpYmxlLWdzYXAtYnVnLXN3aXRjaGluZy1jbGFzc25hbWVzLWluLWNocm9tZS8uXHJcbiAgXHRcdHN0eWxlLmNzc1RleHQgPSBjc3NUZXh0OyAvL3dlIHJlY29yZGVkIGNzc1RleHQgYmVmb3JlIHdlIHN3YXBwZWQgY2xhc3NlcyBhbmQgcmFuIF9nZXRBbGxTdHlsZXMoKSBiZWNhdXNlIGluIGNhc2VzIHdoZW4gYSBjbGFzc05hbWUgdHdlZW4gaXMgb3ZlcndyaXR0ZW4sIHdlIHJlbW92ZSBhbGwgdGhlIHJlbGF0ZWQgdHdlZW5pbmcgcHJvcGVydGllcyBmcm9tIHRoYXQgY2xhc3MgY2hhbmdlIChvdGhlcndpc2UgY2xhc3Mtc3BlY2lmaWMgc3R1ZmYgY2FuJ3Qgb3ZlcnJpZGUgcHJvcGVydGllcyB3ZSd2ZSBkaXJlY3RseSBzZXQgb24gdGhlIHRhcmdldCdzIHN0eWxlIG9iamVjdCBkdWUgdG8gc3BlY2lmaWNpdHkpLlxyXG4gIFx0fVxyXG4gIFx0X3BhcnNlVHJhbnNmb3JtKHRhcmdldCwgdHJ1ZSk7IC8vdG8gY2xlYXIgdGhlIGNhY2hpbmcgb2YgdHJhbnNmb3Jtc1xyXG4gIFx0ZGF0YS5jc3MgPSBuZXcgZ3NhcC5wbHVnaW5zLmNzcygpO1xyXG4gIFx0ZGF0YS5jc3MuaW5pdCh0YXJnZXQsIGNoYW5naW5nVmFycywgdHdlZW4pO1xyXG4gIFx0cGx1Z2luLl9wcm9wcy5wdXNoKC4uLmRhdGEuY3NzLl9wcm9wcyk7XHJcbiAgXHRyZXR1cm4gMTtcclxuICB9XHJcbiAgKi9cclxuXHJcbn0sXHJcblxyXG4vKlxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBUUkFOU0ZPUk1TXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqL1xyXG5faWRlbnRpdHkyRE1hdHJpeCA9IFsxLCAwLCAwLCAxLCAwLCAwXSxcclxuICAgIF9yb3RhdGlvbmFsUHJvcGVydGllcyA9IHt9LFxyXG4gICAgX2lzTnVsbFRyYW5zZm9ybSA9IGZ1bmN0aW9uIF9pc051bGxUcmFuc2Zvcm0odmFsdWUpIHtcclxuICByZXR1cm4gdmFsdWUgPT09IFwibWF0cml4KDEsIDAsIDAsIDEsIDAsIDApXCIgfHwgdmFsdWUgPT09IFwibm9uZVwiIHx8ICF2YWx1ZTtcclxufSxcclxuICAgIF9nZXRDb21wdXRlZFRyYW5zZm9ybU1hdHJpeEFzQXJyYXkgPSBmdW5jdGlvbiBfZ2V0Q29tcHV0ZWRUcmFuc2Zvcm1NYXRyaXhBc0FycmF5KHRhcmdldCkge1xyXG4gIHZhciBtYXRyaXhTdHJpbmcgPSBfZ2V0Q29tcHV0ZWRQcm9wZXJ0eSh0YXJnZXQsIF90cmFuc2Zvcm1Qcm9wKTtcclxuXHJcbiAgcmV0dXJuIF9pc051bGxUcmFuc2Zvcm0obWF0cml4U3RyaW5nKSA/IF9pZGVudGl0eTJETWF0cml4IDogbWF0cml4U3RyaW5nLnN1YnN0cig3KS5tYXRjaChfbnVtRXhwKS5tYXAoX3JvdW5kKTtcclxufSxcclxuICAgIF9nZXRNYXRyaXggPSBmdW5jdGlvbiBfZ2V0TWF0cml4KHRhcmdldCwgZm9yY2UyRCkge1xyXG4gIHZhciBjYWNoZSA9IHRhcmdldC5fZ3NhcCB8fCBfZ2V0Q2FjaGUodGFyZ2V0KSxcclxuICAgICAgc3R5bGUgPSB0YXJnZXQuc3R5bGUsXHJcbiAgICAgIG1hdHJpeCA9IF9nZXRDb21wdXRlZFRyYW5zZm9ybU1hdHJpeEFzQXJyYXkodGFyZ2V0KSxcclxuICAgICAgcGFyZW50LFxyXG4gICAgICBuZXh0U2libGluZyxcclxuICAgICAgdGVtcCxcclxuICAgICAgYWRkZWRUb0RPTTtcclxuXHJcbiAgaWYgKGNhY2hlLnN2ZyAmJiB0YXJnZXQuZ2V0QXR0cmlidXRlKFwidHJhbnNmb3JtXCIpKSB7XHJcbiAgICB0ZW1wID0gdGFyZ2V0LnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkubWF0cml4OyAvL2Vuc3VyZXMgdGhhdCBldmVuIGNvbXBsZXggdmFsdWVzIGxpa2UgXCJ0cmFuc2xhdGUoNTAsNjApIHJvdGF0ZSgxMzUsMCwwKVwiIGFyZSBwYXJzZWQgYmVjYXVzZSBpdCBtYXNoZXMgaXQgaW50byBhIG1hdHJpeC5cclxuXHJcbiAgICBtYXRyaXggPSBbdGVtcC5hLCB0ZW1wLmIsIHRlbXAuYywgdGVtcC5kLCB0ZW1wLmUsIHRlbXAuZl07XHJcbiAgICByZXR1cm4gbWF0cml4LmpvaW4oXCIsXCIpID09PSBcIjEsMCwwLDEsMCwwXCIgPyBfaWRlbnRpdHkyRE1hdHJpeCA6IG1hdHJpeDtcclxuICB9IGVsc2UgaWYgKG1hdHJpeCA9PT0gX2lkZW50aXR5MkRNYXRyaXggJiYgIXRhcmdldC5vZmZzZXRQYXJlbnQgJiYgdGFyZ2V0ICE9PSBfZG9jRWxlbWVudCAmJiAhY2FjaGUuc3ZnKSB7XHJcbiAgICAvL25vdGU6IGlmIG9mZnNldFBhcmVudCBpcyBudWxsLCB0aGF0IG1lYW5zIHRoZSBlbGVtZW50IGlzbid0IGluIHRoZSBub3JtYWwgZG9jdW1lbnQgZmxvdywgbGlrZSBpZiBpdCBoYXMgZGlzcGxheTpub25lIG9yIG9uZSBvZiBpdHMgYW5jZXN0b3JzIGhhcyBkaXNwbGF5Om5vbmUpLiBGaXJlZm94IHJldHVybnMgbnVsbCBmb3IgZ2V0Q29tcHV0ZWRTdHlsZSgpIGlmIHRoZSBlbGVtZW50IGlzIGluIGFuIGlmcmFtZSB0aGF0IGhhcyBkaXNwbGF5Om5vbmUuIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTU0ODM5N1xyXG4gICAgLy9icm93c2VycyBkb24ndCByZXBvcnQgdHJhbnNmb3JtcyBhY2N1cmF0ZWx5IHVubGVzcyB0aGUgZWxlbWVudCBpcyBpbiB0aGUgRE9NIGFuZCBoYXMgYSBkaXNwbGF5IHZhbHVlIHRoYXQncyBub3QgXCJub25lXCIuIEZpcmVmb3ggYW5kIE1pY3Jvc29mdCBicm93c2VycyBoYXZlIGEgcGFydGlhbCBidWcgd2hlcmUgdGhleSdsbCByZXBvcnQgdHJhbnNmb3JtcyBldmVuIGlmIGRpc3BsYXk6bm9uZSBCVVQgbm90IGFueSBwZXJjZW50YWdlLWJhc2VkIHZhbHVlcyBsaWtlIHRyYW5zbGF0ZSgtNTAlLCA4cHgpIHdpbGwgYmUgcmVwb3J0ZWQgYXMgaWYgaXQncyB0cmFuc2xhdGUoMCwgOHB4KS5cclxuICAgIHRlbXAgPSBzdHlsZS5kaXNwbGF5O1xyXG4gICAgc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tcIjtcclxuICAgIHBhcmVudCA9IHRhcmdldC5wYXJlbnROb2RlO1xyXG5cclxuICAgIGlmICghcGFyZW50IHx8ICF0YXJnZXQub2Zmc2V0UGFyZW50ICYmICF0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpIHtcclxuICAgICAgLy8gbm90ZTogaW4gMy4zLjAgd2Ugc3dpdGNoZWQgdGFyZ2V0Lm9mZnNldFBhcmVudCB0byBfZG9jLmJvZHkuY29udGFpbnModGFyZ2V0KSB0byBhdm9pZCBbc29tZXRpbWVzIHVubmVjZXNzYXJ5XSBNdXRhdGlvbk9ic2VydmVyIGNhbGxzIGJ1dCB0aGF0IHdhc24ndCBhZGVxdWF0ZSBiZWNhdXNlIHRoZXJlIGFyZSBlZGdlIGNhc2VzIHdoZXJlIG5lc3RlZCBwb3NpdGlvbjogZml4ZWQgZWxlbWVudHMgbmVlZCB0byBnZXQgcmVwYXJlbnRlZCB0byBhY2N1cmF0ZWx5IHNlbnNlIHRyYW5zZm9ybXMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZ3JlZW5zb2NrL0dTQVAvaXNzdWVzLzM4OCBhbmQgaHR0cHM6Ly9naXRodWIuY29tL2dyZWVuc29jay9HU0FQL2lzc3Vlcy8zNzUuIE5vdGU6IHBvc2l0aW9uOiBmaXhlZCBlbGVtZW50cyByZXBvcnQgYSBudWxsIG9mZnNldFBhcmVudCBidXQgdGhleSBjb3VsZCBhbHNvIGJlIGludmlzaWJsZSBiZWNhdXNlIHRoZXkncmUgaW4gYW4gYW5jZXN0b3Igd2l0aCBkaXNwbGF5OiBub25lLCBzbyB3ZSBjaGVjayBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKS4gV2Ugb25seSB3YW50IHRvIGFsdGVyIHRoZSBET00gaWYgd2UgYWJzb2x1dGVseSBoYXZlIHRvIGJlY2F1c2UgaXQgY2FuIGNhdXNlIGlmcmFtZSBjb250ZW50IHRvIHJlbG9hZCwgbGlrZSBhIFZpbWVvIHZpZGVvLlxyXG4gICAgICBhZGRlZFRvRE9NID0gMTsgLy9mbGFnXHJcblxyXG4gICAgICBuZXh0U2libGluZyA9IHRhcmdldC5uZXh0RWxlbWVudFNpYmxpbmc7XHJcblxyXG4gICAgICBfZG9jRWxlbWVudC5hcHBlbmRDaGlsZCh0YXJnZXQpOyAvL3dlIG11c3QgYWRkIGl0IHRvIHRoZSBET00gaW4gb3JkZXIgdG8gZ2V0IHZhbHVlcyBwcm9wZXJseVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBtYXRyaXggPSBfZ2V0Q29tcHV0ZWRUcmFuc2Zvcm1NYXRyaXhBc0FycmF5KHRhcmdldCk7XHJcbiAgICB0ZW1wID8gc3R5bGUuZGlzcGxheSA9IHRlbXAgOiBfcmVtb3ZlUHJvcGVydHkodGFyZ2V0LCBcImRpc3BsYXlcIik7XHJcblxyXG4gICAgaWYgKGFkZGVkVG9ET00pIHtcclxuICAgICAgbmV4dFNpYmxpbmcgPyBwYXJlbnQuaW5zZXJ0QmVmb3JlKHRhcmdldCwgbmV4dFNpYmxpbmcpIDogcGFyZW50ID8gcGFyZW50LmFwcGVuZENoaWxkKHRhcmdldCkgOiBfZG9jRWxlbWVudC5yZW1vdmVDaGlsZCh0YXJnZXQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZvcmNlMkQgJiYgbWF0cml4Lmxlbmd0aCA+IDYgPyBbbWF0cml4WzBdLCBtYXRyaXhbMV0sIG1hdHJpeFs0XSwgbWF0cml4WzVdLCBtYXRyaXhbMTJdLCBtYXRyaXhbMTNdXSA6IG1hdHJpeDtcclxufSxcclxuICAgIF9hcHBseVNWR09yaWdpbiA9IGZ1bmN0aW9uIF9hcHBseVNWR09yaWdpbih0YXJnZXQsIG9yaWdpbiwgb3JpZ2luSXNBYnNvbHV0ZSwgc21vb3RoLCBtYXRyaXhBcnJheSwgcGx1Z2luVG9BZGRQcm9wVHdlZW5zVG8pIHtcclxuICB2YXIgY2FjaGUgPSB0YXJnZXQuX2dzYXAsXHJcbiAgICAgIG1hdHJpeCA9IG1hdHJpeEFycmF5IHx8IF9nZXRNYXRyaXgodGFyZ2V0LCB0cnVlKSxcclxuICAgICAgeE9yaWdpbk9sZCA9IGNhY2hlLnhPcmlnaW4gfHwgMCxcclxuICAgICAgeU9yaWdpbk9sZCA9IGNhY2hlLnlPcmlnaW4gfHwgMCxcclxuICAgICAgeE9mZnNldE9sZCA9IGNhY2hlLnhPZmZzZXQgfHwgMCxcclxuICAgICAgeU9mZnNldE9sZCA9IGNhY2hlLnlPZmZzZXQgfHwgMCxcclxuICAgICAgYSA9IG1hdHJpeFswXSxcclxuICAgICAgYiA9IG1hdHJpeFsxXSxcclxuICAgICAgYyA9IG1hdHJpeFsyXSxcclxuICAgICAgZCA9IG1hdHJpeFszXSxcclxuICAgICAgdHggPSBtYXRyaXhbNF0sXHJcbiAgICAgIHR5ID0gbWF0cml4WzVdLFxyXG4gICAgICBvcmlnaW5TcGxpdCA9IG9yaWdpbi5zcGxpdChcIiBcIiksXHJcbiAgICAgIHhPcmlnaW4gPSBwYXJzZUZsb2F0KG9yaWdpblNwbGl0WzBdKSB8fCAwLFxyXG4gICAgICB5T3JpZ2luID0gcGFyc2VGbG9hdChvcmlnaW5TcGxpdFsxXSkgfHwgMCxcclxuICAgICAgYm91bmRzLFxyXG4gICAgICBkZXRlcm1pbmFudCxcclxuICAgICAgeCxcclxuICAgICAgeTtcclxuXHJcbiAgaWYgKCFvcmlnaW5Jc0Fic29sdXRlKSB7XHJcbiAgICBib3VuZHMgPSBfZ2V0QkJveCh0YXJnZXQpO1xyXG4gICAgeE9yaWdpbiA9IGJvdW5kcy54ICsgKH5vcmlnaW5TcGxpdFswXS5pbmRleE9mKFwiJVwiKSA/IHhPcmlnaW4gLyAxMDAgKiBib3VuZHMud2lkdGggOiB4T3JpZ2luKTtcclxuICAgIHlPcmlnaW4gPSBib3VuZHMueSArICh+KG9yaWdpblNwbGl0WzFdIHx8IG9yaWdpblNwbGl0WzBdKS5pbmRleE9mKFwiJVwiKSA/IHlPcmlnaW4gLyAxMDAgKiBib3VuZHMuaGVpZ2h0IDogeU9yaWdpbik7IC8vIGlmICghKFwieE9yaWdpblwiIGluIGNhY2hlKSAmJiAoeE9yaWdpbiB8fCB5T3JpZ2luKSkgeyAvLyBhZGRlZCBpbiAzLjEyLjMsIHJldmVydGVkIGluIDMuMTIuNDsgcmVxdWlyZXMgbW9yZSBleHBsb3JhdGlvblxyXG4gICAgLy8gXHR4T3JpZ2luIC09IGJvdW5kcy54O1xyXG4gICAgLy8gXHR5T3JpZ2luIC09IGJvdW5kcy55O1xyXG4gICAgLy8gfVxyXG4gIH0gZWxzZSBpZiAobWF0cml4ICE9PSBfaWRlbnRpdHkyRE1hdHJpeCAmJiAoZGV0ZXJtaW5hbnQgPSBhICogZCAtIGIgKiBjKSkge1xyXG4gICAgLy9pZiBpdCdzIHplcm8gKGxpa2UgaWYgc2NhbGVYIGFuZCBzY2FsZVkgYXJlIHplcm8pLCBza2lwIGl0IHRvIGF2b2lkIGVycm9ycyB3aXRoIGRpdmlkaW5nIGJ5IHplcm8uXHJcbiAgICB4ID0geE9yaWdpbiAqIChkIC8gZGV0ZXJtaW5hbnQpICsgeU9yaWdpbiAqICgtYyAvIGRldGVybWluYW50KSArIChjICogdHkgLSBkICogdHgpIC8gZGV0ZXJtaW5hbnQ7XHJcbiAgICB5ID0geE9yaWdpbiAqICgtYiAvIGRldGVybWluYW50KSArIHlPcmlnaW4gKiAoYSAvIGRldGVybWluYW50KSAtIChhICogdHkgLSBiICogdHgpIC8gZGV0ZXJtaW5hbnQ7XHJcbiAgICB4T3JpZ2luID0geDtcclxuICAgIHlPcmlnaW4gPSB5OyAvLyB0aGVvcnk6IHdlIG9ubHkgaGFkIHRvIGRvIHRoaXMgZm9yIHNtb290aGluZyBhbmQgaXQgYXNzdW1lcyB0aGF0IHRoZSBwcmV2aW91cyBvbmUgd2FzIG5vdCBvcmlnaW5Jc0Fic29sdXRlLlxyXG4gIH1cclxuXHJcbiAgaWYgKHNtb290aCB8fCBzbW9vdGggIT09IGZhbHNlICYmIGNhY2hlLnNtb290aCkge1xyXG4gICAgdHggPSB4T3JpZ2luIC0geE9yaWdpbk9sZDtcclxuICAgIHR5ID0geU9yaWdpbiAtIHlPcmlnaW5PbGQ7XHJcbiAgICBjYWNoZS54T2Zmc2V0ID0geE9mZnNldE9sZCArICh0eCAqIGEgKyB0eSAqIGMpIC0gdHg7XHJcbiAgICBjYWNoZS55T2Zmc2V0ID0geU9mZnNldE9sZCArICh0eCAqIGIgKyB0eSAqIGQpIC0gdHk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNhY2hlLnhPZmZzZXQgPSBjYWNoZS55T2Zmc2V0ID0gMDtcclxuICB9XHJcblxyXG4gIGNhY2hlLnhPcmlnaW4gPSB4T3JpZ2luO1xyXG4gIGNhY2hlLnlPcmlnaW4gPSB5T3JpZ2luO1xyXG4gIGNhY2hlLnNtb290aCA9ICEhc21vb3RoO1xyXG4gIGNhY2hlLm9yaWdpbiA9IG9yaWdpbjtcclxuICBjYWNoZS5vcmlnaW5Jc0Fic29sdXRlID0gISFvcmlnaW5Jc0Fic29sdXRlO1xyXG4gIHRhcmdldC5zdHlsZVtfdHJhbnNmb3JtT3JpZ2luUHJvcF0gPSBcIjBweCAwcHhcIjsgLy9vdGhlcndpc2UsIGlmIHNvbWVvbmUgc2V0cyAgYW4gb3JpZ2luIHZpYSBDU1MsIGl0IHdpbGwgbGlrZWx5IGludGVyZmVyZSB3aXRoIHRoZSBTVkcgdHJhbnNmb3JtIGF0dHJpYnV0ZSBvbmVzIChiZWNhdXNlIHJlbWVtYmVyLCB3ZSdyZSBiYWtpbmcgdGhlIG9yaWdpbiBpbnRvIHRoZSBtYXRyaXgoKSB2YWx1ZSkuXHJcblxyXG4gIGlmIChwbHVnaW5Ub0FkZFByb3BUd2VlbnNUbykge1xyXG4gICAgX2FkZE5vblR3ZWVuaW5nUFQocGx1Z2luVG9BZGRQcm9wVHdlZW5zVG8sIGNhY2hlLCBcInhPcmlnaW5cIiwgeE9yaWdpbk9sZCwgeE9yaWdpbik7XHJcblxyXG4gICAgX2FkZE5vblR3ZWVuaW5nUFQocGx1Z2luVG9BZGRQcm9wVHdlZW5zVG8sIGNhY2hlLCBcInlPcmlnaW5cIiwgeU9yaWdpbk9sZCwgeU9yaWdpbik7XHJcblxyXG4gICAgX2FkZE5vblR3ZWVuaW5nUFQocGx1Z2luVG9BZGRQcm9wVHdlZW5zVG8sIGNhY2hlLCBcInhPZmZzZXRcIiwgeE9mZnNldE9sZCwgY2FjaGUueE9mZnNldCk7XHJcblxyXG4gICAgX2FkZE5vblR3ZWVuaW5nUFQocGx1Z2luVG9BZGRQcm9wVHdlZW5zVG8sIGNhY2hlLCBcInlPZmZzZXRcIiwgeU9mZnNldE9sZCwgY2FjaGUueU9mZnNldCk7XHJcbiAgfVxyXG5cclxuICB0YXJnZXQuc2V0QXR0cmlidXRlKFwiZGF0YS1zdmctb3JpZ2luXCIsIHhPcmlnaW4gKyBcIiBcIiArIHlPcmlnaW4pO1xyXG59LFxyXG4gICAgX3BhcnNlVHJhbnNmb3JtID0gZnVuY3Rpb24gX3BhcnNlVHJhbnNmb3JtKHRhcmdldCwgdW5jYWNoZSkge1xyXG4gIHZhciBjYWNoZSA9IHRhcmdldC5fZ3NhcCB8fCBuZXcgR1NDYWNoZSh0YXJnZXQpO1xyXG5cclxuICBpZiAoXCJ4XCIgaW4gY2FjaGUgJiYgIXVuY2FjaGUgJiYgIWNhY2hlLnVuY2FjaGUpIHtcclxuICAgIHJldHVybiBjYWNoZTtcclxuICB9XHJcblxyXG4gIHZhciBzdHlsZSA9IHRhcmdldC5zdHlsZSxcclxuICAgICAgaW52ZXJ0ZWRTY2FsZVggPSBjYWNoZS5zY2FsZVggPCAwLFxyXG4gICAgICBweCA9IFwicHhcIixcclxuICAgICAgZGVnID0gXCJkZWdcIixcclxuICAgICAgY3MgPSBnZXRDb21wdXRlZFN0eWxlKHRhcmdldCksXHJcbiAgICAgIG9yaWdpbiA9IF9nZXRDb21wdXRlZFByb3BlcnR5KHRhcmdldCwgX3RyYW5zZm9ybU9yaWdpblByb3ApIHx8IFwiMFwiLFxyXG4gICAgICB4LFxyXG4gICAgICB5LFxyXG4gICAgICB6LFxyXG4gICAgICBzY2FsZVgsXHJcbiAgICAgIHNjYWxlWSxcclxuICAgICAgcm90YXRpb24sXHJcbiAgICAgIHJvdGF0aW9uWCxcclxuICAgICAgcm90YXRpb25ZLFxyXG4gICAgICBza2V3WCxcclxuICAgICAgc2tld1ksXHJcbiAgICAgIHBlcnNwZWN0aXZlLFxyXG4gICAgICB4T3JpZ2luLFxyXG4gICAgICB5T3JpZ2luLFxyXG4gICAgICBtYXRyaXgsXHJcbiAgICAgIGFuZ2xlLFxyXG4gICAgICBjb3MsXHJcbiAgICAgIHNpbixcclxuICAgICAgYSxcclxuICAgICAgYixcclxuICAgICAgYyxcclxuICAgICAgZCxcclxuICAgICAgYTEyLFxyXG4gICAgICBhMjIsXHJcbiAgICAgIHQxLFxyXG4gICAgICB0MixcclxuICAgICAgdDMsXHJcbiAgICAgIGExMyxcclxuICAgICAgYTIzLFxyXG4gICAgICBhMzMsXHJcbiAgICAgIGE0MixcclxuICAgICAgYTQzLFxyXG4gICAgICBhMzI7XHJcbiAgeCA9IHkgPSB6ID0gcm90YXRpb24gPSByb3RhdGlvblggPSByb3RhdGlvblkgPSBza2V3WCA9IHNrZXdZID0gcGVyc3BlY3RpdmUgPSAwO1xyXG4gIHNjYWxlWCA9IHNjYWxlWSA9IDE7XHJcbiAgY2FjaGUuc3ZnID0gISEodGFyZ2V0LmdldENUTSAmJiBfaXNTVkcodGFyZ2V0KSk7XHJcblxyXG4gIGlmIChjcy50cmFuc2xhdGUpIHtcclxuICAgIC8vIGFjY29tbW9kYXRlIGluZGVwZW5kZW50IHRyYW5zZm9ybXMgYnkgY29tYmluaW5nIHRoZW0gaW50byBub3JtYWwgb25lcy5cclxuICAgIGlmIChjcy50cmFuc2xhdGUgIT09IFwibm9uZVwiIHx8IGNzLnNjYWxlICE9PSBcIm5vbmVcIiB8fCBjcy5yb3RhdGUgIT09IFwibm9uZVwiKSB7XHJcbiAgICAgIHN0eWxlW190cmFuc2Zvcm1Qcm9wXSA9IChjcy50cmFuc2xhdGUgIT09IFwibm9uZVwiID8gXCJ0cmFuc2xhdGUzZChcIiArIChjcy50cmFuc2xhdGUgKyBcIiAwIDBcIikuc3BsaXQoXCIgXCIpLnNsaWNlKDAsIDMpLmpvaW4oXCIsIFwiKSArIFwiKSBcIiA6IFwiXCIpICsgKGNzLnJvdGF0ZSAhPT0gXCJub25lXCIgPyBcInJvdGF0ZShcIiArIGNzLnJvdGF0ZSArIFwiKSBcIiA6IFwiXCIpICsgKGNzLnNjYWxlICE9PSBcIm5vbmVcIiA/IFwic2NhbGUoXCIgKyBjcy5zY2FsZS5zcGxpdChcIiBcIikuam9pbihcIixcIikgKyBcIikgXCIgOiBcIlwiKSArIChjc1tfdHJhbnNmb3JtUHJvcF0gIT09IFwibm9uZVwiID8gY3NbX3RyYW5zZm9ybVByb3BdIDogXCJcIik7XHJcbiAgICB9XHJcblxyXG4gICAgc3R5bGUuc2NhbGUgPSBzdHlsZS5yb3RhdGUgPSBzdHlsZS50cmFuc2xhdGUgPSBcIm5vbmVcIjtcclxuICB9XHJcblxyXG4gIG1hdHJpeCA9IF9nZXRNYXRyaXgodGFyZ2V0LCBjYWNoZS5zdmcpO1xyXG5cclxuICBpZiAoY2FjaGUuc3ZnKSB7XHJcbiAgICBpZiAoY2FjaGUudW5jYWNoZSkge1xyXG4gICAgICAvLyBpZiBjYWNoZS51bmNhY2hlIGlzIHRydWUgKGFuZCBtYXliZSBpZiBvcmlnaW4gaXMgMCwwKSwgd2UgbmVlZCB0byBzZXQgZWxlbWVudC5zdHlsZS50cmFuc2Zvcm1PcmlnaW4gPSAoY2FjaGUueE9yaWdpbiAtIGJib3gueCkgKyBcInB4IFwiICsgKGNhY2hlLnlPcmlnaW4gLSBiYm94LnkpICsgXCJweFwiLiBQcmV2aW91c2x5IHdlIGxldCB0aGUgZGF0YS1zdmctb3JpZ2luIHN0YXkgaW5zdGVhZCwgYnV0IHdoZW4gaW50cm9kdWNpbmcgcmV2ZXJ0KCksIGl0IGNvbXBsaWNhdGVkIHRoaW5ncy5cclxuICAgICAgdDIgPSB0YXJnZXQuZ2V0QkJveCgpO1xyXG4gICAgICBvcmlnaW4gPSBjYWNoZS54T3JpZ2luIC0gdDIueCArIFwicHggXCIgKyAoY2FjaGUueU9yaWdpbiAtIHQyLnkpICsgXCJweFwiO1xyXG4gICAgICB0MSA9IFwiXCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0MSA9ICF1bmNhY2hlICYmIHRhcmdldC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXN2Zy1vcmlnaW5cIik7IC8vICBSZW1lbWJlciwgdG8gd29yayBhcm91bmQgYnJvd3NlciBpbmNvbnNpc3RlbmNpZXMgd2UgYWx3YXlzIGZvcmNlIFNWRyBlbGVtZW50cycgdHJhbnNmb3JtT3JpZ2luIHRvIDAsMCBhbmQgb2Zmc2V0IHRoZSB0cmFuc2xhdGlvbiBhY2NvcmRpbmdseS5cclxuICAgIH1cclxuXHJcbiAgICBfYXBwbHlTVkdPcmlnaW4odGFyZ2V0LCB0MSB8fCBvcmlnaW4sICEhdDEgfHwgY2FjaGUub3JpZ2luSXNBYnNvbHV0ZSwgY2FjaGUuc21vb3RoICE9PSBmYWxzZSwgbWF0cml4KTtcclxuICB9XHJcblxyXG4gIHhPcmlnaW4gPSBjYWNoZS54T3JpZ2luIHx8IDA7XHJcbiAgeU9yaWdpbiA9IGNhY2hlLnlPcmlnaW4gfHwgMDtcclxuXHJcbiAgaWYgKG1hdHJpeCAhPT0gX2lkZW50aXR5MkRNYXRyaXgpIHtcclxuICAgIGEgPSBtYXRyaXhbMF07IC8vYTExXHJcblxyXG4gICAgYiA9IG1hdHJpeFsxXTsgLy9hMjFcclxuXHJcbiAgICBjID0gbWF0cml4WzJdOyAvL2EzMVxyXG5cclxuICAgIGQgPSBtYXRyaXhbM107IC8vYTQxXHJcblxyXG4gICAgeCA9IGExMiA9IG1hdHJpeFs0XTtcclxuICAgIHkgPSBhMjIgPSBtYXRyaXhbNV07IC8vMkQgbWF0cml4XHJcblxyXG4gICAgaWYgKG1hdHJpeC5sZW5ndGggPT09IDYpIHtcclxuICAgICAgc2NhbGVYID0gTWF0aC5zcXJ0KGEgKiBhICsgYiAqIGIpO1xyXG4gICAgICBzY2FsZVkgPSBNYXRoLnNxcnQoZCAqIGQgKyBjICogYyk7XHJcbiAgICAgIHJvdGF0aW9uID0gYSB8fCBiID8gX2F0YW4yKGIsIGEpICogX1JBRDJERUcgOiAwOyAvL25vdGU6IGlmIHNjYWxlWCBpcyAwLCB3ZSBjYW5ub3QgYWNjdXJhdGVseSBtZWFzdXJlIHJvdGF0aW9uLiBTYW1lIGZvciBza2V3WCB3aXRoIGEgc2NhbGVZIG9mIDAuIFRoZXJlZm9yZSwgd2UgZGVmYXVsdCB0byB0aGUgcHJldmlvdXNseSByZWNvcmRlZCB2YWx1ZSAob3IgemVybyBpZiB0aGF0IGRvZXNuJ3QgZXhpc3QpLlxyXG5cclxuICAgICAgc2tld1ggPSBjIHx8IGQgPyBfYXRhbjIoYywgZCkgKiBfUkFEMkRFRyArIHJvdGF0aW9uIDogMDtcclxuICAgICAgc2tld1ggJiYgKHNjYWxlWSAqPSBNYXRoLmFicyhNYXRoLmNvcyhza2V3WCAqIF9ERUcyUkFEKSkpO1xyXG5cclxuICAgICAgaWYgKGNhY2hlLnN2Zykge1xyXG4gICAgICAgIHggLT0geE9yaWdpbiAtICh4T3JpZ2luICogYSArIHlPcmlnaW4gKiBjKTtcclxuICAgICAgICB5IC09IHlPcmlnaW4gLSAoeE9yaWdpbiAqIGIgKyB5T3JpZ2luICogZCk7XHJcbiAgICAgIH0gLy8zRCBtYXRyaXhcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhMzIgPSBtYXRyaXhbNl07XHJcbiAgICAgIGE0MiA9IG1hdHJpeFs3XTtcclxuICAgICAgYTEzID0gbWF0cml4WzhdO1xyXG4gICAgICBhMjMgPSBtYXRyaXhbOV07XHJcbiAgICAgIGEzMyA9IG1hdHJpeFsxMF07XHJcbiAgICAgIGE0MyA9IG1hdHJpeFsxMV07XHJcbiAgICAgIHggPSBtYXRyaXhbMTJdO1xyXG4gICAgICB5ID0gbWF0cml4WzEzXTtcclxuICAgICAgeiA9IG1hdHJpeFsxNF07XHJcbiAgICAgIGFuZ2xlID0gX2F0YW4yKGEzMiwgYTMzKTtcclxuICAgICAgcm90YXRpb25YID0gYW5nbGUgKiBfUkFEMkRFRzsgLy9yb3RhdGlvblhcclxuXHJcbiAgICAgIGlmIChhbmdsZSkge1xyXG4gICAgICAgIGNvcyA9IE1hdGguY29zKC1hbmdsZSk7XHJcbiAgICAgICAgc2luID0gTWF0aC5zaW4oLWFuZ2xlKTtcclxuICAgICAgICB0MSA9IGExMiAqIGNvcyArIGExMyAqIHNpbjtcclxuICAgICAgICB0MiA9IGEyMiAqIGNvcyArIGEyMyAqIHNpbjtcclxuICAgICAgICB0MyA9IGEzMiAqIGNvcyArIGEzMyAqIHNpbjtcclxuICAgICAgICBhMTMgPSBhMTIgKiAtc2luICsgYTEzICogY29zO1xyXG4gICAgICAgIGEyMyA9IGEyMiAqIC1zaW4gKyBhMjMgKiBjb3M7XHJcbiAgICAgICAgYTMzID0gYTMyICogLXNpbiArIGEzMyAqIGNvcztcclxuICAgICAgICBhNDMgPSBhNDIgKiAtc2luICsgYTQzICogY29zO1xyXG4gICAgICAgIGExMiA9IHQxO1xyXG4gICAgICAgIGEyMiA9IHQyO1xyXG4gICAgICAgIGEzMiA9IHQzO1xyXG4gICAgICB9IC8vcm90YXRpb25ZXHJcblxyXG5cclxuICAgICAgYW5nbGUgPSBfYXRhbjIoLWMsIGEzMyk7XHJcbiAgICAgIHJvdGF0aW9uWSA9IGFuZ2xlICogX1JBRDJERUc7XHJcblxyXG4gICAgICBpZiAoYW5nbGUpIHtcclxuICAgICAgICBjb3MgPSBNYXRoLmNvcygtYW5nbGUpO1xyXG4gICAgICAgIHNpbiA9IE1hdGguc2luKC1hbmdsZSk7XHJcbiAgICAgICAgdDEgPSBhICogY29zIC0gYTEzICogc2luO1xyXG4gICAgICAgIHQyID0gYiAqIGNvcyAtIGEyMyAqIHNpbjtcclxuICAgICAgICB0MyA9IGMgKiBjb3MgLSBhMzMgKiBzaW47XHJcbiAgICAgICAgYTQzID0gZCAqIHNpbiArIGE0MyAqIGNvcztcclxuICAgICAgICBhID0gdDE7XHJcbiAgICAgICAgYiA9IHQyO1xyXG4gICAgICAgIGMgPSB0MztcclxuICAgICAgfSAvL3JvdGF0aW9uWlxyXG5cclxuXHJcbiAgICAgIGFuZ2xlID0gX2F0YW4yKGIsIGEpO1xyXG4gICAgICByb3RhdGlvbiA9IGFuZ2xlICogX1JBRDJERUc7XHJcblxyXG4gICAgICBpZiAoYW5nbGUpIHtcclxuICAgICAgICBjb3MgPSBNYXRoLmNvcyhhbmdsZSk7XHJcbiAgICAgICAgc2luID0gTWF0aC5zaW4oYW5nbGUpO1xyXG4gICAgICAgIHQxID0gYSAqIGNvcyArIGIgKiBzaW47XHJcbiAgICAgICAgdDIgPSBhMTIgKiBjb3MgKyBhMjIgKiBzaW47XHJcbiAgICAgICAgYiA9IGIgKiBjb3MgLSBhICogc2luO1xyXG4gICAgICAgIGEyMiA9IGEyMiAqIGNvcyAtIGExMiAqIHNpbjtcclxuICAgICAgICBhID0gdDE7XHJcbiAgICAgICAgYTEyID0gdDI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChyb3RhdGlvblggJiYgTWF0aC5hYnMocm90YXRpb25YKSArIE1hdGguYWJzKHJvdGF0aW9uKSA+IDM1OS45KSB7XHJcbiAgICAgICAgLy93aGVuIHJvdGF0aW9uWSBpcyBzZXQsIGl0IHdpbGwgb2Z0ZW4gYmUgcGFyc2VkIGFzIDE4MCBkZWdyZWVzIGRpZmZlcmVudCB0aGFuIGl0IHNob3VsZCBiZSwgYW5kIHJvdGF0aW9uWCBhbmQgcm90YXRpb24gYm90aCBiZWluZyAxODAgKGl0IGxvb2tzIHRoZSBzYW1lKSwgc28gd2UgYWRqdXN0IGZvciB0aGF0IGhlcmUuXHJcbiAgICAgICAgcm90YXRpb25YID0gcm90YXRpb24gPSAwO1xyXG4gICAgICAgIHJvdGF0aW9uWSA9IDE4MCAtIHJvdGF0aW9uWTtcclxuICAgICAgfVxyXG5cclxuICAgICAgc2NhbGVYID0gX3JvdW5kKE1hdGguc3FydChhICogYSArIGIgKiBiICsgYyAqIGMpKTtcclxuICAgICAgc2NhbGVZID0gX3JvdW5kKE1hdGguc3FydChhMjIgKiBhMjIgKyBhMzIgKiBhMzIpKTtcclxuICAgICAgYW5nbGUgPSBfYXRhbjIoYTEyLCBhMjIpO1xyXG4gICAgICBza2V3WCA9IE1hdGguYWJzKGFuZ2xlKSA+IDAuMDAwMiA/IGFuZ2xlICogX1JBRDJERUcgOiAwO1xyXG4gICAgICBwZXJzcGVjdGl2ZSA9IGE0MyA/IDEgLyAoYTQzIDwgMCA/IC1hNDMgOiBhNDMpIDogMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2FjaGUuc3ZnKSB7XHJcbiAgICAgIC8vc2Vuc2UgaWYgdGhlcmUgYXJlIENTUyB0cmFuc2Zvcm1zIGFwcGxpZWQgb24gYW4gU1ZHIGVsZW1lbnQgaW4gd2hpY2ggY2FzZSB3ZSBtdXN0IG92ZXJ3cml0ZSB0aGVtIHdoZW4gcmVuZGVyaW5nLiBUaGUgdHJhbnNmb3JtIGF0dHJpYnV0ZSBpcyBtb3JlIHJlbGlhYmxlIGNyb3NzLWJyb3dzZXIsIGJ1dCB3ZSBjYW4ndCBqdXN0IHJlbW92ZSB0aGUgQ1NTIG9uZXMgYmVjYXVzZSB0aGV5IG1heSBiZSBhcHBsaWVkIGluIGEgQ1NTIHJ1bGUgc29tZXdoZXJlIChub3QganVzdCBpbmxpbmUpLlxyXG4gICAgICB0MSA9IHRhcmdldC5nZXRBdHRyaWJ1dGUoXCJ0cmFuc2Zvcm1cIik7XHJcbiAgICAgIGNhY2hlLmZvcmNlQ1NTID0gdGFyZ2V0LnNldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiLCBcIlwiKSB8fCAhX2lzTnVsbFRyYW5zZm9ybShfZ2V0Q29tcHV0ZWRQcm9wZXJ0eSh0YXJnZXQsIF90cmFuc2Zvcm1Qcm9wKSk7XHJcbiAgICAgIHQxICYmIHRhcmdldC5zZXRBdHRyaWJ1dGUoXCJ0cmFuc2Zvcm1cIiwgdDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaWYgKE1hdGguYWJzKHNrZXdYKSA+IDkwICYmIE1hdGguYWJzKHNrZXdYKSA8IDI3MCkge1xyXG4gICAgaWYgKGludmVydGVkU2NhbGVYKSB7XHJcbiAgICAgIHNjYWxlWCAqPSAtMTtcclxuICAgICAgc2tld1ggKz0gcm90YXRpb24gPD0gMCA/IDE4MCA6IC0xODA7XHJcbiAgICAgIHJvdGF0aW9uICs9IHJvdGF0aW9uIDw9IDAgPyAxODAgOiAtMTgwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2NhbGVZICo9IC0xO1xyXG4gICAgICBza2V3WCArPSBza2V3WCA8PSAwID8gMTgwIDogLTE4MDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVuY2FjaGUgPSB1bmNhY2hlIHx8IGNhY2hlLnVuY2FjaGU7XHJcbiAgY2FjaGUueCA9IHggLSAoKGNhY2hlLnhQZXJjZW50ID0geCAmJiAoIXVuY2FjaGUgJiYgY2FjaGUueFBlcmNlbnQgfHwgKE1hdGgucm91bmQodGFyZ2V0Lm9mZnNldFdpZHRoIC8gMikgPT09IE1hdGgucm91bmQoLXgpID8gLTUwIDogMCkpKSA/IHRhcmdldC5vZmZzZXRXaWR0aCAqIGNhY2hlLnhQZXJjZW50IC8gMTAwIDogMCkgKyBweDtcclxuICBjYWNoZS55ID0geSAtICgoY2FjaGUueVBlcmNlbnQgPSB5ICYmICghdW5jYWNoZSAmJiBjYWNoZS55UGVyY2VudCB8fCAoTWF0aC5yb3VuZCh0YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMikgPT09IE1hdGgucm91bmQoLXkpID8gLTUwIDogMCkpKSA/IHRhcmdldC5vZmZzZXRIZWlnaHQgKiBjYWNoZS55UGVyY2VudCAvIDEwMCA6IDApICsgcHg7XHJcbiAgY2FjaGUueiA9IHogKyBweDtcclxuICBjYWNoZS5zY2FsZVggPSBfcm91bmQoc2NhbGVYKTtcclxuICBjYWNoZS5zY2FsZVkgPSBfcm91bmQoc2NhbGVZKTtcclxuICBjYWNoZS5yb3RhdGlvbiA9IF9yb3VuZChyb3RhdGlvbikgKyBkZWc7XHJcbiAgY2FjaGUucm90YXRpb25YID0gX3JvdW5kKHJvdGF0aW9uWCkgKyBkZWc7XHJcbiAgY2FjaGUucm90YXRpb25ZID0gX3JvdW5kKHJvdGF0aW9uWSkgKyBkZWc7XHJcbiAgY2FjaGUuc2tld1ggPSBza2V3WCArIGRlZztcclxuICBjYWNoZS5za2V3WSA9IHNrZXdZICsgZGVnO1xyXG4gIGNhY2hlLnRyYW5zZm9ybVBlcnNwZWN0aXZlID0gcGVyc3BlY3RpdmUgKyBweDtcclxuXHJcbiAgaWYgKGNhY2hlLnpPcmlnaW4gPSBwYXJzZUZsb2F0KG9yaWdpbi5zcGxpdChcIiBcIilbMl0pIHx8ICF1bmNhY2hlICYmIGNhY2hlLnpPcmlnaW4gfHwgMCkge1xyXG4gICAgc3R5bGVbX3RyYW5zZm9ybU9yaWdpblByb3BdID0gX2ZpcnN0VHdvT25seShvcmlnaW4pO1xyXG4gIH1cclxuXHJcbiAgY2FjaGUueE9mZnNldCA9IGNhY2hlLnlPZmZzZXQgPSAwO1xyXG4gIGNhY2hlLmZvcmNlM0QgPSBfY29uZmlnLmZvcmNlM0Q7XHJcbiAgY2FjaGUucmVuZGVyVHJhbnNmb3JtID0gY2FjaGUuc3ZnID8gX3JlbmRlclNWR1RyYW5zZm9ybXMgOiBfc3VwcG9ydHMzRCA/IF9yZW5kZXJDU1NUcmFuc2Zvcm1zIDogX3JlbmRlck5vbjNEVHJhbnNmb3JtcztcclxuICBjYWNoZS51bmNhY2hlID0gMDtcclxuICByZXR1cm4gY2FjaGU7XHJcbn0sXHJcbiAgICBfZmlyc3RUd29Pbmx5ID0gZnVuY3Rpb24gX2ZpcnN0VHdvT25seSh2YWx1ZSkge1xyXG4gIHJldHVybiAodmFsdWUgPSB2YWx1ZS5zcGxpdChcIiBcIikpWzBdICsgXCIgXCIgKyB2YWx1ZVsxXTtcclxufSxcclxuICAgIC8vZm9yIGhhbmRsaW5nIHRyYW5zZm9ybU9yaWdpbiB2YWx1ZXMsIHN0cmlwcGluZyBvdXQgdGhlIDNyZCBkaW1lbnNpb25cclxuX2FkZFB4VHJhbnNsYXRlID0gZnVuY3Rpb24gX2FkZFB4VHJhbnNsYXRlKHRhcmdldCwgc3RhcnQsIHZhbHVlKSB7XHJcbiAgdmFyIHVuaXQgPSBnZXRVbml0KHN0YXJ0KTtcclxuICByZXR1cm4gX3JvdW5kKHBhcnNlRmxvYXQoc3RhcnQpICsgcGFyc2VGbG9hdChfY29udmVydFRvVW5pdCh0YXJnZXQsIFwieFwiLCB2YWx1ZSArIFwicHhcIiwgdW5pdCkpKSArIHVuaXQ7XHJcbn0sXHJcbiAgICBfcmVuZGVyTm9uM0RUcmFuc2Zvcm1zID0gZnVuY3Rpb24gX3JlbmRlck5vbjNEVHJhbnNmb3JtcyhyYXRpbywgY2FjaGUpIHtcclxuICBjYWNoZS56ID0gXCIwcHhcIjtcclxuICBjYWNoZS5yb3RhdGlvblkgPSBjYWNoZS5yb3RhdGlvblggPSBcIjBkZWdcIjtcclxuICBjYWNoZS5mb3JjZTNEID0gMDtcclxuXHJcbiAgX3JlbmRlckNTU1RyYW5zZm9ybXMocmF0aW8sIGNhY2hlKTtcclxufSxcclxuICAgIF96ZXJvRGVnID0gXCIwZGVnXCIsXHJcbiAgICBfemVyb1B4ID0gXCIwcHhcIixcclxuICAgIF9lbmRQYXJlbnRoZXNpcyA9IFwiKSBcIixcclxuICAgIF9yZW5kZXJDU1NUcmFuc2Zvcm1zID0gZnVuY3Rpb24gX3JlbmRlckNTU1RyYW5zZm9ybXMocmF0aW8sIGNhY2hlKSB7XHJcbiAgdmFyIF9yZWYgPSBjYWNoZSB8fCB0aGlzLFxyXG4gICAgICB4UGVyY2VudCA9IF9yZWYueFBlcmNlbnQsXHJcbiAgICAgIHlQZXJjZW50ID0gX3JlZi55UGVyY2VudCxcclxuICAgICAgeCA9IF9yZWYueCxcclxuICAgICAgeSA9IF9yZWYueSxcclxuICAgICAgeiA9IF9yZWYueixcclxuICAgICAgcm90YXRpb24gPSBfcmVmLnJvdGF0aW9uLFxyXG4gICAgICByb3RhdGlvblkgPSBfcmVmLnJvdGF0aW9uWSxcclxuICAgICAgcm90YXRpb25YID0gX3JlZi5yb3RhdGlvblgsXHJcbiAgICAgIHNrZXdYID0gX3JlZi5za2V3WCxcclxuICAgICAgc2tld1kgPSBfcmVmLnNrZXdZLFxyXG4gICAgICBzY2FsZVggPSBfcmVmLnNjYWxlWCxcclxuICAgICAgc2NhbGVZID0gX3JlZi5zY2FsZVksXHJcbiAgICAgIHRyYW5zZm9ybVBlcnNwZWN0aXZlID0gX3JlZi50cmFuc2Zvcm1QZXJzcGVjdGl2ZSxcclxuICAgICAgZm9yY2UzRCA9IF9yZWYuZm9yY2UzRCxcclxuICAgICAgdGFyZ2V0ID0gX3JlZi50YXJnZXQsXHJcbiAgICAgIHpPcmlnaW4gPSBfcmVmLnpPcmlnaW4sXHJcbiAgICAgIHRyYW5zZm9ybXMgPSBcIlwiLFxyXG4gICAgICB1c2UzRCA9IGZvcmNlM0QgPT09IFwiYXV0b1wiICYmIHJhdGlvICYmIHJhdGlvICE9PSAxIHx8IGZvcmNlM0QgPT09IHRydWU7IC8vIFNhZmFyaSBoYXMgYSBidWcgdGhhdCBjYXVzZXMgaXQgbm90IHRvIHJlbmRlciAzRCB0cmFuc2Zvcm0tb3JpZ2luIHZhbHVlcyBwcm9wZXJseSwgc28gd2UgZm9yY2UgdGhlIHogb3JpZ2luIHRvIDAsIHJlY29yZCBpdCBpbiB0aGUgY2FjaGUsIGFuZCB0aGVuIGRvIHRoZSBtYXRoIGhlcmUgdG8gb2Zmc2V0IHRoZSB0cmFuc2xhdGUgdmFsdWVzIGFjY29yZGluZ2x5IChiYXNpY2FsbHkgZG8gdGhlIDNEIHRyYW5zZm9ybS1vcmlnaW4gcGFydCBtYW51YWxseSlcclxuXHJcblxyXG4gIGlmICh6T3JpZ2luICYmIChyb3RhdGlvblggIT09IF96ZXJvRGVnIHx8IHJvdGF0aW9uWSAhPT0gX3plcm9EZWcpKSB7XHJcbiAgICB2YXIgYW5nbGUgPSBwYXJzZUZsb2F0KHJvdGF0aW9uWSkgKiBfREVHMlJBRCxcclxuICAgICAgICBhMTMgPSBNYXRoLnNpbihhbmdsZSksXHJcbiAgICAgICAgYTMzID0gTWF0aC5jb3MoYW5nbGUpLFxyXG4gICAgICAgIGNvcztcclxuXHJcbiAgICBhbmdsZSA9IHBhcnNlRmxvYXQocm90YXRpb25YKSAqIF9ERUcyUkFEO1xyXG4gICAgY29zID0gTWF0aC5jb3MoYW5nbGUpO1xyXG4gICAgeCA9IF9hZGRQeFRyYW5zbGF0ZSh0YXJnZXQsIHgsIGExMyAqIGNvcyAqIC16T3JpZ2luKTtcclxuICAgIHkgPSBfYWRkUHhUcmFuc2xhdGUodGFyZ2V0LCB5LCAtTWF0aC5zaW4oYW5nbGUpICogLXpPcmlnaW4pO1xyXG4gICAgeiA9IF9hZGRQeFRyYW5zbGF0ZSh0YXJnZXQsIHosIGEzMyAqIGNvcyAqIC16T3JpZ2luICsgek9yaWdpbik7XHJcbiAgfVxyXG5cclxuICBpZiAodHJhbnNmb3JtUGVyc3BlY3RpdmUgIT09IF96ZXJvUHgpIHtcclxuICAgIHRyYW5zZm9ybXMgKz0gXCJwZXJzcGVjdGl2ZShcIiArIHRyYW5zZm9ybVBlcnNwZWN0aXZlICsgX2VuZFBhcmVudGhlc2lzO1xyXG4gIH1cclxuXHJcbiAgaWYgKHhQZXJjZW50IHx8IHlQZXJjZW50KSB7XHJcbiAgICB0cmFuc2Zvcm1zICs9IFwidHJhbnNsYXRlKFwiICsgeFBlcmNlbnQgKyBcIiUsIFwiICsgeVBlcmNlbnQgKyBcIiUpIFwiO1xyXG4gIH1cclxuXHJcbiAgaWYgKHVzZTNEIHx8IHggIT09IF96ZXJvUHggfHwgeSAhPT0gX3plcm9QeCB8fCB6ICE9PSBfemVyb1B4KSB7XHJcbiAgICB0cmFuc2Zvcm1zICs9IHogIT09IF96ZXJvUHggfHwgdXNlM0QgPyBcInRyYW5zbGF0ZTNkKFwiICsgeCArIFwiLCBcIiArIHkgKyBcIiwgXCIgKyB6ICsgXCIpIFwiIDogXCJ0cmFuc2xhdGUoXCIgKyB4ICsgXCIsIFwiICsgeSArIF9lbmRQYXJlbnRoZXNpcztcclxuICB9XHJcblxyXG4gIGlmIChyb3RhdGlvbiAhPT0gX3plcm9EZWcpIHtcclxuICAgIHRyYW5zZm9ybXMgKz0gXCJyb3RhdGUoXCIgKyByb3RhdGlvbiArIF9lbmRQYXJlbnRoZXNpcztcclxuICB9XHJcblxyXG4gIGlmIChyb3RhdGlvblkgIT09IF96ZXJvRGVnKSB7XHJcbiAgICB0cmFuc2Zvcm1zICs9IFwicm90YXRlWShcIiArIHJvdGF0aW9uWSArIF9lbmRQYXJlbnRoZXNpcztcclxuICB9XHJcblxyXG4gIGlmIChyb3RhdGlvblggIT09IF96ZXJvRGVnKSB7XHJcbiAgICB0cmFuc2Zvcm1zICs9IFwicm90YXRlWChcIiArIHJvdGF0aW9uWCArIF9lbmRQYXJlbnRoZXNpcztcclxuICB9XHJcblxyXG4gIGlmIChza2V3WCAhPT0gX3plcm9EZWcgfHwgc2tld1kgIT09IF96ZXJvRGVnKSB7XHJcbiAgICB0cmFuc2Zvcm1zICs9IFwic2tldyhcIiArIHNrZXdYICsgXCIsIFwiICsgc2tld1kgKyBfZW5kUGFyZW50aGVzaXM7XHJcbiAgfVxyXG5cclxuICBpZiAoc2NhbGVYICE9PSAxIHx8IHNjYWxlWSAhPT0gMSkge1xyXG4gICAgdHJhbnNmb3JtcyArPSBcInNjYWxlKFwiICsgc2NhbGVYICsgXCIsIFwiICsgc2NhbGVZICsgX2VuZFBhcmVudGhlc2lzO1xyXG4gIH1cclxuXHJcbiAgdGFyZ2V0LnN0eWxlW190cmFuc2Zvcm1Qcm9wXSA9IHRyYW5zZm9ybXMgfHwgXCJ0cmFuc2xhdGUoMCwgMClcIjtcclxufSxcclxuICAgIF9yZW5kZXJTVkdUcmFuc2Zvcm1zID0gZnVuY3Rpb24gX3JlbmRlclNWR1RyYW5zZm9ybXMocmF0aW8sIGNhY2hlKSB7XHJcbiAgdmFyIF9yZWYyID0gY2FjaGUgfHwgdGhpcyxcclxuICAgICAgeFBlcmNlbnQgPSBfcmVmMi54UGVyY2VudCxcclxuICAgICAgeVBlcmNlbnQgPSBfcmVmMi55UGVyY2VudCxcclxuICAgICAgeCA9IF9yZWYyLngsXHJcbiAgICAgIHkgPSBfcmVmMi55LFxyXG4gICAgICByb3RhdGlvbiA9IF9yZWYyLnJvdGF0aW9uLFxyXG4gICAgICBza2V3WCA9IF9yZWYyLnNrZXdYLFxyXG4gICAgICBza2V3WSA9IF9yZWYyLnNrZXdZLFxyXG4gICAgICBzY2FsZVggPSBfcmVmMi5zY2FsZVgsXHJcbiAgICAgIHNjYWxlWSA9IF9yZWYyLnNjYWxlWSxcclxuICAgICAgdGFyZ2V0ID0gX3JlZjIudGFyZ2V0LFxyXG4gICAgICB4T3JpZ2luID0gX3JlZjIueE9yaWdpbixcclxuICAgICAgeU9yaWdpbiA9IF9yZWYyLnlPcmlnaW4sXHJcbiAgICAgIHhPZmZzZXQgPSBfcmVmMi54T2Zmc2V0LFxyXG4gICAgICB5T2Zmc2V0ID0gX3JlZjIueU9mZnNldCxcclxuICAgICAgZm9yY2VDU1MgPSBfcmVmMi5mb3JjZUNTUyxcclxuICAgICAgdHggPSBwYXJzZUZsb2F0KHgpLFxyXG4gICAgICB0eSA9IHBhcnNlRmxvYXQoeSksXHJcbiAgICAgIGExMSxcclxuICAgICAgYTIxLFxyXG4gICAgICBhMTIsXHJcbiAgICAgIGEyMixcclxuICAgICAgdGVtcDtcclxuXHJcbiAgcm90YXRpb24gPSBwYXJzZUZsb2F0KHJvdGF0aW9uKTtcclxuICBza2V3WCA9IHBhcnNlRmxvYXQoc2tld1gpO1xyXG4gIHNrZXdZID0gcGFyc2VGbG9hdChza2V3WSk7XHJcblxyXG4gIGlmIChza2V3WSkge1xyXG4gICAgLy9mb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgd2UgY29tYmluZSBhbGwgc2tld2luZyBpbnRvIHRoZSBza2V3WCBhbmQgcm90YXRpb24gdmFsdWVzLiBSZW1lbWJlciwgYSBza2V3WSBvZiAxMCBkZWdyZWVzIGxvb2tzIHRoZSBzYW1lIGFzIGEgcm90YXRpb24gb2YgMTAgZGVncmVlcyBwbHVzIGEgc2tld1ggb2YgMTAgZGVncmVlcy5cclxuICAgIHNrZXdZID0gcGFyc2VGbG9hdChza2V3WSk7XHJcbiAgICBza2V3WCArPSBza2V3WTtcclxuICAgIHJvdGF0aW9uICs9IHNrZXdZO1xyXG4gIH1cclxuXHJcbiAgaWYgKHJvdGF0aW9uIHx8IHNrZXdYKSB7XHJcbiAgICByb3RhdGlvbiAqPSBfREVHMlJBRDtcclxuICAgIHNrZXdYICo9IF9ERUcyUkFEO1xyXG4gICAgYTExID0gTWF0aC5jb3Mocm90YXRpb24pICogc2NhbGVYO1xyXG4gICAgYTIxID0gTWF0aC5zaW4ocm90YXRpb24pICogc2NhbGVYO1xyXG4gICAgYTEyID0gTWF0aC5zaW4ocm90YXRpb24gLSBza2V3WCkgKiAtc2NhbGVZO1xyXG4gICAgYTIyID0gTWF0aC5jb3Mocm90YXRpb24gLSBza2V3WCkgKiBzY2FsZVk7XHJcblxyXG4gICAgaWYgKHNrZXdYKSB7XHJcbiAgICAgIHNrZXdZICo9IF9ERUcyUkFEO1xyXG4gICAgICB0ZW1wID0gTWF0aC50YW4oc2tld1ggLSBza2V3WSk7XHJcbiAgICAgIHRlbXAgPSBNYXRoLnNxcnQoMSArIHRlbXAgKiB0ZW1wKTtcclxuICAgICAgYTEyICo9IHRlbXA7XHJcbiAgICAgIGEyMiAqPSB0ZW1wO1xyXG5cclxuICAgICAgaWYgKHNrZXdZKSB7XHJcbiAgICAgICAgdGVtcCA9IE1hdGgudGFuKHNrZXdZKTtcclxuICAgICAgICB0ZW1wID0gTWF0aC5zcXJ0KDEgKyB0ZW1wICogdGVtcCk7XHJcbiAgICAgICAgYTExICo9IHRlbXA7XHJcbiAgICAgICAgYTIxICo9IHRlbXA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhMTEgPSBfcm91bmQoYTExKTtcclxuICAgIGEyMSA9IF9yb3VuZChhMjEpO1xyXG4gICAgYTEyID0gX3JvdW5kKGExMik7XHJcbiAgICBhMjIgPSBfcm91bmQoYTIyKTtcclxuICB9IGVsc2Uge1xyXG4gICAgYTExID0gc2NhbGVYO1xyXG4gICAgYTIyID0gc2NhbGVZO1xyXG4gICAgYTIxID0gYTEyID0gMDtcclxuICB9XHJcblxyXG4gIGlmICh0eCAmJiAhfih4ICsgXCJcIikuaW5kZXhPZihcInB4XCIpIHx8IHR5ICYmICF+KHkgKyBcIlwiKS5pbmRleE9mKFwicHhcIikpIHtcclxuICAgIHR4ID0gX2NvbnZlcnRUb1VuaXQodGFyZ2V0LCBcInhcIiwgeCwgXCJweFwiKTtcclxuICAgIHR5ID0gX2NvbnZlcnRUb1VuaXQodGFyZ2V0LCBcInlcIiwgeSwgXCJweFwiKTtcclxuICB9XHJcblxyXG4gIGlmICh4T3JpZ2luIHx8IHlPcmlnaW4gfHwgeE9mZnNldCB8fCB5T2Zmc2V0KSB7XHJcbiAgICB0eCA9IF9yb3VuZCh0eCArIHhPcmlnaW4gLSAoeE9yaWdpbiAqIGExMSArIHlPcmlnaW4gKiBhMTIpICsgeE9mZnNldCk7XHJcbiAgICB0eSA9IF9yb3VuZCh0eSArIHlPcmlnaW4gLSAoeE9yaWdpbiAqIGEyMSArIHlPcmlnaW4gKiBhMjIpICsgeU9mZnNldCk7XHJcbiAgfVxyXG5cclxuICBpZiAoeFBlcmNlbnQgfHwgeVBlcmNlbnQpIHtcclxuICAgIC8vVGhlIFNWRyBzcGVjIGRvZXNuJ3Qgc3VwcG9ydCBwZXJjZW50YWdlLWJhc2VkIHRyYW5zbGF0aW9uIGluIHRoZSBcInRyYW5zZm9ybVwiIGF0dHJpYnV0ZSwgc28gd2UgbWVyZ2UgaXQgaW50byB0aGUgdHJhbnNsYXRpb24gdG8gc2ltdWxhdGUgaXQuXHJcbiAgICB0ZW1wID0gdGFyZ2V0LmdldEJCb3goKTtcclxuICAgIHR4ID0gX3JvdW5kKHR4ICsgeFBlcmNlbnQgLyAxMDAgKiB0ZW1wLndpZHRoKTtcclxuICAgIHR5ID0gX3JvdW5kKHR5ICsgeVBlcmNlbnQgLyAxMDAgKiB0ZW1wLmhlaWdodCk7XHJcbiAgfVxyXG5cclxuICB0ZW1wID0gXCJtYXRyaXgoXCIgKyBhMTEgKyBcIixcIiArIGEyMSArIFwiLFwiICsgYTEyICsgXCIsXCIgKyBhMjIgKyBcIixcIiArIHR4ICsgXCIsXCIgKyB0eSArIFwiKVwiO1xyXG4gIHRhcmdldC5zZXRBdHRyaWJ1dGUoXCJ0cmFuc2Zvcm1cIiwgdGVtcCk7XHJcbiAgZm9yY2VDU1MgJiYgKHRhcmdldC5zdHlsZVtfdHJhbnNmb3JtUHJvcF0gPSB0ZW1wKTsgLy9zb21lIGJyb3dzZXJzIHByaW9yaXRpemUgQ1NTIHRyYW5zZm9ybXMgb3ZlciB0aGUgdHJhbnNmb3JtIGF0dHJpYnV0ZS4gV2hlbiB3ZSBzZW5zZSB0aGF0IHRoZSB1c2VyIGhhcyBDU1MgdHJhbnNmb3JtcyBhcHBsaWVkLCB3ZSBtdXN0IG92ZXJ3cml0ZSB0aGVtIHRoaXMgd2F5IChvdGhlcndpc2Ugc29tZSBicm93c2VyIHNpbXBseSB3b24ndCByZW5kZXIgdGhlIHRyYW5zZm9ybSBhdHRyaWJ1dGUgY2hhbmdlcyEpXHJcbn0sXHJcbiAgICBfYWRkUm90YXRpb25hbFByb3BUd2VlbiA9IGZ1bmN0aW9uIF9hZGRSb3RhdGlvbmFsUHJvcFR3ZWVuKHBsdWdpbiwgdGFyZ2V0LCBwcm9wZXJ0eSwgc3RhcnROdW0sIGVuZFZhbHVlKSB7XHJcbiAgdmFyIGNhcCA9IDM2MCxcclxuICAgICAgaXNTdHJpbmcgPSBfaXNTdHJpbmcoZW5kVmFsdWUpLFxyXG4gICAgICBlbmROdW0gPSBwYXJzZUZsb2F0KGVuZFZhbHVlKSAqIChpc1N0cmluZyAmJiB+ZW5kVmFsdWUuaW5kZXhPZihcInJhZFwiKSA/IF9SQUQyREVHIDogMSksXHJcbiAgICAgIGNoYW5nZSA9IGVuZE51bSAtIHN0YXJ0TnVtLFxyXG4gICAgICBmaW5hbFZhbHVlID0gc3RhcnROdW0gKyBjaGFuZ2UgKyBcImRlZ1wiLFxyXG4gICAgICBkaXJlY3Rpb24sXHJcbiAgICAgIHB0O1xyXG5cclxuICBpZiAoaXNTdHJpbmcpIHtcclxuICAgIGRpcmVjdGlvbiA9IGVuZFZhbHVlLnNwbGl0KFwiX1wiKVsxXTtcclxuXHJcbiAgICBpZiAoZGlyZWN0aW9uID09PSBcInNob3J0XCIpIHtcclxuICAgICAgY2hhbmdlICU9IGNhcDtcclxuXHJcbiAgICAgIGlmIChjaGFuZ2UgIT09IGNoYW5nZSAlIChjYXAgLyAyKSkge1xyXG4gICAgICAgIGNoYW5nZSArPSBjaGFuZ2UgPCAwID8gY2FwIDogLWNhcDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChkaXJlY3Rpb24gPT09IFwiY3dcIiAmJiBjaGFuZ2UgPCAwKSB7XHJcbiAgICAgIGNoYW5nZSA9IChjaGFuZ2UgKyBjYXAgKiBfYmlnTnVtKSAlIGNhcCAtIH5+KGNoYW5nZSAvIGNhcCkgKiBjYXA7XHJcbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gXCJjY3dcIiAmJiBjaGFuZ2UgPiAwKSB7XHJcbiAgICAgIGNoYW5nZSA9IChjaGFuZ2UgLSBjYXAgKiBfYmlnTnVtKSAlIGNhcCAtIH5+KGNoYW5nZSAvIGNhcCkgKiBjYXA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwbHVnaW4uX3B0ID0gcHQgPSBuZXcgUHJvcFR3ZWVuKHBsdWdpbi5fcHQsIHRhcmdldCwgcHJvcGVydHksIHN0YXJ0TnVtLCBjaGFuZ2UsIF9yZW5kZXJQcm9wV2l0aEVuZCk7XHJcbiAgcHQuZSA9IGZpbmFsVmFsdWU7XHJcbiAgcHQudSA9IFwiZGVnXCI7XHJcblxyXG4gIHBsdWdpbi5fcHJvcHMucHVzaChwcm9wZXJ0eSk7XHJcblxyXG4gIHJldHVybiBwdDtcclxufSxcclxuICAgIF9hc3NpZ24gPSBmdW5jdGlvbiBfYXNzaWduKHRhcmdldCwgc291cmNlKSB7XHJcbiAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBoYXZlIE9iamVjdC5hc3NpZ24oKSwgc28gd2UgcmVjcmVhdGUgaXQgaGVyZS5cclxuICBmb3IgKHZhciBwIGluIHNvdXJjZSkge1xyXG4gICAgdGFyZ2V0W3BdID0gc291cmNlW3BdO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRhcmdldDtcclxufSxcclxuICAgIF9hZGRSYXdUcmFuc2Zvcm1QVHMgPSBmdW5jdGlvbiBfYWRkUmF3VHJhbnNmb3JtUFRzKHBsdWdpbiwgdHJhbnNmb3JtcywgdGFyZ2V0KSB7XHJcbiAgLy9mb3IgaGFuZGxpbmcgY2FzZXMgd2hlcmUgc29tZW9uZSBwYXNzZXMgaW4gYSB3aG9sZSB0cmFuc2Zvcm0gc3RyaW5nLCBsaWtlIHRyYW5zZm9ybTogXCJzY2FsZSgyLCAzKSByb3RhdGUoMjBkZWcpIHRyYW5zbGF0ZVkoMzBlbSlcIlxyXG4gIHZhciBzdGFydENhY2hlID0gX2Fzc2lnbih7fSwgdGFyZ2V0Ll9nc2FwKSxcclxuICAgICAgZXhjbHVkZSA9IFwicGVyc3BlY3RpdmUsZm9yY2UzRCx0cmFuc2Zvcm1PcmlnaW4sc3ZnT3JpZ2luXCIsXHJcbiAgICAgIHN0eWxlID0gdGFyZ2V0LnN0eWxlLFxyXG4gICAgICBlbmRDYWNoZSxcclxuICAgICAgcCxcclxuICAgICAgc3RhcnRWYWx1ZSxcclxuICAgICAgZW5kVmFsdWUsXHJcbiAgICAgIHN0YXJ0TnVtLFxyXG4gICAgICBlbmROdW0sXHJcbiAgICAgIHN0YXJ0VW5pdCxcclxuICAgICAgZW5kVW5pdDtcclxuXHJcbiAgaWYgKHN0YXJ0Q2FjaGUuc3ZnKSB7XHJcbiAgICBzdGFydFZhbHVlID0gdGFyZ2V0LmdldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiKTtcclxuICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoXCJ0cmFuc2Zvcm1cIiwgXCJcIik7XHJcbiAgICBzdHlsZVtfdHJhbnNmb3JtUHJvcF0gPSB0cmFuc2Zvcm1zO1xyXG4gICAgZW5kQ2FjaGUgPSBfcGFyc2VUcmFuc2Zvcm0odGFyZ2V0LCAxKTtcclxuXHJcbiAgICBfcmVtb3ZlUHJvcGVydHkodGFyZ2V0LCBfdHJhbnNmb3JtUHJvcCk7XHJcblxyXG4gICAgdGFyZ2V0LnNldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiLCBzdGFydFZhbHVlKTtcclxuICB9IGVsc2Uge1xyXG4gICAgc3RhcnRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KVtfdHJhbnNmb3JtUHJvcF07XHJcbiAgICBzdHlsZVtfdHJhbnNmb3JtUHJvcF0gPSB0cmFuc2Zvcm1zO1xyXG4gICAgZW5kQ2FjaGUgPSBfcGFyc2VUcmFuc2Zvcm0odGFyZ2V0LCAxKTtcclxuICAgIHN0eWxlW190cmFuc2Zvcm1Qcm9wXSA9IHN0YXJ0VmFsdWU7XHJcbiAgfVxyXG5cclxuICBmb3IgKHAgaW4gX3RyYW5zZm9ybVByb3BzKSB7XHJcbiAgICBzdGFydFZhbHVlID0gc3RhcnRDYWNoZVtwXTtcclxuICAgIGVuZFZhbHVlID0gZW5kQ2FjaGVbcF07XHJcblxyXG4gICAgaWYgKHN0YXJ0VmFsdWUgIT09IGVuZFZhbHVlICYmIGV4Y2x1ZGUuaW5kZXhPZihwKSA8IDApIHtcclxuICAgICAgLy90d2VlbmluZyB0byBubyBwZXJzcGVjdGl2ZSBnaXZlcyB2ZXJ5IHVuaW50dWl0aXZlIHJlc3VsdHMgLSBqdXN0IGtlZXAgdGhlIHNhbWUgcGVyc3BlY3RpdmUgaW4gdGhhdCBjYXNlLlxyXG4gICAgICBzdGFydFVuaXQgPSBnZXRVbml0KHN0YXJ0VmFsdWUpO1xyXG4gICAgICBlbmRVbml0ID0gZ2V0VW5pdChlbmRWYWx1ZSk7XHJcbiAgICAgIHN0YXJ0TnVtID0gc3RhcnRVbml0ICE9PSBlbmRVbml0ID8gX2NvbnZlcnRUb1VuaXQodGFyZ2V0LCBwLCBzdGFydFZhbHVlLCBlbmRVbml0KSA6IHBhcnNlRmxvYXQoc3RhcnRWYWx1ZSk7XHJcbiAgICAgIGVuZE51bSA9IHBhcnNlRmxvYXQoZW5kVmFsdWUpO1xyXG4gICAgICBwbHVnaW4uX3B0ID0gbmV3IFByb3BUd2VlbihwbHVnaW4uX3B0LCBlbmRDYWNoZSwgcCwgc3RhcnROdW0sIGVuZE51bSAtIHN0YXJ0TnVtLCBfcmVuZGVyQ1NTUHJvcCk7XHJcbiAgICAgIHBsdWdpbi5fcHQudSA9IGVuZFVuaXQgfHwgMDtcclxuXHJcbiAgICAgIHBsdWdpbi5fcHJvcHMucHVzaChwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9hc3NpZ24oZW5kQ2FjaGUsIHN0YXJ0Q2FjaGUpO1xyXG59OyAvLyBoYW5kbGUgc3BsaXR0aW5nIGFwYXJ0IHBhZGRpbmcsIG1hcmdpbiwgYm9yZGVyV2lkdGgsIGFuZCBib3JkZXJSYWRpdXMgaW50byB0aGVpciA0IGNvbXBvbmVudHMuIEZpcmVmb3gsIGZvciBleGFtcGxlLCB3b24ndCByZXBvcnQgYm9yZGVyUmFkaXVzIGNvcnJlY3RseSAtIGl0IHdpbGwgb25seSBkbyBib3JkZXJUb3BMZWZ0UmFkaXVzIGFuZCB0aGUgb3RoZXIgY29ybmVycy4gV2UgYWxzbyB3YW50IHRvIGhhbmRsZSBwYWRkaW5nVG9wLCBtYXJnaW5MZWZ0LCBib3JkZXJSaWdodFdpZHRoLCBldGMuXHJcblxyXG5cclxuX2ZvckVhY2hOYW1lKFwicGFkZGluZyxtYXJnaW4sV2lkdGgsUmFkaXVzXCIsIGZ1bmN0aW9uIChuYW1lLCBpbmRleCkge1xyXG4gIHZhciB0ID0gXCJUb3BcIixcclxuICAgICAgciA9IFwiUmlnaHRcIixcclxuICAgICAgYiA9IFwiQm90dG9tXCIsXHJcbiAgICAgIGwgPSBcIkxlZnRcIixcclxuICAgICAgcHJvcHMgPSAoaW5kZXggPCAzID8gW3QsIHIsIGIsIGxdIDogW3QgKyBsLCB0ICsgciwgYiArIHIsIGIgKyBsXSkubWFwKGZ1bmN0aW9uIChzaWRlKSB7XHJcbiAgICByZXR1cm4gaW5kZXggPCAyID8gbmFtZSArIHNpZGUgOiBcImJvcmRlclwiICsgc2lkZSArIG5hbWU7XHJcbiAgfSk7XHJcblxyXG4gIF9zcGVjaWFsUHJvcHNbaW5kZXggPiAxID8gXCJib3JkZXJcIiArIG5hbWUgOiBuYW1lXSA9IGZ1bmN0aW9uIChwbHVnaW4sIHRhcmdldCwgcHJvcGVydHksIGVuZFZhbHVlLCB0d2Vlbikge1xyXG4gICAgdmFyIGEsIHZhcnM7XHJcblxyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCA0KSB7XHJcbiAgICAgIC8vIGdldHRlciwgcGFzc2VkIHRhcmdldCwgcHJvcGVydHksIGFuZCB1bml0IChmcm9tIF9nZXQoKSlcclxuICAgICAgYSA9IHByb3BzLm1hcChmdW5jdGlvbiAocHJvcCkge1xyXG4gICAgICAgIHJldHVybiBfZ2V0KHBsdWdpbiwgcHJvcCwgcHJvcGVydHkpO1xyXG4gICAgICB9KTtcclxuICAgICAgdmFycyA9IGEuam9pbihcIiBcIik7XHJcbiAgICAgIHJldHVybiB2YXJzLnNwbGl0KGFbMF0pLmxlbmd0aCA9PT0gNSA/IGFbMF0gOiB2YXJzO1xyXG4gICAgfVxyXG5cclxuICAgIGEgPSAoZW5kVmFsdWUgKyBcIlwiKS5zcGxpdChcIiBcIik7XHJcbiAgICB2YXJzID0ge307XHJcbiAgICBwcm9wcy5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wLCBpKSB7XHJcbiAgICAgIHJldHVybiB2YXJzW3Byb3BdID0gYVtpXSA9IGFbaV0gfHwgYVsoaSAtIDEpIC8gMiB8IDBdO1xyXG4gICAgfSk7XHJcbiAgICBwbHVnaW4uaW5pdCh0YXJnZXQsIHZhcnMsIHR3ZWVuKTtcclxuICB9O1xyXG59KTtcclxuXHJcbmV4cG9ydCB2YXIgQ1NTUGx1Z2luID0ge1xyXG4gIG5hbWU6IFwiY3NzXCIsXHJcbiAgcmVnaXN0ZXI6IF9pbml0Q29yZSxcclxuICB0YXJnZXRUZXN0OiBmdW5jdGlvbiB0YXJnZXRUZXN0KHRhcmdldCkge1xyXG4gICAgcmV0dXJuIHRhcmdldC5zdHlsZSAmJiB0YXJnZXQubm9kZVR5cGU7XHJcbiAgfSxcclxuICBpbml0OiBmdW5jdGlvbiBpbml0KHRhcmdldCwgdmFycywgdHdlZW4sIGluZGV4LCB0YXJnZXRzKSB7XHJcbiAgICB2YXIgcHJvcHMgPSB0aGlzLl9wcm9wcyxcclxuICAgICAgICBzdHlsZSA9IHRhcmdldC5zdHlsZSxcclxuICAgICAgICBzdGFydEF0ID0gdHdlZW4udmFycy5zdGFydEF0LFxyXG4gICAgICAgIHN0YXJ0VmFsdWUsXHJcbiAgICAgICAgZW5kVmFsdWUsXHJcbiAgICAgICAgZW5kTnVtLFxyXG4gICAgICAgIHN0YXJ0TnVtLFxyXG4gICAgICAgIHR5cGUsXHJcbiAgICAgICAgc3BlY2lhbFByb3AsXHJcbiAgICAgICAgcCxcclxuICAgICAgICBzdGFydFVuaXQsXHJcbiAgICAgICAgZW5kVW5pdCxcclxuICAgICAgICByZWxhdGl2ZSxcclxuICAgICAgICBpc1RyYW5zZm9ybVJlbGF0ZWQsXHJcbiAgICAgICAgdHJhbnNmb3JtUHJvcFR3ZWVuLFxyXG4gICAgICAgIGNhY2hlLFxyXG4gICAgICAgIHNtb290aCxcclxuICAgICAgICBoYXNQcmlvcml0eSxcclxuICAgICAgICBpbmxpbmVQcm9wcztcclxuICAgIF9wbHVnaW5Jbml0dGVkIHx8IF9pbml0Q29yZSgpOyAvLyB3ZSBtYXkgY2FsbCBpbml0KCkgbXVsdGlwbGUgdGltZXMgb24gdGhlIHNhbWUgcGx1Z2luIGluc3RhbmNlLCBsaWtlIHdoZW4gYWRkaW5nIHNwZWNpYWwgcHJvcGVydGllcywgc28gbWFrZSBzdXJlIHdlIGRvbid0IG92ZXJ3cml0ZSB0aGUgcmV2ZXJ0IGRhdGEgb3IgaW5saW5lUHJvcHNcclxuXHJcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuc3R5bGVzIHx8IF9nZXRTdHlsZVNhdmVyKHRhcmdldCk7XHJcbiAgICBpbmxpbmVQcm9wcyA9IHRoaXMuc3R5bGVzLnByb3BzO1xyXG4gICAgdGhpcy50d2VlbiA9IHR3ZWVuO1xyXG5cclxuICAgIGZvciAocCBpbiB2YXJzKSB7XHJcbiAgICAgIGlmIChwID09PSBcImF1dG9Sb3VuZFwiKSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGVuZFZhbHVlID0gdmFyc1twXTtcclxuXHJcbiAgICAgIGlmIChfcGx1Z2luc1twXSAmJiBfY2hlY2tQbHVnaW4ocCwgdmFycywgdHdlZW4sIGluZGV4LCB0YXJnZXQsIHRhcmdldHMpKSB7XHJcbiAgICAgICAgLy8gcGx1Z2luc1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0eXBlID0gdHlwZW9mIGVuZFZhbHVlO1xyXG4gICAgICBzcGVjaWFsUHJvcCA9IF9zcGVjaWFsUHJvcHNbcF07XHJcblxyXG4gICAgICBpZiAodHlwZSA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgZW5kVmFsdWUgPSBlbmRWYWx1ZS5jYWxsKHR3ZWVuLCBpbmRleCwgdGFyZ2V0LCB0YXJnZXRzKTtcclxuICAgICAgICB0eXBlID0gdHlwZW9mIGVuZFZhbHVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodHlwZSA9PT0gXCJzdHJpbmdcIiAmJiB+ZW5kVmFsdWUuaW5kZXhPZihcInJhbmRvbShcIikpIHtcclxuICAgICAgICBlbmRWYWx1ZSA9IF9yZXBsYWNlUmFuZG9tKGVuZFZhbHVlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHNwZWNpYWxQcm9wKSB7XHJcbiAgICAgICAgc3BlY2lhbFByb3AodGhpcywgdGFyZ2V0LCBwLCBlbmRWYWx1ZSwgdHdlZW4pICYmIChoYXNQcmlvcml0eSA9IDEpO1xyXG4gICAgICB9IGVsc2UgaWYgKHAuc3Vic3RyKDAsIDIpID09PSBcIi0tXCIpIHtcclxuICAgICAgICAvL0NTUyB2YXJpYWJsZVxyXG4gICAgICAgIHN0YXJ0VmFsdWUgPSAoZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUocCkgKyBcIlwiKS50cmltKCk7XHJcbiAgICAgICAgZW5kVmFsdWUgKz0gXCJcIjtcclxuICAgICAgICBfY29sb3JFeHAubGFzdEluZGV4ID0gMDtcclxuXHJcbiAgICAgICAgaWYgKCFfY29sb3JFeHAudGVzdChzdGFydFZhbHVlKSkge1xyXG4gICAgICAgICAgLy8gY29sb3JzIGRvbid0IGhhdmUgdW5pdHNcclxuICAgICAgICAgIHN0YXJ0VW5pdCA9IGdldFVuaXQoc3RhcnRWYWx1ZSk7XHJcbiAgICAgICAgICBlbmRVbml0ID0gZ2V0VW5pdChlbmRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbmRVbml0ID8gc3RhcnRVbml0ICE9PSBlbmRVbml0ICYmIChzdGFydFZhbHVlID0gX2NvbnZlcnRUb1VuaXQodGFyZ2V0LCBwLCBzdGFydFZhbHVlLCBlbmRVbml0KSArIGVuZFVuaXQpIDogc3RhcnRVbml0ICYmIChlbmRWYWx1ZSArPSBzdGFydFVuaXQpO1xyXG4gICAgICAgIHRoaXMuYWRkKHN0eWxlLCBcInNldFByb3BlcnR5XCIsIHN0YXJ0VmFsdWUsIGVuZFZhbHVlLCBpbmRleCwgdGFyZ2V0cywgMCwgMCwgcCk7XHJcbiAgICAgICAgcHJvcHMucHVzaChwKTtcclxuICAgICAgICBpbmxpbmVQcm9wcy5wdXNoKHAsIDAsIHN0eWxlW3BdKTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlICE9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgICAgaWYgKHN0YXJ0QXQgJiYgcCBpbiBzdGFydEF0KSB7XHJcbiAgICAgICAgICAvLyBpbiBjYXNlIHNvbWVvbmUgaGFyZC1jb2RlcyBhIGNvbXBsZXggdmFsdWUgYXMgdGhlIHN0YXJ0LCBsaWtlIHRvcDogXCJjYWxjKDJ2aCAvIDIpXCIuIFdpdGhvdXQgdGhpcywgaXQnZCB1c2UgdGhlIGNvbXB1dGVkIHZhbHVlIChhbHdheXMgaW4gcHgpXHJcbiAgICAgICAgICBzdGFydFZhbHVlID0gdHlwZW9mIHN0YXJ0QXRbcF0gPT09IFwiZnVuY3Rpb25cIiA/IHN0YXJ0QXRbcF0uY2FsbCh0d2VlbiwgaW5kZXgsIHRhcmdldCwgdGFyZ2V0cykgOiBzdGFydEF0W3BdO1xyXG4gICAgICAgICAgX2lzU3RyaW5nKHN0YXJ0VmFsdWUpICYmIH5zdGFydFZhbHVlLmluZGV4T2YoXCJyYW5kb20oXCIpICYmIChzdGFydFZhbHVlID0gX3JlcGxhY2VSYW5kb20oc3RhcnRWYWx1ZSkpO1xyXG4gICAgICAgICAgZ2V0VW5pdChzdGFydFZhbHVlICsgXCJcIikgfHwgc3RhcnRWYWx1ZSA9PT0gXCJhdXRvXCIgfHwgKHN0YXJ0VmFsdWUgKz0gX2NvbmZpZy51bml0c1twXSB8fCBnZXRVbml0KF9nZXQodGFyZ2V0LCBwKSkgfHwgXCJcIik7IC8vIGZvciBjYXNlcyB3aGVuIHNvbWVvbmUgcGFzc2VzIGluIGEgdW5pdGxlc3MgdmFsdWUgbGlrZSB7eDogMTAwfTsgaWYgd2UgdHJ5IHNldHRpbmcgdHJhbnNsYXRlKDEwMCwgMHB4KSBpdCB3b24ndCB3b3JrLlxyXG5cclxuICAgICAgICAgIChzdGFydFZhbHVlICsgXCJcIikuY2hhckF0KDEpID09PSBcIj1cIiAmJiAoc3RhcnRWYWx1ZSA9IF9nZXQodGFyZ2V0LCBwKSk7IC8vIGNhbid0IHdvcmsgd2l0aCByZWxhdGl2ZSB2YWx1ZXNcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc3RhcnRWYWx1ZSA9IF9nZXQodGFyZ2V0LCBwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN0YXJ0TnVtID0gcGFyc2VGbG9hdChzdGFydFZhbHVlKTtcclxuICAgICAgICByZWxhdGl2ZSA9IHR5cGUgPT09IFwic3RyaW5nXCIgJiYgZW5kVmFsdWUuY2hhckF0KDEpID09PSBcIj1cIiAmJiBlbmRWYWx1ZS5zdWJzdHIoMCwgMik7XHJcbiAgICAgICAgcmVsYXRpdmUgJiYgKGVuZFZhbHVlID0gZW5kVmFsdWUuc3Vic3RyKDIpKTtcclxuICAgICAgICBlbmROdW0gPSBwYXJzZUZsb2F0KGVuZFZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKHAgaW4gX3Byb3BlcnR5QWxpYXNlcykge1xyXG4gICAgICAgICAgaWYgKHAgPT09IFwiYXV0b0FscGhhXCIpIHtcclxuICAgICAgICAgICAgLy9zcGVjaWFsIGNhc2Ugd2hlcmUgd2UgY29udHJvbCB0aGUgdmlzaWJpbGl0eSBhbG9uZyB3aXRoIG9wYWNpdHkuIFdlIHN0aWxsIGFsbG93IHRoZSBvcGFjaXR5IHZhbHVlIHRvIHBhc3MgdGhyb3VnaCBhbmQgZ2V0IHR3ZWVuZWQuXHJcbiAgICAgICAgICAgIGlmIChzdGFydE51bSA9PT0gMSAmJiBfZ2V0KHRhcmdldCwgXCJ2aXNpYmlsaXR5XCIpID09PSBcImhpZGRlblwiICYmIGVuZE51bSkge1xyXG4gICAgICAgICAgICAgIC8vaWYgdmlzaWJpbGl0eSBpcyBpbml0aWFsbHkgc2V0IHRvIFwiaGlkZGVuXCIsIHdlIHNob3VsZCBpbnRlcnByZXQgdGhhdCBhcyBpbnRlbnQgdG8gbWFrZSBvcGFjaXR5IDAgKGEgY29udmVuaWVuY2UpXHJcbiAgICAgICAgICAgICAgc3RhcnROdW0gPSAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpbmxpbmVQcm9wcy5wdXNoKFwidmlzaWJpbGl0eVwiLCAwLCBzdHlsZS52aXNpYmlsaXR5KTtcclxuXHJcbiAgICAgICAgICAgIF9hZGROb25Ud2VlbmluZ1BUKHRoaXMsIHN0eWxlLCBcInZpc2liaWxpdHlcIiwgc3RhcnROdW0gPyBcImluaGVyaXRcIiA6IFwiaGlkZGVuXCIsIGVuZE51bSA/IFwiaW5oZXJpdFwiIDogXCJoaWRkZW5cIiwgIWVuZE51bSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHAgIT09IFwic2NhbGVcIiAmJiBwICE9PSBcInRyYW5zZm9ybVwiKSB7XHJcbiAgICAgICAgICAgIHAgPSBfcHJvcGVydHlBbGlhc2VzW3BdO1xyXG4gICAgICAgICAgICB+cC5pbmRleE9mKFwiLFwiKSAmJiAocCA9IHAuc3BsaXQoXCIsXCIpWzBdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlzVHJhbnNmb3JtUmVsYXRlZCA9IHAgaW4gX3RyYW5zZm9ybVByb3BzOyAvLy0tLSBUUkFOU0ZPUk0tUkVMQVRFRCAtLS1cclxuXHJcbiAgICAgICAgaWYgKGlzVHJhbnNmb3JtUmVsYXRlZCkge1xyXG4gICAgICAgICAgdGhpcy5zdHlsZXMuc2F2ZShwKTtcclxuXHJcbiAgICAgICAgICBpZiAodHlwZSA9PT0gXCJzdHJpbmdcIiAmJiBlbmRWYWx1ZS5zdWJzdHJpbmcoMCwgNikgPT09IFwidmFyKC0tXCIpIHtcclxuICAgICAgICAgICAgZW5kVmFsdWUgPSBfZ2V0Q29tcHV0ZWRQcm9wZXJ0eSh0YXJnZXQsIGVuZFZhbHVlLnN1YnN0cmluZyg0LCBlbmRWYWx1ZS5pbmRleE9mKFwiKVwiKSkpO1xyXG4gICAgICAgICAgICBlbmROdW0gPSBwYXJzZUZsb2F0KGVuZFZhbHVlKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoIXRyYW5zZm9ybVByb3BUd2Vlbikge1xyXG4gICAgICAgICAgICBjYWNoZSA9IHRhcmdldC5fZ3NhcDtcclxuICAgICAgICAgICAgY2FjaGUucmVuZGVyVHJhbnNmb3JtICYmICF2YXJzLnBhcnNlVHJhbnNmb3JtIHx8IF9wYXJzZVRyYW5zZm9ybSh0YXJnZXQsIHZhcnMucGFyc2VUcmFuc2Zvcm0pOyAvLyBpZiwgZm9yIGV4YW1wbGUsIGdzYXAuc2V0KC4uLiB7dHJhbnNmb3JtOlwidHJhbnNsYXRlWCg1MHZ3KVwifSksIHRoZSBfZ2V0KCkgY2FsbCBkb2Vzbid0IHBhcnNlIHRoZSB0cmFuc2Zvcm0sIHRodXMgY2FjaGUucmVuZGVyVHJhbnNmb3JtIHdvbid0IGJlIHNldCB5ZXQgc28gZm9yY2UgdGhlIHBhcnNpbmcgb2YgdGhlIHRyYW5zZm9ybSBoZXJlLlxyXG5cclxuICAgICAgICAgICAgc21vb3RoID0gdmFycy5zbW9vdGhPcmlnaW4gIT09IGZhbHNlICYmIGNhY2hlLnNtb290aDtcclxuICAgICAgICAgICAgdHJhbnNmb3JtUHJvcFR3ZWVuID0gdGhpcy5fcHQgPSBuZXcgUHJvcFR3ZWVuKHRoaXMuX3B0LCBzdHlsZSwgX3RyYW5zZm9ybVByb3AsIDAsIDEsIGNhY2hlLnJlbmRlclRyYW5zZm9ybSwgY2FjaGUsIDAsIC0xKTsgLy90aGUgZmlyc3QgdGltZSB0aHJvdWdoLCBjcmVhdGUgdGhlIHJlbmRlcmluZyBQcm9wVHdlZW4gc28gdGhhdCBpdCBydW5zIExBU1QgKGluIHRoZSBsaW5rZWQgbGlzdCwgd2Uga2VlcCBhZGRpbmcgdG8gdGhlIGJlZ2lubmluZylcclxuXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybVByb3BUd2Vlbi5kZXAgPSAxOyAvL2ZsYWcgaXQgYXMgZGVwZW5kZW50IHNvIHRoYXQgaWYgdGhpbmdzIGdldCBraWxsZWQvb3ZlcndyaXR0ZW4gYW5kIHRoaXMgaXMgdGhlIG9ubHkgUHJvcFR3ZWVuIGxlZnQsIHdlIGNhbiBzYWZlbHkga2lsbCB0aGUgd2hvbGUgdHdlZW4uXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHAgPT09IFwic2NhbGVcIikge1xyXG4gICAgICAgICAgICB0aGlzLl9wdCA9IG5ldyBQcm9wVHdlZW4odGhpcy5fcHQsIGNhY2hlLCBcInNjYWxlWVwiLCBjYWNoZS5zY2FsZVksIChyZWxhdGl2ZSA/IF9wYXJzZVJlbGF0aXZlKGNhY2hlLnNjYWxlWSwgcmVsYXRpdmUgKyBlbmROdW0pIDogZW5kTnVtKSAtIGNhY2hlLnNjYWxlWSB8fCAwLCBfcmVuZGVyQ1NTUHJvcCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3B0LnUgPSAwO1xyXG4gICAgICAgICAgICBwcm9wcy5wdXNoKFwic2NhbGVZXCIsIHApO1xyXG4gICAgICAgICAgICBwICs9IFwiWFwiO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChwID09PSBcInRyYW5zZm9ybU9yaWdpblwiKSB7XHJcbiAgICAgICAgICAgIGlubGluZVByb3BzLnB1c2goX3RyYW5zZm9ybU9yaWdpblByb3AsIDAsIHN0eWxlW190cmFuc2Zvcm1PcmlnaW5Qcm9wXSk7XHJcbiAgICAgICAgICAgIGVuZFZhbHVlID0gX2NvbnZlcnRLZXl3b3Jkc1RvUGVyY2VudGFnZXMoZW5kVmFsdWUpOyAvL2luIGNhc2Ugc29tZXRoaW5nIGxpa2UgXCJsZWZ0IHRvcFwiIG9yIFwiYm90dG9tIHJpZ2h0XCIgaXMgcGFzc2VkIGluLiBDb252ZXJ0IHRvIHBlcmNlbnRhZ2VzLlxyXG5cclxuICAgICAgICAgICAgaWYgKGNhY2hlLnN2Zykge1xyXG4gICAgICAgICAgICAgIF9hcHBseVNWR09yaWdpbih0YXJnZXQsIGVuZFZhbHVlLCAwLCBzbW9vdGgsIDAsIHRoaXMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGVuZFVuaXQgPSBwYXJzZUZsb2F0KGVuZFZhbHVlLnNwbGl0KFwiIFwiKVsyXSkgfHwgMDsgLy9oYW5kbGUgdGhlIHpPcmlnaW4gc2VwYXJhdGVseSFcclxuXHJcbiAgICAgICAgICAgICAgZW5kVW5pdCAhPT0gY2FjaGUuek9yaWdpbiAmJiBfYWRkTm9uVHdlZW5pbmdQVCh0aGlzLCBjYWNoZSwgXCJ6T3JpZ2luXCIsIGNhY2hlLnpPcmlnaW4sIGVuZFVuaXQpO1xyXG5cclxuICAgICAgICAgICAgICBfYWRkTm9uVHdlZW5pbmdQVCh0aGlzLCBzdHlsZSwgcCwgX2ZpcnN0VHdvT25seShzdGFydFZhbHVlKSwgX2ZpcnN0VHdvT25seShlbmRWYWx1ZSkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAocCA9PT0gXCJzdmdPcmlnaW5cIikge1xyXG4gICAgICAgICAgICBfYXBwbHlTVkdPcmlnaW4odGFyZ2V0LCBlbmRWYWx1ZSwgMSwgc21vb3RoLCAwLCB0aGlzKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChwIGluIF9yb3RhdGlvbmFsUHJvcGVydGllcykge1xyXG4gICAgICAgICAgICBfYWRkUm90YXRpb25hbFByb3BUd2Vlbih0aGlzLCBjYWNoZSwgcCwgc3RhcnROdW0sIHJlbGF0aXZlID8gX3BhcnNlUmVsYXRpdmUoc3RhcnROdW0sIHJlbGF0aXZlICsgZW5kVmFsdWUpIDogZW5kVmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHAgPT09IFwic21vb3RoT3JpZ2luXCIpIHtcclxuICAgICAgICAgICAgX2FkZE5vblR3ZWVuaW5nUFQodGhpcywgY2FjaGUsIFwic21vb3RoXCIsIGNhY2hlLnNtb290aCwgZW5kVmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHAgPT09IFwiZm9yY2UzRFwiKSB7XHJcbiAgICAgICAgICAgIGNhY2hlW3BdID0gZW5kVmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChwID09PSBcInRyYW5zZm9ybVwiKSB7XHJcbiAgICAgICAgICAgIF9hZGRSYXdUcmFuc2Zvcm1QVHModGhpcywgZW5kVmFsdWUsIHRhcmdldCk7XHJcblxyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKCEocCBpbiBzdHlsZSkpIHtcclxuICAgICAgICAgIHAgPSBfY2hlY2tQcm9wUHJlZml4KHApIHx8IHA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaXNUcmFuc2Zvcm1SZWxhdGVkIHx8IChlbmROdW0gfHwgZW5kTnVtID09PSAwKSAmJiAoc3RhcnROdW0gfHwgc3RhcnROdW0gPT09IDApICYmICFfY29tcGxleEV4cC50ZXN0KGVuZFZhbHVlKSAmJiBwIGluIHN0eWxlKSB7XHJcbiAgICAgICAgICBzdGFydFVuaXQgPSAoc3RhcnRWYWx1ZSArIFwiXCIpLnN1YnN0cigoc3RhcnROdW0gKyBcIlwiKS5sZW5ndGgpO1xyXG4gICAgICAgICAgZW5kTnVtIHx8IChlbmROdW0gPSAwKTsgLy8gcHJvdGVjdCBhZ2FpbnN0IE5hTlxyXG5cclxuICAgICAgICAgIGVuZFVuaXQgPSBnZXRVbml0KGVuZFZhbHVlKSB8fCAocCBpbiBfY29uZmlnLnVuaXRzID8gX2NvbmZpZy51bml0c1twXSA6IHN0YXJ0VW5pdCk7XHJcbiAgICAgICAgICBzdGFydFVuaXQgIT09IGVuZFVuaXQgJiYgKHN0YXJ0TnVtID0gX2NvbnZlcnRUb1VuaXQodGFyZ2V0LCBwLCBzdGFydFZhbHVlLCBlbmRVbml0KSk7XHJcbiAgICAgICAgICB0aGlzLl9wdCA9IG5ldyBQcm9wVHdlZW4odGhpcy5fcHQsIGlzVHJhbnNmb3JtUmVsYXRlZCA/IGNhY2hlIDogc3R5bGUsIHAsIHN0YXJ0TnVtLCAocmVsYXRpdmUgPyBfcGFyc2VSZWxhdGl2ZShzdGFydE51bSwgcmVsYXRpdmUgKyBlbmROdW0pIDogZW5kTnVtKSAtIHN0YXJ0TnVtLCAhaXNUcmFuc2Zvcm1SZWxhdGVkICYmIChlbmRVbml0ID09PSBcInB4XCIgfHwgcCA9PT0gXCJ6SW5kZXhcIikgJiYgdmFycy5hdXRvUm91bmQgIT09IGZhbHNlID8gX3JlbmRlclJvdW5kZWRDU1NQcm9wIDogX3JlbmRlckNTU1Byb3ApO1xyXG4gICAgICAgICAgdGhpcy5fcHQudSA9IGVuZFVuaXQgfHwgMDtcclxuXHJcbiAgICAgICAgICBpZiAoc3RhcnRVbml0ICE9PSBlbmRVbml0ICYmIGVuZFVuaXQgIT09IFwiJVwiKSB7XHJcbiAgICAgICAgICAgIC8vd2hlbiB0aGUgdHdlZW4gZ29lcyBhbGwgdGhlIHdheSBiYWNrIHRvIHRoZSBiZWdpbm5pbmcsIHdlIG5lZWQgdG8gcmV2ZXJ0IGl0IHRvIHRoZSBPTEQvT1JJR0lOQUwgdmFsdWUgKHdpdGggdGhvc2UgdW5pdHMpLiBXZSByZWNvcmQgdGhhdCBhcyBhIFwiYlwiIChiZWdpbm5pbmcpIHByb3BlcnR5IGFuZCBwb2ludCB0byBhIHJlbmRlciBtZXRob2QgdGhhdCBoYW5kbGVzIHRoYXQuIChwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24pXHJcbiAgICAgICAgICAgIHRoaXMuX3B0LmIgPSBzdGFydFZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLl9wdC5yID0gX3JlbmRlckNTU1Byb3BXaXRoQmVnaW5uaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoIShwIGluIHN0eWxlKSkge1xyXG4gICAgICAgICAgaWYgKHAgaW4gdGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIC8vbWF5YmUgaXQncyBub3QgYSBzdHlsZSAtIGl0IGNvdWxkIGJlIGEgcHJvcGVydHkgYWRkZWQgZGlyZWN0bHkgdG8gYW4gZWxlbWVudCBpbiB3aGljaCBjYXNlIHdlJ2xsIHRyeSB0byBhbmltYXRlIHRoYXQuXHJcbiAgICAgICAgICAgIHRoaXMuYWRkKHRhcmdldCwgcCwgc3RhcnRWYWx1ZSB8fCB0YXJnZXRbcF0sIHJlbGF0aXZlID8gcmVsYXRpdmUgKyBlbmRWYWx1ZSA6IGVuZFZhbHVlLCBpbmRleCwgdGFyZ2V0cyk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHAgIT09IFwicGFyc2VUcmFuc2Zvcm1cIikge1xyXG4gICAgICAgICAgICBfbWlzc2luZ1BsdWdpbihwLCBlbmRWYWx1ZSk7XHJcblxyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgX3R3ZWVuQ29tcGxleENTU1N0cmluZy5jYWxsKHRoaXMsIHRhcmdldCwgcCwgc3RhcnRWYWx1ZSwgcmVsYXRpdmUgPyByZWxhdGl2ZSArIGVuZFZhbHVlIDogZW5kVmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaXNUcmFuc2Zvcm1SZWxhdGVkIHx8IChwIGluIHN0eWxlID8gaW5saW5lUHJvcHMucHVzaChwLCAwLCBzdHlsZVtwXSkgOiB0eXBlb2YgdGFyZ2V0W3BdID09PSBcImZ1bmN0aW9uXCIgPyBpbmxpbmVQcm9wcy5wdXNoKHAsIDIsIHRhcmdldFtwXSgpKSA6IGlubGluZVByb3BzLnB1c2gocCwgMSwgc3RhcnRWYWx1ZSB8fCB0YXJnZXRbcF0pKTtcclxuICAgICAgICBwcm9wcy5wdXNoKHApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFzUHJpb3JpdHkgJiYgX3NvcnRQcm9wVHdlZW5zQnlQcmlvcml0eSh0aGlzKTtcclxuICB9LFxyXG4gIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKHJhdGlvLCBkYXRhKSB7XHJcbiAgICBpZiAoZGF0YS50d2Vlbi5fdGltZSB8fCAhX3JldmVydGluZygpKSB7XHJcbiAgICAgIHZhciBwdCA9IGRhdGEuX3B0O1xyXG5cclxuICAgICAgd2hpbGUgKHB0KSB7XHJcbiAgICAgICAgcHQucihyYXRpbywgcHQuZCk7XHJcbiAgICAgICAgcHQgPSBwdC5fbmV4dDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGF0YS5zdHlsZXMucmV2ZXJ0KCk7XHJcbiAgICB9XHJcbiAgfSxcclxuICBnZXQ6IF9nZXQsXHJcbiAgYWxpYXNlczogX3Byb3BlcnR5QWxpYXNlcyxcclxuICBnZXRTZXR0ZXI6IGZ1bmN0aW9uIGdldFNldHRlcih0YXJnZXQsIHByb3BlcnR5LCBwbHVnaW4pIHtcclxuICAgIC8vcmV0dXJucyBhIHNldHRlciBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUgYW5kIGFwcGxpZXMgaXQgYWNjb3JkaW5nbHkuIFJlbWVtYmVyLCBwcm9wZXJ0aWVzIGxpa2UgXCJ4XCIgYXJlbid0IGFzIHNpbXBsZSBhcyB0YXJnZXQuc3R5bGUucHJvcGVydHkgPSB2YWx1ZSBiZWNhdXNlIHRoZXkndmUgZ290IHRvIGJlIGFwcGxpZWQgdG8gYSBwcm94eSBvYmplY3QgYW5kIHRoZW4gbWVyZ2VkIGludG8gYSB0cmFuc2Zvcm0gc3RyaW5nIGluIGEgcmVuZGVyZXIuXHJcbiAgICB2YXIgcCA9IF9wcm9wZXJ0eUFsaWFzZXNbcHJvcGVydHldO1xyXG4gICAgcCAmJiBwLmluZGV4T2YoXCIsXCIpIDwgMCAmJiAocHJvcGVydHkgPSBwKTtcclxuICAgIHJldHVybiBwcm9wZXJ0eSBpbiBfdHJhbnNmb3JtUHJvcHMgJiYgcHJvcGVydHkgIT09IF90cmFuc2Zvcm1PcmlnaW5Qcm9wICYmICh0YXJnZXQuX2dzYXAueCB8fCBfZ2V0KHRhcmdldCwgXCJ4XCIpKSA/IHBsdWdpbiAmJiBfcmVjZW50U2V0dGVyUGx1Z2luID09PSBwbHVnaW4gPyBwcm9wZXJ0eSA9PT0gXCJzY2FsZVwiID8gX3NldHRlclNjYWxlIDogX3NldHRlclRyYW5zZm9ybSA6IChfcmVjZW50U2V0dGVyUGx1Z2luID0gcGx1Z2luIHx8IHt9KSAmJiAocHJvcGVydHkgPT09IFwic2NhbGVcIiA/IF9zZXR0ZXJTY2FsZVdpdGhSZW5kZXIgOiBfc2V0dGVyVHJhbnNmb3JtV2l0aFJlbmRlcikgOiB0YXJnZXQuc3R5bGUgJiYgIV9pc1VuZGVmaW5lZCh0YXJnZXQuc3R5bGVbcHJvcGVydHldKSA/IF9zZXR0ZXJDU1NTdHlsZSA6IH5wcm9wZXJ0eS5pbmRleE9mKFwiLVwiKSA/IF9zZXR0ZXJDU1NQcm9wIDogX2dldFNldHRlcih0YXJnZXQsIHByb3BlcnR5KTtcclxuICB9LFxyXG4gIGNvcmU6IHtcclxuICAgIF9yZW1vdmVQcm9wZXJ0eTogX3JlbW92ZVByb3BlcnR5LFxyXG4gICAgX2dldE1hdHJpeDogX2dldE1hdHJpeFxyXG4gIH1cclxufTtcclxuZ3NhcC51dGlscy5jaGVja1ByZWZpeCA9IF9jaGVja1Byb3BQcmVmaXg7XHJcbmdzYXAuY29yZS5nZXRTdHlsZVNhdmVyID0gX2dldFN0eWxlU2F2ZXI7XHJcblxyXG4oZnVuY3Rpb24gKHBvc2l0aW9uQW5kU2NhbGUsIHJvdGF0aW9uLCBvdGhlcnMsIGFsaWFzZXMpIHtcclxuICB2YXIgYWxsID0gX2ZvckVhY2hOYW1lKHBvc2l0aW9uQW5kU2NhbGUgKyBcIixcIiArIHJvdGF0aW9uICsgXCIsXCIgKyBvdGhlcnMsIGZ1bmN0aW9uIChuYW1lKSB7XHJcbiAgICBfdHJhbnNmb3JtUHJvcHNbbmFtZV0gPSAxO1xyXG4gIH0pO1xyXG5cclxuICBfZm9yRWFjaE5hbWUocm90YXRpb24sIGZ1bmN0aW9uIChuYW1lKSB7XHJcbiAgICBfY29uZmlnLnVuaXRzW25hbWVdID0gXCJkZWdcIjtcclxuICAgIF9yb3RhdGlvbmFsUHJvcGVydGllc1tuYW1lXSA9IDE7XHJcbiAgfSk7XHJcblxyXG4gIF9wcm9wZXJ0eUFsaWFzZXNbYWxsWzEzXV0gPSBwb3NpdGlvbkFuZFNjYWxlICsgXCIsXCIgKyByb3RhdGlvbjtcclxuXHJcbiAgX2ZvckVhY2hOYW1lKGFsaWFzZXMsIGZ1bmN0aW9uIChuYW1lKSB7XHJcbiAgICB2YXIgc3BsaXQgPSBuYW1lLnNwbGl0KFwiOlwiKTtcclxuICAgIF9wcm9wZXJ0eUFsaWFzZXNbc3BsaXRbMV1dID0gYWxsW3NwbGl0WzBdXTtcclxuICB9KTtcclxufSkoXCJ4LHkseixzY2FsZSxzY2FsZVgsc2NhbGVZLHhQZXJjZW50LHlQZXJjZW50XCIsIFwicm90YXRpb24scm90YXRpb25YLHJvdGF0aW9uWSxza2V3WCxza2V3WVwiLCBcInRyYW5zZm9ybSx0cmFuc2Zvcm1PcmlnaW4sc3ZnT3JpZ2luLGZvcmNlM0Qsc21vb3RoT3JpZ2luLHRyYW5zZm9ybVBlcnNwZWN0aXZlXCIsIFwiMDp0cmFuc2xhdGVYLDE6dHJhbnNsYXRlWSwyOnRyYW5zbGF0ZVosODpyb3RhdGUsODpyb3RhdGlvblosODpyb3RhdGVaLDk6cm90YXRlWCwxMDpyb3RhdGVZXCIpO1xyXG5cclxuX2ZvckVhY2hOYW1lKFwieCx5LHosdG9wLHJpZ2h0LGJvdHRvbSxsZWZ0LHdpZHRoLGhlaWdodCxmb250U2l6ZSxwYWRkaW5nLG1hcmdpbixwZXJzcGVjdGl2ZVwiLCBmdW5jdGlvbiAobmFtZSkge1xyXG4gIF9jb25maWcudW5pdHNbbmFtZV0gPSBcInB4XCI7XHJcbn0pO1xyXG5cclxuZ3NhcC5yZWdpc3RlclBsdWdpbihDU1NQbHVnaW4pO1xyXG5leHBvcnQgeyBDU1NQbHVnaW4gYXMgZGVmYXVsdCwgX2dldEJCb3gsIF9jcmVhdGVFbGVtZW50LCBfY2hlY2tQcm9wUHJlZml4IGFzIGNoZWNrUHJlZml4IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/gsap/CSSPlugin.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/gsap/gsap-core.js":
|
||
/*!****************************************!*\
|
||
!*** ./node_modules/gsap/gsap-core.js ***!
|
||
\****************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Animation: function() { return /* binding */ Animation; },\n/* harmony export */ Back: function() { return /* binding */ Back; },\n/* harmony export */ Bounce: function() { return /* binding */ Bounce; },\n/* harmony export */ Circ: function() { return /* binding */ Circ; },\n/* harmony export */ Cubic: function() { return /* binding */ Cubic; },\n/* harmony export */ Elastic: function() { return /* binding */ Elastic; },\n/* harmony export */ Expo: function() { return /* binding */ Expo; },\n/* harmony export */ GSCache: function() { return /* binding */ GSCache; },\n/* harmony export */ Linear: function() { return /* binding */ Linear; },\n/* harmony export */ Power0: function() { return /* binding */ Power0; },\n/* harmony export */ Power1: function() { return /* binding */ Power1; },\n/* harmony export */ Power2: function() { return /* binding */ Power2; },\n/* harmony export */ Power3: function() { return /* binding */ Power3; },\n/* harmony export */ Power4: function() { return /* binding */ Power4; },\n/* harmony export */ PropTween: function() { return /* binding */ PropTween; },\n/* harmony export */ Quad: function() { return /* binding */ Quad; },\n/* harmony export */ Quart: function() { return /* binding */ Quart; },\n/* harmony export */ Quint: function() { return /* binding */ Quint; },\n/* harmony export */ Sine: function() { return /* binding */ Sine; },\n/* harmony export */ SteppedEase: function() { return /* binding */ SteppedEase; },\n/* harmony export */ Strong: function() { return /* binding */ Strong; },\n/* harmony export */ Timeline: function() { return /* binding */ Timeline; },\n/* harmony export */ TimelineLite: function() { return /* binding */ Timeline; },\n/* harmony export */ TimelineMax: function() { return /* binding */ Timeline; },\n/* harmony export */ Tween: function() { return /* binding */ Tween; },\n/* harmony export */ TweenLite: function() { return /* binding */ Tween; },\n/* harmony export */ TweenMax: function() { return /* binding */ Tween; },\n/* harmony export */ _checkPlugin: function() { return /* binding */ _checkPlugin; },\n/* harmony export */ _colorExp: function() { return /* binding */ _colorExp; },\n/* harmony export */ _colorStringFilter: function() { return /* binding */ _colorStringFilter; },\n/* harmony export */ _config: function() { return /* binding */ _config; },\n/* harmony export */ _forEachName: function() { return /* binding */ _forEachName; },\n/* harmony export */ _getCache: function() { return /* binding */ _getCache; },\n/* harmony export */ _getProperty: function() { return /* binding */ _getProperty; },\n/* harmony export */ _getSetter: function() { return /* binding */ _getSetter; },\n/* harmony export */ _isString: function() { return /* binding */ _isString; },\n/* harmony export */ _isUndefined: function() { return /* binding */ _isUndefined; },\n/* harmony export */ _missingPlugin: function() { return /* binding */ _missingPlugin; },\n/* harmony export */ _numExp: function() { return /* binding */ _numExp; },\n/* harmony export */ _numWithUnitExp: function() { return /* binding */ _numWithUnitExp; },\n/* harmony export */ _parseRelative: function() { return /* binding */ _parseRelative; },\n/* harmony export */ _plugins: function() { return /* binding */ _plugins; },\n/* harmony export */ _relExp: function() { return /* binding */ _relExp; },\n/* harmony export */ _removeLinkedListItem: function() { return /* binding */ _removeLinkedListItem; },\n/* harmony export */ _renderComplexString: function() { return /* binding */ _renderComplexString; },\n/* harmony export */ _replaceRandom: function() { return /* binding */ _replaceRandom; },\n/* harmony export */ _round: function() { return /* binding */ _round; },\n/* harmony export */ _roundModifier: function() { return /* binding */ _roundModifier; },\n/* harmony export */ _setDefaults: function() { return /* binding */ _setDefaults; },\n/* harmony export */ _sortPropTweensByPriority: function() { return /* binding */ _sortPropTweensByPriority; },\n/* harmony export */ _ticker: function() { return /* binding */ _ticker; },\n/* harmony export */ clamp: function() { return /* binding */ clamp; },\n/* harmony export */ \"default\": function() { return /* binding */ gsap; },\n/* harmony export */ distribute: function() { return /* binding */ distribute; },\n/* harmony export */ getUnit: function() { return /* binding */ getUnit; },\n/* harmony export */ gsap: function() { return /* binding */ gsap; },\n/* harmony export */ interpolate: function() { return /* binding */ interpolate; },\n/* harmony export */ mapRange: function() { return /* binding */ mapRange; },\n/* harmony export */ normalize: function() { return /* binding */ normalize; },\n/* harmony export */ pipe: function() { return /* binding */ pipe; },\n/* harmony export */ random: function() { return /* binding */ random; },\n/* harmony export */ selector: function() { return /* binding */ selector; },\n/* harmony export */ shuffle: function() { return /* binding */ shuffle; },\n/* harmony export */ snap: function() { return /* binding */ snap; },\n/* harmony export */ splitColor: function() { return /* binding */ splitColor; },\n/* harmony export */ toArray: function() { return /* binding */ toArray; },\n/* harmony export */ unitize: function() { return /* binding */ unitize; },\n/* harmony export */ wrap: function() { return /* binding */ wrap; },\n/* harmony export */ wrapYoyo: function() { return /* binding */ wrapYoyo; }\n/* harmony export */ });\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\r\n\r\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\r\n\r\n/*!\r\n * GSAP 3.13.0\r\n * https://gsap.com\r\n *\r\n * @license Copyright 2008-2025, GreenSock. All rights reserved.\r\n * Subject to the terms at https://gsap.com/standard-license\r\n * @author: Jack Doyle, jack@greensock.com\r\n*/\r\n\r\n/* eslint-disable */\r\nvar _config = {\r\n autoSleep: 120,\r\n force3D: \"auto\",\r\n nullTargetWarn: 1,\r\n units: {\r\n lineHeight: \"\"\r\n }\r\n},\r\n _defaults = {\r\n duration: .5,\r\n overwrite: false,\r\n delay: 0\r\n},\r\n _suppressOverwrites,\r\n _reverting,\r\n _context,\r\n _bigNum = 1e8,\r\n _tinyNum = 1 / _bigNum,\r\n _2PI = Math.PI * 2,\r\n _HALF_PI = _2PI / 4,\r\n _gsID = 0,\r\n _sqrt = Math.sqrt,\r\n _cos = Math.cos,\r\n _sin = Math.sin,\r\n _isString = function _isString(value) {\r\n return typeof value === \"string\";\r\n},\r\n _isFunction = function _isFunction(value) {\r\n return typeof value === \"function\";\r\n},\r\n _isNumber = function _isNumber(value) {\r\n return typeof value === \"number\";\r\n},\r\n _isUndefined = function _isUndefined(value) {\r\n return typeof value === \"undefined\";\r\n},\r\n _isObject = function _isObject(value) {\r\n return typeof value === \"object\";\r\n},\r\n _isNotFalse = function _isNotFalse(value) {\r\n return value !== false;\r\n},\r\n _windowExists = function _windowExists() {\r\n return typeof window !== \"undefined\";\r\n},\r\n _isFuncOrString = function _isFuncOrString(value) {\r\n return _isFunction(value) || _isString(value);\r\n},\r\n _isTypedArray = typeof ArrayBuffer === \"function\" && ArrayBuffer.isView || function () {},\r\n // note: IE10 has ArrayBuffer, but NOT ArrayBuffer.isView().\r\n_isArray = Array.isArray,\r\n _strictNumExp = /(?:-?\\.?\\d|\\.)+/gi,\r\n //only numbers (including negatives and decimals) but NOT relative values.\r\n_numExp = /[-+=.]*\\d+[.e\\-+]*\\d*[e\\-+]*\\d*/g,\r\n //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8.\r\n_numWithUnitExp = /[-+=.]*\\d+[.e-]*\\d*[a-z%]*/g,\r\n _complexStringNumExp = /[-+=.]*\\d+\\.?\\d*(?:e-|e\\+)?\\d*/gi,\r\n //duplicate so that while we're looping through matches from exec(), it doesn't contaminate the lastIndex of _numExp which we use to search for colors too.\r\n_relExp = /[+-]=-?[.\\d]+/,\r\n _delimitedValueExp = /[^,'\"\\[\\]\\s]+/gi,\r\n // previously /[#\\-+.]*\\b[a-z\\d\\-=+%.]+/gi but didn't catch special characters.\r\n_unitExp = /^[+\\-=e\\s\\d]*\\d+[.\\d]*([a-z]*|%)\\s*$/i,\r\n _globalTimeline,\r\n _win,\r\n _coreInitted,\r\n _doc,\r\n _globals = {},\r\n _installScope = {},\r\n _coreReady,\r\n _install = function _install(scope) {\r\n return (_installScope = _merge(scope, _globals)) && gsap;\r\n},\r\n _missingPlugin = function _missingPlugin(property, value) {\r\n return console.warn(\"Invalid property\", property, \"set to\", value, \"Missing plugin? gsap.registerPlugin()\");\r\n},\r\n _warn = function _warn(message, suppress) {\r\n return !suppress && console.warn(message);\r\n},\r\n _addGlobal = function _addGlobal(name, obj) {\r\n return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals;\r\n},\r\n _emptyFunc = function _emptyFunc() {\r\n return 0;\r\n},\r\n _startAtRevertConfig = {\r\n suppressEvents: true,\r\n isStart: true,\r\n kill: false\r\n},\r\n _revertConfigNoKill = {\r\n suppressEvents: true,\r\n kill: false\r\n},\r\n _revertConfig = {\r\n suppressEvents: true\r\n},\r\n _reservedProps = {},\r\n _lazyTweens = [],\r\n _lazyLookup = {},\r\n _lastRenderedFrame,\r\n _plugins = {},\r\n _effects = {},\r\n _nextGCFrame = 30,\r\n _harnessPlugins = [],\r\n _callbackNames = \"\",\r\n _harness = function _harness(targets) {\r\n var target = targets[0],\r\n harnessPlugin,\r\n i;\r\n _isObject(target) || _isFunction(target) || (targets = [targets]);\r\n\r\n if (!(harnessPlugin = (target._gsap || {}).harness)) {\r\n // find the first target with a harness. We assume targets passed into an animation will be of similar type, meaning the same kind of harness can be used for them all (performance optimization)\r\n i = _harnessPlugins.length;\r\n\r\n while (i-- && !_harnessPlugins[i].targetTest(target)) {}\r\n\r\n harnessPlugin = _harnessPlugins[i];\r\n }\r\n\r\n i = targets.length;\r\n\r\n while (i--) {\r\n targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1);\r\n }\r\n\r\n return targets;\r\n},\r\n _getCache = function _getCache(target) {\r\n return target._gsap || _harness(toArray(target))[0]._gsap;\r\n},\r\n _getProperty = function _getProperty(target, property, v) {\r\n return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v;\r\n},\r\n _forEachName = function _forEachName(names, func) {\r\n return (names = names.split(\",\")).forEach(func) || names;\r\n},\r\n //split a comma-delimited list of names into an array, then run a forEach() function and return the split array (this is just a way to consolidate/shorten some code).\r\n_round = function _round(value) {\r\n return Math.round(value * 100000) / 100000 || 0;\r\n},\r\n _roundPrecise = function _roundPrecise(value) {\r\n return Math.round(value * 10000000) / 10000000 || 0;\r\n},\r\n // increased precision mostly for timing values.\r\n_parseRelative = function _parseRelative(start, value) {\r\n var operator = value.charAt(0),\r\n end = parseFloat(value.substr(2));\r\n start = parseFloat(start);\r\n return operator === \"+\" ? start + end : operator === \"-\" ? start - end : operator === \"*\" ? start * end : start / end;\r\n},\r\n _arrayContainsAny = function _arrayContainsAny(toSearch, toFind) {\r\n //searches one array to find matches for any of the items in the toFind array. As soon as one is found, it returns true. It does NOT return all the matches; it's simply a boolean search.\r\n var l = toFind.length,\r\n i = 0;\r\n\r\n for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l;) {}\r\n\r\n return i < l;\r\n},\r\n _lazyRender = function _lazyRender() {\r\n var l = _lazyTweens.length,\r\n a = _lazyTweens.slice(0),\r\n i,\r\n tween;\r\n\r\n _lazyLookup = {};\r\n _lazyTweens.length = 0;\r\n\r\n for (i = 0; i < l; i++) {\r\n tween = a[i];\r\n tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0);\r\n }\r\n},\r\n _isRevertWorthy = function _isRevertWorthy(animation) {\r\n return !!(animation._initted || animation._startAt || animation.add);\r\n},\r\n _lazySafeRender = function _lazySafeRender(animation, time, suppressEvents, force) {\r\n _lazyTweens.length && !_reverting && _lazyRender();\r\n animation.render(time, suppressEvents, force || !!(_reverting && time < 0 && _isRevertWorthy(animation)));\r\n _lazyTweens.length && !_reverting && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when someone calls seek() or time() or progress(), they expect an immediate render.\r\n},\r\n _numericIfPossible = function _numericIfPossible(value) {\r\n var n = parseFloat(value);\r\n return (n || n === 0) && (value + \"\").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value;\r\n},\r\n _passThrough = function _passThrough(p) {\r\n return p;\r\n},\r\n _setDefaults = function _setDefaults(obj, defaults) {\r\n for (var p in defaults) {\r\n p in obj || (obj[p] = defaults[p]);\r\n }\r\n\r\n return obj;\r\n},\r\n _setKeyframeDefaults = function _setKeyframeDefaults(excludeDuration) {\r\n return function (obj, defaults) {\r\n for (var p in defaults) {\r\n p in obj || p === \"duration\" && excludeDuration || p === \"ease\" || (obj[p] = defaults[p]);\r\n }\r\n };\r\n},\r\n _merge = function _merge(base, toMerge) {\r\n for (var p in toMerge) {\r\n base[p] = toMerge[p];\r\n }\r\n\r\n return base;\r\n},\r\n _mergeDeep = function _mergeDeep(base, toMerge) {\r\n for (var p in toMerge) {\r\n p !== \"__proto__\" && p !== \"constructor\" && p !== \"prototype\" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]);\r\n }\r\n\r\n return base;\r\n},\r\n _copyExcluding = function _copyExcluding(obj, excluding) {\r\n var copy = {},\r\n p;\r\n\r\n for (p in obj) {\r\n p in excluding || (copy[p] = obj[p]);\r\n }\r\n\r\n return copy;\r\n},\r\n _inheritDefaults = function _inheritDefaults(vars) {\r\n var parent = vars.parent || _globalTimeline,\r\n func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults;\r\n\r\n if (_isNotFalse(vars.inherit)) {\r\n while (parent) {\r\n func(vars, parent.vars.defaults);\r\n parent = parent.parent || parent._dp;\r\n }\r\n }\r\n\r\n return vars;\r\n},\r\n _arraysMatch = function _arraysMatch(a1, a2) {\r\n var i = a1.length,\r\n match = i === a2.length;\r\n\r\n while (match && i-- && a1[i] === a2[i]) {}\r\n\r\n return i < 0;\r\n},\r\n _addLinkedListItem = function _addLinkedListItem(parent, child, firstProp, lastProp, sortBy) {\r\n if (firstProp === void 0) {\r\n firstProp = \"_first\";\r\n }\r\n\r\n if (lastProp === void 0) {\r\n lastProp = \"_last\";\r\n }\r\n\r\n var prev = parent[lastProp],\r\n t;\r\n\r\n if (sortBy) {\r\n t = child[sortBy];\r\n\r\n while (prev && prev[sortBy] > t) {\r\n prev = prev._prev;\r\n }\r\n }\r\n\r\n if (prev) {\r\n child._next = prev._next;\r\n prev._next = child;\r\n } else {\r\n child._next = parent[firstProp];\r\n parent[firstProp] = child;\r\n }\r\n\r\n if (child._next) {\r\n child._next._prev = child;\r\n } else {\r\n parent[lastProp] = child;\r\n }\r\n\r\n child._prev = prev;\r\n child.parent = child._dp = parent;\r\n return child;\r\n},\r\n _removeLinkedListItem = function _removeLinkedListItem(parent, child, firstProp, lastProp) {\r\n if (firstProp === void 0) {\r\n firstProp = \"_first\";\r\n }\r\n\r\n if (lastProp === void 0) {\r\n lastProp = \"_last\";\r\n }\r\n\r\n var prev = child._prev,\r\n next = child._next;\r\n\r\n if (prev) {\r\n prev._next = next;\r\n } else if (parent[firstProp] === child) {\r\n parent[firstProp] = next;\r\n }\r\n\r\n if (next) {\r\n next._prev = prev;\r\n } else if (parent[lastProp] === child) {\r\n parent[lastProp] = prev;\r\n }\r\n\r\n child._next = child._prev = child.parent = null; // don't delete the _dp just so we can revert if necessary. But parent should be null to indicate the item isn't in a linked list.\r\n},\r\n _removeFromParent = function _removeFromParent(child, onlyIfParentHasAutoRemove) {\r\n child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove && child.parent.remove(child);\r\n child._act = 0;\r\n},\r\n _uncache = function _uncache(animation, child) {\r\n if (animation && (!child || child._end > animation._dur || child._start < 0)) {\r\n // performance optimization: if a child animation is passed in we should only uncache if that child EXTENDS the animation (its end time is beyond the end)\r\n var a = animation;\r\n\r\n while (a) {\r\n a._dirty = 1;\r\n a = a.parent;\r\n }\r\n }\r\n\r\n return animation;\r\n},\r\n _recacheAncestors = function _recacheAncestors(animation) {\r\n var parent = animation.parent;\r\n\r\n while (parent && parent.parent) {\r\n //sometimes we must force a re-sort of all children and update the duration/totalDuration of all ancestor timelines immediately in case, for example, in the middle of a render loop, one tween alters another tween's timeScale which shoves its startTime before 0, forcing the parent timeline to shift around and shiftChildren() which could affect that next tween's render (startTime). Doesn't matter for the root timeline though.\r\n parent._dirty = 1;\r\n parent.totalDuration();\r\n parent = parent.parent;\r\n }\r\n\r\n return animation;\r\n},\r\n _rewindStartAt = function _rewindStartAt(tween, totalTime, suppressEvents, force) {\r\n return tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween.vars.immediateRender && !tween.vars.autoRevert || tween._startAt.render(totalTime, true, force));\r\n},\r\n _hasNoPausedAncestors = function _hasNoPausedAncestors(animation) {\r\n return !animation || animation._ts && _hasNoPausedAncestors(animation.parent);\r\n},\r\n _elapsedCycleDuration = function _elapsedCycleDuration(animation) {\r\n return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0;\r\n},\r\n // feed in the totalTime and cycleDuration and it'll return the cycle (iteration minus 1) and if the playhead is exactly at the very END, it will NOT bump up to the next cycle.\r\n_animationCycle = function _animationCycle(tTime, cycleDuration) {\r\n var whole = Math.floor(tTime = _roundPrecise(tTime / cycleDuration));\r\n return tTime && whole === tTime ? whole - 1 : whole;\r\n},\r\n _parentToChildTotalTime = function _parentToChildTotalTime(parentTime, child) {\r\n return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur);\r\n},\r\n _setEnd = function _setEnd(animation) {\r\n return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0));\r\n},\r\n _alignPlayhead = function _alignPlayhead(animation, totalTime) {\r\n // adjusts the animation's _start and _end according to the provided totalTime (only if the parent's smoothChildTiming is true and the animation isn't paused). It doesn't do any rendering or forcing things back into parent timelines, etc. - that's what totalTime() is for.\r\n var parent = animation._dp;\r\n\r\n if (parent && parent.smoothChildTiming && animation._ts) {\r\n animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts));\r\n\r\n _setEnd(animation);\r\n\r\n parent._dirty || _uncache(parent, animation); //for performance improvement. If the parent's cache is already dirty, it already took care of marking the ancestors as dirty too, so skip the function call here.\r\n }\r\n\r\n return animation;\r\n},\r\n\r\n/*\r\n_totalTimeToTime = (clampedTotalTime, duration, repeat, repeatDelay, yoyo) => {\r\n\tlet cycleDuration = duration + repeatDelay,\r\n\t\ttime = _round(clampedTotalTime % cycleDuration);\r\n\tif (time > duration) {\r\n\t\ttime = duration;\r\n\t}\r\n\treturn (yoyo && (~~(clampedTotalTime / cycleDuration) & 1)) ? duration - time : time;\r\n},\r\n*/\r\n_postAddChecks = function _postAddChecks(timeline, child) {\r\n var t;\r\n\r\n if (child._time || !child._dur && child._initted || child._start < timeline._time && (child._dur || !child.add)) {\r\n // in case, for example, the _start is moved on a tween that has already rendered, or if it's being inserted into a timeline BEFORE where the playhead is currently. Imagine it's at its end state, then the startTime is moved WAY later (after the end of this timeline), it should render at its beginning. Special case: if it's a timeline (has .add() method) and no duration, we can skip rendering because the user may be populating it AFTER adding it to a parent timeline (unconventional, but possible, and we wouldn't want it to get removed if the parent's autoRemoveChildren is true).\r\n t = _parentToChildTotalTime(timeline.rawTime(), child);\r\n\r\n if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) {\r\n child.render(t, true);\r\n }\r\n } //if the timeline has already ended but the inserted tween/timeline extends the duration, we should enable this timeline again so that it renders properly. We should also align the playhead with the parent timeline's when appropriate.\r\n\r\n\r\n if (_uncache(timeline, child)._dp && timeline._initted && timeline._time >= timeline._dur && timeline._ts) {\r\n //in case any of the ancestors had completed but should now be enabled...\r\n if (timeline._dur < timeline.duration()) {\r\n t = timeline;\r\n\r\n while (t._dp) {\r\n t.rawTime() >= 0 && t.totalTime(t._tTime); //moves the timeline (shifts its startTime) if necessary, and also enables it. If it's currently zero, though, it may not be scheduled to render until later so there's no need to force it to align with the current playhead position. Only move to catch up with the playhead.\r\n\r\n t = t._dp;\r\n }\r\n }\r\n\r\n timeline._zTime = -_tinyNum; // helps ensure that the next render() will be forced (crossingStart = true in render()), even if the duration hasn't changed (we're adding a child which would need to get rendered). Definitely an edge case. Note: we MUST do this AFTER the loop above where the totalTime() might trigger a render() because this _addToTimeline() method gets called from the Animation constructor, BEFORE tweens even record their targets, etc. so we wouldn't want things to get triggered in the wrong order.\r\n }\r\n},\r\n _addToTimeline = function _addToTimeline(timeline, child, position, skipChecks) {\r\n child.parent && _removeFromParent(child);\r\n child._start = _roundPrecise((_isNumber(position) ? position : position || timeline !== _globalTimeline ? _parsePosition(timeline, position, child) : timeline._time) + child._delay);\r\n child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0));\r\n\r\n _addLinkedListItem(timeline, child, \"_first\", \"_last\", timeline._sort ? \"_start\" : 0);\r\n\r\n _isFromOrFromStart(child) || (timeline._recent = child);\r\n skipChecks || _postAddChecks(timeline, child);\r\n timeline._ts < 0 && _alignPlayhead(timeline, timeline._tTime); // if the timeline is reversed and the new child makes it longer, we may need to adjust the parent's _start (push it back)\r\n\r\n return timeline;\r\n},\r\n _scrollTrigger = function _scrollTrigger(animation, trigger) {\r\n return (_globals.ScrollTrigger || _missingPlugin(\"scrollTrigger\", trigger)) && _globals.ScrollTrigger.create(trigger, animation);\r\n},\r\n _attemptInitTween = function _attemptInitTween(tween, time, force, suppressEvents, tTime) {\r\n _initTween(tween, time, tTime);\r\n\r\n if (!tween._initted) {\r\n return 1;\r\n }\r\n\r\n if (!force && tween._pt && !_reverting && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) {\r\n _lazyTweens.push(tween);\r\n\r\n tween._lazy = [tTime, suppressEvents];\r\n return 1;\r\n }\r\n},\r\n _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart(_ref) {\r\n var parent = _ref.parent;\r\n return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart(parent));\r\n},\r\n // check parent's _lock because when a timeline repeats/yoyos and does its artificial wrapping, we shouldn't force the ratio back to 0\r\n_isFromOrFromStart = function _isFromOrFromStart(_ref2) {\r\n var data = _ref2.data;\r\n return data === \"isFromStart\" || data === \"isStart\";\r\n},\r\n _renderZeroDurationTween = function _renderZeroDurationTween(tween, totalTime, suppressEvents, force) {\r\n var prevRatio = tween.ratio,\r\n ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1,\r\n // if the tween or its parent is reversed and the totalTime is 0, we should go to a ratio of 0. Edge case: if a from() or fromTo() stagger tween is placed later in a timeline, the \"startAt\" zero-duration tween could initially render at a time when the parent timeline's playhead is technically BEFORE where this tween is, so make sure that any \"from\" and \"fromTo\" startAt tweens are rendered the first time at a ratio of 1.\r\n repeatDelay = tween._rDelay,\r\n tTime = 0,\r\n pt,\r\n iteration,\r\n prevIteration;\r\n\r\n if (repeatDelay && tween._repeat) {\r\n // in case there's a zero-duration tween that has a repeat with a repeatDelay\r\n tTime = _clamp(0, tween._tDur, totalTime);\r\n iteration = _animationCycle(tTime, repeatDelay);\r\n tween._yoyo && iteration & 1 && (ratio = 1 - ratio);\r\n\r\n if (iteration !== _animationCycle(tween._tTime, repeatDelay)) {\r\n // if iteration changed\r\n prevRatio = 1 - ratio;\r\n tween.vars.repeatRefresh && tween._initted && tween.invalidate();\r\n }\r\n }\r\n\r\n if (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) {\r\n if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) {\r\n // if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.\r\n return;\r\n }\r\n\r\n prevIteration = tween._zTime;\r\n tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0); // when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\r\n\r\n suppressEvents || (suppressEvents = totalTime && !prevIteration); // if it was rendered previously at exactly 0 (_zTime) and now the playhead is moving away, DON'T fire callbacks otherwise they'll seem like duplicates.\r\n\r\n tween.ratio = ratio;\r\n tween._from && (ratio = 1 - ratio);\r\n tween._time = 0;\r\n tween._tTime = tTime;\r\n pt = tween._pt;\r\n\r\n while (pt) {\r\n pt.r(ratio, pt.d);\r\n pt = pt._next;\r\n }\r\n\r\n totalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true);\r\n tween._onUpdate && !suppressEvents && _callback(tween, \"onUpdate\");\r\n tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, \"onRepeat\");\r\n\r\n if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) {\r\n ratio && _removeFromParent(tween, 1);\r\n\r\n if (!suppressEvents && !_reverting) {\r\n _callback(tween, ratio ? \"onComplete\" : \"onReverseComplete\", true);\r\n\r\n tween._prom && tween._prom();\r\n }\r\n }\r\n } else if (!tween._zTime) {\r\n tween._zTime = totalTime;\r\n }\r\n},\r\n _findNextPauseTween = function _findNextPauseTween(animation, prevTime, time) {\r\n var child;\r\n\r\n if (time > prevTime) {\r\n child = animation._first;\r\n\r\n while (child && child._start <= time) {\r\n if (child.data === \"isPause\" && child._start > prevTime) {\r\n return child;\r\n }\r\n\r\n child = child._next;\r\n }\r\n } else {\r\n child = animation._last;\r\n\r\n while (child && child._start >= time) {\r\n if (child.data === \"isPause\" && child._start < prevTime) {\r\n return child;\r\n }\r\n\r\n child = child._prev;\r\n }\r\n }\r\n},\r\n _setDuration = function _setDuration(animation, duration, skipUncache, leavePlayhead) {\r\n var repeat = animation._repeat,\r\n dur = _roundPrecise(duration) || 0,\r\n totalProgress = animation._tTime / animation._tDur;\r\n totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur);\r\n animation._dur = dur;\r\n animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat);\r\n totalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress);\r\n animation.parent && _setEnd(animation);\r\n skipUncache || _uncache(animation.parent, animation);\r\n return animation;\r\n},\r\n _onUpdateTotalDuration = function _onUpdateTotalDuration(animation) {\r\n return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur);\r\n},\r\n _zeroPosition = {\r\n _start: 0,\r\n endTime: _emptyFunc,\r\n totalDuration: _emptyFunc\r\n},\r\n _parsePosition = function _parsePosition(animation, position, percentAnimation) {\r\n var labels = animation.labels,\r\n recent = animation._recent || _zeroPosition,\r\n clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur,\r\n //in case there's a child that infinitely repeats, users almost never intend for the insertion point of a new child to be based on a SUPER long value like that so we clip it and assume the most recently-added child's endTime should be used instead.\r\n i,\r\n offset,\r\n isPercent;\r\n\r\n if (_isString(position) && (isNaN(position) || position in labels)) {\r\n //if the string is a number like \"1\", check to see if there's a label with that name, otherwise interpret it as a number (absolute value).\r\n offset = position.charAt(0);\r\n isPercent = position.substr(-1) === \"%\";\r\n i = position.indexOf(\"=\");\r\n\r\n if (offset === \"<\" || offset === \">\") {\r\n i >= 0 && (position = position.replace(/=/, \"\"));\r\n return (offset === \"<\" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1);\r\n }\r\n\r\n if (i < 0) {\r\n position in labels || (labels[position] = clippedDuration);\r\n return labels[position];\r\n }\r\n\r\n offset = parseFloat(position.charAt(i - 1) + position.substr(i + 1));\r\n\r\n if (isPercent && percentAnimation) {\r\n offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration();\r\n }\r\n\r\n return i > 1 ? _parsePosition(animation, position.substr(0, i - 1), percentAnimation) + offset : clippedDuration + offset;\r\n }\r\n\r\n return position == null ? clippedDuration : +position;\r\n},\r\n _createTweenType = function _createTweenType(type, params, timeline) {\r\n var isLegacy = _isNumber(params[1]),\r\n varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1),\r\n vars = params[varsIndex],\r\n irVars,\r\n parent;\r\n\r\n isLegacy && (vars.duration = params[1]);\r\n vars.parent = timeline;\r\n\r\n if (type) {\r\n irVars = vars;\r\n parent = timeline;\r\n\r\n while (parent && !(\"immediateRender\" in irVars)) {\r\n // inheritance hasn't happened yet, but someone may have set a default in an ancestor timeline. We could do vars.immediateRender = _isNotFalse(_inheritDefaults(vars).immediateRender) but that'd exact a slight performance penalty because _inheritDefaults() also runs in the Tween constructor. We're paying a small kb price here to gain speed.\r\n irVars = parent.vars.defaults || {};\r\n parent = _isNotFalse(parent.vars.inherit) && parent.parent;\r\n }\r\n\r\n vars.immediateRender = _isNotFalse(irVars.immediateRender);\r\n type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1]; // \"from\" vars\r\n }\r\n\r\n return new Tween(params[0], vars, params[varsIndex + 1]);\r\n},\r\n _conditionalReturn = function _conditionalReturn(value, func) {\r\n return value || value === 0 ? func(value) : func;\r\n},\r\n _clamp = function _clamp(min, max, value) {\r\n return value < min ? min : value > max ? max : value;\r\n},\r\n getUnit = function getUnit(value, v) {\r\n return !_isString(value) || !(v = _unitExp.exec(value)) ? \"\" : v[1];\r\n},\r\n // note: protect against padded numbers as strings, like \"100.100\". That shouldn't return \"00\" as the unit. If it's numeric, return no unit.\r\nclamp = function clamp(min, max, value) {\r\n return _conditionalReturn(value, function (v) {\r\n return _clamp(min, max, v);\r\n });\r\n},\r\n _slice = [].slice,\r\n _isArrayLike = function _isArrayLike(value, nonEmpty) {\r\n return value && _isObject(value) && \"length\" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win;\r\n},\r\n _flatten = function _flatten(ar, leaveStrings, accumulator) {\r\n if (accumulator === void 0) {\r\n accumulator = [];\r\n }\r\n\r\n return ar.forEach(function (value) {\r\n var _accumulator;\r\n\r\n return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value);\r\n }) || accumulator;\r\n},\r\n //takes any value and returns an array. If it's a string (and leaveStrings isn't true), it'll use document.querySelectorAll() and convert that to an array. It'll also accept iterables like jQuery objects.\r\ntoArray = function toArray(value, scope, leaveStrings) {\r\n return _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : [];\r\n},\r\n selector = function selector(value) {\r\n value = toArray(value)[0] || _warn(\"Invalid scope\") || {};\r\n return function (v) {\r\n var el = value.current || value.nativeElement || value;\r\n return toArray(v, el.querySelectorAll ? el : el === value ? _warn(\"Invalid scope\") || _doc.createElement(\"div\") : value);\r\n };\r\n},\r\n shuffle = function shuffle(a) {\r\n return a.sort(function () {\r\n return .5 - Math.random();\r\n });\r\n},\r\n // alternative that's a bit faster and more reliably diverse but bigger: for (let j, v, i = a.length; i; j = (Math.random() * i) | 0, v = a[--i], a[i] = a[j], a[j] = v); return a;\r\n//for distributing values across an array. Can accept a number, a function or (most commonly) a function which can contain the following properties: {base, amount, from, ease, grid, axis, length, each}. Returns a function that expects the following parameters: index, target, array. Recognizes the following\r\ndistribute = function distribute(v) {\r\n if (_isFunction(v)) {\r\n return v;\r\n }\r\n\r\n var vars = _isObject(v) ? v : {\r\n each: v\r\n },\r\n //n:1 is just to indicate v was a number; we leverage that later to set v according to the length we get. If a number is passed in, we treat it like the old stagger value where 0.1, for example, would mean that things would be distributed with 0.1 between each element in the array rather than a total \"amount\" that's chunked out among them all.\r\n ease = _parseEase(vars.ease),\r\n from = vars.from || 0,\r\n base = parseFloat(vars.base) || 0,\r\n cache = {},\r\n isDecimal = from > 0 && from < 1,\r\n ratios = isNaN(from) || isDecimal,\r\n axis = vars.axis,\r\n ratioX = from,\r\n ratioY = from;\r\n\r\n if (_isString(from)) {\r\n ratioX = ratioY = {\r\n center: .5,\r\n edges: .5,\r\n end: 1\r\n }[from] || 0;\r\n } else if (!isDecimal && ratios) {\r\n ratioX = from[0];\r\n ratioY = from[1];\r\n }\r\n\r\n return function (i, target, a) {\r\n var l = (a || vars).length,\r\n distances = cache[l],\r\n originX,\r\n originY,\r\n x,\r\n y,\r\n d,\r\n j,\r\n max,\r\n min,\r\n wrapAt;\r\n\r\n if (!distances) {\r\n wrapAt = vars.grid === \"auto\" ? 0 : (vars.grid || [1, _bigNum])[1];\r\n\r\n if (!wrapAt) {\r\n max = -_bigNum;\r\n\r\n while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) {}\r\n\r\n wrapAt < l && wrapAt--;\r\n }\r\n\r\n distances = cache[l] = [];\r\n originX = ratios ? Math.min(wrapAt, l) * ratioX - .5 : from % wrapAt;\r\n originY = wrapAt === _bigNum ? 0 : ratios ? l * ratioY / wrapAt - .5 : from / wrapAt | 0;\r\n max = 0;\r\n min = _bigNum;\r\n\r\n for (j = 0; j < l; j++) {\r\n x = j % wrapAt - originX;\r\n y = originY - (j / wrapAt | 0);\r\n distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === \"y\" ? y : x);\r\n d > max && (max = d);\r\n d < min && (min = d);\r\n }\r\n\r\n from === \"random\" && shuffle(distances);\r\n distances.max = max - min;\r\n distances.min = min;\r\n distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === \"y\" ? l / wrapAt : wrapAt) || 0) * (from === \"edges\" ? -1 : 1);\r\n distances.b = l < 0 ? base - l : base;\r\n distances.u = getUnit(vars.amount || vars.each) || 0; //unit\r\n\r\n ease = ease && l < 0 ? _invertEase(ease) : ease;\r\n }\r\n\r\n l = (distances[i] - distances.min) / distances.max || 0;\r\n return _roundPrecise(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u; //round in order to work around floating point errors\r\n };\r\n},\r\n _roundModifier = function _roundModifier(v) {\r\n //pass in 0.1 get a function that'll round to the nearest tenth, or 5 to round to the closest 5, or 0.001 to the closest 1000th, etc.\r\n var p = Math.pow(10, ((v + \"\").split(\".\")[1] || \"\").length); //to avoid floating point math errors (like 24 * 0.1 == 2.4000000000000004), we chop off at a specific number of decimal places (much faster than toFixed())\r\n\r\n return function (raw) {\r\n var n = _roundPrecise(Math.round(parseFloat(raw) / v) * v * p);\r\n\r\n return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw)); // n - n % 1 replaces Math.floor() in order to handle negative values properly. For example, Math.floor(-150.00000000000003) is 151!\r\n };\r\n},\r\n snap = function snap(snapTo, value) {\r\n var isArray = _isArray(snapTo),\r\n radius,\r\n is2D;\r\n\r\n if (!isArray && _isObject(snapTo)) {\r\n radius = isArray = snapTo.radius || _bigNum;\r\n\r\n if (snapTo.values) {\r\n snapTo = toArray(snapTo.values);\r\n\r\n if (is2D = !_isNumber(snapTo[0])) {\r\n radius *= radius; //performance optimization so we don't have to Math.sqrt() in the loop.\r\n }\r\n } else {\r\n snapTo = _roundModifier(snapTo.increment);\r\n }\r\n }\r\n\r\n return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function (raw) {\r\n is2D = snapTo(raw);\r\n return Math.abs(is2D - raw) <= radius ? is2D : raw;\r\n } : function (raw) {\r\n var x = parseFloat(is2D ? raw.x : raw),\r\n y = parseFloat(is2D ? raw.y : 0),\r\n min = _bigNum,\r\n closest = 0,\r\n i = snapTo.length,\r\n dx,\r\n dy;\r\n\r\n while (i--) {\r\n if (is2D) {\r\n dx = snapTo[i].x - x;\r\n dy = snapTo[i].y - y;\r\n dx = dx * dx + dy * dy;\r\n } else {\r\n dx = Math.abs(snapTo[i] - x);\r\n }\r\n\r\n if (dx < min) {\r\n min = dx;\r\n closest = i;\r\n }\r\n }\r\n\r\n closest = !radius || min <= radius ? snapTo[closest] : raw;\r\n return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw);\r\n });\r\n},\r\n random = function random(min, max, roundingIncrement, returnFunction) {\r\n return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function () {\r\n return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + \"\").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * .99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction;\r\n });\r\n},\r\n pipe = function pipe() {\r\n for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) {\r\n functions[_key] = arguments[_key];\r\n }\r\n\r\n return function (value) {\r\n return functions.reduce(function (v, f) {\r\n return f(v);\r\n }, value);\r\n };\r\n},\r\n unitize = function unitize(func, unit) {\r\n return function (value) {\r\n return func(parseFloat(value)) + (unit || getUnit(value));\r\n };\r\n},\r\n normalize = function normalize(min, max, value) {\r\n return mapRange(min, max, 0, 1, value);\r\n},\r\n _wrapArray = function _wrapArray(a, wrapper, value) {\r\n return _conditionalReturn(value, function (index) {\r\n return a[~~wrapper(index)];\r\n });\r\n},\r\n wrap = function wrap(min, max, value) {\r\n // NOTE: wrap() CANNOT be an arrow function! A very odd compiling bug causes problems (unrelated to GSAP).\r\n var range = max - min;\r\n return _isArray(min) ? _wrapArray(min, wrap(0, min.length), max) : _conditionalReturn(value, function (value) {\r\n return (range + (value - min) % range) % range + min;\r\n });\r\n},\r\n wrapYoyo = function wrapYoyo(min, max, value) {\r\n var range = max - min,\r\n total = range * 2;\r\n return _isArray(min) ? _wrapArray(min, wrapYoyo(0, min.length - 1), max) : _conditionalReturn(value, function (value) {\r\n value = (total + (value - min) % total) % total || 0;\r\n return min + (value > range ? total - value : value);\r\n });\r\n},\r\n _replaceRandom = function _replaceRandom(value) {\r\n //replaces all occurrences of random(...) in a string with the calculated random value. can be a range like random(-100, 100, 5) or an array like random([0, 100, 500])\r\n var prev = 0,\r\n s = \"\",\r\n i,\r\n nums,\r\n end,\r\n isArray;\r\n\r\n while (~(i = value.indexOf(\"random(\", prev))) {\r\n end = value.indexOf(\")\", i);\r\n isArray = value.charAt(i + 7) === \"[\";\r\n nums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp);\r\n s += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5);\r\n prev = end + 1;\r\n }\r\n\r\n return s + value.substr(prev, value.length - prev);\r\n},\r\n mapRange = function mapRange(inMin, inMax, outMin, outMax, value) {\r\n var inRange = inMax - inMin,\r\n outRange = outMax - outMin;\r\n return _conditionalReturn(value, function (value) {\r\n return outMin + ((value - inMin) / inRange * outRange || 0);\r\n });\r\n},\r\n interpolate = function interpolate(start, end, progress, mutate) {\r\n var func = isNaN(start + end) ? 0 : function (p) {\r\n return (1 - p) * start + p * end;\r\n };\r\n\r\n if (!func) {\r\n var isString = _isString(start),\r\n master = {},\r\n p,\r\n i,\r\n interpolators,\r\n l,\r\n il;\r\n\r\n progress === true && (mutate = 1) && (progress = null);\r\n\r\n if (isString) {\r\n start = {\r\n p: start\r\n };\r\n end = {\r\n p: end\r\n };\r\n } else if (_isArray(start) && !_isArray(end)) {\r\n interpolators = [];\r\n l = start.length;\r\n il = l - 2;\r\n\r\n for (i = 1; i < l; i++) {\r\n interpolators.push(interpolate(start[i - 1], start[i])); //build the interpolators up front as a performance optimization so that when the function is called many times, it can just reuse them.\r\n }\r\n\r\n l--;\r\n\r\n func = function func(p) {\r\n p *= l;\r\n var i = Math.min(il, ~~p);\r\n return interpolators[i](p - i);\r\n };\r\n\r\n progress = end;\r\n } else if (!mutate) {\r\n start = _merge(_isArray(start) ? [] : {}, start);\r\n }\r\n\r\n if (!interpolators) {\r\n for (p in end) {\r\n _addPropTween.call(master, start, p, \"get\", end[p]);\r\n }\r\n\r\n func = function func(p) {\r\n return _renderPropTweens(p, master) || (isString ? start.p : start);\r\n };\r\n }\r\n }\r\n\r\n return _conditionalReturn(progress, func);\r\n},\r\n _getLabelInDirection = function _getLabelInDirection(timeline, fromTime, backward) {\r\n //used for nextLabel() and previousLabel()\r\n var labels = timeline.labels,\r\n min = _bigNum,\r\n p,\r\n distance,\r\n label;\r\n\r\n for (p in labels) {\r\n distance = labels[p] - fromTime;\r\n\r\n if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) {\r\n label = p;\r\n min = distance;\r\n }\r\n }\r\n\r\n return label;\r\n},\r\n _callback = function _callback(animation, type, executeLazyFirst) {\r\n var v = animation.vars,\r\n callback = v[type],\r\n prevContext = _context,\r\n context = animation._ctx,\r\n params,\r\n scope,\r\n result;\r\n\r\n if (!callback) {\r\n return;\r\n }\r\n\r\n params = v[type + \"Params\"];\r\n scope = v.callbackScope || animation;\r\n executeLazyFirst && _lazyTweens.length && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when a timeline finishes, users expect things to have rendered fully. Imagine an onUpdate on a timeline that reports/checks tweened values.\r\n\r\n context && (_context = context);\r\n result = params ? callback.apply(scope, params) : callback.call(scope);\r\n _context = prevContext;\r\n return result;\r\n},\r\n _interrupt = function _interrupt(animation) {\r\n _removeFromParent(animation);\r\n\r\n animation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting);\r\n animation.progress() < 1 && _callback(animation, \"onInterrupt\");\r\n return animation;\r\n},\r\n _quickTween,\r\n _registerPluginQueue = [],\r\n _createPlugin = function _createPlugin(config) {\r\n if (!config) return;\r\n config = !config.name && config[\"default\"] || config; // UMD packaging wraps things oddly, so for example MotionPathHelper becomes {MotionPathHelper:MotionPathHelper, default:MotionPathHelper}.\r\n\r\n if (_windowExists() || config.headless) {\r\n // edge case: some build tools may pass in a null/undefined value\r\n var name = config.name,\r\n isFunc = _isFunction(config),\r\n Plugin = name && !isFunc && config.init ? function () {\r\n this._props = [];\r\n } : config,\r\n //in case someone passes in an object that's not a plugin, like CustomEase\r\n instanceDefaults = {\r\n init: _emptyFunc,\r\n render: _renderPropTweens,\r\n add: _addPropTween,\r\n kill: _killPropTweensOf,\r\n modifier: _addPluginModifier,\r\n rawVars: 0\r\n },\r\n statics = {\r\n targetTest: 0,\r\n get: 0,\r\n getSetter: _getSetter,\r\n aliases: {},\r\n register: 0\r\n };\r\n\r\n _wake();\r\n\r\n if (config !== Plugin) {\r\n if (_plugins[name]) {\r\n return;\r\n }\r\n\r\n _setDefaults(Plugin, _setDefaults(_copyExcluding(config, instanceDefaults), statics)); //static methods\r\n\r\n\r\n _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config, statics))); //instance methods\r\n\r\n\r\n _plugins[Plugin.prop = name] = Plugin;\r\n\r\n if (config.targetTest) {\r\n _harnessPlugins.push(Plugin);\r\n\r\n _reservedProps[name] = 1;\r\n }\r\n\r\n name = (name === \"css\" ? \"CSS\" : name.charAt(0).toUpperCase() + name.substr(1)) + \"Plugin\"; //for the global name. \"motionPath\" should become MotionPathPlugin\r\n }\r\n\r\n _addGlobal(name, Plugin);\r\n\r\n config.register && config.register(gsap, Plugin, PropTween);\r\n } else {\r\n _registerPluginQueue.push(config);\r\n }\r\n},\r\n\r\n/*\r\n * --------------------------------------------------------------------------------------\r\n * COLORS\r\n * --------------------------------------------------------------------------------------\r\n */\r\n_255 = 255,\r\n _colorLookup = {\r\n aqua: [0, _255, _255],\r\n lime: [0, _255, 0],\r\n silver: [192, 192, 192],\r\n black: [0, 0, 0],\r\n maroon: [128, 0, 0],\r\n teal: [0, 128, 128],\r\n blue: [0, 0, _255],\r\n navy: [0, 0, 128],\r\n white: [_255, _255, _255],\r\n olive: [128, 128, 0],\r\n yellow: [_255, _255, 0],\r\n orange: [_255, 165, 0],\r\n gray: [128, 128, 128],\r\n purple: [128, 0, 128],\r\n green: [0, 128, 0],\r\n red: [_255, 0, 0],\r\n pink: [_255, 192, 203],\r\n cyan: [0, _255, _255],\r\n transparent: [_255, _255, _255, 0]\r\n},\r\n // possible future idea to replace the hard-coded color name values - put this in the ticker.wake() where we set the _doc:\r\n// let ctx = _doc.createElement(\"canvas\").getContext(\"2d\");\r\n// _forEachName(\"aqua,lime,silver,black,maroon,teal,blue,navy,white,olive,yellow,orange,gray,purple,green,red,pink,cyan\", color => {ctx.fillStyle = color; _colorLookup[color] = splitColor(ctx.fillStyle)});\r\n_hue = function _hue(h, m1, m2) {\r\n h += h < 0 ? 1 : h > 1 ? -1 : 0;\r\n return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < .5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + .5 | 0;\r\n},\r\n splitColor = function splitColor(v, toHSL, forceAlpha) {\r\n var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0,\r\n r,\r\n g,\r\n b,\r\n h,\r\n s,\r\n l,\r\n max,\r\n min,\r\n d,\r\n wasHSL;\r\n\r\n if (!a) {\r\n if (v.substr(-1) === \",\") {\r\n //sometimes a trailing comma is included and we should chop it off (typically from a comma-delimited list of values like a textShadow:\"2px 2px 2px blue, 5px 5px 5px rgb(255,0,0)\" - in this example \"blue,\" has a trailing comma. We could strip it out inside parseComplex() but we'd need to do it to the beginning and ending values plus it wouldn't provide protection from other potential scenarios like if the user passes in a similar value.\r\n v = v.substr(0, v.length - 1);\r\n }\r\n\r\n if (_colorLookup[v]) {\r\n a = _colorLookup[v];\r\n } else if (v.charAt(0) === \"#\") {\r\n if (v.length < 6) {\r\n //for shorthand like #9F0 or #9F0F (could have alpha)\r\n r = v.charAt(1);\r\n g = v.charAt(2);\r\n b = v.charAt(3);\r\n v = \"#\" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : \"\");\r\n }\r\n\r\n if (v.length === 9) {\r\n // hex with alpha, like #fd5e53ff\r\n a = parseInt(v.substr(1, 6), 16);\r\n return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255];\r\n }\r\n\r\n v = parseInt(v.substr(1), 16);\r\n a = [v >> 16, v >> 8 & _255, v & _255];\r\n } else if (v.substr(0, 3) === \"hsl\") {\r\n a = wasHSL = v.match(_strictNumExp);\r\n\r\n if (!toHSL) {\r\n h = +a[0] % 360 / 360;\r\n s = +a[1] / 100;\r\n l = +a[2] / 100;\r\n g = l <= .5 ? l * (s + 1) : l + s - l * s;\r\n r = l * 2 - g;\r\n a.length > 3 && (a[3] *= 1); //cast as number\r\n\r\n a[0] = _hue(h + 1 / 3, r, g);\r\n a[1] = _hue(h, r, g);\r\n a[2] = _hue(h - 1 / 3, r, g);\r\n } else if (~v.indexOf(\"=\")) {\r\n //if relative values are found, just return the raw strings with the relative prefixes in place.\r\n a = v.match(_numExp);\r\n forceAlpha && a.length < 4 && (a[3] = 1);\r\n return a;\r\n }\r\n } else {\r\n a = v.match(_strictNumExp) || _colorLookup.transparent;\r\n }\r\n\r\n a = a.map(Number);\r\n }\r\n\r\n if (toHSL && !wasHSL) {\r\n r = a[0] / _255;\r\n g = a[1] / _255;\r\n b = a[2] / _255;\r\n max = Math.max(r, g, b);\r\n min = Math.min(r, g, b);\r\n l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = s = 0;\r\n } else {\r\n d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\r\n h *= 60;\r\n }\r\n\r\n a[0] = ~~(h + .5);\r\n a[1] = ~~(s * 100 + .5);\r\n a[2] = ~~(l * 100 + .5);\r\n }\r\n\r\n forceAlpha && a.length < 4 && (a[3] = 1);\r\n return a;\r\n},\r\n _colorOrderData = function _colorOrderData(v) {\r\n // strips out the colors from the string, finds all the numeric slots (with units) and returns an array of those. The Array also has a \"c\" property which is an Array of the index values where the colors belong. This is to help work around issues where there's a mis-matched order of color/numeric data like drop-shadow(#f00 0px 1px 2px) and drop-shadow(0x 1px 2px #f00). This is basically a helper function used in _formatColors()\r\n var values = [],\r\n c = [],\r\n i = -1;\r\n v.split(_colorExp).forEach(function (v) {\r\n var a = v.match(_numWithUnitExp) || [];\r\n values.push.apply(values, a);\r\n c.push(i += a.length + 1);\r\n });\r\n values.c = c;\r\n return values;\r\n},\r\n _formatColors = function _formatColors(s, toHSL, orderMatchData) {\r\n var result = \"\",\r\n colors = (s + result).match(_colorExp),\r\n type = toHSL ? \"hsla(\" : \"rgba(\",\r\n i = 0,\r\n c,\r\n shell,\r\n d,\r\n l;\r\n\r\n if (!colors) {\r\n return s;\r\n }\r\n\r\n colors = colors.map(function (color) {\r\n return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + \",\" + color[1] + \"%,\" + color[2] + \"%,\" + color[3] : color.join(\",\")) + \")\";\r\n });\r\n\r\n if (orderMatchData) {\r\n d = _colorOrderData(s);\r\n c = orderMatchData.c;\r\n\r\n if (c.join(result) !== d.c.join(result)) {\r\n shell = s.replace(_colorExp, \"1\").split(_numWithUnitExp);\r\n l = shell.length - 1;\r\n\r\n for (; i < l; i++) {\r\n result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + \"0,0,0,0)\" : (d.length ? d : colors.length ? colors : orderMatchData).shift());\r\n }\r\n }\r\n }\r\n\r\n if (!shell) {\r\n shell = s.split(_colorExp);\r\n l = shell.length - 1;\r\n\r\n for (; i < l; i++) {\r\n result += shell[i] + colors[i];\r\n }\r\n }\r\n\r\n return result + shell[l];\r\n},\r\n _colorExp = function () {\r\n var s = \"(?:\\\\b(?:(?:rgb|rgba|hsl|hsla)\\\\(.+?\\\\))|\\\\B#(?:[0-9a-f]{3,4}){1,2}\\\\b\",\r\n //we'll dynamically build this Regular Expression to conserve file size. After building it, it will be able to find rgb(), rgba(), # (hexadecimal), and named color values like red, blue, purple, etc.,\r\n p;\r\n\r\n for (p in _colorLookup) {\r\n s += \"|\" + p + \"\\\\b\";\r\n }\r\n\r\n return new RegExp(s + \")\", \"gi\");\r\n}(),\r\n _hslExp = /hsl[a]?\\(/,\r\n _colorStringFilter = function _colorStringFilter(a) {\r\n var combined = a.join(\" \"),\r\n toHSL;\r\n _colorExp.lastIndex = 0;\r\n\r\n if (_colorExp.test(combined)) {\r\n toHSL = _hslExp.test(combined);\r\n a[1] = _formatColors(a[1], toHSL);\r\n a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1])); // make sure the order of numbers/colors match with the END value.\r\n\r\n return true;\r\n }\r\n},\r\n\r\n/*\r\n * --------------------------------------------------------------------------------------\r\n * TICKER\r\n * --------------------------------------------------------------------------------------\r\n */\r\n_tickerActive,\r\n _ticker = function () {\r\n var _getTime = Date.now,\r\n _lagThreshold = 500,\r\n _adjustedLag = 33,\r\n _startTime = _getTime(),\r\n _lastUpdate = _startTime,\r\n _gap = 1000 / 240,\r\n _nextTime = _gap,\r\n _listeners = [],\r\n _id,\r\n _req,\r\n _raf,\r\n _self,\r\n _delta,\r\n _i,\r\n _tick = function _tick(v) {\r\n var elapsed = _getTime() - _lastUpdate,\r\n manual = v === true,\r\n overlap,\r\n dispatch,\r\n time,\r\n frame;\r\n\r\n (elapsed > _lagThreshold || elapsed < 0) && (_startTime += elapsed - _adjustedLag);\r\n _lastUpdate += elapsed;\r\n time = _lastUpdate - _startTime;\r\n overlap = time - _nextTime;\r\n\r\n if (overlap > 0 || manual) {\r\n frame = ++_self.frame;\r\n _delta = time - _self.time * 1000;\r\n _self.time = time = time / 1000;\r\n _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap);\r\n dispatch = 1;\r\n }\r\n\r\n manual || (_id = _req(_tick)); //make sure the request is made before we dispatch the \"tick\" event so that timing is maintained. Otherwise, if processing the \"tick\" requires a bunch of time (like 15ms) and we're using a setTimeout() that's based on 16.7ms, it'd technically take 31.7ms between frames otherwise.\r\n\r\n if (dispatch) {\r\n for (_i = 0; _i < _listeners.length; _i++) {\r\n // use _i and check _listeners.length instead of a variable because a listener could get removed during the loop, and if that happens to an element less than the current index, it'd throw things off in the loop.\r\n _listeners[_i](time, _delta, frame, v);\r\n }\r\n }\r\n };\r\n\r\n _self = {\r\n time: 0,\r\n frame: 0,\r\n tick: function tick() {\r\n _tick(true);\r\n },\r\n deltaRatio: function deltaRatio(fps) {\r\n return _delta / (1000 / (fps || 60));\r\n },\r\n wake: function wake() {\r\n if (_coreReady) {\r\n if (!_coreInitted && _windowExists()) {\r\n _win = _coreInitted = window;\r\n _doc = _win.document || {};\r\n _globals.gsap = gsap;\r\n (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version);\r\n\r\n _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {});\r\n\r\n _registerPluginQueue.forEach(_createPlugin);\r\n }\r\n\r\n _raf = typeof requestAnimationFrame !== \"undefined\" && requestAnimationFrame;\r\n _id && _self.sleep();\r\n\r\n _req = _raf || function (f) {\r\n return setTimeout(f, _nextTime - _self.time * 1000 + 1 | 0);\r\n };\r\n\r\n _tickerActive = 1;\r\n\r\n _tick(2);\r\n }\r\n },\r\n sleep: function sleep() {\r\n (_raf ? cancelAnimationFrame : clearTimeout)(_id);\r\n _tickerActive = 0;\r\n _req = _emptyFunc;\r\n },\r\n lagSmoothing: function lagSmoothing(threshold, adjustedLag) {\r\n _lagThreshold = threshold || Infinity; // zero should be interpreted as basically unlimited\r\n\r\n _adjustedLag = Math.min(adjustedLag || 33, _lagThreshold);\r\n },\r\n fps: function fps(_fps) {\r\n _gap = 1000 / (_fps || 240);\r\n _nextTime = _self.time * 1000 + _gap;\r\n },\r\n add: function add(callback, once, prioritize) {\r\n var func = once ? function (t, d, f, v) {\r\n callback(t, d, f, v);\r\n\r\n _self.remove(func);\r\n } : callback;\r\n\r\n _self.remove(callback);\r\n\r\n _listeners[prioritize ? \"unshift\" : \"push\"](func);\r\n\r\n _wake();\r\n\r\n return func;\r\n },\r\n remove: function remove(callback, i) {\r\n ~(i = _listeners.indexOf(callback)) && _listeners.splice(i, 1) && _i >= i && _i--;\r\n },\r\n _listeners: _listeners\r\n };\r\n return _self;\r\n}(),\r\n _wake = function _wake() {\r\n return !_tickerActive && _ticker.wake();\r\n},\r\n //also ensures the core classes are initialized.\r\n\r\n/*\r\n* -------------------------------------------------\r\n* EASING\r\n* -------------------------------------------------\r\n*/\r\n_easeMap = {},\r\n _customEaseExp = /^[\\d.\\-M][\\d.\\-,\\s]/,\r\n _quotesExp = /[\"']/g,\r\n _parseObjectInString = function _parseObjectInString(value) {\r\n //takes a string like \"{wiggles:10, type:anticipate})\" and turns it into a real object. Notice it ends in \")\" and includes the {} wrappers. This is because we only use this function for parsing ease configs and prioritized optimization rather than reusability.\r\n var obj = {},\r\n split = value.substr(1, value.length - 3).split(\":\"),\r\n key = split[0],\r\n i = 1,\r\n l = split.length,\r\n index,\r\n val,\r\n parsedVal;\r\n\r\n for (; i < l; i++) {\r\n val = split[i];\r\n index = i !== l - 1 ? val.lastIndexOf(\",\") : val.length;\r\n parsedVal = val.substr(0, index);\r\n obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, \"\").trim() : +parsedVal;\r\n key = val.substr(index + 1).trim();\r\n }\r\n\r\n return obj;\r\n},\r\n _valueInParentheses = function _valueInParentheses(value) {\r\n var open = value.indexOf(\"(\") + 1,\r\n close = value.indexOf(\")\"),\r\n nested = value.indexOf(\"(\", open);\r\n return value.substring(open, ~nested && nested < close ? value.indexOf(\")\", close + 1) : close);\r\n},\r\n _configEaseFromString = function _configEaseFromString(name) {\r\n //name can be a string like \"elastic.out(1,0.5)\", and pass in _easeMap as obj and it'll parse it out and call the actual function like _easeMap.Elastic.easeOut.config(1,0.5). It will also parse custom ease strings as long as CustomEase is loaded and registered (internally as _easeMap._CE).\r\n var split = (name + \"\").split(\"(\"),\r\n ease = _easeMap[split[0]];\r\n return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf(\"{\") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(\",\").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE(\"\", name) : ease;\r\n},\r\n _invertEase = function _invertEase(ease) {\r\n return function (p) {\r\n return 1 - ease(1 - p);\r\n };\r\n},\r\n // allow yoyoEase to be set in children and have those affected when the parent/ancestor timeline yoyos.\r\n_propagateYoyoEase = function _propagateYoyoEase(timeline, isYoyo) {\r\n var child = timeline._first,\r\n ease;\r\n\r\n while (child) {\r\n if (child instanceof Timeline) {\r\n _propagateYoyoEase(child, isYoyo);\r\n } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) {\r\n if (child.timeline) {\r\n _propagateYoyoEase(child.timeline, isYoyo);\r\n } else {\r\n ease = child._ease;\r\n child._ease = child._yEase;\r\n child._yEase = ease;\r\n child._yoyo = isYoyo;\r\n }\r\n }\r\n\r\n child = child._next;\r\n }\r\n},\r\n _parseEase = function _parseEase(ease, defaultEase) {\r\n return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase;\r\n},\r\n _insertEase = function _insertEase(names, easeIn, easeOut, easeInOut) {\r\n if (easeOut === void 0) {\r\n easeOut = function easeOut(p) {\r\n return 1 - easeIn(1 - p);\r\n };\r\n }\r\n\r\n if (easeInOut === void 0) {\r\n easeInOut = function easeInOut(p) {\r\n return p < .5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2;\r\n };\r\n }\r\n\r\n var ease = {\r\n easeIn: easeIn,\r\n easeOut: easeOut,\r\n easeInOut: easeInOut\r\n },\r\n lowercaseName;\r\n\r\n _forEachName(names, function (name) {\r\n _easeMap[name] = _globals[name] = ease;\r\n _easeMap[lowercaseName = name.toLowerCase()] = easeOut;\r\n\r\n for (var p in ease) {\r\n _easeMap[lowercaseName + (p === \"easeIn\" ? \".in\" : p === \"easeOut\" ? \".out\" : \".inOut\")] = _easeMap[name + \".\" + p] = ease[p];\r\n }\r\n });\r\n\r\n return ease;\r\n},\r\n _easeInOutFromOut = function _easeInOutFromOut(easeOut) {\r\n return function (p) {\r\n return p < .5 ? (1 - easeOut(1 - p * 2)) / 2 : .5 + easeOut((p - .5) * 2) / 2;\r\n };\r\n},\r\n _configElastic = function _configElastic(type, amplitude, period) {\r\n var p1 = amplitude >= 1 ? amplitude : 1,\r\n //note: if amplitude is < 1, we simply adjust the period for a more natural feel. Otherwise the math doesn't work right and the curve starts at 1.\r\n p2 = (period || (type ? .3 : .45)) / (amplitude < 1 ? amplitude : 1),\r\n p3 = p2 / _2PI * (Math.asin(1 / p1) || 0),\r\n easeOut = function easeOut(p) {\r\n return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1;\r\n },\r\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\r\n return 1 - easeOut(1 - p);\r\n } : _easeInOutFromOut(easeOut);\r\n\r\n p2 = _2PI / p2; //precalculate to optimize\r\n\r\n ease.config = function (amplitude, period) {\r\n return _configElastic(type, amplitude, period);\r\n };\r\n\r\n return ease;\r\n},\r\n _configBack = function _configBack(type, overshoot) {\r\n if (overshoot === void 0) {\r\n overshoot = 1.70158;\r\n }\r\n\r\n var easeOut = function easeOut(p) {\r\n return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0;\r\n },\r\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\r\n return 1 - easeOut(1 - p);\r\n } : _easeInOutFromOut(easeOut);\r\n\r\n ease.config = function (overshoot) {\r\n return _configBack(type, overshoot);\r\n };\r\n\r\n return ease;\r\n}; // a cheaper (kb and cpu) but more mild way to get a parameterized weighted ease by feeding in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\r\n// _weightedEase = ratio => {\r\n// \tlet y = 0.5 + ratio / 2;\r\n// \treturn p => (2 * (1 - p) * p * y + p * p);\r\n// },\r\n// a stronger (but more expensive kb/cpu) parameterized weighted ease that lets you feed in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\r\n// _weightedEaseStrong = ratio => {\r\n// \tratio = .5 + ratio / 2;\r\n// \tlet o = 1 / 3 * (ratio < .5 ? ratio : 1 - ratio),\r\n// \t\tb = ratio - o,\r\n// \t\tc = ratio + o;\r\n// \treturn p => p === 1 ? p : 3 * b * (1 - p) * (1 - p) * p + 3 * c * (1 - p) * p * p + p * p * p;\r\n// };\r\n\r\n\r\n_forEachName(\"Linear,Quad,Cubic,Quart,Quint,Strong\", function (name, i) {\r\n var power = i < 5 ? i + 1 : i;\r\n\r\n _insertEase(name + \",Power\" + (power - 1), i ? function (p) {\r\n return Math.pow(p, power);\r\n } : function (p) {\r\n return p;\r\n }, function (p) {\r\n return 1 - Math.pow(1 - p, power);\r\n }, function (p) {\r\n return p < .5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2;\r\n });\r\n});\r\n\r\n_easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn;\r\n\r\n_insertEase(\"Elastic\", _configElastic(\"in\"), _configElastic(\"out\"), _configElastic());\r\n\r\n(function (n, c) {\r\n var n1 = 1 / c,\r\n n2 = 2 * n1,\r\n n3 = 2.5 * n1,\r\n easeOut = function easeOut(p) {\r\n return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + .75 : p < n3 ? n * (p -= 2.25 / c) * p + .9375 : n * Math.pow(p - 2.625 / c, 2) + .984375;\r\n };\r\n\r\n _insertEase(\"Bounce\", function (p) {\r\n return 1 - easeOut(1 - p);\r\n }, easeOut);\r\n})(7.5625, 2.75);\r\n\r\n_insertEase(\"Expo\", function (p) {\r\n return Math.pow(2, 10 * (p - 1)) * p + p * p * p * p * p * p * (1 - p);\r\n}); // previously 2 ** (10 * (p - 1)) but that doesn't end up with the value quite at the right spot so we do a blended ease to ensure it lands where it should perfectly.\r\n\r\n\r\n_insertEase(\"Circ\", function (p) {\r\n return -(_sqrt(1 - p * p) - 1);\r\n});\r\n\r\n_insertEase(\"Sine\", function (p) {\r\n return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1;\r\n});\r\n\r\n_insertEase(\"Back\", _configBack(\"in\"), _configBack(\"out\"), _configBack());\r\n\r\n_easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = {\r\n config: function config(steps, immediateStart) {\r\n if (steps === void 0) {\r\n steps = 1;\r\n }\r\n\r\n var p1 = 1 / steps,\r\n p2 = steps + (immediateStart ? 0 : 1),\r\n p3 = immediateStart ? 1 : 0,\r\n max = 1 - _tinyNum;\r\n return function (p) {\r\n return ((p2 * _clamp(0, max, p) | 0) + p3) * p1;\r\n };\r\n }\r\n};\r\n_defaults.ease = _easeMap[\"quad.out\"];\r\n\r\n_forEachName(\"onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt\", function (name) {\r\n return _callbackNames += name + \",\" + name + \"Params,\";\r\n});\r\n/*\r\n * --------------------------------------------------------------------------------------\r\n * CACHE\r\n * --------------------------------------------------------------------------------------\r\n */\r\n\r\n\r\nvar GSCache = function GSCache(target, harness) {\r\n this.id = _gsID++;\r\n target._gsap = this;\r\n this.target = target;\r\n this.harness = harness;\r\n this.get = harness ? harness.get : _getProperty;\r\n this.set = harness ? harness.getSetter : _getSetter;\r\n};\r\n/*\r\n * --------------------------------------------------------------------------------------\r\n * ANIMATION\r\n * --------------------------------------------------------------------------------------\r\n */\r\n\r\nvar Animation = /*#__PURE__*/function () {\r\n function Animation(vars) {\r\n this.vars = vars;\r\n this._delay = +vars.delay || 0;\r\n\r\n if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) {\r\n // TODO: repeat: Infinity on a timeline's children must flag that timeline internally and affect its totalDuration, otherwise it'll stop in the negative direction when reaching the start.\r\n this._rDelay = vars.repeatDelay || 0;\r\n this._yoyo = !!vars.yoyo || !!vars.yoyoEase;\r\n }\r\n\r\n this._ts = 1;\r\n\r\n _setDuration(this, +vars.duration, 1, 1);\r\n\r\n this.data = vars.data;\r\n\r\n if (_context) {\r\n this._ctx = _context;\r\n\r\n _context.data.push(this);\r\n }\r\n\r\n _tickerActive || _ticker.wake();\r\n }\r\n\r\n var _proto = Animation.prototype;\r\n\r\n _proto.delay = function delay(value) {\r\n if (value || value === 0) {\r\n this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay);\r\n this._delay = value;\r\n return this;\r\n }\r\n\r\n return this._delay;\r\n };\r\n\r\n _proto.duration = function duration(value) {\r\n return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur;\r\n };\r\n\r\n _proto.totalDuration = function totalDuration(value) {\r\n if (!arguments.length) {\r\n return this._tDur;\r\n }\r\n\r\n this._dirty = 0;\r\n return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1));\r\n };\r\n\r\n _proto.totalTime = function totalTime(_totalTime, suppressEvents) {\r\n _wake();\r\n\r\n if (!arguments.length) {\r\n return this._tTime;\r\n }\r\n\r\n var parent = this._dp;\r\n\r\n if (parent && parent.smoothChildTiming && this._ts) {\r\n _alignPlayhead(this, _totalTime);\r\n\r\n !parent._dp || parent.parent || _postAddChecks(parent, this); // edge case: if this is a child of a timeline that already completed, for example, we must re-activate the parent.\r\n //in case any of the ancestor timelines had completed but should now be enabled, we should reset their totalTime() which will also ensure that they're lined up properly and enabled. Skip for animations that are on the root (wasteful). Example: a TimelineLite.exportRoot() is performed when there's a paused tween on the root, the export will not complete until that tween is unpaused, but imagine a child gets restarted later, after all [unpaused] tweens have completed. The start of that child would get pushed out, but one of the ancestors may have completed.\r\n\r\n while (parent && parent.parent) {\r\n if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) {\r\n parent.totalTime(parent._tTime, true);\r\n }\r\n\r\n parent = parent.parent;\r\n }\r\n\r\n if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) {\r\n //if the animation doesn't have a parent, put it back into its last parent (recorded as _dp for exactly cases like this). Limit to parents with autoRemoveChildren (like globalTimeline) so that if the user manually removes an animation from a timeline and then alters its playhead, it doesn't get added back in.\r\n _addToTimeline(this._dp, this, this._start - this._delay);\r\n }\r\n }\r\n\r\n if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) {\r\n // check for _ptLookup on a Tween instance to ensure it has actually finished being instantiated, otherwise if this.reverse() gets called in the Animation constructor, it could trigger a render() here even though the _targets weren't populated, thus when _init() is called there won't be any PropTweens (it'll act like the tween is non-functional)\r\n this._ts || (this._pTime = _totalTime); // otherwise, if an animation is paused, then the playhead is moved back to zero, then resumed, it'd revert back to the original time at the pause\r\n //if (!this._lock) { // avoid endless recursion (not sure we need this yet or if it's worth the performance hit)\r\n // this._lock = 1;\r\n\r\n _lazySafeRender(this, _totalTime, suppressEvents); // this._lock = 0;\r\n //}\r\n\r\n }\r\n\r\n return this;\r\n };\r\n\r\n _proto.time = function time(value, suppressEvents) {\r\n return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time; // note: if the modulus results in 0, the playhead could be exactly at the end or the beginning, and we always defer to the END with a non-zero value, otherwise if you set the time() to the very end (duration()), it would render at the START!\r\n };\r\n\r\n _proto.totalProgress = function totalProgress(value, suppressEvents) {\r\n return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.rawTime() >= 0 && this._initted ? 1 : 0;\r\n };\r\n\r\n _proto.progress = function progress(value, suppressEvents) {\r\n return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.rawTime() > 0 ? 1 : 0;\r\n };\r\n\r\n _proto.iteration = function iteration(value, suppressEvents) {\r\n var cycleDuration = this.duration() + this._rDelay;\r\n\r\n return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1;\r\n } // potential future addition:\r\n // isPlayingBackwards() {\r\n // \tlet animation = this,\r\n // \t\torientation = 1; // 1 = forward, -1 = backward\r\n // \twhile (animation) {\r\n // \t\torientation *= animation.reversed() || (animation.repeat() && !(animation.iteration() & 1)) ? -1 : 1;\r\n // \t\tanimation = animation.parent;\r\n // \t}\r\n // \treturn orientation < 0;\r\n // }\r\n ;\r\n\r\n _proto.timeScale = function timeScale(value, suppressEvents) {\r\n if (!arguments.length) {\r\n return this._rts === -_tinyNum ? 0 : this._rts; // recorded timeScale. Special case: if someone calls reverse() on an animation with timeScale of 0, we assign it -_tinyNum to remember it's reversed.\r\n }\r\n\r\n if (this._rts === value) {\r\n return this;\r\n }\r\n\r\n var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime; // make sure to do the parentToChildTotalTime() BEFORE setting the new _ts because the old one must be used in that calculation.\r\n // future addition? Up side: fast and minimal file size. Down side: only works on this animation; if a timeline is reversed, for example, its childrens' onReverse wouldn't get called.\r\n //(+value < 0 && this._rts >= 0) && _callback(this, \"onReverse\", true);\r\n // prioritize rendering where the parent's playhead lines up instead of this._tTime because there could be a tween that's animating another tween's timeScale in the same rendering loop (same parent), thus if the timeScale tween renders first, it would alter _start BEFORE _tTime was set on that tick (in the rendering loop), effectively freezing it until the timeScale tween finishes.\r\n\r\n this._rts = +value || 0;\r\n this._ts = this._ps || value === -_tinyNum ? 0 : this._rts; // _ts is the functional timeScale which would be 0 if the animation is paused.\r\n\r\n this.totalTime(_clamp(-Math.abs(this._delay), this.totalDuration(), tTime), suppressEvents !== false);\r\n\r\n _setEnd(this); // if parent.smoothChildTiming was false, the end time didn't get updated in the _alignPlayhead() method, so do it here.\r\n\r\n\r\n return _recacheAncestors(this);\r\n };\r\n\r\n _proto.paused = function paused(value) {\r\n if (!arguments.length) {\r\n return this._ps;\r\n } // possible future addition - if an animation is removed from its parent and then .restart() or .play() or .resume() is called, perhaps we should force it back into the globalTimeline but be careful because what if it's already at its end? We don't want it to just persist forever and not get released for GC.\r\n // !this.parent && !value && this._tTime < this._tDur && this !== _globalTimeline && _globalTimeline.add(this);\r\n\r\n\r\n if (this._ps !== value) {\r\n this._ps = value;\r\n\r\n if (value) {\r\n this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()); // if the pause occurs during the delay phase, make sure that's factored in when resuming.\r\n\r\n this._ts = this._act = 0; // _ts is the functional timeScale, so a paused tween would effectively have a timeScale of 0. We record the \"real\" timeScale as _rts (recorded time scale)\r\n } else {\r\n _wake();\r\n\r\n this._ts = this._rts; //only defer to _pTime (pauseTime) if tTime is zero. Remember, someone could pause() an animation, then scrub the playhead and resume(). If the parent doesn't have smoothChildTiming, we render at the rawTime() because the startTime won't get updated.\r\n\r\n this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum)); // edge case: animation.progress(1).pause().play() wouldn't render again because the playhead is already at the end, but the call to totalTime() below will add it back to its parent...and not remove it again (since removing only happens upon rendering at a new time). Offsetting the _tTime slightly is done simply to cause the final render in totalTime() that'll pop it off its timeline (if autoRemoveChildren is true, of course). Check to make sure _zTime isn't -_tinyNum to avoid an edge case where the playhead is pushed to the end but INSIDE a tween/callback, the timeline itself is paused thus halting rendering and leaving a few unrendered. When resuming, it wouldn't render those otherwise.\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n _proto.startTime = function startTime(value) {\r\n if (arguments.length) {\r\n this._start = value;\r\n var parent = this.parent || this._dp;\r\n parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay);\r\n return this;\r\n }\r\n\r\n return this._start;\r\n };\r\n\r\n _proto.endTime = function endTime(includeRepeats) {\r\n return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1);\r\n };\r\n\r\n _proto.rawTime = function rawTime(wrapRepeats) {\r\n var parent = this.parent || this._dp; // _dp = detached parent\r\n\r\n return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this);\r\n };\r\n\r\n _proto.revert = function revert(config) {\r\n if (config === void 0) {\r\n config = _revertConfig;\r\n }\r\n\r\n var prevIsReverting = _reverting;\r\n _reverting = config;\r\n\r\n if (_isRevertWorthy(this)) {\r\n this.timeline && this.timeline.revert(config);\r\n this.totalTime(-0.01, config.suppressEvents);\r\n }\r\n\r\n this.data !== \"nested\" && config.kill !== false && this.kill();\r\n _reverting = prevIsReverting;\r\n return this;\r\n };\r\n\r\n _proto.globalTime = function globalTime(rawTime) {\r\n var animation = this,\r\n time = arguments.length ? rawTime : animation.rawTime();\r\n\r\n while (animation) {\r\n time = animation._start + time / (Math.abs(animation._ts) || 1);\r\n animation = animation._dp;\r\n }\r\n\r\n return !this.parent && this._sat ? this._sat.globalTime(rawTime) : time; // the _startAt tweens for .fromTo() and .from() that have immediateRender should always be FIRST in the timeline (important for context.revert()). \"_sat\" stands for _startAtTween, referring to the parent tween that created the _startAt. We must discern if that tween had immediateRender so that we can know whether or not to prioritize it in revert().\r\n };\r\n\r\n _proto.repeat = function repeat(value) {\r\n if (arguments.length) {\r\n this._repeat = value === Infinity ? -2 : value;\r\n return _onUpdateTotalDuration(this);\r\n }\r\n\r\n return this._repeat === -2 ? Infinity : this._repeat;\r\n };\r\n\r\n _proto.repeatDelay = function repeatDelay(value) {\r\n if (arguments.length) {\r\n var time = this._time;\r\n this._rDelay = value;\r\n\r\n _onUpdateTotalDuration(this);\r\n\r\n return time ? this.time(time) : this;\r\n }\r\n\r\n return this._rDelay;\r\n };\r\n\r\n _proto.yoyo = function yoyo(value) {\r\n if (arguments.length) {\r\n this._yoyo = value;\r\n return this;\r\n }\r\n\r\n return this._yoyo;\r\n };\r\n\r\n _proto.seek = function seek(position, suppressEvents) {\r\n return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents));\r\n };\r\n\r\n _proto.restart = function restart(includeDelay, suppressEvents) {\r\n this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents));\r\n this._dur || (this._zTime = -_tinyNum); // ensures onComplete fires on a zero-duration animation that gets restarted.\r\n\r\n return this;\r\n };\r\n\r\n _proto.play = function play(from, suppressEvents) {\r\n from != null && this.seek(from, suppressEvents);\r\n return this.reversed(false).paused(false);\r\n };\r\n\r\n _proto.reverse = function reverse(from, suppressEvents) {\r\n from != null && this.seek(from || this.totalDuration(), suppressEvents);\r\n return this.reversed(true).paused(false);\r\n };\r\n\r\n _proto.pause = function pause(atTime, suppressEvents) {\r\n atTime != null && this.seek(atTime, suppressEvents);\r\n return this.paused(true);\r\n };\r\n\r\n _proto.resume = function resume() {\r\n return this.paused(false);\r\n };\r\n\r\n _proto.reversed = function reversed(value) {\r\n if (arguments.length) {\r\n !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0)); // in case timeScale is zero, reversing would have no effect so we use _tinyNum.\r\n\r\n return this;\r\n }\r\n\r\n return this._rts < 0;\r\n };\r\n\r\n _proto.invalidate = function invalidate() {\r\n this._initted = this._act = 0;\r\n this._zTime = -_tinyNum;\r\n return this;\r\n };\r\n\r\n _proto.isActive = function isActive() {\r\n var parent = this.parent || this._dp,\r\n start = this._start,\r\n rawTime;\r\n return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum);\r\n };\r\n\r\n _proto.eventCallback = function eventCallback(type, callback, params) {\r\n var vars = this.vars;\r\n\r\n if (arguments.length > 1) {\r\n if (!callback) {\r\n delete vars[type];\r\n } else {\r\n vars[type] = callback;\r\n params && (vars[type + \"Params\"] = params);\r\n type === \"onUpdate\" && (this._onUpdate = callback);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n return vars[type];\r\n };\r\n\r\n _proto.then = function then(onFulfilled) {\r\n var self = this;\r\n return new Promise(function (resolve) {\r\n var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough,\r\n _resolve = function _resolve() {\r\n var _then = self.then;\r\n self.then = null; // temporarily null the then() method to avoid an infinite loop (see https://github.com/greensock/GSAP/issues/322)\r\n\r\n _isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then);\r\n resolve(f);\r\n self.then = _then;\r\n };\r\n\r\n if (self._initted && self.totalProgress() === 1 && self._ts >= 0 || !self._tTime && self._ts < 0) {\r\n _resolve();\r\n } else {\r\n self._prom = _resolve;\r\n }\r\n });\r\n };\r\n\r\n _proto.kill = function kill() {\r\n _interrupt(this);\r\n };\r\n\r\n return Animation;\r\n}();\r\n\r\n_setDefaults(Animation.prototype, {\r\n _time: 0,\r\n _start: 0,\r\n _end: 0,\r\n _tTime: 0,\r\n _tDur: 0,\r\n _dirty: 0,\r\n _repeat: 0,\r\n _yoyo: false,\r\n parent: null,\r\n _initted: false,\r\n _rDelay: 0,\r\n _ts: 1,\r\n _dp: 0,\r\n ratio: 0,\r\n _zTime: -_tinyNum,\r\n _prom: 0,\r\n _ps: false,\r\n _rts: 1\r\n});\r\n/*\r\n * -------------------------------------------------\r\n * TIMELINE\r\n * -------------------------------------------------\r\n */\r\n\r\n\r\nvar Timeline = /*#__PURE__*/function (_Animation) {\r\n _inheritsLoose(Timeline, _Animation);\r\n\r\n function Timeline(vars, position) {\r\n var _this;\r\n\r\n if (vars === void 0) {\r\n vars = {};\r\n }\r\n\r\n _this = _Animation.call(this, vars) || this;\r\n _this.labels = {};\r\n _this.smoothChildTiming = !!vars.smoothChildTiming;\r\n _this.autoRemoveChildren = !!vars.autoRemoveChildren;\r\n _this._sort = _isNotFalse(vars.sortChildren);\r\n _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position);\r\n vars.reversed && _this.reverse();\r\n vars.paused && _this.paused(true);\r\n vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger);\r\n return _this;\r\n }\r\n\r\n var _proto2 = Timeline.prototype;\r\n\r\n _proto2.to = function to(targets, vars, position) {\r\n _createTweenType(0, arguments, this);\r\n\r\n return this;\r\n };\r\n\r\n _proto2.from = function from(targets, vars, position) {\r\n _createTweenType(1, arguments, this);\r\n\r\n return this;\r\n };\r\n\r\n _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) {\r\n _createTweenType(2, arguments, this);\r\n\r\n return this;\r\n };\r\n\r\n _proto2.set = function set(targets, vars, position) {\r\n vars.duration = 0;\r\n vars.parent = this;\r\n _inheritDefaults(vars).repeatDelay || (vars.repeat = 0);\r\n vars.immediateRender = !!vars.immediateRender;\r\n new Tween(targets, vars, _parsePosition(this, position), 1);\r\n return this;\r\n };\r\n\r\n _proto2.call = function call(callback, params, position) {\r\n return _addToTimeline(this, Tween.delayedCall(0, callback, params), position);\r\n } //ONLY for backward compatibility! Maybe delete?\r\n ;\r\n\r\n _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\r\n vars.duration = duration;\r\n vars.stagger = vars.stagger || stagger;\r\n vars.onComplete = onCompleteAll;\r\n vars.onCompleteParams = onCompleteAllParams;\r\n vars.parent = this;\r\n new Tween(targets, vars, _parsePosition(this, position));\r\n return this;\r\n };\r\n\r\n _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\r\n vars.runBackwards = 1;\r\n _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender);\r\n return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams);\r\n };\r\n\r\n _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) {\r\n toVars.startAt = fromVars;\r\n _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender);\r\n return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams);\r\n };\r\n\r\n _proto2.render = function render(totalTime, suppressEvents, force) {\r\n var prevTime = this._time,\r\n tDur = this._dirty ? this.totalDuration() : this._tDur,\r\n dur = this._dur,\r\n tTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime),\r\n // if a paused timeline is resumed (or its _start is updated for another reason...which rounds it), that could result in the playhead shifting a **tiny** amount and a zero-duration child at that spot may get rendered at a different ratio, like its totalTime in render() may be 1e-17 instead of 0, for example.\r\n crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur),\r\n time,\r\n child,\r\n next,\r\n iteration,\r\n cycleDuration,\r\n prevPaused,\r\n pauseTween,\r\n timeScale,\r\n prevStart,\r\n prevIteration,\r\n yoyo,\r\n isYoyo;\r\n this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur);\r\n\r\n if (tTime !== this._tTime || force || crossingStart) {\r\n if (prevTime !== this._time && dur) {\r\n //if totalDuration() finds a child with a negative startTime and smoothChildTiming is true, things get shifted around internally so we need to adjust the time accordingly. For example, if a tween starts at -30 we must shift EVERYTHING forward 30 seconds and move this timeline's startTime backward by 30 seconds so that things align with the playhead (no jump).\r\n tTime += this._time - prevTime;\r\n totalTime += this._time - prevTime;\r\n }\r\n\r\n time = tTime;\r\n prevStart = this._start;\r\n timeScale = this._ts;\r\n prevPaused = !timeScale;\r\n\r\n if (crossingStart) {\r\n dur || (prevTime = this._zTime); //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration timeline, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\r\n\r\n (totalTime || !suppressEvents) && (this._zTime = totalTime);\r\n }\r\n\r\n if (this._repeat) {\r\n //adjust the time for repeats and yoyos\r\n yoyo = this._yoyo;\r\n cycleDuration = dur + this._rDelay;\r\n\r\n if (this._repeat < -1 && totalTime < 0) {\r\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\r\n }\r\n\r\n time = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\r\n\r\n if (tTime === tDur) {\r\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\r\n iteration = this._repeat;\r\n time = dur;\r\n } else {\r\n prevIteration = _roundPrecise(tTime / cycleDuration); // full decimal version of iterations, not the previous iteration (we're reusing prevIteration variable for efficiency)\r\n\r\n iteration = ~~prevIteration;\r\n\r\n if (iteration && iteration === prevIteration) {\r\n time = dur;\r\n iteration--;\r\n }\r\n\r\n time > dur && (time = dur);\r\n }\r\n\r\n prevIteration = _animationCycle(this._tTime, cycleDuration);\r\n !prevTime && this._tTime && prevIteration !== iteration && this._tTime - prevIteration * cycleDuration - this._dur <= 0 && (prevIteration = iteration); // edge case - if someone does addPause() at the very beginning of a repeating timeline, that pause is technically at the same spot as the end which causes this._time to get set to 0 when the totalTime would normally place the playhead at the end. See https://gsap.com/forums/topic/23823-closing-nav-animation-not-working-on-ie-and-iphone-6-maybe-other-older-browser/?tab=comments#comment-113005 also, this._tTime - prevIteration * cycleDuration - this._dur <= 0 just checks to make sure it wasn't previously in the \"repeatDelay\" portion\r\n\r\n if (yoyo && iteration & 1) {\r\n time = dur - time;\r\n isYoyo = 1;\r\n }\r\n /*\r\n make sure children at the end/beginning of the timeline are rendered properly. If, for example,\r\n a 3-second long timeline rendered at 2.9 seconds previously, and now renders at 3.2 seconds (which\r\n would get translated to 2.8 seconds if the timeline yoyos or 0.2 seconds if it just repeats), there\r\n could be a callback or a short tween that's at 2.95 or 3 seconds in which wouldn't render. So\r\n we need to push the timeline to the end (and/or beginning depending on its yoyo value). Also we must\r\n ensure that zero-duration tweens at the very beginning or end of the Timeline work.\r\n */\r\n\r\n\r\n if (iteration !== prevIteration && !this._lock) {\r\n var rewinding = yoyo && prevIteration & 1,\r\n doesWrap = rewinding === (yoyo && iteration & 1);\r\n iteration < prevIteration && (rewinding = !rewinding);\r\n prevTime = rewinding ? 0 : tTime % dur ? dur : tTime; // if the playhead is landing exactly at the end of an iteration, use that totalTime rather than only the duration, otherwise it'll skip the 2nd render since it's effectively at the same time.\r\n\r\n this._lock = 1;\r\n this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0;\r\n this._tTime = tTime; // if a user gets the iteration() inside the onRepeat, for example, it should be accurate.\r\n\r\n !suppressEvents && this.parent && _callback(this, \"onRepeat\");\r\n this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1);\r\n\r\n if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) {\r\n // if prevTime is 0 and we render at the very end, _time will be the end, thus won't match. So in this edge case, prevTime won't match _time but that's okay. If it gets killed in the onRepeat, eject as well.\r\n return this;\r\n }\r\n\r\n dur = this._dur; // in case the duration changed in the onRepeat\r\n\r\n tDur = this._tDur;\r\n\r\n if (doesWrap) {\r\n this._lock = 2;\r\n prevTime = rewinding ? dur : -0.0001;\r\n this.render(prevTime, true);\r\n this.vars.repeatRefresh && !isYoyo && this.invalidate();\r\n }\r\n\r\n this._lock = 0;\r\n\r\n if (!this._ts && !prevPaused) {\r\n return this;\r\n } //in order for yoyoEase to work properly when there's a stagger, we must swap out the ease in each sub-tween.\r\n\r\n\r\n _propagateYoyoEase(this, isYoyo);\r\n }\r\n }\r\n\r\n if (this._hasPause && !this._forcing && this._lock < 2) {\r\n pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time));\r\n\r\n if (pauseTween) {\r\n tTime -= time - (time = pauseTween._start);\r\n }\r\n }\r\n\r\n this._tTime = tTime;\r\n this._time = time;\r\n this._act = !timeScale; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\r\n\r\n if (!this._initted) {\r\n this._onUpdate = this.vars.onUpdate;\r\n this._initted = 1;\r\n this._zTime = totalTime;\r\n prevTime = 0; // upon init, the playhead should always go forward; someone could invalidate() a completed timeline and then if they restart(), that would make child tweens render in reverse order which could lock in the wrong starting values if they build on each other, like tl.to(obj, {x: 100}).to(obj, {x: 0}).\r\n }\r\n\r\n if (!prevTime && tTime && !suppressEvents && !prevIteration) {\r\n _callback(this, \"onStart\");\r\n\r\n if (this._tTime !== tTime) {\r\n // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart.\r\n return this;\r\n }\r\n }\r\n\r\n if (time >= prevTime && totalTime >= 0) {\r\n child = this._first;\r\n\r\n while (child) {\r\n next = child._next;\r\n\r\n if ((child._act || time >= child._start) && child._ts && pauseTween !== child) {\r\n if (child.parent !== this) {\r\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\r\n return this.render(totalTime, suppressEvents, force);\r\n }\r\n\r\n child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force);\r\n\r\n if (time !== this._time || !this._ts && !prevPaused) {\r\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\r\n pauseTween = 0;\r\n next && (tTime += this._zTime = -_tinyNum); // it didn't finish rendering, so flag zTime as negative so that the next time render() is called it'll be forced (to render any remaining children)\r\n\r\n break;\r\n }\r\n }\r\n\r\n child = next;\r\n }\r\n } else {\r\n child = this._last;\r\n var adjustedTime = totalTime < 0 ? totalTime : time; //when the playhead goes backward beyond the start of this timeline, we must pass that information down to the child animations so that zero-duration tweens know whether to render their starting or ending values.\r\n\r\n while (child) {\r\n next = child._prev;\r\n\r\n if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) {\r\n if (child.parent !== this) {\r\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\r\n return this.render(totalTime, suppressEvents, force);\r\n }\r\n\r\n child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || _reverting && _isRevertWorthy(child)); // if reverting, we should always force renders of initted tweens (but remember that .fromTo() or .from() may have a _startAt but not _initted yet). If, for example, a .fromTo() tween with a stagger (which creates an internal timeline) gets reverted BEFORE some of its child tweens render for the first time, it may not properly trigger them to revert.\r\n\r\n if (time !== this._time || !this._ts && !prevPaused) {\r\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\r\n pauseTween = 0;\r\n next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum); // it didn't finish rendering, so adjust zTime so that so that the next time render() is called it'll be forced (to render any remaining children)\r\n\r\n break;\r\n }\r\n }\r\n\r\n child = next;\r\n }\r\n }\r\n\r\n if (pauseTween && !suppressEvents) {\r\n this.pause();\r\n pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1;\r\n\r\n if (this._ts) {\r\n //the callback resumed playback! So since we may have held back the playhead due to where the pause is positioned, go ahead and jump to where it's SUPPOSED to be (if no pause happened).\r\n this._start = prevStart; //if the pause was at an earlier time and the user resumed in the callback, it could reposition the timeline (changing its startTime), throwing things off slightly, so we make sure the _start doesn't shift.\r\n\r\n _setEnd(this);\r\n\r\n return this.render(totalTime, suppressEvents, force);\r\n }\r\n }\r\n\r\n this._onUpdate && !suppressEvents && _callback(this, \"onUpdate\", true);\r\n if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) if (!this._lock) {\r\n // remember, a child's callback may alter this timeline's playhead or timeScale which is why we need to add some of these checks.\r\n (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\r\n\r\n if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) {\r\n _callback(this, tTime === tDur && totalTime >= 0 ? \"onComplete\" : \"onReverseComplete\", true);\r\n\r\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n _proto2.add = function add(child, position) {\r\n var _this2 = this;\r\n\r\n _isNumber(position) || (position = _parsePosition(this, position, child));\r\n\r\n if (!(child instanceof Animation)) {\r\n if (_isArray(child)) {\r\n child.forEach(function (obj) {\r\n return _this2.add(obj, position);\r\n });\r\n return this;\r\n }\r\n\r\n if (_isString(child)) {\r\n return this.addLabel(child, position);\r\n }\r\n\r\n if (_isFunction(child)) {\r\n child = Tween.delayedCall(0, child);\r\n } else {\r\n return this;\r\n }\r\n }\r\n\r\n return this !== child ? _addToTimeline(this, child, position) : this; //don't allow a timeline to be added to itself as a child!\r\n };\r\n\r\n _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) {\r\n if (nested === void 0) {\r\n nested = true;\r\n }\r\n\r\n if (tweens === void 0) {\r\n tweens = true;\r\n }\r\n\r\n if (timelines === void 0) {\r\n timelines = true;\r\n }\r\n\r\n if (ignoreBeforeTime === void 0) {\r\n ignoreBeforeTime = -_bigNum;\r\n }\r\n\r\n var a = [],\r\n child = this._first;\r\n\r\n while (child) {\r\n if (child._start >= ignoreBeforeTime) {\r\n if (child instanceof Tween) {\r\n tweens && a.push(child);\r\n } else {\r\n timelines && a.push(child);\r\n nested && a.push.apply(a, child.getChildren(true, tweens, timelines));\r\n }\r\n }\r\n\r\n child = child._next;\r\n }\r\n\r\n return a;\r\n };\r\n\r\n _proto2.getById = function getById(id) {\r\n var animations = this.getChildren(1, 1, 1),\r\n i = animations.length;\r\n\r\n while (i--) {\r\n if (animations[i].vars.id === id) {\r\n return animations[i];\r\n }\r\n }\r\n };\r\n\r\n _proto2.remove = function remove(child) {\r\n if (_isString(child)) {\r\n return this.removeLabel(child);\r\n }\r\n\r\n if (_isFunction(child)) {\r\n return this.killTweensOf(child);\r\n }\r\n\r\n child.parent === this && _removeLinkedListItem(this, child);\r\n\r\n if (child === this._recent) {\r\n this._recent = this._last;\r\n }\r\n\r\n return _uncache(this);\r\n };\r\n\r\n _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) {\r\n if (!arguments.length) {\r\n return this._tTime;\r\n }\r\n\r\n this._forcing = 1;\r\n\r\n if (!this._dp && this._ts) {\r\n //special case for the global timeline (or any other that has no parent or detached parent).\r\n this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts));\r\n }\r\n\r\n _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents);\r\n\r\n this._forcing = 0;\r\n return this;\r\n };\r\n\r\n _proto2.addLabel = function addLabel(label, position) {\r\n this.labels[label] = _parsePosition(this, position);\r\n return this;\r\n };\r\n\r\n _proto2.removeLabel = function removeLabel(label) {\r\n delete this.labels[label];\r\n return this;\r\n };\r\n\r\n _proto2.addPause = function addPause(position, callback, params) {\r\n var t = Tween.delayedCall(0, callback || _emptyFunc, params);\r\n t.data = \"isPause\";\r\n this._hasPause = 1;\r\n return _addToTimeline(this, t, _parsePosition(this, position));\r\n };\r\n\r\n _proto2.removePause = function removePause(position) {\r\n var child = this._first;\r\n position = _parsePosition(this, position);\r\n\r\n while (child) {\r\n if (child._start === position && child.data === \"isPause\") {\r\n _removeFromParent(child);\r\n }\r\n\r\n child = child._next;\r\n }\r\n };\r\n\r\n _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) {\r\n var tweens = this.getTweensOf(targets, onlyActive),\r\n i = tweens.length;\r\n\r\n while (i--) {\r\n _overwritingTween !== tweens[i] && tweens[i].kill(targets, props);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n _proto2.getTweensOf = function getTweensOf(targets, onlyActive) {\r\n var a = [],\r\n parsedTargets = toArray(targets),\r\n child = this._first,\r\n isGlobalTime = _isNumber(onlyActive),\r\n // a number is interpreted as a global time. If the animation spans\r\n children;\r\n\r\n while (child) {\r\n if (child instanceof Tween) {\r\n if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) {\r\n // note: if this is for overwriting, it should only be for tweens that aren't paused and are initted.\r\n a.push(child);\r\n }\r\n } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) {\r\n a.push.apply(a, children);\r\n }\r\n\r\n child = child._next;\r\n }\r\n\r\n return a;\r\n } // potential future feature - targets() on timelines\r\n // targets() {\r\n // \tlet result = [];\r\n // \tthis.getChildren(true, true, false).forEach(t => result.push(...t.targets()));\r\n // \treturn result.filter((v, i) => result.indexOf(v) === i);\r\n // }\r\n ;\r\n\r\n _proto2.tweenTo = function tweenTo(position, vars) {\r\n vars = vars || {};\r\n\r\n var tl = this,\r\n endTime = _parsePosition(tl, position),\r\n _vars = vars,\r\n startAt = _vars.startAt,\r\n _onStart = _vars.onStart,\r\n onStartParams = _vars.onStartParams,\r\n immediateRender = _vars.immediateRender,\r\n initted,\r\n tween = Tween.to(tl, _setDefaults({\r\n ease: vars.ease || \"none\",\r\n lazy: false,\r\n immediateRender: false,\r\n time: endTime,\r\n overwrite: \"auto\",\r\n duration: vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum,\r\n onStart: function onStart() {\r\n tl.pause();\r\n\r\n if (!initted) {\r\n var duration = vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale());\r\n tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true);\r\n initted = 1;\r\n }\r\n\r\n _onStart && _onStart.apply(tween, onStartParams || []); //in case the user had an onStart in the vars - we don't want to overwrite it.\r\n }\r\n }, vars));\r\n\r\n return immediateRender ? tween.render(0) : tween;\r\n };\r\n\r\n _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) {\r\n return this.tweenTo(toPosition, _setDefaults({\r\n startAt: {\r\n time: _parsePosition(this, fromPosition)\r\n }\r\n }, vars));\r\n };\r\n\r\n _proto2.recent = function recent() {\r\n return this._recent;\r\n };\r\n\r\n _proto2.nextLabel = function nextLabel(afterTime) {\r\n if (afterTime === void 0) {\r\n afterTime = this._time;\r\n }\r\n\r\n return _getLabelInDirection(this, _parsePosition(this, afterTime));\r\n };\r\n\r\n _proto2.previousLabel = function previousLabel(beforeTime) {\r\n if (beforeTime === void 0) {\r\n beforeTime = this._time;\r\n }\r\n\r\n return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1);\r\n };\r\n\r\n _proto2.currentLabel = function currentLabel(value) {\r\n return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum);\r\n };\r\n\r\n _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) {\r\n if (ignoreBeforeTime === void 0) {\r\n ignoreBeforeTime = 0;\r\n }\r\n\r\n var child = this._first,\r\n labels = this.labels,\r\n p;\r\n\r\n while (child) {\r\n if (child._start >= ignoreBeforeTime) {\r\n child._start += amount;\r\n child._end += amount;\r\n }\r\n\r\n child = child._next;\r\n }\r\n\r\n if (adjustLabels) {\r\n for (p in labels) {\r\n if (labels[p] >= ignoreBeforeTime) {\r\n labels[p] += amount;\r\n }\r\n }\r\n }\r\n\r\n return _uncache(this);\r\n };\r\n\r\n _proto2.invalidate = function invalidate(soft) {\r\n var child = this._first;\r\n this._lock = 0;\r\n\r\n while (child) {\r\n child.invalidate(soft);\r\n child = child._next;\r\n }\r\n\r\n return _Animation.prototype.invalidate.call(this, soft);\r\n };\r\n\r\n _proto2.clear = function clear(includeLabels) {\r\n if (includeLabels === void 0) {\r\n includeLabels = true;\r\n }\r\n\r\n var child = this._first,\r\n next;\r\n\r\n while (child) {\r\n next = child._next;\r\n this.remove(child);\r\n child = next;\r\n }\r\n\r\n this._dp && (this._time = this._tTime = this._pTime = 0);\r\n includeLabels && (this.labels = {});\r\n return _uncache(this);\r\n };\r\n\r\n _proto2.totalDuration = function totalDuration(value) {\r\n var max = 0,\r\n self = this,\r\n child = self._last,\r\n prevStart = _bigNum,\r\n prev,\r\n start,\r\n parent;\r\n\r\n if (arguments.length) {\r\n return self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value));\r\n }\r\n\r\n if (self._dirty) {\r\n parent = self.parent;\r\n\r\n while (child) {\r\n prev = child._prev; //record it here in case the tween changes position in the sequence...\r\n\r\n child._dirty && child.totalDuration(); //could change the tween._startTime, so make sure the animation's cache is clean before analyzing it.\r\n\r\n start = child._start;\r\n\r\n if (start > prevStart && self._sort && child._ts && !self._lock) {\r\n //in case one of the tweens shifted out of order, it needs to be re-inserted into the correct position in the sequence\r\n self._lock = 1; //prevent endless recursive calls - there are methods that get triggered that check duration/totalDuration when we add().\r\n\r\n _addToTimeline(self, child, start - child._delay, 1)._lock = 0;\r\n } else {\r\n prevStart = start;\r\n }\r\n\r\n if (start < 0 && child._ts) {\r\n //children aren't allowed to have negative startTimes unless smoothChildTiming is true, so adjust here if one is found.\r\n max -= start;\r\n\r\n if (!parent && !self._dp || parent && parent.smoothChildTiming) {\r\n self._start += start / self._ts;\r\n self._time -= start;\r\n self._tTime -= start;\r\n }\r\n\r\n self.shiftChildren(-start, false, -1e999);\r\n prevStart = 0;\r\n }\r\n\r\n child._end > max && child._ts && (max = child._end);\r\n child = prev;\r\n }\r\n\r\n _setDuration(self, self === _globalTimeline && self._time > max ? self._time : max, 1, 1);\r\n\r\n self._dirty = 0;\r\n }\r\n\r\n return self._tDur;\r\n };\r\n\r\n Timeline.updateRoot = function updateRoot(time) {\r\n if (_globalTimeline._ts) {\r\n _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline));\r\n\r\n _lastRenderedFrame = _ticker.frame;\r\n }\r\n\r\n if (_ticker.frame >= _nextGCFrame) {\r\n _nextGCFrame += _config.autoSleep || 120;\r\n var child = _globalTimeline._first;\r\n if (!child || !child._ts) if (_config.autoSleep && _ticker._listeners.length < 2) {\r\n while (child && !child._ts) {\r\n child = child._next;\r\n }\r\n\r\n child || _ticker.sleep();\r\n }\r\n }\r\n };\r\n\r\n return Timeline;\r\n}(Animation);\r\n\r\n_setDefaults(Timeline.prototype, {\r\n _lock: 0,\r\n _hasPause: 0,\r\n _forcing: 0\r\n});\r\n\r\nvar _addComplexStringPropTween = function _addComplexStringPropTween(target, prop, start, end, setter, stringFilter, funcParam) {\r\n //note: we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\r\n var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter),\r\n index = 0,\r\n matchIndex = 0,\r\n result,\r\n startNums,\r\n color,\r\n endNum,\r\n chunk,\r\n startNum,\r\n hasRandom,\r\n a;\r\n pt.b = start;\r\n pt.e = end;\r\n start += \"\"; //ensure values are strings\r\n\r\n end += \"\";\r\n\r\n if (hasRandom = ~end.indexOf(\"random(\")) {\r\n end = _replaceRandom(end);\r\n }\r\n\r\n if (stringFilter) {\r\n a = [start, end];\r\n stringFilter(a, target, prop); //pass an array with the starting and ending values and let the filter do whatever it needs to the values.\r\n\r\n start = a[0];\r\n end = a[1];\r\n }\r\n\r\n startNums = start.match(_complexStringNumExp) || [];\r\n\r\n while (result = _complexStringNumExp.exec(end)) {\r\n endNum = result[0];\r\n chunk = end.substring(index, result.index);\r\n\r\n if (color) {\r\n color = (color + 1) % 5;\r\n } else if (chunk.substr(-5) === \"rgba(\") {\r\n color = 1;\r\n }\r\n\r\n if (endNum !== startNums[matchIndex++]) {\r\n startNum = parseFloat(startNums[matchIndex - 1]) || 0; //these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\r\n\r\n pt._pt = {\r\n _next: pt._pt,\r\n p: chunk || matchIndex === 1 ? chunk : \",\",\r\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\r\n s: startNum,\r\n c: endNum.charAt(1) === \"=\" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum,\r\n m: color && color < 4 ? Math.round : 0\r\n };\r\n index = _complexStringNumExp.lastIndex;\r\n }\r\n }\r\n\r\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\r\n\r\n pt.fp = funcParam;\r\n\r\n if (_relExp.test(end) || hasRandom) {\r\n pt.e = 0; //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\r\n }\r\n\r\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\r\n\r\n return pt;\r\n},\r\n _addPropTween = function _addPropTween(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) {\r\n _isFunction(end) && (end = end(index || 0, target, targets));\r\n var currentValue = target[prop],\r\n parsedStart = start !== \"get\" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf(\"set\") || !_isFunction(target[\"get\" + prop.substr(3)]) ? prop : \"get\" + prop.substr(3)](funcParam) : target[prop](),\r\n setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc,\r\n pt;\r\n\r\n if (_isString(end)) {\r\n if (~end.indexOf(\"random(\")) {\r\n end = _replaceRandom(end);\r\n }\r\n\r\n if (end.charAt(1) === \"=\") {\r\n pt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0);\r\n\r\n if (pt || pt === 0) {\r\n // to avoid isNaN, like if someone passes in a value like \"!= whatever\"\r\n end = pt;\r\n }\r\n }\r\n }\r\n\r\n if (!optional || parsedStart !== end || _forceAllPropTweens) {\r\n if (!isNaN(parsedStart * end) && end !== \"\") {\r\n // fun fact: any number multiplied by \"\" is evaluated as the number 0!\r\n pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === \"boolean\" ? _renderBoolean : _renderPlain, 0, setter);\r\n funcParam && (pt.fp = funcParam);\r\n modifier && pt.modifier(modifier, this, target);\r\n return this._pt = pt;\r\n }\r\n\r\n !currentValue && !(prop in target) && _missingPlugin(prop, end);\r\n return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam);\r\n }\r\n},\r\n //creates a copy of the vars object and processes any function-based values (putting the resulting values directly into the copy) as well as strings with \"random()\" in them. It does NOT process relative values.\r\n_processVars = function _processVars(vars, index, target, targets, tween) {\r\n _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets));\r\n\r\n if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) {\r\n return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars;\r\n }\r\n\r\n var copy = {},\r\n p;\r\n\r\n for (p in vars) {\r\n copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets);\r\n }\r\n\r\n return copy;\r\n},\r\n _checkPlugin = function _checkPlugin(property, vars, tween, index, target, targets) {\r\n var plugin, pt, ptLookup, i;\r\n\r\n if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) {\r\n tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority);\r\n\r\n if (tween !== _quickTween) {\r\n ptLookup = tween._ptLookup[tween._targets.indexOf(target)]; //note: we can't use tween._ptLookup[index] because for staggered tweens, the index from the fullTargets array won't match what it is in each individual tween that spawns from the stagger.\r\n\r\n i = plugin._props.length;\r\n\r\n while (i--) {\r\n ptLookup[plugin._props[i]] = pt;\r\n }\r\n }\r\n }\r\n\r\n return plugin;\r\n},\r\n _overwritingTween,\r\n //store a reference temporarily so we can avoid overwriting itself.\r\n_forceAllPropTweens,\r\n _initTween = function _initTween(tween, time, tTime) {\r\n var vars = tween.vars,\r\n ease = vars.ease,\r\n startAt = vars.startAt,\r\n immediateRender = vars.immediateRender,\r\n lazy = vars.lazy,\r\n onUpdate = vars.onUpdate,\r\n runBackwards = vars.runBackwards,\r\n yoyoEase = vars.yoyoEase,\r\n keyframes = vars.keyframes,\r\n autoRevert = vars.autoRevert,\r\n dur = tween._dur,\r\n prevStartAt = tween._startAt,\r\n targets = tween._targets,\r\n parent = tween.parent,\r\n fullTargets = parent && parent.data === \"nested\" ? parent.vars.targets : targets,\r\n autoOverwrite = tween._overwrite === \"auto\" && !_suppressOverwrites,\r\n tl = tween.timeline,\r\n cleanVars,\r\n i,\r\n p,\r\n pt,\r\n target,\r\n hasPriority,\r\n gsData,\r\n harness,\r\n plugin,\r\n ptLookup,\r\n index,\r\n harnessVars,\r\n overwritten;\r\n tl && (!keyframes || !ease) && (ease = \"none\");\r\n tween._ease = _parseEase(ease, _defaults.ease);\r\n tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0;\r\n\r\n if (yoyoEase && tween._yoyo && !tween._repeat) {\r\n //there must have been a parent timeline with yoyo:true that is currently in its yoyo phase, so flip the eases.\r\n yoyoEase = tween._yEase;\r\n tween._yEase = tween._ease;\r\n tween._ease = yoyoEase;\r\n }\r\n\r\n tween._from = !tl && !!vars.runBackwards; //nested timelines should never run backwards - the backwards-ness is in the child tweens.\r\n\r\n if (!tl || keyframes && !vars.stagger) {\r\n //if there's an internal timeline, skip all the parsing because we passed that task down the chain.\r\n harness = targets[0] ? _getCache(targets[0]).harness : 0;\r\n harnessVars = harness && vars[harness.prop]; //someone may need to specify CSS-specific values AND non-CSS values, like if the element has an \"x\" property plus it's a standard DOM element. We allow people to distinguish by wrapping plugin-specific stuff in a css:{} object for example.\r\n\r\n cleanVars = _copyExcluding(vars, _reservedProps);\r\n\r\n if (prevStartAt) {\r\n prevStartAt._zTime < 0 && prevStartAt.progress(1); // in case it's a lazy startAt that hasn't rendered yet.\r\n\r\n time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig); // if it's a \"startAt\" (not \"from()\" or runBackwards: true), we only need to do a shallow revert (keep transforms cached in CSSPlugin)\r\n // don't just _removeFromParent(prevStartAt.render(-1, true)) because that'll leave inline styles. We're creating a new _startAt for \"startAt\" tweens that re-capture things to ensure that if the pre-tween values changed since the tween was created, they're recorded.\r\n\r\n prevStartAt._lazy = 0;\r\n }\r\n\r\n if (startAt) {\r\n _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({\r\n data: \"isStart\",\r\n overwrite: false,\r\n parent: parent,\r\n immediateRender: true,\r\n lazy: !prevStartAt && _isNotFalse(lazy),\r\n startAt: null,\r\n delay: 0,\r\n onUpdate: onUpdate && function () {\r\n return _callback(tween, \"onUpdate\");\r\n },\r\n stagger: 0\r\n }, startAt))); //copy the properties/values into a new object to avoid collisions, like var to = {x:0}, from = {x:500}; timeline.fromTo(e, from, to).fromTo(e, to, from);\r\n\r\n\r\n tween._startAt._dp = 0; // don't allow it to get put back into root timeline! Like when revert() is called and totalTime() gets set.\r\n\r\n tween._startAt._sat = tween; // used in globalTime(). _sat stands for _startAtTween\r\n\r\n time < 0 && (_reverting || !immediateRender && !autoRevert) && tween._startAt.revert(_revertConfigNoKill); // rare edge case, like if a render is forced in the negative direction of a non-initted tween.\r\n\r\n if (immediateRender) {\r\n if (dur && time <= 0 && tTime <= 0) {\r\n // check tTime here because in the case of a yoyo tween whose playhead gets pushed to the end like tween.progress(1), we should allow it through so that the onComplete gets fired properly.\r\n time && (tween._zTime = time);\r\n return; //we skip initialization here so that overwriting doesn't occur until the tween actually begins. Otherwise, if you create several immediateRender:true tweens of the same target/properties to drop into a Timeline, the last one created would overwrite the first ones because they didn't get placed into the timeline yet before the first render occurs and kicks in overwriting.\r\n }\r\n }\r\n } else if (runBackwards && dur) {\r\n //from() tweens must be handled uniquely: their beginning values must be rendered but we don't want overwriting to occur yet (when time is still 0). Wait until the tween actually begins before doing all the routines like overwriting. At that time, we should render at the END of the tween to ensure that things initialize correctly (remember, from() tweens go backwards)\r\n if (!prevStartAt) {\r\n time && (immediateRender = false); //in rare cases (like if a from() tween runs and then is invalidate()-ed), immediateRender could be true but the initial forced-render gets skipped, so there's no need to force the render in this context when the _time is greater than 0\r\n\r\n p = _setDefaults({\r\n overwrite: false,\r\n data: \"isFromStart\",\r\n //we tag the tween with as \"isFromStart\" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a \"from()\" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:\"height\", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in.\r\n lazy: immediateRender && !prevStartAt && _isNotFalse(lazy),\r\n immediateRender: immediateRender,\r\n //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after)\r\n stagger: 0,\r\n parent: parent //ensures that nested tweens that had a stagger are handled properly, like gsap.from(\".class\", {y: gsap.utils.wrap([-100,100]), stagger: 0.5})\r\n\r\n }, cleanVars);\r\n harnessVars && (p[harness.prop] = harnessVars); // in case someone does something like .from(..., {css:{}})\r\n\r\n _removeFromParent(tween._startAt = Tween.set(targets, p));\r\n\r\n tween._startAt._dp = 0; // don't allow it to get put back into root timeline!\r\n\r\n tween._startAt._sat = tween; // used in globalTime()\r\n\r\n time < 0 && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true));\r\n tween._zTime = time;\r\n\r\n if (!immediateRender) {\r\n _initTween(tween._startAt, _tinyNum, _tinyNum); //ensures that the initial values are recorded\r\n\r\n } else if (!time) {\r\n return;\r\n }\r\n }\r\n }\r\n\r\n tween._pt = tween._ptCache = 0;\r\n lazy = dur && _isNotFalse(lazy) || lazy && !dur;\r\n\r\n for (i = 0; i < targets.length; i++) {\r\n target = targets[i];\r\n gsData = target._gsap || _harness(targets)[i]._gsap;\r\n tween._ptLookup[i] = ptLookup = {};\r\n _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender(); //if other tweens of the same target have recently initted but haven't rendered yet, we've got to force the render so that the starting values are correct (imagine populating a timeline with a bunch of sequential tweens and then jumping to the end)\r\n\r\n index = fullTargets === targets ? i : fullTargets.indexOf(target);\r\n\r\n if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) {\r\n tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority);\r\n\r\n plugin._props.forEach(function (name) {\r\n ptLookup[name] = pt;\r\n });\r\n\r\n plugin.priority && (hasPriority = 1);\r\n }\r\n\r\n if (!harness || harnessVars) {\r\n for (p in cleanVars) {\r\n if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) {\r\n plugin.priority && (hasPriority = 1);\r\n } else {\r\n ptLookup[p] = pt = _addPropTween.call(tween, target, p, \"get\", cleanVars[p], index, fullTargets, 0, vars.stringFilter);\r\n }\r\n }\r\n }\r\n\r\n tween._op && tween._op[i] && tween.kill(target, tween._op[i]);\r\n\r\n if (autoOverwrite && tween._pt) {\r\n _overwritingTween = tween;\r\n\r\n _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time)); // make sure the overwriting doesn't overwrite THIS tween!!!\r\n\r\n\r\n overwritten = !tween.parent;\r\n _overwritingTween = 0;\r\n }\r\n\r\n tween._pt && lazy && (_lazyLookup[gsData.id] = 1);\r\n }\r\n\r\n hasPriority && _sortPropTweensByPriority(tween);\r\n tween._onInit && tween._onInit(tween); //plugins like RoundProps must wait until ALL of the PropTweens are instantiated. In the plugin's init() function, it sets the _onInit on the tween instance. May not be pretty/intuitive, but it's fast and keeps file size down.\r\n }\r\n\r\n tween._onUpdate = onUpdate;\r\n tween._initted = (!tween._op || tween._pt) && !overwritten; // if overwrittenProps resulted in the entire tween being killed, do NOT flag it as initted or else it may render for one tick.\r\n\r\n keyframes && time <= 0 && tl.render(_bigNum, true, true); // if there's a 0% keyframe, it'll render in the \"before\" state for any staggered/delayed animations thus when the following tween initializes, it'll use the \"before\" state instead of the \"after\" state as the initial values.\r\n},\r\n _updatePropTweens = function _updatePropTweens(tween, property, value, start, startIsRelative, ratio, time, skipRecursion) {\r\n var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property],\r\n pt,\r\n rootPT,\r\n lookup,\r\n i;\r\n\r\n if (!ptCache) {\r\n ptCache = tween._ptCache[property] = [];\r\n lookup = tween._ptLookup;\r\n i = tween._targets.length;\r\n\r\n while (i--) {\r\n pt = lookup[i][property];\r\n\r\n if (pt && pt.d && pt.d._pt) {\r\n // it's a plugin, so find the nested PropTween\r\n pt = pt.d._pt;\r\n\r\n while (pt && pt.p !== property && pt.fp !== property) {\r\n // \"fp\" is functionParam for things like setting CSS variables which require .setProperty(\"--var-name\", value)\r\n pt = pt._next;\r\n }\r\n }\r\n\r\n if (!pt) {\r\n // there is no PropTween associated with that property, so we must FORCE one to be created and ditch out of this\r\n // if the tween has other properties that already rendered at new positions, we'd normally have to rewind to put them back like tween.render(0, true) before forcing an _initTween(), but that can create another edge case like tweening a timeline's progress would trigger onUpdates to fire which could move other things around. It's better to just inform users that .resetTo() should ONLY be used for tweens that already have that property. For example, you can't gsap.to(...{ y: 0 }) and then tween.restTo(\"x\", 200) for example.\r\n _forceAllPropTweens = 1; // otherwise, when we _addPropTween() and it finds no change between the start and end values, it skips creating a PropTween (for efficiency...why tween when there's no difference?) but in this case we NEED that PropTween created so we can edit it.\r\n\r\n tween.vars[property] = \"+=0\";\r\n\r\n _initTween(tween, time);\r\n\r\n _forceAllPropTweens = 0;\r\n return skipRecursion ? _warn(property + \" not eligible for reset\") : 1; // if someone tries to do a quickTo() on a special property like borderRadius which must get split into 4 different properties, that's not eligible for .resetTo().\r\n }\r\n\r\n ptCache.push(pt);\r\n }\r\n }\r\n\r\n i = ptCache.length;\r\n\r\n while (i--) {\r\n rootPT = ptCache[i];\r\n pt = rootPT._pt || rootPT; // complex values may have nested PropTweens. We only accommodate the FIRST value.\r\n\r\n pt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c;\r\n pt.c = value - pt.s;\r\n rootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e)); // mainly for CSSPlugin (end value)\r\n\r\n rootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b)); // (beginning value)\r\n }\r\n},\r\n _addAliasesToVars = function _addAliasesToVars(targets, vars) {\r\n var harness = targets[0] ? _getCache(targets[0]).harness : 0,\r\n propertyAliases = harness && harness.aliases,\r\n copy,\r\n p,\r\n i,\r\n aliases;\r\n\r\n if (!propertyAliases) {\r\n return vars;\r\n }\r\n\r\n copy = _merge({}, vars);\r\n\r\n for (p in propertyAliases) {\r\n if (p in copy) {\r\n aliases = propertyAliases[p].split(\",\");\r\n i = aliases.length;\r\n\r\n while (i--) {\r\n copy[aliases[i]] = copy[p];\r\n }\r\n }\r\n }\r\n\r\n return copy;\r\n},\r\n // parses multiple formats, like {\"0%\": {x: 100}, {\"50%\": {x: -20}} and { x: {\"0%\": 100, \"50%\": -20} }, and an \"ease\" can be set on any object. We populate an \"allProps\" object with an Array for each property, like {x: [{}, {}], y:[{}, {}]} with data for each property tween. The objects have a \"t\" (time), \"v\", (value), and \"e\" (ease) property. This allows us to piece together a timeline later.\r\n_parseKeyframe = function _parseKeyframe(prop, obj, allProps, easeEach) {\r\n var ease = obj.ease || easeEach || \"power1.inOut\",\r\n p,\r\n a;\r\n\r\n if (_isArray(obj)) {\r\n a = allProps[prop] || (allProps[prop] = []); // t = time (out of 100), v = value, e = ease\r\n\r\n obj.forEach(function (value, i) {\r\n return a.push({\r\n t: i / (obj.length - 1) * 100,\r\n v: value,\r\n e: ease\r\n });\r\n });\r\n } else {\r\n for (p in obj) {\r\n a = allProps[p] || (allProps[p] = []);\r\n p === \"ease\" || a.push({\r\n t: parseFloat(prop),\r\n v: obj[p],\r\n e: ease\r\n });\r\n }\r\n }\r\n},\r\n _parseFuncOrString = function _parseFuncOrString(value, tween, i, target, targets) {\r\n return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf(\"random(\") ? _replaceRandom(value) : value;\r\n},\r\n _staggerTweenProps = _callbackNames + \"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert\",\r\n _staggerPropsToSkip = {};\r\n\r\n_forEachName(_staggerTweenProps + \",id,stagger,delay,duration,paused,scrollTrigger\", function (name) {\r\n return _staggerPropsToSkip[name] = 1;\r\n});\r\n/*\r\n * --------------------------------------------------------------------------------------\r\n * TWEEN\r\n * --------------------------------------------------------------------------------------\r\n */\r\n\r\n\r\nvar Tween = /*#__PURE__*/function (_Animation2) {\r\n _inheritsLoose(Tween, _Animation2);\r\n\r\n function Tween(targets, vars, position, skipInherit) {\r\n var _this3;\r\n\r\n if (typeof vars === \"number\") {\r\n position.duration = vars;\r\n vars = position;\r\n position = null;\r\n }\r\n\r\n _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this;\r\n var _this3$vars = _this3.vars,\r\n duration = _this3$vars.duration,\r\n delay = _this3$vars.delay,\r\n immediateRender = _this3$vars.immediateRender,\r\n stagger = _this3$vars.stagger,\r\n overwrite = _this3$vars.overwrite,\r\n keyframes = _this3$vars.keyframes,\r\n defaults = _this3$vars.defaults,\r\n scrollTrigger = _this3$vars.scrollTrigger,\r\n yoyoEase = _this3$vars.yoyoEase,\r\n parent = vars.parent || _globalTimeline,\r\n parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : \"length\" in vars) ? [targets] : toArray(targets),\r\n tl,\r\n i,\r\n copy,\r\n l,\r\n p,\r\n curTarget,\r\n staggerFunc,\r\n staggerVarsToMerge;\r\n _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn(\"GSAP target \" + targets + \" not found. https://gsap.com\", !_config.nullTargetWarn) || [];\r\n _this3._ptLookup = []; //PropTween lookup. An array containing an object for each target, having keys for each tweening property\r\n\r\n _this3._overwrite = overwrite;\r\n\r\n if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\r\n vars = _this3.vars;\r\n tl = _this3.timeline = new Timeline({\r\n data: \"nested\",\r\n defaults: defaults || {},\r\n targets: parent && parent.data === \"nested\" ? parent.vars.targets : parsedTargets\r\n }); // we need to store the targets because for staggers and keyframes, we end up creating an individual tween for each but function-based values need to know the index and the whole Array of targets.\r\n\r\n tl.kill();\r\n tl.parent = tl._dp = _assertThisInitialized(_this3);\r\n tl._start = 0;\r\n\r\n if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\r\n l = parsedTargets.length;\r\n staggerFunc = stagger && distribute(stagger);\r\n\r\n if (_isObject(stagger)) {\r\n //users can pass in callbacks like onStart/onComplete in the stagger object. These should fire with each individual tween.\r\n for (p in stagger) {\r\n if (~_staggerTweenProps.indexOf(p)) {\r\n staggerVarsToMerge || (staggerVarsToMerge = {});\r\n staggerVarsToMerge[p] = stagger[p];\r\n }\r\n }\r\n }\r\n\r\n for (i = 0; i < l; i++) {\r\n copy = _copyExcluding(vars, _staggerPropsToSkip);\r\n copy.stagger = 0;\r\n yoyoEase && (copy.yoyoEase = yoyoEase);\r\n staggerVarsToMerge && _merge(copy, staggerVarsToMerge);\r\n curTarget = parsedTargets[i]; //don't just copy duration or delay because if they're a string or function, we'd end up in an infinite loop because _isFuncOrString() would evaluate as true in the child tweens, entering this loop, etc. So we parse the value straight from vars and default to 0.\r\n\r\n copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets);\r\n copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay;\r\n\r\n if (!stagger && l === 1 && copy.delay) {\r\n // if someone does delay:\"random(1, 5)\", repeat:-1, for example, the delay shouldn't be inside the repeat.\r\n _this3._delay = delay = copy.delay;\r\n _this3._start += delay;\r\n copy.delay = 0;\r\n }\r\n\r\n tl.to(curTarget, copy, staggerFunc ? staggerFunc(i, curTarget, parsedTargets) : 0);\r\n tl._ease = _easeMap.none;\r\n }\r\n\r\n tl.duration() ? duration = delay = 0 : _this3.timeline = 0; // if the timeline's duration is 0, we don't need a timeline internally!\r\n } else if (keyframes) {\r\n _inheritDefaults(_setDefaults(tl.vars.defaults, {\r\n ease: \"none\"\r\n }));\r\n\r\n tl._ease = _parseEase(keyframes.ease || vars.ease || \"none\");\r\n var time = 0,\r\n a,\r\n kf,\r\n v;\r\n\r\n if (_isArray(keyframes)) {\r\n keyframes.forEach(function (frame) {\r\n return tl.to(parsedTargets, frame, \">\");\r\n });\r\n tl.duration(); // to ensure tl._dur is cached because we tap into it for performance purposes in the render() method.\r\n } else {\r\n copy = {};\r\n\r\n for (p in keyframes) {\r\n p === \"ease\" || p === \"easeEach\" || _parseKeyframe(p, keyframes[p], copy, keyframes.easeEach);\r\n }\r\n\r\n for (p in copy) {\r\n a = copy[p].sort(function (a, b) {\r\n return a.t - b.t;\r\n });\r\n time = 0;\r\n\r\n for (i = 0; i < a.length; i++) {\r\n kf = a[i];\r\n v = {\r\n ease: kf.e,\r\n duration: (kf.t - (i ? a[i - 1].t : 0)) / 100 * duration\r\n };\r\n v[p] = kf.v;\r\n tl.to(parsedTargets, v, time);\r\n time += v.duration;\r\n }\r\n }\r\n\r\n tl.duration() < duration && tl.to({}, {\r\n duration: duration - tl.duration()\r\n }); // in case keyframes didn't go to 100%\r\n }\r\n }\r\n\r\n duration || _this3.duration(duration = tl.duration());\r\n } else {\r\n _this3.timeline = 0; //speed optimization, faster lookups (no going up the prototype chain)\r\n }\r\n\r\n if (overwrite === true && !_suppressOverwrites) {\r\n _overwritingTween = _assertThisInitialized(_this3);\r\n\r\n _globalTimeline.killTweensOf(parsedTargets);\r\n\r\n _overwritingTween = 0;\r\n }\r\n\r\n _addToTimeline(parent, _assertThisInitialized(_this3), position);\r\n\r\n vars.reversed && _this3.reverse();\r\n vars.paused && _this3.paused(true);\r\n\r\n if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== \"nested\") {\r\n _this3._tTime = -_tinyNum; //forces a render without having to set the render() \"force\" parameter to true because we want to allow lazying by default (using the \"force\" parameter always forces an immediate full render)\r\n\r\n _this3.render(Math.max(0, -delay) || 0); //in case delay is negative\r\n\r\n }\r\n\r\n scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger);\r\n return _this3;\r\n }\r\n\r\n var _proto3 = Tween.prototype;\r\n\r\n _proto3.render = function render(totalTime, suppressEvents, force) {\r\n var prevTime = this._time,\r\n tDur = this._tDur,\r\n dur = this._dur,\r\n isNegative = totalTime < 0,\r\n tTime = totalTime > tDur - _tinyNum && !isNegative ? tDur : totalTime < _tinyNum ? 0 : totalTime,\r\n time,\r\n pt,\r\n iteration,\r\n cycleDuration,\r\n prevIteration,\r\n isYoyo,\r\n ratio,\r\n timeline,\r\n yoyoEase;\r\n\r\n if (!dur) {\r\n _renderZeroDurationTween(this, totalTime, suppressEvents, force);\r\n } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== isNegative || this._lazy) {\r\n // this senses if we're crossing over the start time, in which case we must record _zTime and force the render, but we do it in this lengthy conditional way for performance reasons (usually we can skip the calculations): this._initted && (this._zTime < 0) !== (totalTime < 0)\r\n time = tTime;\r\n timeline = this.timeline;\r\n\r\n if (this._repeat) {\r\n //adjust the time for repeats and yoyos\r\n cycleDuration = dur + this._rDelay;\r\n\r\n if (this._repeat < -1 && isNegative) {\r\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\r\n }\r\n\r\n time = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\r\n\r\n if (tTime === tDur) {\r\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\r\n iteration = this._repeat;\r\n time = dur;\r\n } else {\r\n prevIteration = _roundPrecise(tTime / cycleDuration); // full decimal version of iterations, not the previous iteration (we're reusing prevIteration variable for efficiency)\r\n\r\n iteration = ~~prevIteration;\r\n\r\n if (iteration && iteration === prevIteration) {\r\n time = dur;\r\n iteration--;\r\n } else if (time > dur) {\r\n time = dur;\r\n }\r\n }\r\n\r\n isYoyo = this._yoyo && iteration & 1;\r\n\r\n if (isYoyo) {\r\n yoyoEase = this._yEase;\r\n time = dur - time;\r\n }\r\n\r\n prevIteration = _animationCycle(this._tTime, cycleDuration);\r\n\r\n if (time === prevTime && !force && this._initted && iteration === prevIteration) {\r\n //could be during the repeatDelay part. No need to render and fire callbacks.\r\n this._tTime = tTime;\r\n return this;\r\n }\r\n\r\n if (iteration !== prevIteration) {\r\n timeline && this._yEase && _propagateYoyoEase(timeline, isYoyo); //repeatRefresh functionality\r\n\r\n if (this.vars.repeatRefresh && !isYoyo && !this._lock && time !== cycleDuration && this._initted) {\r\n // this._time will === cycleDuration when we render at EXACTLY the end of an iteration. Without this condition, it'd often do the repeatRefresh render TWICE (again on the very next tick).\r\n this._lock = force = 1; //force, otherwise if lazy is true, the _attemptInitTween() will return and we'll jump out and get caught bouncing on each tick.\r\n\r\n this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0;\r\n }\r\n }\r\n }\r\n\r\n if (!this._initted) {\r\n if (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) {\r\n this._tTime = 0; // in constructor if immediateRender is true, we set _tTime to -_tinyNum to have the playhead cross the starting point but we can't leave _tTime as a negative number.\r\n\r\n return this;\r\n }\r\n\r\n if (prevTime !== this._time && !(force && this.vars.repeatRefresh && iteration !== prevIteration)) {\r\n // rare edge case - during initialization, an onUpdate in the _startAt (.fromTo()) might force this tween to render at a different spot in which case we should ditch this render() call so that it doesn't revert the values. But we also don't want to dump if we're doing a repeatRefresh render!\r\n return this;\r\n }\r\n\r\n if (dur !== this._dur) {\r\n // while initting, a plugin like InertiaPlugin might alter the duration, so rerun from the start to ensure everything renders as it should.\r\n return this.render(totalTime, suppressEvents, force);\r\n }\r\n }\r\n\r\n this._tTime = tTime;\r\n this._time = time;\r\n\r\n if (!this._act && this._ts) {\r\n this._act = 1; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\r\n\r\n this._lazy = 0;\r\n }\r\n\r\n this.ratio = ratio = (yoyoEase || this._ease)(time / dur);\r\n\r\n if (this._from) {\r\n this.ratio = ratio = 1 - ratio;\r\n }\r\n\r\n if (!prevTime && tTime && !suppressEvents && !prevIteration) {\r\n _callback(this, \"onStart\");\r\n\r\n if (this._tTime !== tTime) {\r\n // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart.\r\n return this;\r\n }\r\n }\r\n\r\n pt = this._pt;\r\n\r\n while (pt) {\r\n pt.r(ratio, pt.d);\r\n pt = pt._next;\r\n }\r\n\r\n timeline && timeline.render(totalTime < 0 ? totalTime : timeline._dur * timeline._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime);\r\n\r\n if (this._onUpdate && !suppressEvents) {\r\n isNegative && _rewindStartAt(this, totalTime, suppressEvents, force); //note: for performance reasons, we tuck this conditional logic inside less traveled areas (most tweens don't have an onUpdate). We'd just have it at the end before the onComplete, but the values should be updated before any onUpdate is called, so we ALSO put it here and then if it's not called, we do so later near the onComplete.\r\n\r\n _callback(this, \"onUpdate\");\r\n }\r\n\r\n this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, \"onRepeat\");\r\n\r\n if ((tTime === this._tDur || !tTime) && this._tTime === tTime) {\r\n isNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true);\r\n (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if we're rendering at exactly a time of 0, as there could be autoRevert values that should get set on the next tick (if the playhead goes backward beyond the startTime, negative totalTime). Don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\r\n\r\n if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) {\r\n // if prevTime and tTime are zero, we shouldn't fire the onReverseComplete. This could happen if you gsap.to(... {paused:true}).play();\r\n _callback(this, tTime === tDur ? \"onComplete\" : \"onReverseComplete\", true);\r\n\r\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n _proto3.targets = function targets() {\r\n return this._targets;\r\n };\r\n\r\n _proto3.invalidate = function invalidate(soft) {\r\n // \"soft\" gives us a way to clear out everything EXCEPT the recorded pre-\"from\" portion of from() tweens. Otherwise, for example, if you tween.progress(1).render(0, true true).invalidate(), the \"from\" values would persist and then on the next render, the from() tweens would initialize and the current value would match the \"from\" values, thus animate from the same value to the same value (no animation). We tap into this in ScrollTrigger's refresh() where we must push a tween to completion and then back again but honor its init state in case the tween is dependent on another tween further up on the page.\r\n (!soft || !this.vars.runBackwards) && (this._startAt = 0);\r\n this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0;\r\n this._ptLookup = [];\r\n this.timeline && this.timeline.invalidate(soft);\r\n return _Animation2.prototype.invalidate.call(this, soft);\r\n };\r\n\r\n _proto3.resetTo = function resetTo(property, value, start, startIsRelative, skipRecursion) {\r\n _tickerActive || _ticker.wake();\r\n this._ts || this.play();\r\n var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts),\r\n ratio;\r\n this._initted || _initTween(this, time);\r\n ratio = this._ease(time / this._dur); // don't just get tween.ratio because it may not have rendered yet.\r\n // possible future addition to allow an object with multiple values to update, like tween.resetTo({x: 100, y: 200}); At this point, it doesn't seem worth the added kb given the fact that most users will likely opt for the convenient gsap.quickTo() way of interacting with this method.\r\n // if (_isObject(property)) { // performance optimization\r\n // \tfor (p in property) {\r\n // \t\tif (_updatePropTweens(this, p, property[p], value ? value[p] : null, start, ratio, time)) {\r\n // \t\t\treturn this.resetTo(property, value, start, startIsRelative); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again.\r\n // \t\t}\r\n // \t}\r\n // } else {\r\n\r\n if (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time, skipRecursion)) {\r\n return this.resetTo(property, value, start, startIsRelative, 1); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again.\r\n } //}\r\n\r\n\r\n _alignPlayhead(this, 0);\r\n\r\n this.parent || _addLinkedListItem(this._dp, this, \"_first\", \"_last\", this._dp._sort ? \"_start\" : 0);\r\n return this.render(0);\r\n };\r\n\r\n _proto3.kill = function kill(targets, vars) {\r\n if (vars === void 0) {\r\n vars = \"all\";\r\n }\r\n\r\n if (!targets && (!vars || vars === \"all\")) {\r\n this._lazy = this._pt = 0;\r\n this.parent ? _interrupt(this) : this.scrollTrigger && this.scrollTrigger.kill(!!_reverting);\r\n return this;\r\n }\r\n\r\n if (this.timeline) {\r\n var tDur = this.timeline.totalDuration();\r\n this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this); // if nothing is left tweening, interrupt.\r\n\r\n this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1); // if a nested tween is killed that changes the duration, it should affect this tween's duration. We must use the ratio, though, because sometimes the internal timeline is stretched like for keyframes where they don't all add up to whatever the parent tween's duration was set to.\r\n\r\n return this;\r\n }\r\n\r\n var parsedTargets = this._targets,\r\n killingTargets = targets ? toArray(targets) : parsedTargets,\r\n propTweenLookup = this._ptLookup,\r\n firstPT = this._pt,\r\n overwrittenProps,\r\n curLookup,\r\n curOverwriteProps,\r\n props,\r\n p,\r\n pt,\r\n i;\r\n\r\n if ((!vars || vars === \"all\") && _arraysMatch(parsedTargets, killingTargets)) {\r\n vars === \"all\" && (this._pt = 0);\r\n return _interrupt(this);\r\n }\r\n\r\n overwrittenProps = this._op = this._op || [];\r\n\r\n if (vars !== \"all\") {\r\n //so people can pass in a comma-delimited list of property names\r\n if (_isString(vars)) {\r\n p = {};\r\n\r\n _forEachName(vars, function (name) {\r\n return p[name] = 1;\r\n });\r\n\r\n vars = p;\r\n }\r\n\r\n vars = _addAliasesToVars(parsedTargets, vars);\r\n }\r\n\r\n i = parsedTargets.length;\r\n\r\n while (i--) {\r\n if (~killingTargets.indexOf(parsedTargets[i])) {\r\n curLookup = propTweenLookup[i];\r\n\r\n if (vars === \"all\") {\r\n overwrittenProps[i] = vars;\r\n props = curLookup;\r\n curOverwriteProps = {};\r\n } else {\r\n curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {};\r\n props = vars;\r\n }\r\n\r\n for (p in props) {\r\n pt = curLookup && curLookup[p];\r\n\r\n if (pt) {\r\n if (!(\"kill\" in pt.d) || pt.d.kill(p) === true) {\r\n _removeLinkedListItem(this, pt, \"_pt\");\r\n }\r\n\r\n delete curLookup[p];\r\n }\r\n\r\n if (curOverwriteProps !== \"all\") {\r\n curOverwriteProps[p] = 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this._initted && !this._pt && firstPT && _interrupt(this); //if all tweening properties are killed, kill the tween. Without this line, if there's a tween with multiple targets and then you killTweensOf() each target individually, the tween would technically still remain active and fire its onComplete even though there aren't any more properties tweening.\r\n\r\n return this;\r\n };\r\n\r\n Tween.to = function to(targets, vars) {\r\n return new Tween(targets, vars, arguments[2]);\r\n };\r\n\r\n Tween.from = function from(targets, vars) {\r\n return _createTweenType(1, arguments);\r\n };\r\n\r\n Tween.delayedCall = function delayedCall(delay, callback, params, scope) {\r\n return new Tween(callback, 0, {\r\n immediateRender: false,\r\n lazy: false,\r\n overwrite: false,\r\n delay: delay,\r\n onComplete: callback,\r\n onReverseComplete: callback,\r\n onCompleteParams: params,\r\n onReverseCompleteParams: params,\r\n callbackScope: scope\r\n }); // we must use onReverseComplete too for things like timeline.add(() => {...}) which should be triggered in BOTH directions (forward and reverse)\r\n };\r\n\r\n Tween.fromTo = function fromTo(targets, fromVars, toVars) {\r\n return _createTweenType(2, arguments);\r\n };\r\n\r\n Tween.set = function set(targets, vars) {\r\n vars.duration = 0;\r\n vars.repeatDelay || (vars.repeat = 0);\r\n return new Tween(targets, vars);\r\n };\r\n\r\n Tween.killTweensOf = function killTweensOf(targets, props, onlyActive) {\r\n return _globalTimeline.killTweensOf(targets, props, onlyActive);\r\n };\r\n\r\n return Tween;\r\n}(Animation);\r\n\r\n_setDefaults(Tween.prototype, {\r\n _targets: [],\r\n _lazy: 0,\r\n _startAt: 0,\r\n _op: 0,\r\n _onInit: 0\r\n}); //add the pertinent timeline methods to Tween instances so that users can chain conveniently and create a timeline automatically. (removed due to concerns that it'd ultimately add to more confusion especially for beginners)\r\n// _forEachName(\"to,from,fromTo,set,call,add,addLabel,addPause\", name => {\r\n// \tTween.prototype[name] = function() {\r\n// \t\tlet tl = new Timeline();\r\n// \t\treturn _addToTimeline(tl, this)[name].apply(tl, toArray(arguments));\r\n// \t}\r\n// });\r\n//for backward compatibility. Leverage the timeline calls.\r\n\r\n\r\n_forEachName(\"staggerTo,staggerFrom,staggerFromTo\", function (name) {\r\n Tween[name] = function () {\r\n var tl = new Timeline(),\r\n params = _slice.call(arguments, 0);\r\n\r\n params.splice(name === \"staggerFromTo\" ? 5 : 4, 0, 0);\r\n return tl[name].apply(tl, params);\r\n };\r\n});\r\n/*\r\n * --------------------------------------------------------------------------------------\r\n * PROPTWEEN\r\n * --------------------------------------------------------------------------------------\r\n */\r\n\r\n\r\nvar _setterPlain = function _setterPlain(target, property, value) {\r\n return target[property] = value;\r\n},\r\n _setterFunc = function _setterFunc(target, property, value) {\r\n return target[property](value);\r\n},\r\n _setterFuncWithParam = function _setterFuncWithParam(target, property, value, data) {\r\n return target[property](data.fp, value);\r\n},\r\n _setterAttribute = function _setterAttribute(target, property, value) {\r\n return target.setAttribute(property, value);\r\n},\r\n _getSetter = function _getSetter(target, property) {\r\n return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain;\r\n},\r\n _renderPlain = function _renderPlain(ratio, data) {\r\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1000000) / 1000000, data);\r\n},\r\n _renderBoolean = function _renderBoolean(ratio, data) {\r\n return data.set(data.t, data.p, !!(data.s + data.c * ratio), data);\r\n},\r\n _renderComplexString = function _renderComplexString(ratio, data) {\r\n var pt = data._pt,\r\n s = \"\";\r\n\r\n if (!ratio && data.b) {\r\n //b = beginning string\r\n s = data.b;\r\n } else if (ratio === 1 && data.e) {\r\n //e = ending string\r\n s = data.e;\r\n } else {\r\n while (pt) {\r\n s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 10000) / 10000) + s; //we use the \"p\" property for the text inbetween (like a suffix). And in the context of a complex string, the modifier (m) is typically just Math.round(), like for RGB colors.\r\n\r\n pt = pt._next;\r\n }\r\n\r\n s += data.c; //we use the \"c\" of the PropTween to store the final chunk of non-numeric text.\r\n }\r\n\r\n data.set(data.t, data.p, s, data);\r\n},\r\n _renderPropTweens = function _renderPropTweens(ratio, data) {\r\n var pt = data._pt;\r\n\r\n while (pt) {\r\n pt.r(ratio, pt.d);\r\n pt = pt._next;\r\n }\r\n},\r\n _addPluginModifier = function _addPluginModifier(modifier, tween, target, property) {\r\n var pt = this._pt,\r\n next;\r\n\r\n while (pt) {\r\n next = pt._next;\r\n pt.p === property && pt.modifier(modifier, tween, target);\r\n pt = next;\r\n }\r\n},\r\n _killPropTweensOf = function _killPropTweensOf(property) {\r\n var pt = this._pt,\r\n hasNonDependentRemaining,\r\n next;\r\n\r\n while (pt) {\r\n next = pt._next;\r\n\r\n if (pt.p === property && !pt.op || pt.op === property) {\r\n _removeLinkedListItem(this, pt, \"_pt\");\r\n } else if (!pt.dep) {\r\n hasNonDependentRemaining = 1;\r\n }\r\n\r\n pt = next;\r\n }\r\n\r\n return !hasNonDependentRemaining;\r\n},\r\n _setterWithModifier = function _setterWithModifier(target, property, value, data) {\r\n data.mSet(target, property, data.m.call(data.tween, value, data.mt), data);\r\n},\r\n _sortPropTweensByPriority = function _sortPropTweensByPriority(parent) {\r\n var pt = parent._pt,\r\n next,\r\n pt2,\r\n first,\r\n last; //sorts the PropTween linked list in order of priority because some plugins need to do their work after ALL of the PropTweens were created (like RoundPropsPlugin and ModifiersPlugin)\r\n\r\n while (pt) {\r\n next = pt._next;\r\n pt2 = first;\r\n\r\n while (pt2 && pt2.pr > pt.pr) {\r\n pt2 = pt2._next;\r\n }\r\n\r\n if (pt._prev = pt2 ? pt2._prev : last) {\r\n pt._prev._next = pt;\r\n } else {\r\n first = pt;\r\n }\r\n\r\n if (pt._next = pt2) {\r\n pt2._prev = pt;\r\n } else {\r\n last = pt;\r\n }\r\n\r\n pt = next;\r\n }\r\n\r\n parent._pt = first;\r\n}; //PropTween key: t = target, p = prop, r = renderer, d = data, s = start, c = change, op = overwriteProperty (ONLY populated when it's different than p), pr = priority, _next/_prev for the linked list siblings, set = setter, m = modifier, mSet = modifierSetter (the original setter, before a modifier was added)\r\n\r\n\r\nvar PropTween = /*#__PURE__*/function () {\r\n function PropTween(next, target, prop, start, change, renderer, data, setter, priority) {\r\n this.t = target;\r\n this.s = start;\r\n this.c = change;\r\n this.p = prop;\r\n this.r = renderer || _renderPlain;\r\n this.d = data || this;\r\n this.set = setter || _setterPlain;\r\n this.pr = priority || 0;\r\n this._next = next;\r\n\r\n if (next) {\r\n next._prev = this;\r\n }\r\n }\r\n\r\n var _proto4 = PropTween.prototype;\r\n\r\n _proto4.modifier = function modifier(func, tween, target) {\r\n this.mSet = this.mSet || this.set; //in case it was already set (a PropTween can only have one modifier)\r\n\r\n this.set = _setterWithModifier;\r\n this.m = func;\r\n this.mt = target; //modifier target\r\n\r\n this.tween = tween;\r\n };\r\n\r\n return PropTween;\r\n}(); //Initialization tasks\r\n\r\n_forEachName(_callbackNames + \"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger\", function (name) {\r\n return _reservedProps[name] = 1;\r\n});\r\n\r\n_globals.TweenMax = _globals.TweenLite = Tween;\r\n_globals.TimelineLite = _globals.TimelineMax = Timeline;\r\n_globalTimeline = new Timeline({\r\n sortChildren: false,\r\n defaults: _defaults,\r\n autoRemoveChildren: true,\r\n id: \"root\",\r\n smoothChildTiming: true\r\n});\r\n_config.stringFilter = _colorStringFilter;\r\n\r\nvar _media = [],\r\n _listeners = {},\r\n _emptyArray = [],\r\n _lastMediaTime = 0,\r\n _contextID = 0,\r\n _dispatch = function _dispatch(type) {\r\n return (_listeners[type] || _emptyArray).map(function (f) {\r\n return f();\r\n });\r\n},\r\n _onMediaChange = function _onMediaChange() {\r\n var time = Date.now(),\r\n matches = [];\r\n\r\n if (time - _lastMediaTime > 2) {\r\n _dispatch(\"matchMediaInit\");\r\n\r\n _media.forEach(function (c) {\r\n var queries = c.queries,\r\n conditions = c.conditions,\r\n match,\r\n p,\r\n anyMatch,\r\n toggled;\r\n\r\n for (p in queries) {\r\n match = _win.matchMedia(queries[p]).matches; // Firefox doesn't update the \"matches\" property of the MediaQueryList object correctly - it only does so as it calls its change handler - so we must re-create a media query here to ensure it's accurate.\r\n\r\n match && (anyMatch = 1);\r\n\r\n if (match !== conditions[p]) {\r\n conditions[p] = match;\r\n toggled = 1;\r\n }\r\n }\r\n\r\n if (toggled) {\r\n c.revert();\r\n anyMatch && matches.push(c);\r\n }\r\n });\r\n\r\n _dispatch(\"matchMediaRevert\");\r\n\r\n matches.forEach(function (c) {\r\n return c.onMatch(c, function (func) {\r\n return c.add(null, func);\r\n });\r\n });\r\n _lastMediaTime = time;\r\n\r\n _dispatch(\"matchMedia\");\r\n }\r\n};\r\n\r\nvar Context = /*#__PURE__*/function () {\r\n function Context(func, scope) {\r\n this.selector = scope && selector(scope);\r\n this.data = [];\r\n this._r = []; // returned/cleanup functions\r\n\r\n this.isReverted = false;\r\n this.id = _contextID++; // to work around issues that frameworks like Vue cause by making things into Proxies which make it impossible to do something like _media.indexOf(this) because \"this\" would no longer refer to the Context instance itself - it'd refer to a Proxy! We needed a way to identify the context uniquely\r\n\r\n func && this.add(func);\r\n }\r\n\r\n var _proto5 = Context.prototype;\r\n\r\n _proto5.add = function add(name, func, scope) {\r\n // possible future addition if we need the ability to add() an animation to a context and for whatever reason cannot create that animation inside of a context.add(() => {...}) function.\r\n // if (name && _isFunction(name.revert)) {\r\n // \tthis.data.push(name);\r\n // \treturn (name._ctx = this);\r\n // }\r\n if (_isFunction(name)) {\r\n scope = func;\r\n func = name;\r\n name = _isFunction;\r\n }\r\n\r\n var self = this,\r\n f = function f() {\r\n var prev = _context,\r\n prevSelector = self.selector,\r\n result;\r\n prev && prev !== self && prev.data.push(self);\r\n scope && (self.selector = selector(scope));\r\n _context = self;\r\n result = func.apply(self, arguments);\r\n _isFunction(result) && self._r.push(result);\r\n _context = prev;\r\n self.selector = prevSelector;\r\n self.isReverted = false;\r\n return result;\r\n };\r\n\r\n self.last = f;\r\n return name === _isFunction ? f(self, function (func) {\r\n return self.add(null, func);\r\n }) : name ? self[name] = f : f;\r\n };\r\n\r\n _proto5.ignore = function ignore(func) {\r\n var prev = _context;\r\n _context = null;\r\n func(this);\r\n _context = prev;\r\n };\r\n\r\n _proto5.getTweens = function getTweens() {\r\n var a = [];\r\n this.data.forEach(function (e) {\r\n return e instanceof Context ? a.push.apply(a, e.getTweens()) : e instanceof Tween && !(e.parent && e.parent.data === \"nested\") && a.push(e);\r\n });\r\n return a;\r\n };\r\n\r\n _proto5.clear = function clear() {\r\n this._r.length = this.data.length = 0;\r\n };\r\n\r\n _proto5.kill = function kill(revert, matchMedia) {\r\n var _this4 = this;\r\n\r\n if (revert) {\r\n (function () {\r\n var tweens = _this4.getTweens(),\r\n i = _this4.data.length,\r\n t;\r\n\r\n while (i--) {\r\n // Flip plugin tweens are very different in that they should actually be pushed to their end. The plugin replaces the timeline's .revert() method to do exactly that. But we also need to remove any of those nested tweens inside the flip timeline so that they don't get individually reverted.\r\n t = _this4.data[i];\r\n\r\n if (t.data === \"isFlip\") {\r\n t.revert();\r\n t.getChildren(true, true, false).forEach(function (tween) {\r\n return tweens.splice(tweens.indexOf(tween), 1);\r\n });\r\n }\r\n } // save as an object so that we can cache the globalTime for each tween to optimize performance during the sort\r\n\r\n\r\n tweens.map(function (t) {\r\n return {\r\n g: t._dur || t._delay || t._sat && !t._sat.vars.immediateRender ? t.globalTime(0) : -Infinity,\r\n t: t\r\n };\r\n }).sort(function (a, b) {\r\n return b.g - a.g || -Infinity;\r\n }).forEach(function (o) {\r\n return o.t.revert(revert);\r\n }); // note: all of the _startAt tweens should be reverted in reverse order that they were created, and they'll all have the same globalTime (-1) so the \" || -1\" in the sort keeps the order properly.\r\n\r\n i = _this4.data.length;\r\n\r\n while (i--) {\r\n // make sure we loop backwards so that, for example, SplitTexts that were created later on the same element get reverted first\r\n t = _this4.data[i];\r\n\r\n if (t instanceof Timeline) {\r\n if (t.data !== \"nested\") {\r\n t.scrollTrigger && t.scrollTrigger.revert();\r\n t.kill(); // don't revert() the timeline because that's duplicating efforts since we already reverted all the tweens\r\n }\r\n } else {\r\n !(t instanceof Tween) && t.revert && t.revert(revert);\r\n }\r\n }\r\n\r\n _this4._r.forEach(function (f) {\r\n return f(revert, _this4);\r\n });\r\n\r\n _this4.isReverted = true;\r\n })();\r\n } else {\r\n this.data.forEach(function (e) {\r\n return e.kill && e.kill();\r\n });\r\n }\r\n\r\n this.clear();\r\n\r\n if (matchMedia) {\r\n var i = _media.length;\r\n\r\n while (i--) {\r\n // previously, we checked _media.indexOf(this), but some frameworks like Vue enforce Proxy objects that make it impossible to get the proper result that way, so we must use a unique ID number instead.\r\n _media[i].id === this.id && _media.splice(i, 1);\r\n }\r\n }\r\n } // killWithCleanup() {\r\n // \tthis.kill();\r\n // \tthis._r.forEach(f => f(false, this));\r\n // }\r\n ;\r\n\r\n _proto5.revert = function revert(config) {\r\n this.kill(config || {});\r\n };\r\n\r\n return Context;\r\n}();\r\n\r\nvar MatchMedia = /*#__PURE__*/function () {\r\n function MatchMedia(scope) {\r\n this.contexts = [];\r\n this.scope = scope;\r\n _context && _context.data.push(this);\r\n }\r\n\r\n var _proto6 = MatchMedia.prototype;\r\n\r\n _proto6.add = function add(conditions, func, scope) {\r\n _isObject(conditions) || (conditions = {\r\n matches: conditions\r\n });\r\n var context = new Context(0, scope || this.scope),\r\n cond = context.conditions = {},\r\n mq,\r\n p,\r\n active;\r\n _context && !context.selector && (context.selector = _context.selector); // in case a context is created inside a context. Like a gsap.matchMedia() that's inside a scoped gsap.context()\r\n\r\n this.contexts.push(context);\r\n func = context.add(\"onMatch\", func);\r\n context.queries = conditions;\r\n\r\n for (p in conditions) {\r\n if (p === \"all\") {\r\n active = 1;\r\n } else {\r\n mq = _win.matchMedia(conditions[p]);\r\n\r\n if (mq) {\r\n _media.indexOf(context) < 0 && _media.push(context);\r\n (cond[p] = mq.matches) && (active = 1);\r\n mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener(\"change\", _onMediaChange);\r\n }\r\n }\r\n }\r\n\r\n active && func(context, function (f) {\r\n return context.add(null, f);\r\n });\r\n return this;\r\n } // refresh() {\r\n // \tlet time = _lastMediaTime,\r\n // \t\tmedia = _media;\r\n // \t_lastMediaTime = -1;\r\n // \t_media = this.contexts;\r\n // \t_onMediaChange();\r\n // \t_lastMediaTime = time;\r\n // \t_media = media;\r\n // }\r\n ;\r\n\r\n _proto6.revert = function revert(config) {\r\n this.kill(config || {});\r\n };\r\n\r\n _proto6.kill = function kill(revert) {\r\n this.contexts.forEach(function (c) {\r\n return c.kill(revert, true);\r\n });\r\n };\r\n\r\n return MatchMedia;\r\n}();\r\n/*\r\n * --------------------------------------------------------------------------------------\r\n * GSAP\r\n * --------------------------------------------------------------------------------------\r\n */\r\n\r\n\r\nvar _gsap = {\r\n registerPlugin: function registerPlugin() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2];\r\n }\r\n\r\n args.forEach(function (config) {\r\n return _createPlugin(config);\r\n });\r\n },\r\n timeline: function timeline(vars) {\r\n return new Timeline(vars);\r\n },\r\n getTweensOf: function getTweensOf(targets, onlyActive) {\r\n return _globalTimeline.getTweensOf(targets, onlyActive);\r\n },\r\n getProperty: function getProperty(target, property, unit, uncache) {\r\n _isString(target) && (target = toArray(target)[0]); //in case selector text or an array is passed in\r\n\r\n var getter = _getCache(target || {}).get,\r\n format = unit ? _passThrough : _numericIfPossible;\r\n\r\n unit === \"native\" && (unit = \"\");\r\n return !target ? target : !property ? function (property, unit, uncache) {\r\n return format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\r\n } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\r\n },\r\n quickSetter: function quickSetter(target, property, unit) {\r\n target = toArray(target);\r\n\r\n if (target.length > 1) {\r\n var setters = target.map(function (t) {\r\n return gsap.quickSetter(t, property, unit);\r\n }),\r\n l = setters.length;\r\n return function (value) {\r\n var i = l;\r\n\r\n while (i--) {\r\n setters[i](value);\r\n }\r\n };\r\n }\r\n\r\n target = target[0] || {};\r\n\r\n var Plugin = _plugins[property],\r\n cache = _getCache(target),\r\n p = cache.harness && (cache.harness.aliases || {})[property] || property,\r\n // in case it's an alias, like \"rotate\" for \"rotation\".\r\n setter = Plugin ? function (value) {\r\n var p = new Plugin();\r\n _quickTween._pt = 0;\r\n p.init(target, unit ? value + unit : value, _quickTween, 0, [target]);\r\n p.render(1, p);\r\n _quickTween._pt && _renderPropTweens(1, _quickTween);\r\n } : cache.set(target, p);\r\n\r\n return Plugin ? setter : function (value) {\r\n return setter(target, p, unit ? value + unit : value, cache, 1);\r\n };\r\n },\r\n quickTo: function quickTo(target, property, vars) {\r\n var _setDefaults2;\r\n\r\n var tween = gsap.to(target, _setDefaults((_setDefaults2 = {}, _setDefaults2[property] = \"+=0.1\", _setDefaults2.paused = true, _setDefaults2.stagger = 0, _setDefaults2), vars || {})),\r\n func = function func(value, start, startIsRelative) {\r\n return tween.resetTo(property, value, start, startIsRelative);\r\n };\r\n\r\n func.tween = tween;\r\n return func;\r\n },\r\n isTweening: function isTweening(targets) {\r\n return _globalTimeline.getTweensOf(targets, true).length > 0;\r\n },\r\n defaults: function defaults(value) {\r\n value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease));\r\n return _mergeDeep(_defaults, value || {});\r\n },\r\n config: function config(value) {\r\n return _mergeDeep(_config, value || {});\r\n },\r\n registerEffect: function registerEffect(_ref3) {\r\n var name = _ref3.name,\r\n effect = _ref3.effect,\r\n plugins = _ref3.plugins,\r\n defaults = _ref3.defaults,\r\n extendTimeline = _ref3.extendTimeline;\r\n (plugins || \"\").split(\",\").forEach(function (pluginName) {\r\n return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + \" effect requires \" + pluginName + \" plugin.\");\r\n });\r\n\r\n _effects[name] = function (targets, vars, tl) {\r\n return effect(toArray(targets), _setDefaults(vars || {}, defaults), tl);\r\n };\r\n\r\n if (extendTimeline) {\r\n Timeline.prototype[name] = function (targets, vars, position) {\r\n return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position);\r\n };\r\n }\r\n },\r\n registerEase: function registerEase(name, ease) {\r\n _easeMap[name] = _parseEase(ease);\r\n },\r\n parseEase: function parseEase(ease, defaultEase) {\r\n return arguments.length ? _parseEase(ease, defaultEase) : _easeMap;\r\n },\r\n getById: function getById(id) {\r\n return _globalTimeline.getById(id);\r\n },\r\n exportRoot: function exportRoot(vars, includeDelayedCalls) {\r\n if (vars === void 0) {\r\n vars = {};\r\n }\r\n\r\n var tl = new Timeline(vars),\r\n child,\r\n next;\r\n tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming);\r\n\r\n _globalTimeline.remove(tl);\r\n\r\n tl._dp = 0; //otherwise it'll get re-activated when adding children and be re-introduced into _globalTimeline's linked list (then added to itself).\r\n\r\n tl._time = tl._tTime = _globalTimeline._time;\r\n child = _globalTimeline._first;\r\n\r\n while (child) {\r\n next = child._next;\r\n\r\n if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {\r\n _addToTimeline(tl, child, child._start - child._delay);\r\n }\r\n\r\n child = next;\r\n }\r\n\r\n _addToTimeline(_globalTimeline, tl, 0);\r\n\r\n return tl;\r\n },\r\n context: function context(func, scope) {\r\n return func ? new Context(func, scope) : _context;\r\n },\r\n matchMedia: function matchMedia(scope) {\r\n return new MatchMedia(scope);\r\n },\r\n matchMediaRefresh: function matchMediaRefresh() {\r\n return _media.forEach(function (c) {\r\n var cond = c.conditions,\r\n found,\r\n p;\r\n\r\n for (p in cond) {\r\n if (cond[p]) {\r\n cond[p] = false;\r\n found = 1;\r\n }\r\n }\r\n\r\n found && c.revert();\r\n }) || _onMediaChange();\r\n },\r\n addEventListener: function addEventListener(type, callback) {\r\n var a = _listeners[type] || (_listeners[type] = []);\r\n ~a.indexOf(callback) || a.push(callback);\r\n },\r\n removeEventListener: function removeEventListener(type, callback) {\r\n var a = _listeners[type],\r\n i = a && a.indexOf(callback);\r\n i >= 0 && a.splice(i, 1);\r\n },\r\n utils: {\r\n wrap: wrap,\r\n wrapYoyo: wrapYoyo,\r\n distribute: distribute,\r\n random: random,\r\n snap: snap,\r\n normalize: normalize,\r\n getUnit: getUnit,\r\n clamp: clamp,\r\n splitColor: splitColor,\r\n toArray: toArray,\r\n selector: selector,\r\n mapRange: mapRange,\r\n pipe: pipe,\r\n unitize: unitize,\r\n interpolate: interpolate,\r\n shuffle: shuffle\r\n },\r\n install: _install,\r\n effects: _effects,\r\n ticker: _ticker,\r\n updateRoot: Timeline.updateRoot,\r\n plugins: _plugins,\r\n globalTimeline: _globalTimeline,\r\n core: {\r\n PropTween: PropTween,\r\n globals: _addGlobal,\r\n Tween: Tween,\r\n Timeline: Timeline,\r\n Animation: Animation,\r\n getCache: _getCache,\r\n _removeLinkedListItem: _removeLinkedListItem,\r\n reverting: function reverting() {\r\n return _reverting;\r\n },\r\n context: function context(toAdd) {\r\n if (toAdd && _context) {\r\n _context.data.push(toAdd);\r\n\r\n toAdd._ctx = _context;\r\n }\r\n\r\n return _context;\r\n },\r\n suppressOverwrites: function suppressOverwrites(value) {\r\n return _suppressOverwrites = value;\r\n }\r\n }\r\n};\r\n\r\n_forEachName(\"to,from,fromTo,delayedCall,set,killTweensOf\", function (name) {\r\n return _gsap[name] = Tween[name];\r\n});\r\n\r\n_ticker.add(Timeline.updateRoot);\r\n\r\n_quickTween = _gsap.to({}, {\r\n duration: 0\r\n}); // ---- EXTRA PLUGINS --------------------------------------------------------\r\n\r\nvar _getPluginPropTween = function _getPluginPropTween(plugin, prop) {\r\n var pt = plugin._pt;\r\n\r\n while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) {\r\n pt = pt._next;\r\n }\r\n\r\n return pt;\r\n},\r\n _addModifiers = function _addModifiers(tween, modifiers) {\r\n var targets = tween._targets,\r\n p,\r\n i,\r\n pt;\r\n\r\n for (p in modifiers) {\r\n i = targets.length;\r\n\r\n while (i--) {\r\n pt = tween._ptLookup[i][p];\r\n\r\n if (pt && (pt = pt.d)) {\r\n if (pt._pt) {\r\n // is a plugin\r\n pt = _getPluginPropTween(pt, p);\r\n }\r\n\r\n pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p);\r\n }\r\n }\r\n }\r\n},\r\n _buildModifierPlugin = function _buildModifierPlugin(name, modifier) {\r\n return {\r\n name: name,\r\n headless: 1,\r\n rawVars: 1,\r\n //don't pre-process function-based values or \"random()\" strings.\r\n init: function init(target, vars, tween) {\r\n tween._onInit = function (tween) {\r\n var temp, p;\r\n\r\n if (_isString(vars)) {\r\n temp = {};\r\n\r\n _forEachName(vars, function (name) {\r\n return temp[name] = 1;\r\n }); //if the user passes in a comma-delimited list of property names to roundProps, like \"x,y\", we round to whole numbers.\r\n\r\n\r\n vars = temp;\r\n }\r\n\r\n if (modifier) {\r\n temp = {};\r\n\r\n for (p in vars) {\r\n temp[p] = modifier(vars[p]);\r\n }\r\n\r\n vars = temp;\r\n }\r\n\r\n _addModifiers(tween, vars);\r\n };\r\n }\r\n };\r\n}; //register core plugins\r\n\r\n\r\nvar gsap = _gsap.registerPlugin({\r\n name: \"attr\",\r\n init: function init(target, vars, tween, index, targets) {\r\n var p, pt, v;\r\n this.tween = tween;\r\n\r\n for (p in vars) {\r\n v = target.getAttribute(p) || \"\";\r\n pt = this.add(target, \"setAttribute\", (v || 0) + \"\", vars[p], index, targets, 0, 0, p);\r\n pt.op = p;\r\n pt.b = v; // record the beginning value so we can revert()\r\n\r\n this._props.push(p);\r\n }\r\n },\r\n render: function render(ratio, data) {\r\n var pt = data._pt;\r\n\r\n while (pt) {\r\n _reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d); // if reverting, go back to the original (pt.b)\r\n\r\n pt = pt._next;\r\n }\r\n }\r\n}, {\r\n name: \"endArray\",\r\n headless: 1,\r\n init: function init(target, value) {\r\n var i = value.length;\r\n\r\n while (i--) {\r\n this.add(target, i, target[i] || 0, value[i], 0, 0, 0, 0, 0, 1);\r\n }\r\n }\r\n}, _buildModifierPlugin(\"roundProps\", _roundModifier), _buildModifierPlugin(\"modifiers\"), _buildModifierPlugin(\"snap\", snap)) || _gsap; //to prevent the core plugins from being dropped via aggressive tree shaking, we must include them in the variable declaration in this way.\r\n\r\nTween.version = Timeline.version = gsap.version = \"3.13.0\";\r\n_coreReady = 1;\r\n_windowExists() && _wake();\r\nvar Power0 = _easeMap.Power0,\r\n Power1 = _easeMap.Power1,\r\n Power2 = _easeMap.Power2,\r\n Power3 = _easeMap.Power3,\r\n Power4 = _easeMap.Power4,\r\n Linear = _easeMap.Linear,\r\n Quad = _easeMap.Quad,\r\n Cubic = _easeMap.Cubic,\r\n Quart = _easeMap.Quart,\r\n Quint = _easeMap.Quint,\r\n Strong = _easeMap.Strong,\r\n Elastic = _easeMap.Elastic,\r\n Back = _easeMap.Back,\r\n SteppedEase = _easeMap.SteppedEase,\r\n Bounce = _easeMap.Bounce,\r\n Sine = _easeMap.Sine,\r\n Expo = _easeMap.Expo,\r\n Circ = _easeMap.Circ;\r\n\r\n //export some internal methods/orojects for use in CSSPlugin so that we can externalize that file and allow custom builds that exclude it.\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9nc2FwL2dzYXAtY29yZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBd0MsdUJBQXVCLHlGQUF5RjtBQUN4SjtBQUNBLGdEQUFnRCwwREFBMEQsMkNBQTJDO0FBQ3JKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNELDZGQUE2RjtBQUM3RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRCx1QkFBdUI7QUFDdkI7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQSxpQkFBaUI7QUFDakIsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsK0pBQStKO0FBQy9KO0FBQ0E7QUFDQTtBQUNBLFNBQVMsMkNBQTJDO0FBQ3BEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxPQUFPO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDtBQUN0RCxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLDJJQUEySTtBQUMzSTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EsbURBQW1EO0FBQ25ELENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRDtBQUNsRDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1EQUFtRDtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFpRTtBQUNqRTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFpRTtBQUNqRTtBQUNBLHNFQUFzRTtBQUN0RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNB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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLDZDQUE2QztBQUM3QztBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsNEJBQTRCLDhFQUE4RTtBQUNwSSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsT0FBTztBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyRkFBMkY7QUFDM0YsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0gsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9FQUFvRTtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUMsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQSx5REFBeUQ7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdNQUF3TTtBQUN4TTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0Q7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEdBQTBHO0FBQzFHLHNHQUFzRztBQUN0RztBQUNBO0FBQ0E7QUFDQTtBQUNBLGdFQUFnRTtBQUNoRTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZFQUE2RTtBQUM3RTtBQUNBLGtDQUFrQztBQUNsQyxRQUFRO0FBQ1I7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBLCtNQUErTTtBQUMvTTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZFQUE2RTtBQUM3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEM7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0RkFBNEY7QUFDNUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRDtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLGdFQUFnRTtBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnS0FBZ0s7QUFDaEs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnRUFBZ0U7QUFDaEU7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IscURBQXFELDZOQUE2TixPQUFPLFdBQVcsS0FBSztBQUMvVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRDtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLDZEQUE2RDtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVQQUF1UDtBQUN2UDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9GQUFvRjtBQUNwRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5SEFBeUg7QUFDekg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBFQUEwRTtBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnRUFBZ0U7QUFDaEU7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSw2REFBNkQ7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRUFBcUU7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNElBQTRJO0FBQzVJO0FBQ0EsaUlBQWlJO0FBQ2pJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0RBQStEO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLEdBQUcseUVBQXlFLElBQUk7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRztBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENB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QTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRUFBcUU7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx1SUFBdUk7QUFDeEk7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDbUo7QUFDcUgsQ0FBQztBQUN6USIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZ3NhcC9nc2FwLWNvcmUuanM/NDY2ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cclxuXHJcbmZ1bmN0aW9uIF9pbmhlcml0c0xvb3NlKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcy5wcm90b3R5cGUpOyBzdWJDbGFzcy5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBzdWJDbGFzczsgc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxyXG5cclxuLyohXHJcbiAqIEdTQVAgMy4xMy4wXHJcbiAqIGh0dHBzOi8vZ3NhcC5jb21cclxuICpcclxuICogQGxpY2Vuc2UgQ29weXJpZ2h0IDIwMDgtMjAyNSwgR3JlZW5Tb2NrLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhdCBodHRwczovL2dzYXAuY29tL3N0YW5kYXJkLWxpY2Vuc2VcclxuICogQGF1dGhvcjogSmFjayBEb3lsZSwgamFja0BncmVlbnNvY2suY29tXHJcbiovXHJcblxyXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG52YXIgX2NvbmZpZyA9IHtcclxuICBhdXRvU2xlZXA6IDEyMCxcclxuICBmb3JjZTNEOiBcImF1dG9cIixcclxuICBudWxsVGFyZ2V0V2FybjogMSxcclxuICB1bml0czoge1xyXG4gICAgbGluZUhlaWdodDogXCJcIlxyXG4gIH1cclxufSxcclxuICAgIF9kZWZhdWx0cyA9IHtcclxuICBkdXJhdGlvbjogLjUsXHJcbiAgb3ZlcndyaXRlOiBmYWxzZSxcclxuICBkZWxheTogMFxyXG59LFxyXG4gICAgX3N1cHByZXNzT3ZlcndyaXRlcyxcclxuICAgIF9yZXZlcnRpbmcsXHJcbiAgICBfY29udGV4dCxcclxuICAgIF9iaWdOdW0gPSAxZTgsXHJcbiAgICBfdGlueU51bSA9IDEgLyBfYmlnTnVtLFxyXG4gICAgXzJQSSA9IE1hdGguUEkgKiAyLFxyXG4gICAgX0hBTEZfUEkgPSBfMlBJIC8gNCxcclxuICAgIF9nc0lEID0gMCxcclxuICAgIF9zcXJ0ID0gTWF0aC5zcXJ0LFxyXG4gICAgX2NvcyA9IE1hdGguY29zLFxyXG4gICAgX3NpbiA9IE1hdGguc2luLFxyXG4gICAgX2lzU3RyaW5nID0gZnVuY3Rpb24gX2lzU3RyaW5nKHZhbHVlKSB7XHJcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIjtcclxufSxcclxuICAgIF9pc0Z1bmN0aW9uID0gZnVuY3Rpb24gX2lzRnVuY3Rpb24odmFsdWUpIHtcclxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCI7XHJcbn0sXHJcbiAgICBfaXNOdW1iZXIgPSBmdW5jdGlvbiBfaXNOdW1iZXIodmFsdWUpIHtcclxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiO1xyXG59LFxyXG4gICAgX2lzVW5kZWZpbmVkID0gZnVuY3Rpb24gX2lzVW5kZWZpbmVkKHZhbHVlKSB7XHJcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIjtcclxufSxcclxuICAgIF9pc09iamVjdCA9IGZ1bmN0aW9uIF9pc09iamVjdCh2YWx1ZSkge1xyXG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XHJcbn0sXHJcbiAgICBfaXNOb3RGYWxzZSA9IGZ1bmN0aW9uIF9pc05vdEZhbHNlKHZhbHVlKSB7XHJcbiAgcmV0dXJuIHZhbHVlICE9PSBmYWxzZTtcclxufSxcclxuICAgIF93aW5kb3dFeGlzdHMgPSBmdW5jdGlvbiBfd2luZG93RXhpc3RzKCkge1xyXG4gIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiO1xyXG59LFxyXG4gICAgX2lzRnVuY09yU3RyaW5nID0gZnVuY3Rpb24gX2lzRnVuY09yU3RyaW5nKHZhbHVlKSB7XHJcbiAgcmV0dXJuIF9pc0Z1bmN0aW9uKHZhbHVlKSB8fCBfaXNTdHJpbmcodmFsdWUpO1xyXG59LFxyXG4gICAgX2lzVHlwZWRBcnJheSA9IHR5cGVvZiBBcnJheUJ1ZmZlciA9PT0gXCJmdW5jdGlvblwiICYmIEFycmF5QnVmZmVyLmlzVmlldyB8fCBmdW5jdGlvbiAoKSB7fSxcclxuICAgIC8vIG5vdGU6IElFMTAgaGFzIEFycmF5QnVmZmVyLCBidXQgTk9UIEFycmF5QnVmZmVyLmlzVmlldygpLlxyXG5faXNBcnJheSA9IEFycmF5LmlzQXJyYXksXHJcbiAgICBfc3RyaWN0TnVtRXhwID0gLyg/Oi0/XFwuP1xcZHxcXC4pKy9naSxcclxuICAgIC8vb25seSBudW1iZXJzIChpbmNsdWRpbmcgbmVnYXRpdmVzIGFuZCBkZWNpbWFscykgYnV0IE5PVCByZWxhdGl2ZSB2YWx1ZXMuXHJcbl9udW1FeHAgPSAvWy0rPS5dKlxcZCtbLmVcXC0rXSpcXGQqW2VcXC0rXSpcXGQqL2csXHJcbiAgICAvL2ZpbmRzIGFueSBudW1iZXJzLCBpbmNsdWRpbmcgb25lcyB0aGF0IHN0YXJ0IHdpdGggKz0gb3IgLT0sIG5lZ2F0aXZlIG51bWJlcnMsIGFuZCBvbmVzIGluIHNjaWVudGlmaWMgbm90YXRpb24gbGlrZSAxZS04LlxyXG5fbnVtV2l0aFVuaXRFeHAgPSAvWy0rPS5dKlxcZCtbLmUtXSpcXGQqW2EteiVdKi9nLFxyXG4gICAgX2NvbXBsZXhTdHJpbmdOdW1FeHAgPSAvWy0rPS5dKlxcZCtcXC4/XFxkKig/OmUtfGVcXCspP1xcZCovZ2ksXHJcbiAgICAvL2R1cGxpY2F0ZSBzbyB0aGF0IHdoaWxlIHdlJ3JlIGxvb3BpbmcgdGhyb3VnaCBtYXRjaGVzIGZyb20gZXhlYygpLCBpdCBkb2Vzbid0IGNvbnRhbWluYXRlIHRoZSBsYXN0SW5kZXggb2YgX251bUV4cCB3aGljaCB3ZSB1c2UgdG8gc2VhcmNoIGZvciBjb2xvcnMgdG9vLlxyXG5fcmVsRXhwID0gL1srLV09LT9bLlxcZF0rLyxcclxuICAgIF9kZWxpbWl0ZWRWYWx1ZUV4cCA9IC9bXiwnXCJcXFtcXF1cXHNdKy9naSxcclxuICAgIC8vIHByZXZpb3VzbHkgL1sjXFwtKy5dKlxcYlthLXpcXGRcXC09KyUuXSsvZ2kgYnV0IGRpZG4ndCBjYXRjaCBzcGVjaWFsIGNoYXJhY3RlcnMuXHJcbl91bml0RXhwID0gL15bK1xcLT1lXFxzXFxkXSpcXGQrWy5cXGRdKihbYS16XSp8JSlcXHMqJC9pLFxyXG4gICAgX2dsb2JhbFRpbWVsaW5lLFxyXG4gICAgX3dpbixcclxuICAgIF9jb3JlSW5pdHRlZCxcclxuICAgIF9kb2MsXHJcbiAgICBfZ2xvYmFscyA9IHt9LFxyXG4gICAgX2luc3RhbGxTY29wZSA9IHt9LFxyXG4gICAgX2NvcmVSZWFkeSxcclxuICAgIF9pbnN0YWxsID0gZnVuY3Rpb24gX2luc3RhbGwoc2NvcGUpIHtcclxuICByZXR1cm4gKF9pbnN0YWxsU2NvcGUgPSBfbWVyZ2Uoc2NvcGUsIF9nbG9iYWxzKSkgJiYgZ3NhcDtcclxufSxcclxuICAgIF9taXNzaW5nUGx1Z2luID0gZnVuY3Rpb24gX21pc3NpbmdQbHVnaW4ocHJvcGVydHksIHZhbHVlKSB7XHJcbiAgcmV0dXJuIGNvbnNvbGUud2FybihcIkludmFsaWQgcHJvcGVydHlcIiwgcHJvcGVydHksIFwic2V0IHRvXCIsIHZhbHVlLCBcIk1pc3NpbmcgcGx1Z2luPyBnc2FwLnJlZ2lzdGVyUGx1Z2luKClcIik7XHJcbn0sXHJcbiAgICBfd2FybiA9IGZ1bmN0aW9uIF93YXJuKG1lc3NhZ2UsIHN1cHByZXNzKSB7XHJcbiAgcmV0dXJuICFzdXBwcmVzcyAmJiBjb25zb2xlLndhcm4obWVzc2FnZSk7XHJcbn0sXHJcbiAgICBfYWRkR2xvYmFsID0gZnVuY3Rpb24gX2FkZEdsb2JhbChuYW1lLCBvYmopIHtcclxuICByZXR1cm4gbmFtZSAmJiAoX2dsb2JhbHNbbmFtZV0gPSBvYmopICYmIF9pbnN0YWxsU2NvcGUgJiYgKF9pbnN0YWxsU2NvcGVbbmFtZV0gPSBvYmopIHx8IF9nbG9iYWxzO1xyXG59LFxyXG4gICAgX2VtcHR5RnVuYyA9IGZ1bmN0aW9uIF9lbXB0eUZ1bmMoKSB7XHJcbiAgcmV0dXJuIDA7XHJcbn0sXHJcbiAgICBfc3RhcnRBdFJldmVydENvbmZpZyA9IHtcclxuICBzdXBwcmVzc0V2ZW50czogdHJ1ZSxcclxuICBpc1N0YXJ0OiB0cnVlLFxyXG4gIGtpbGw6IGZhbHNlXHJcbn0sXHJcbiAgICBfcmV2ZXJ0Q29uZmlnTm9LaWxsID0ge1xyXG4gIHN1cHByZXNzRXZlbnRzOiB0cnVlLFxyXG4gIGtpbGw6IGZhbHNlXHJcbn0sXHJcbiAgICBfcmV2ZXJ0Q29uZmlnID0ge1xyXG4gIHN1cHByZXNzRXZlbnRzOiB0cnVlXHJcbn0sXHJcbiAgICBfcmVzZXJ2ZWRQcm9wcyA9IHt9LFxyXG4gICAgX2xhenlUd2VlbnMgPSBbXSxcclxuICAgIF9sYXp5TG9va3VwID0ge30sXHJcbiAgICBfbGFzdFJlbmRlcmVkRnJhbWUsXHJcbiAgICBfcGx1Z2lucyA9IHt9LFxyXG4gICAgX2VmZmVjdHMgPSB7fSxcclxuICAgIF9uZXh0R0NGcmFtZSA9IDMwLFxyXG4gICAgX2hhcm5lc3NQbHVnaW5zID0gW10sXHJcbiAgICBfY2FsbGJhY2tOYW1lcyA9IFwiXCIsXHJcbiAgICBfaGFybmVzcyA9IGZ1bmN0aW9uIF9oYXJuZXNzKHRhcmdldHMpIHtcclxuICB2YXIgdGFyZ2V0ID0gdGFyZ2V0c1swXSxcclxuICAgICAgaGFybmVzc1BsdWdpbixcclxuICAgICAgaTtcclxuICBfaXNPYmplY3QodGFyZ2V0KSB8fCBfaXNGdW5jdGlvbih0YXJnZXQpIHx8ICh0YXJnZXRzID0gW3RhcmdldHNdKTtcclxuXHJcbiAgaWYgKCEoaGFybmVzc1BsdWdpbiA9ICh0YXJnZXQuX2dzYXAgfHwge30pLmhhcm5lc3MpKSB7XHJcbiAgICAvLyBmaW5kIHRoZSBmaXJzdCB0YXJnZXQgd2l0aCBhIGhhcm5lc3MuIFdlIGFzc3VtZSB0YXJnZXRzIHBhc3NlZCBpbnRvIGFuIGFuaW1hdGlvbiB3aWxsIGJlIG9mIHNpbWlsYXIgdHlwZSwgbWVhbmluZyB0aGUgc2FtZSBraW5kIG9mIGhhcm5lc3MgY2FuIGJlIHVzZWQgZm9yIHRoZW0gYWxsIChwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24pXHJcbiAgICBpID0gX2hhcm5lc3NQbHVnaW5zLmxlbmd0aDtcclxuXHJcbiAgICB3aGlsZSAoaS0tICYmICFfaGFybmVzc1BsdWdpbnNbaV0udGFyZ2V0VGVzdCh0YXJnZXQpKSB7fVxyXG5cclxuICAgIGhhcm5lc3NQbHVnaW4gPSBfaGFybmVzc1BsdWdpbnNbaV07XHJcbiAgfVxyXG5cclxuICBpID0gdGFyZ2V0cy5sZW5ndGg7XHJcblxyXG4gIHdoaWxlIChpLS0pIHtcclxuICAgIHRhcmdldHNbaV0gJiYgKHRhcmdldHNbaV0uX2dzYXAgfHwgKHRhcmdldHNbaV0uX2dzYXAgPSBuZXcgR1NDYWNoZSh0YXJnZXRzW2ldLCBoYXJuZXNzUGx1Z2luKSkpIHx8IHRhcmdldHMuc3BsaWNlKGksIDEpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRhcmdldHM7XHJcbn0sXHJcbiAgICBfZ2V0Q2FjaGUgPSBmdW5jdGlvbiBfZ2V0Q2FjaGUodGFyZ2V0KSB7XHJcbiAgcmV0dXJuIHRhcmdldC5fZ3NhcCB8fCBfaGFybmVzcyh0b0FycmF5KHRhcmdldCkpWzBdLl9nc2FwO1xyXG59LFxyXG4gICAgX2dldFByb3BlcnR5ID0gZnVuY3Rpb24gX2dldFByb3BlcnR5KHRhcmdldCwgcHJvcGVydHksIHYpIHtcclxuICByZXR1cm4gKHYgPSB0YXJnZXRbcHJvcGVydHldKSAmJiBfaXNGdW5jdGlvbih2KSA/IHRhcmdldFtwcm9wZXJ0eV0oKSA6IF9pc1VuZGVmaW5lZCh2KSAmJiB0YXJnZXQuZ2V0QXR0cmlidXRlICYmIHRhcmdldC5nZXRBdHRyaWJ1dGUocHJvcGVydHkpIHx8IHY7XHJcbn0sXHJcbiAgICBfZm9yRWFjaE5hbWUgPSBmdW5jdGlvbiBfZm9yRWFjaE5hbWUobmFtZXMsIGZ1bmMpIHtcclxuICByZXR1cm4gKG5hbWVzID0gbmFtZXMuc3BsaXQoXCIsXCIpKS5mb3JFYWNoKGZ1bmMpIHx8IG5hbWVzO1xyXG59LFxyXG4gICAgLy9zcGxpdCBhIGNvbW1hLWRlbGltaXRlZCBsaXN0IG9mIG5hbWVzIGludG8gYW4gYXJyYXksIHRoZW4gcnVuIGEgZm9yRWFjaCgpIGZ1bmN0aW9uIGFuZCByZXR1cm4gdGhlIHNwbGl0IGFycmF5ICh0aGlzIGlzIGp1c3QgYSB3YXkgdG8gY29uc29saWRhdGUvc2hvcnRlbiBzb21lIGNvZGUpLlxyXG5fcm91bmQgPSBmdW5jdGlvbiBfcm91bmQodmFsdWUpIHtcclxuICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIDEwMDAwMCkgLyAxMDAwMDAgfHwgMDtcclxufSxcclxuICAgIF9yb3VuZFByZWNpc2UgPSBmdW5jdGlvbiBfcm91bmRQcmVjaXNlKHZhbHVlKSB7XHJcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiAxMDAwMDAwMCkgLyAxMDAwMDAwMCB8fCAwO1xyXG59LFxyXG4gICAgLy8gaW5jcmVhc2VkIHByZWNpc2lvbiBtb3N0bHkgZm9yIHRpbWluZyB2YWx1ZXMuXHJcbl9wYXJzZVJlbGF0aXZlID0gZnVuY3Rpb24gX3BhcnNlUmVsYXRpdmUoc3RhcnQsIHZhbHVlKSB7XHJcbiAgdmFyIG9wZXJhdG9yID0gdmFsdWUuY2hhckF0KDApLFxyXG4gICAgICBlbmQgPSBwYXJzZUZsb2F0KHZhbHVlLnN1YnN0cigyKSk7XHJcbiAgc3RhcnQgPSBwYXJzZUZsb2F0KHN0YXJ0KTtcclxuICByZXR1cm4gb3BlcmF0b3IgPT09IFwiK1wiID8gc3RhcnQgKyBlbmQgOiBvcGVyYXRvciA9PT0gXCItXCIgPyBzdGFydCAtIGVuZCA6IG9wZXJhdG9yID09PSBcIipcIiA/IHN0YXJ0ICogZW5kIDogc3RhcnQgLyBlbmQ7XHJcbn0sXHJcbiAgICBfYXJyYXlDb250YWluc0FueSA9IGZ1bmN0aW9uIF9hcnJheUNvbnRhaW5zQW55KHRvU2VhcmNoLCB0b0ZpbmQpIHtcclxuICAvL3NlYXJjaGVzIG9uZSBhcnJheSB0byBmaW5kIG1hdGNoZXMgZm9yIGFueSBvZiB0aGUgaXRlbXMgaW4gdGhlIHRvRmluZCBhcnJheS4gQXMgc29vbiBhcyBvbmUgaXMgZm91bmQsIGl0IHJldHVybnMgdHJ1ZS4gSXQgZG9lcyBOT1QgcmV0dXJuIGFsbCB0aGUgbWF0Y2hlczsgaXQncyBzaW1wbHkgYSBib29sZWFuIHNlYXJjaC5cclxuICB2YXIgbCA9IHRvRmluZC5sZW5ndGgsXHJcbiAgICAgIGkgPSAwO1xyXG5cclxuICBmb3IgKDsgdG9TZWFyY2guaW5kZXhPZih0b0ZpbmRbaV0pIDwgMCAmJiArK2kgPCBsOykge31cclxuXHJcbiAgcmV0dXJuIGkgPCBsO1xyXG59LFxyXG4gICAgX2xhenlSZW5kZXIgPSBmdW5jdGlvbiBfbGF6eVJlbmRlcigpIHtcclxuICB2YXIgbCA9IF9sYXp5VHdlZW5zLmxlbmd0aCxcclxuICAgICAgYSA9IF9sYXp5VHdlZW5zLnNsaWNlKDApLFxyXG4gICAgICBpLFxyXG4gICAgICB0d2VlbjtcclxuXHJcbiAgX2xhenlMb29rdXAgPSB7fTtcclxuICBfbGF6eVR3ZWVucy5sZW5ndGggPSAwO1xyXG5cclxuICBmb3IgKGkgPSAwOyBpIDwgbDsgaSsrKSB7XHJcbiAgICB0d2VlbiA9IGFbaV07XHJcbiAgICB0d2VlbiAmJiB0d2Vlbi5fbGF6eSAmJiAodHdlZW4ucmVuZGVyKHR3ZWVuLl9sYXp5WzBdLCB0d2Vlbi5fbGF6eVsxXSwgdHJ1ZSkuX2xhenkgPSAwKTtcclxuICB9XHJcbn0sXHJcbiAgICBfaXNSZXZlcnRXb3J0aHkgPSBmdW5jdGlvbiBfaXNSZXZlcnRXb3J0aHkoYW5pbWF0aW9uKSB7XHJcbiAgcmV0dXJuICEhKGFuaW1hdGlvbi5faW5pdHRlZCB8fCBhbmltYXRpb24uX3N0YXJ0QXQgfHwgYW5pbWF0aW9uLmFkZCk7XHJcbn0sXHJcbiAgICBfbGF6eVNhZmVSZW5kZXIgPSBmdW5jdGlvbiBfbGF6eVNhZmVSZW5kZXIoYW5pbWF0aW9uLCB0aW1lLCBzdXBwcmVzc0V2ZW50cywgZm9yY2UpIHtcclxuICBfbGF6eVR3ZWVucy5sZW5ndGggJiYgIV9yZXZlcnRpbmcgJiYgX2xhenlSZW5kZXIoKTtcclxuICBhbmltYXRpb24ucmVuZGVyKHRpbWUsIHN1cHByZXNzRXZlbnRzLCBmb3JjZSB8fCAhIShfcmV2ZXJ0aW5nICYmIHRpbWUgPCAwICYmIF9pc1JldmVydFdvcnRoeShhbmltYXRpb24pKSk7XHJcbiAgX2xhenlUd2VlbnMubGVuZ3RoICYmICFfcmV2ZXJ0aW5nICYmIF9sYXp5UmVuZGVyKCk7IC8vaW4gY2FzZSByZW5kZXJpbmcgY2F1c2VkIGFueSB0d2VlbnMgdG8gbGF6eS1pbml0LCB3ZSBzaG91bGQgcmVuZGVyIHRoZW0gYmVjYXVzZSB0eXBpY2FsbHkgd2hlbiBzb21lb25lIGNhbGxzIHNlZWsoKSBvciB0aW1lKCkgb3IgcHJvZ3Jlc3MoKSwgdGhleSBleHBlY3QgYW4gaW1tZWRpYXRlIHJlbmRlci5cclxufSxcclxuICAgIF9udW1lcmljSWZQb3NzaWJsZSA9IGZ1bmN0aW9uIF9udW1lcmljSWZQb3NzaWJsZSh2YWx1ZSkge1xyXG4gIHZhciBuID0gcGFyc2VGbG9hdCh2YWx1ZSk7XHJcbiAgcmV0dXJuIChuIHx8IG4gPT09IDApICYmICh2YWx1ZSArIFwiXCIpLm1hdGNoKF9kZWxpbWl0ZWRWYWx1ZUV4cCkubGVuZ3RoIDwgMiA/IG4gOiBfaXNTdHJpbmcodmFsdWUpID8gdmFsdWUudHJpbSgpIDogdmFsdWU7XHJcbn0sXHJcbiAgICBfcGFzc1Rocm91Z2ggPSBmdW5jdGlvbiBfcGFzc1Rocm91Z2gocCkge1xyXG4gIHJldHVybiBwO1xyXG59LFxyXG4gICAgX3NldERlZmF1bHRzID0gZnVuY3Rpb24gX3NldERlZmF1bHRzKG9iaiwgZGVmYXVsdHMpIHtcclxuICBmb3IgKHZhciBwIGluIGRlZmF1bHRzKSB7XHJcbiAgICBwIGluIG9iaiB8fCAob2JqW3BdID0gZGVmYXVsdHNbcF0pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG9iajtcclxufSxcclxuICAgIF9zZXRLZXlmcmFtZURlZmF1bHRzID0gZnVuY3Rpb24gX3NldEtleWZyYW1lRGVmYXVsdHMoZXhjbHVkZUR1cmF0aW9uKSB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uIChvYmosIGRlZmF1bHRzKSB7XHJcbiAgICBmb3IgKHZhciBwIGluIGRlZmF1bHRzKSB7XHJcbiAgICAgIHAgaW4gb2JqIHx8IHAgPT09IFwiZHVyYXRpb25cIiAmJiBleGNsdWRlRHVyYXRpb24gfHwgcCA9PT0gXCJlYXNlXCIgfHwgKG9ialtwXSA9IGRlZmF1bHRzW3BdKTtcclxuICAgIH1cclxuICB9O1xyXG59LFxyXG4gICAgX21lcmdlID0gZnVuY3Rpb24gX21lcmdlKGJhc2UsIHRvTWVyZ2UpIHtcclxuICBmb3IgKHZhciBwIGluIHRvTWVyZ2UpIHtcclxuICAgIGJhc2VbcF0gPSB0b01lcmdlW3BdO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGJhc2U7XHJcbn0sXHJcbiAgICBfbWVyZ2VEZWVwID0gZnVuY3Rpb24gX21lcmdlRGVlcChiYXNlLCB0b01lcmdlKSB7XHJcbiAgZm9yICh2YXIgcCBpbiB0b01lcmdlKSB7XHJcbiAgICBwICE9PSBcIl9fcHJvdG9fX1wiICYmIHAgIT09IFwiY29uc3RydWN0b3JcIiAmJiBwICE9PSBcInByb3RvdHlwZVwiICYmIChiYXNlW3BdID0gX2lzT2JqZWN0KHRvTWVyZ2VbcF0pID8gX21lcmdlRGVlcChiYXNlW3BdIHx8IChiYXNlW3BdID0ge30pLCB0b01lcmdlW3BdKSA6IHRvTWVyZ2VbcF0pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGJhc2U7XHJcbn0sXHJcbiAgICBfY29weUV4Y2x1ZGluZyA9IGZ1bmN0aW9uIF9jb3B5RXhjbHVkaW5nKG9iaiwgZXhjbHVkaW5nKSB7XHJcbiAgdmFyIGNvcHkgPSB7fSxcclxuICAgICAgcDtcclxuXHJcbiAgZm9yIChwIGluIG9iaikge1xyXG4gICAgcCBpbiBleGNsdWRpbmcgfHwgKGNvcHlbcF0gPSBvYmpbcF0pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNvcHk7XHJcbn0sXHJcbiAgICBfaW5oZXJpdERlZmF1bHRzID0gZnVuY3Rpb24gX2luaGVyaXREZWZhdWx0cyh2YXJzKSB7XHJcbiAgdmFyIHBhcmVudCA9IHZhcnMucGFyZW50IHx8IF9nbG9iYWxUaW1lbGluZSxcclxuICAgICAgZnVuYyA9IHZhcnMua2V5ZnJhbWVzID8gX3NldEtleWZyYW1lRGVmYXVsdHMoX2lzQXJyYXkodmFycy5rZXlmcmFtZXMpKSA6IF9zZXREZWZhdWx0cztcclxuXHJcbiAgaWYgKF9pc05vdEZhbHNlKHZhcnMuaW5oZXJpdCkpIHtcclxuICAgIHdoaWxlIChwYXJlbnQpIHtcclxuICAgICAgZnVuYyh2YXJzLCBwYXJlbnQudmFycy5kZWZhdWx0cyk7XHJcbiAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQgfHwgcGFyZW50Ll9kcDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiB2YXJzO1xyXG59LFxyXG4gICAgX2FycmF5c01hdGNoID0gZnVuY3Rpb24gX2FycmF5c01hdGNoKGExLCBhMikge1xyXG4gIHZhciBpID0gYTEubGVuZ3RoLFxyXG4gICAgICBtYXRjaCA9IGkgPT09IGEyLmxlbmd0aDtcclxuXHJcbiAgd2hpbGUgKG1hdGNoICYmIGktLSAmJiBhMVtpXSA9PT0gYTJbaV0pIHt9XHJcblxyXG4gIHJldHVybiBpIDwgMDtcclxufSxcclxuICAgIF9hZGRMaW5rZWRMaXN0SXRlbSA9IGZ1bmN0aW9uIF9hZGRMaW5rZWRMaXN0SXRlbShwYXJlbnQsIGNoaWxkLCBmaXJzdFByb3AsIGxhc3RQcm9wLCBzb3J0QnkpIHtcclxuICBpZiAoZmlyc3RQcm9wID09PSB2b2lkIDApIHtcclxuICAgIGZpcnN0UHJvcCA9IFwiX2ZpcnN0XCI7XHJcbiAgfVxyXG5cclxuICBpZiAobGFzdFByb3AgPT09IHZvaWQgMCkge1xyXG4gICAgbGFzdFByb3AgPSBcIl9sYXN0XCI7XHJcbiAgfVxyXG5cclxuICB2YXIgcHJldiA9IHBhcmVudFtsYXN0UHJvcF0sXHJcbiAgICAgIHQ7XHJcblxyXG4gIGlmIChzb3J0QnkpIHtcclxuICAgIHQgPSBjaGlsZFtzb3J0QnldO1xyXG5cclxuICAgIHdoaWxlIChwcmV2ICYmIHByZXZbc29ydEJ5XSA+IHQpIHtcclxuICAgICAgcHJldiA9IHByZXYuX3ByZXY7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpZiAocHJldikge1xyXG4gICAgY2hpbGQuX25leHQgPSBwcmV2Ll9uZXh0O1xyXG4gICAgcHJldi5fbmV4dCA9IGNoaWxkO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjaGlsZC5fbmV4dCA9IHBhcmVudFtmaXJzdFByb3BdO1xyXG4gICAgcGFyZW50W2ZpcnN0UHJvcF0gPSBjaGlsZDtcclxuICB9XHJcblxyXG4gIGlmIChjaGlsZC5fbmV4dCkge1xyXG4gICAgY2hpbGQuX25leHQuX3ByZXYgPSBjaGlsZDtcclxuICB9IGVsc2Uge1xyXG4gICAgcGFyZW50W2xhc3RQcm9wXSA9IGNoaWxkO1xyXG4gIH1cclxuXHJcbiAgY2hpbGQuX3ByZXYgPSBwcmV2O1xyXG4gIGNoaWxkLnBhcmVudCA9IGNoaWxkLl9kcCA9IHBhcmVudDtcclxuICByZXR1cm4gY2hpbGQ7XHJcbn0sXHJcbiAgICBfcmVtb3ZlTGlua2VkTGlzdEl0ZW0gPSBmdW5jdGlvbiBfcmVtb3ZlTGlua2VkTGlzdEl0ZW0ocGFyZW50LCBjaGlsZCwgZmlyc3RQcm9wLCBsYXN0UHJvcCkge1xyXG4gIGlmIChmaXJzdFByb3AgPT09IHZvaWQgMCkge1xyXG4gICAgZmlyc3RQcm9wID0gXCJfZmlyc3RcIjtcclxuICB9XHJcblxyXG4gIGlmIChsYXN0UHJvcCA9PT0gdm9pZCAwKSB7XHJcbiAgICBsYXN0UHJvcCA9IFwiX2xhc3RcIjtcclxuICB9XHJcblxyXG4gIHZhciBwcmV2ID0gY2hpbGQuX3ByZXYsXHJcbiAgICAgIG5leHQgPSBjaGlsZC5fbmV4dDtcclxuXHJcbiAgaWYgKHByZXYpIHtcclxuICAgIHByZXYuX25leHQgPSBuZXh0O1xyXG4gIH0gZWxzZSBpZiAocGFyZW50W2ZpcnN0UHJvcF0gPT09IGNoaWxkKSB7XHJcbiAgICBwYXJlbnRbZmlyc3RQcm9wXSA9IG5leHQ7XHJcbiAgfVxyXG5cclxuICBpZiAobmV4dCkge1xyXG4gICAgbmV4dC5fcHJldiA9IHByZXY7XHJcbiAgfSBlbHNlIGlmIChwYXJlbnRbbGFzdFByb3BdID09PSBjaGlsZCkge1xyXG4gICAgcGFyZW50W2xhc3RQcm9wXSA9IHByZXY7XHJcbiAgfVxyXG5cclxuICBjaGlsZC5fbmV4dCA9IGNoaWxkLl9wcmV2ID0gY2hpbGQucGFyZW50ID0gbnVsbDsgLy8gZG9uJ3QgZGVsZXRlIHRoZSBfZHAganVzdCBzbyB3ZSBjYW4gcmV2ZXJ0IGlmIG5lY2Vzc2FyeS4gQnV0IHBhcmVudCBzaG91bGQgYmUgbnVsbCB0byBpbmRpY2F0ZSB0aGUgaXRlbSBpc24ndCBpbiBhIGxpbmtlZCBsaXN0LlxyXG59LFxyXG4gICAgX3JlbW92ZUZyb21QYXJlbnQgPSBmdW5jdGlvbiBfcmVtb3ZlRnJvbVBhcmVudChjaGlsZCwgb25seUlmUGFyZW50SGFzQXV0b1JlbW92ZSkge1xyXG4gIGNoaWxkLnBhcmVudCAmJiAoIW9ubHlJZlBhcmVudEhhc0F1dG9SZW1vdmUgfHwgY2hpbGQucGFyZW50LmF1dG9SZW1vdmVDaGlsZHJlbikgJiYgY2hpbGQucGFyZW50LnJlbW92ZSAmJiBjaGlsZC5wYXJlbnQucmVtb3ZlKGNoaWxkKTtcclxuICBjaGlsZC5fYWN0ID0gMDtcclxufSxcclxuICAgIF91bmNhY2hlID0gZnVuY3Rpb24gX3VuY2FjaGUoYW5pbWF0aW9uLCBjaGlsZCkge1xyXG4gIGlmIChhbmltYXRpb24gJiYgKCFjaGlsZCB8fCBjaGlsZC5fZW5kID4gYW5pbWF0aW9uLl9kdXIgfHwgY2hpbGQuX3N0YXJ0IDwgMCkpIHtcclxuICAgIC8vIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogaWYgYSBjaGlsZCBhbmltYXRpb24gaXMgcGFzc2VkIGluIHdlIHNob3VsZCBvbmx5IHVuY2FjaGUgaWYgdGhhdCBjaGlsZCBFWFRFTkRTIHRoZSBhbmltYXRpb24gKGl0cyBlbmQgdGltZSBpcyBiZXlvbmQgdGhlIGVuZClcclxuICAgIHZhciBhID0gYW5pbWF0aW9uO1xyXG5cclxuICAgIHdoaWxlIChhKSB7XHJcbiAgICAgIGEuX2RpcnR5ID0gMTtcclxuICAgICAgYSA9IGEucGFyZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGFuaW1hdGlvbjtcclxufSxcclxuICAgIF9yZWNhY2hlQW5jZXN0b3JzID0gZnVuY3Rpb24gX3JlY2FjaGVBbmNlc3RvcnMoYW5pbWF0aW9uKSB7XHJcbiAgdmFyIHBhcmVudCA9IGFuaW1hdGlvbi5wYXJlbnQ7XHJcblxyXG4gIHdoaWxlIChwYXJlbnQgJiYgcGFyZW50LnBhcmVudCkge1xyXG4gICAgLy9zb21ldGltZXMgd2UgbXVzdCBmb3JjZSBhIHJlLXNvcnQgb2YgYWxsIGNoaWxkcmVuIGFuZCB1cGRhdGUgdGhlIGR1cmF0aW9uL3RvdGFsRHVyYXRpb24gb2YgYWxsIGFuY2VzdG9yIHRpbWVsaW5lcyBpbW1lZGlhdGVseSBpbiBjYXNlLCBmb3IgZXhhbXBsZSwgaW4gdGhlIG1pZGRsZSBvZiBhIHJlbmRlciBsb29wLCBvbmUgdHdlZW4gYWx0ZXJzIGFub3RoZXIgdHdlZW4ncyB0aW1lU2NhbGUgd2hpY2ggc2hvdmVzIGl0cyBzdGFydFRpbWUgYmVmb3JlIDAsIGZvcmNpbmcgdGhlIHBhcmVudCB0aW1lbGluZSB0byBzaGlmdCBhcm91bmQgYW5kIHNoaWZ0Q2hpbGRyZW4oKSB3aGljaCBjb3VsZCBhZmZlY3QgdGhhdCBuZXh0IHR3ZWVuJ3MgcmVuZGVyIChzdGFydFRpbWUpLiBEb2Vzbid0IG1hdHRlciBmb3IgdGhlIHJvb3QgdGltZWxpbmUgdGhvdWdoLlxyXG4gICAgcGFyZW50Ll9kaXJ0eSA9IDE7XHJcbiAgICBwYXJlbnQudG90YWxEdXJhdGlvbigpO1xyXG4gICAgcGFyZW50ID0gcGFyZW50LnBhcmVudDtcclxuICB9XHJcblxyXG4gIHJldHVybiBhbmltYXRpb247XHJcbn0sXHJcbiAgICBfcmV3aW5kU3RhcnRBdCA9IGZ1bmN0aW9uIF9yZXdpbmRTdGFydEF0KHR3ZWVuLCB0b3RhbFRpbWUsIHN1cHByZXNzRXZlbnRzLCBmb3JjZSkge1xyXG4gIHJldHVybiB0d2Vlbi5fc3RhcnRBdCAmJiAoX3JldmVydGluZyA/IHR3ZWVuLl9zdGFydEF0LnJldmVydChfcmV2ZXJ0Q29uZmlnTm9LaWxsKSA6IHR3ZWVuLnZhcnMuaW1tZWRpYXRlUmVuZGVyICYmICF0d2Vlbi52YXJzLmF1dG9SZXZlcnQgfHwgdHdlZW4uX3N0YXJ0QXQucmVuZGVyKHRvdGFsVGltZSwgdHJ1ZSwgZm9yY2UpKTtcclxufSxcclxuICAgIF9oYXNOb1BhdXNlZEFuY2VzdG9ycyA9IGZ1bmN0aW9uIF9oYXNOb1BhdXNlZEFuY2VzdG9ycyhhbmltYXRpb24pIHtcclxuICByZXR1cm4gIWFuaW1hdGlvbiB8fCBhbmltYXRpb24uX3RzICYmIF9oYXNOb1BhdXNlZEFuY2VzdG9ycyhhbmltYXRpb24ucGFyZW50KTtcclxufSxcclxuICAgIF9lbGFwc2VkQ3ljbGVEdXJhdGlvbiA9IGZ1bmN0aW9uIF9lbGFwc2VkQ3ljbGVEdXJhdGlvbihhbmltYXRpb24pIHtcclxuICByZXR1cm4gYW5pbWF0aW9uLl9yZXBlYXQgPyBfYW5pbWF0aW9uQ3ljbGUoYW5pbWF0aW9uLl90VGltZSwgYW5pbWF0aW9uID0gYW5pbWF0aW9uLmR1cmF0aW9uKCkgKyBhbmltYXRpb24uX3JEZWxheSkgKiBhbmltYXRpb24gOiAwO1xyXG59LFxyXG4gICAgLy8gZmVlZCBpbiB0aGUgdG90YWxUaW1lIGFuZCBjeWNsZUR1cmF0aW9uIGFuZCBpdCdsbCByZXR1cm4gdGhlIGN5Y2xlIChpdGVyYXRpb24gbWludXMgMSkgYW5kIGlmIHRoZSBwbGF5aGVhZCBpcyBleGFjdGx5IGF0IHRoZSB2ZXJ5IEVORCwgaXQgd2lsbCBOT1QgYnVtcCB1cCB0byB0aGUgbmV4dCBjeWNsZS5cclxuX2FuaW1hdGlvbkN5Y2xlID0gZnVuY3Rpb24gX2FuaW1hdGlvbkN5Y2xlKHRUaW1lLCBjeWNsZUR1cmF0aW9uKSB7XHJcbiAgdmFyIHdob2xlID0gTWF0aC5mbG9vcih0VGltZSA9IF9yb3VuZFByZWNpc2UodFRpbWUgLyBjeWNsZUR1cmF0aW9uKSk7XHJcbiAgcmV0dXJuIHRUaW1lICYmIHdob2xlID09PSB0VGltZSA/IHdob2xlIC0gMSA6IHdob2xlO1xyXG59LFxyXG4gICAgX3BhcmVudFRvQ2hpbGRUb3RhbFRpbWUgPSBmdW5jdGlvbiBfcGFyZW50VG9DaGlsZFRvdGFsVGltZShwYXJlbnRUaW1lLCBjaGlsZCkge1xyXG4gIHJldHVybiAocGFyZW50VGltZSAtIGNoaWxkLl9zdGFydCkgKiBjaGlsZC5fdHMgKyAoY2hpbGQuX3RzID49IDAgPyAwIDogY2hpbGQuX2RpcnR5ID8gY2hpbGQudG90YWxEdXJhdGlvbigpIDogY2hpbGQuX3REdXIpO1xyXG59LFxyXG4gICAgX3NldEVuZCA9IGZ1bmN0aW9uIF9zZXRFbmQoYW5pbWF0aW9uKSB7XHJcbiAgcmV0dXJuIGFuaW1hdGlvbi5fZW5kID0gX3JvdW5kUHJlY2lzZShhbmltYXRpb24uX3N0YXJ0ICsgKGFuaW1hdGlvbi5fdER1ciAvIE1hdGguYWJzKGFuaW1hdGlvbi5fdHMgfHwgYW5pbWF0aW9uLl9ydHMgfHwgX3RpbnlOdW0pIHx8IDApKTtcclxufSxcclxuICAgIF9hbGlnblBsYXloZWFkID0gZnVuY3Rpb24gX2FsaWduUGxheWhlYWQoYW5pbWF0aW9uLCB0b3RhbFRpbWUpIHtcclxuICAvLyBhZGp1c3RzIHRoZSBhbmltYXRpb24ncyBfc3RhcnQgYW5kIF9lbmQgYWNjb3JkaW5nIHRvIHRoZSBwcm92aWRlZCB0b3RhbFRpbWUgKG9ubHkgaWYgdGhlIHBhcmVudCdzIHNtb290aENoaWxkVGltaW5nIGlzIHRydWUgYW5kIHRoZSBhbmltYXRpb24gaXNuJ3QgcGF1c2VkKS4gSXQgZG9lc24ndCBkbyBhbnkgcmVuZGVyaW5nIG9yIGZvcmNpbmcgdGhpbmdzIGJhY2sgaW50byBwYXJlbnQgdGltZWxpbmVzLCBldGMuIC0gdGhhdCdzIHdoYXQgdG90YWxUaW1lKCkgaXMgZm9yLlxyXG4gIHZhciBwYXJlbnQgPSBhbmltYXRpb24uX2RwO1xyXG5cclxuICBpZiAocGFyZW50ICYmIHBhcmVudC5zbW9vdGhDaGlsZFRpbWluZyAmJiBhbmltYXRpb24uX3RzKSB7XHJcbiAgICBhbmltYXRpb24uX3N0YXJ0ID0gX3JvdW5kUHJlY2lzZShwYXJlbnQuX3RpbWUgLSAoYW5pbWF0aW9uLl90cyA+IDAgPyB0b3RhbFRpbWUgLyBhbmltYXRpb24uX3RzIDogKChhbmltYXRpb24uX2RpcnR5ID8gYW5pbWF0aW9uLnRvdGFsRHVyYXRpb24oKSA6IGFuaW1hdGlvbi5fdER1cikgLSB0b3RhbFRpbWUpIC8gLWFuaW1hdGlvbi5fdHMpKTtcclxuXHJcbiAgICBfc2V0RW5kKGFuaW1hdGlvbik7XHJcblxyXG4gICAgcGFyZW50Ll9kaXJ0eSB8fCBfdW5jYWNoZShwYXJlbnQsIGFuaW1hdGlvbik7IC8vZm9yIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50LiBJZiB0aGUgcGFyZW50J3MgY2FjaGUgaXMgYWxyZWFkeSBkaXJ0eSwgaXQgYWxyZWFkeSB0b29rIGNhcmUgb2YgbWFya2luZyB0aGUgYW5jZXN0b3JzIGFzIGRpcnR5IHRvbywgc28gc2tpcCB0aGUgZnVuY3Rpb24gY2FsbCBoZXJlLlxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGFuaW1hdGlvbjtcclxufSxcclxuXHJcbi8qXHJcbl90b3RhbFRpbWVUb1RpbWUgPSAoY2xhbXBlZFRvdGFsVGltZSwgZHVyYXRpb24sIHJlcGVhdCwgcmVwZWF0RGVsYXksIHlveW8pID0+IHtcclxuXHRsZXQgY3ljbGVEdXJhdGlvbiA9IGR1cmF0aW9uICsgcmVwZWF0RGVsYXksXHJcblx0XHR0aW1lID0gX3JvdW5kKGNsYW1wZWRUb3RhbFRpbWUgJSBjeWNsZUR1cmF0aW9uKTtcclxuXHRpZiAodGltZSA+IGR1cmF0aW9uKSB7XHJcblx0XHR0aW1lID0gZHVyYXRpb247XHJcblx0fVxyXG5cdHJldHVybiAoeW95byAmJiAofn4oY2xhbXBlZFRvdGFsVGltZSAvIGN5Y2xlRHVyYXRpb24pICYgMSkpID8gZHVyYXRpb24gLSB0aW1lIDogdGltZTtcclxufSxcclxuKi9cclxuX3Bvc3RBZGRDaGVja3MgPSBmdW5jdGlvbiBfcG9zdEFkZENoZWNrcyh0aW1lbGluZSwgY2hpbGQpIHtcclxuICB2YXIgdDtcclxuXHJcbiAgaWYgKGNoaWxkLl90aW1lIHx8ICFjaGlsZC5fZHVyICYmIGNoaWxkLl9pbml0dGVkIHx8IGNoaWxkLl9zdGFydCA8IHRpbWVsaW5lLl90aW1lICYmIChjaGlsZC5fZHVyIHx8ICFjaGlsZC5hZGQpKSB7XHJcbiAgICAvLyBpbiBjYXNlLCBmb3IgZXhhbXBsZSwgdGhlIF9zdGFydCBpcyBtb3ZlZCBvbiBhIHR3ZWVuIHRoYXQgaGFzIGFscmVhZHkgcmVuZGVyZWQsIG9yIGlmIGl0J3MgYmVpbmcgaW5zZXJ0ZWQgaW50byBhIHRpbWVsaW5lIEJFRk9SRSB3aGVyZSB0aGUgcGxheWhlYWQgaXMgY3VycmVudGx5LiBJbWFnaW5lIGl0J3MgYXQgaXRzIGVuZCBzdGF0ZSwgdGhlbiB0aGUgc3RhcnRUaW1lIGlzIG1vdmVkIFdBWSBsYXRlciAoYWZ0ZXIgdGhlIGVuZCBvZiB0aGlzIHRpbWVsaW5lKSwgaXQgc2hvdWxkIHJlbmRlciBhdCBpdHMgYmVnaW5uaW5nLiBTcGVjaWFsIGNhc2U6IGlmIGl0J3MgYSB0aW1lbGluZSAoaGFzIC5hZGQoKSBtZXRob2QpIGFuZCBubyBkdXJhdGlvbiwgd2UgY2FuIHNraXAgcmVuZGVyaW5nIGJlY2F1c2UgdGhlIHVzZXIgbWF5IGJlIHBvcHVsYXRpbmcgaXQgQUZURVIgYWRkaW5nIGl0IHRvIGEgcGFyZW50IHRpbWVsaW5lICh1bmNvbnZlbnRpb25hbCwgYnV0IHBvc3NpYmxlLCBhbmQgd2Ugd291bGRuJ3Qgd2FudCBpdCB0byBnZXQgcmVtb3ZlZCBpZiB0aGUgcGFyZW50J3MgYXV0b1JlbW92ZUNoaWxkcmVuIGlzIHRydWUpLlxyXG4gICAgdCA9IF9wYXJlbnRUb0NoaWxkVG90YWxUaW1lKHRpbWVsaW5lLnJhd1RpbWUoKSwgY2hpbGQpO1xyXG5cclxuICAgIGlmICghY2hpbGQuX2R1ciB8fCBfY2xhbXAoMCwgY2hpbGQudG90YWxEdXJhdGlvbigpLCB0KSAtIGNoaWxkLl90VGltZSA+IF90aW55TnVtKSB7XHJcbiAgICAgIGNoaWxkLnJlbmRlcih0LCB0cnVlKTtcclxuICAgIH1cclxuICB9IC8vaWYgdGhlIHRpbWVsaW5lIGhhcyBhbHJlYWR5IGVuZGVkIGJ1dCB0aGUgaW5zZXJ0ZWQgdHdlZW4vdGltZWxpbmUgZXh0ZW5kcyB0aGUgZHVyYXRpb24sIHdlIHNob3VsZCBlbmFibGUgdGhpcyB0aW1lbGluZSBhZ2FpbiBzbyB0aGF0IGl0IHJlbmRlcnMgcHJvcGVybHkuIFdlIHNob3VsZCBhbHNvIGFsaWduIHRoZSBwbGF5aGVhZCB3aXRoIHRoZSBwYXJlbnQgdGltZWxpbmUncyB3aGVuIGFwcHJvcHJpYXRlLlxyXG5cclxuXHJcbiAgaWYgKF91bmNhY2hlKHRpbWVsaW5lLCBjaGlsZCkuX2RwICYmIHRpbWVsaW5lLl9pbml0dGVkICYmIHRpbWVsaW5lLl90aW1lID49IHRpbWVsaW5lLl9kdXIgJiYgdGltZWxpbmUuX3RzKSB7XHJcbiAgICAvL2luIGNhc2UgYW55IG9mIHRoZSBhbmNlc3RvcnMgaGFkIGNvbXBsZXRlZCBidXQgc2hvdWxkIG5vdyBiZSBlbmFibGVkLi4uXHJcbiAgICBpZiAodGltZWxpbmUuX2R1ciA8IHRpbWVsaW5lLmR1cmF0aW9uKCkpIHtcclxuICAgICAgdCA9IHRpbWVsaW5lO1xyXG5cclxuICAgICAgd2hpbGUgKHQuX2RwKSB7XHJcbiAgICAgICAgdC5yYXdUaW1lKCkgPj0gMCAmJiB0LnRvdGFsVGltZSh0Ll90VGltZSk7IC8vbW92ZXMgdGhlIHRpbWVsaW5lIChzaGlmdHMgaXRzIHN0YXJ0VGltZSkgaWYgbmVjZXNzYXJ5LCBhbmQgYWxzbyBlbmFibGVzIGl0LiBJZiBpdCdzIGN1cnJlbnRseSB6ZXJvLCB0aG91Z2gsIGl0IG1heSBub3QgYmUgc2NoZWR1bGVkIHRvIHJlbmRlciB1bnRpbCBsYXRlciBzbyB0aGVyZSdzIG5vIG5lZWQgdG8gZm9yY2UgaXQgdG8gYWxpZ24gd2l0aCB0aGUgY3VycmVudCBwbGF5aGVhZCBwb3NpdGlvbi4gT25seSBtb3ZlIHRvIGNhdGNoIHVwIHdpdGggdGhlIHBsYXloZWFkLlxyXG5cclxuICAgICAgICB0ID0gdC5fZHA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aW1lbGluZS5felRpbWUgPSAtX3RpbnlOdW07IC8vIGhlbHBzIGVuc3VyZSB0aGF0IHRoZSBuZXh0IHJlbmRlcigpIHdpbGwgYmUgZm9yY2VkIChjcm9zc2luZ1N0YXJ0ID0gdHJ1ZSBpbiByZW5kZXIoKSksIGV2ZW4gaWYgdGhlIGR1cmF0aW9uIGhhc24ndCBjaGFuZ2VkICh3ZSdyZSBhZGRpbmcgYSBjaGlsZCB3aGljaCB3b3VsZCBuZWVkIHRvIGdldCByZW5kZXJlZCkuIERlZmluaXRlbHkgYW4gZWRnZSBjYXNlLiBOb3RlOiB3ZSBNVVNUIGRvIHRoaXMgQUZURVIgdGhlIGxvb3AgYWJvdmUgd2hlcmUgdGhlIHRvdGFsVGltZSgpIG1pZ2h0IHRyaWdnZXIgYSByZW5kZXIoKSBiZWNhdXNlIHRoaXMgX2FkZFRvVGltZWxpbmUoKSBtZXRob2QgZ2V0cyBjYWxsZWQgZnJvbSB0aGUgQW5pbWF0aW9uIGNvbnN0cnVjdG9yLCBCRUZPUkUgdHdlZW5zIGV2ZW4gcmVjb3JkIHRoZWlyIHRhcmdldHMsIGV0Yy4gc28gd2Ugd291bGRuJ3Qgd2FudCB0aGluZ3MgdG8gZ2V0IHRyaWdnZXJlZCBpbiB0aGUgd3Jvbmcgb3JkZXIuXHJcbiAgfVxyXG59LFxyXG4gICAgX2FkZFRvVGltZWxpbmUgPSBmdW5jdGlvbiBfYWRkVG9UaW1lbGluZSh0aW1lbGluZSwgY2hpbGQsIHBvc2l0aW9uLCBza2lwQ2hlY2tzKSB7XHJcbiAgY2hpbGQucGFyZW50ICYmIF9yZW1vdmVGcm9tUGFyZW50KGNoaWxkKTtcclxuICBjaGlsZC5fc3RhcnQgPSBfcm91bmRQcmVjaXNlKChfaXNOdW1iZXIocG9zaXRpb24pID8gcG9zaXRpb24gOiBwb3NpdGlvbiB8fCB0aW1lbGluZSAhPT0gX2dsb2JhbFRpbWVsaW5lID8gX3BhcnNlUG9zaXRpb24odGltZWxpbmUsIHBvc2l0aW9uLCBjaGlsZCkgOiB0aW1lbGluZS5fdGltZSkgKyBjaGlsZC5fZGVsYXkpO1xyXG4gIGNoaWxkLl9lbmQgPSBfcm91bmRQcmVjaXNlKGNoaWxkLl9zdGFydCArIChjaGlsZC50b3RhbER1cmF0aW9uKCkgLyBNYXRoLmFicyhjaGlsZC50aW1lU2NhbGUoKSkgfHwgMCkpO1xyXG5cclxuICBfYWRkTGlua2VkTGlzdEl0ZW0odGltZWxpbmUsIGNoaWxkLCBcIl9maXJzdFwiLCBcIl9sYXN0XCIsIHRpbWVsaW5lLl9zb3J0ID8gXCJfc3RhcnRcIiA6IDApO1xyXG5cclxuICBfaXNGcm9tT3JGcm9tU3RhcnQoY2hpbGQpIHx8ICh0aW1lbGluZS5fcmVjZW50ID0gY2hpbGQpO1xyXG4gIHNraXBDaGVja3MgfHwgX3Bvc3RBZGRDaGVja3ModGltZWxpbmUsIGNoaWxkKTtcclxuICB0aW1lbGluZS5fdHMgPCAwICYmIF9hbGlnblBsYXloZWFkKHRpbWVsaW5lLCB0aW1lbGluZS5fdFRpbWUpOyAvLyBpZiB0aGUgdGltZWxpbmUgaXMgcmV2ZXJzZWQgYW5kIHRoZSBuZXcgY2hpbGQgbWFrZXMgaXQgbG9uZ2VyLCB3ZSBtYXkgbmVlZCB0byBhZGp1c3QgdGhlIHBhcmVudCdzIF9zdGFydCAocHVzaCBpdCBiYWNrKVxyXG5cclxuICByZXR1cm4gdGltZWxpbmU7XHJcbn0sXHJcbiAgICBfc2Nyb2xsVHJpZ2dlciA9IGZ1bmN0aW9uIF9zY3JvbGxUcmlnZ2VyKGFuaW1hdGlvbiwgdHJpZ2dlcikge1xyXG4gIHJldHVybiAoX2dsb2JhbHMuU2Nyb2xsVHJpZ2dlciB8fCBfbWlzc2luZ1BsdWdpbihcInNjcm9sbFRyaWdnZXJcIiwgdHJpZ2dlcikpICYmIF9nbG9iYWxzLlNjcm9sbFRyaWdnZXIuY3JlYXRlKHRyaWdnZXIsIGFuaW1hdGlvbik7XHJcbn0sXHJcbiAgICBfYXR0ZW1wdEluaXRUd2VlbiA9IGZ1bmN0aW9uIF9hdHRlbXB0SW5pdFR3ZWVuKHR3ZWVuLCB0aW1lLCBmb3JjZSwgc3VwcHJlc3NFdmVudHMsIHRUaW1lKSB7XHJcbiAgX2luaXRUd2Vlbih0d2VlbiwgdGltZSwgdFRpbWUpO1xyXG5cclxuICBpZiAoIXR3ZWVuLl9pbml0dGVkKSB7XHJcbiAgICByZXR1cm4gMTtcclxuICB9XHJcblxyXG4gIGlmICghZm9yY2UgJiYgdHdlZW4uX3B0ICYmICFfcmV2ZXJ0aW5nICYmICh0d2Vlbi5fZHVyICYmIHR3ZWVuLnZhcnMubGF6eSAhPT0gZmFsc2UgfHwgIXR3ZWVuLl9kdXIgJiYgdHdlZW4udmFycy5sYXp5KSAmJiBfbGFzdFJlbmRlcmVkRnJhbWUgIT09IF90aWNrZXIuZnJhbWUpIHtcclxuICAgIF9sYXp5VHdlZW5zLnB1c2godHdlZW4pO1xyXG5cclxuICAgIHR3ZWVuLl9sYXp5ID0gW3RUaW1lLCBzdXBwcmVzc0V2ZW50c107XHJcbiAgICByZXR1cm4gMTtcclxuICB9XHJcbn0sXHJcbiAgICBfcGFyZW50UGxheWhlYWRJc0JlZm9yZVN0YXJ0ID0gZnVuY3Rpb24gX3BhcmVudFBsYXloZWFkSXNCZWZvcmVTdGFydChfcmVmKSB7XHJcbiAgdmFyIHBhcmVudCA9IF9yZWYucGFyZW50O1xyXG4gIHJldHVybiBwYXJlbnQgJiYgcGFyZW50Ll90cyAmJiBwYXJlbnQuX2luaXR0ZWQgJiYgIXBhcmVudC5fbG9jayAmJiAocGFyZW50LnJhd1RpbWUoKSA8IDAgfHwgX3BhcmVudFBsYXloZWFkSXNCZWZvcmVTdGFydChwYXJlbnQpKTtcclxufSxcclxuICAgIC8vIGNoZWNrIHBhcmVudCdzIF9sb2NrIGJlY2F1c2Ugd2hlbiBhIHRpbWVsaW5lIHJlcGVhdHMveW95b3MgYW5kIGRvZXMgaXRzIGFydGlmaWNpYWwgd3JhcHBpbmcsIHdlIHNob3VsZG4ndCBmb3JjZSB0aGUgcmF0aW8gYmFjayB0byAwXHJcbl9pc0Zyb21PckZyb21TdGFydCA9IGZ1bmN0aW9uIF9pc0Zyb21PckZyb21TdGFydChfcmVmMikge1xyXG4gIHZhciBkYXRhID0gX3JlZjIuZGF0YTtcclxuICByZXR1cm4gZGF0YSA9PT0gXCJpc0Zyb21TdGFydFwiIHx8IGRhdGEgPT09IFwiaXNTdGFydFwiO1xyXG59LFxyXG4gICAgX3JlbmRlclplcm9EdXJhdGlvblR3ZWVuID0gZnVuY3Rpb24gX3JlbmRlclplcm9EdXJhdGlvblR3ZWVuKHR3ZWVuLCB0b3RhbFRpbWUsIHN1cHByZXNzRXZlbnRzLCBmb3JjZSkge1xyXG4gIHZhciBwcmV2UmF0aW8gPSB0d2Vlbi5yYXRpbyxcclxuICAgICAgcmF0aW8gPSB0b3RhbFRpbWUgPCAwIHx8ICF0b3RhbFRpbWUgJiYgKCF0d2Vlbi5fc3RhcnQgJiYgX3BhcmVudFBsYXloZWFkSXNCZWZvcmVTdGFydCh0d2VlbikgJiYgISghdHdlZW4uX2luaXR0ZWQgJiYgX2lzRnJvbU9yRnJvbVN0YXJ0KHR3ZWVuKSkgfHwgKHR3ZWVuLl90cyA8IDAgfHwgdHdlZW4uX2RwLl90cyA8IDApICYmICFfaXNGcm9tT3JGcm9tU3RhcnQodHdlZW4pKSA/IDAgOiAxLFxyXG4gICAgICAvLyBpZiB0aGUgdHdlZW4gb3IgaXRzIHBhcmVudCBpcyByZXZlcnNlZCBhbmQgdGhlIHRvdGFsVGltZSBpcyAwLCB3ZSBzaG91bGQgZ28gdG8gYSByYXRpbyBvZiAwLiBFZGdlIGNhc2U6IGlmIGEgZnJvbSgpIG9yIGZyb21UbygpIHN0YWdnZXIgdHdlZW4gaXMgcGxhY2VkIGxhdGVyIGluIGEgdGltZWxpbmUsIHRoZSBcInN0YXJ0QXRcIiB6ZXJvLWR1cmF0aW9uIHR3ZWVuIGNvdWxkIGluaXRpYWxseSByZW5kZXIgYXQgYSB0aW1lIHdoZW4gdGhlIHBhcmVudCB0aW1lbGluZSdzIHBsYXloZWFkIGlzIHRlY2huaWNhbGx5IEJFRk9SRSB3aGVyZSB0aGlzIHR3ZWVuIGlzLCBzbyBtYWtlIHN1cmUgdGhhdCBhbnkgXCJmcm9tXCIgYW5kIFwiZnJvbVRvXCIgc3RhcnRBdCB0d2VlbnMgYXJlIHJlbmRlcmVkIHRoZSBmaXJzdCB0aW1lIGF0IGEgcmF0aW8gb2YgMS5cclxuICByZXBlYXREZWxheSA9IHR3ZWVuLl9yRGVsYXksXHJcbiAgICAgIHRUaW1lID0gMCxcclxuICAgICAgcHQsXHJcbiAgICAgIGl0ZXJhdGlvbixcclxuICAgICAgcHJldkl0ZXJhdGlvbjtcclxuXHJcbiAgaWYgKHJlcGVhdERlbGF5ICYmIHR3ZWVuLl9yZXBlYXQpIHtcclxuICAgIC8vIGluIGNhc2UgdGhlcmUncyBhIHplcm8tZHVyYXRpb24gdHdlZW4gdGhhdCBoYXMgYSByZXBlYXQgd2l0aCBhIHJlcGVhdERlbGF5XHJcbiAgICB0VGltZSA9IF9jbGFtcCgwLCB0d2Vlbi5fdER1ciwgdG90YWxUaW1lKTtcclxuICAgIGl0ZXJhdGlvbiA9IF9hbmltYXRpb25DeWNsZSh0VGltZSwgcmVwZWF0RGVsYXkpO1xyXG4gICAgdHdlZW4uX3lveW8gJiYgaXRlcmF0aW9uICYgMSAmJiAocmF0aW8gPSAxIC0gcmF0aW8pO1xyXG5cclxuICAgIGlmIChpdGVyYXRpb24gIT09IF9hbmltYXRpb25DeWNsZSh0d2Vlbi5fdFRpbWUsIHJlcGVhdERlbGF5KSkge1xyXG4gICAgICAvLyBpZiBpdGVyYXRpb24gY2hhbmdlZFxyXG4gICAgICBwcmV2UmF0aW8gPSAxIC0gcmF0aW87XHJcbiAgICAgIHR3ZWVuLnZhcnMucmVwZWF0UmVmcmVzaCAmJiB0d2Vlbi5faW5pdHRlZCAmJiB0d2Vlbi5pbnZhbGlkYXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpZiAocmF0aW8gIT09IHByZXZSYXRpbyB8fCBfcmV2ZXJ0aW5nIHx8IGZvcmNlIHx8IHR3ZWVuLl96VGltZSA9PT0gX3RpbnlOdW0gfHwgIXRvdGFsVGltZSAmJiB0d2Vlbi5felRpbWUpIHtcclxuICAgIGlmICghdHdlZW4uX2luaXR0ZWQgJiYgX2F0dGVtcHRJbml0VHdlZW4odHdlZW4sIHRvdGFsVGltZSwgZm9yY2UsIHN1cHByZXNzRXZlbnRzLCB0VGltZSkpIHtcclxuICAgICAgLy8gaWYgd2UgcmVuZGVyIHRoZSB2ZXJ5IGJlZ2lubmluZyAodGltZSA9PSAwKSBvZiBhIGZyb21UbygpLCB3ZSBtdXN0IGZvcmNlIHRoZSByZW5kZXIgKG5vcm1hbCB0d2VlbnMgd291bGRuJ3QgbmVlZCB0byByZW5kZXIgYXQgYSB0aW1lIG9mIDAgd2hlbiB0aGUgcHJldlRpbWUgd2FzIGFsc28gMCkuIFRoaXMgaXMgYWxzbyBtYW5kYXRvcnkgdG8gbWFrZSBzdXJlIG92ZXJ3cml0aW5nIGtpY2tzIGluIGltbWVkaWF0ZWx5LlxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcHJldkl0ZXJhdGlvbiA9IHR3ZWVuLl96VGltZTtcclxuICAgIHR3ZWVuLl96VGltZSA9IHRvdGFsVGltZSB8fCAoc3VwcHJlc3NFdmVudHMgPyBfdGlueU51bSA6IDApOyAvLyB3aGVuIHRoZSBwbGF5aGVhZCBhcnJpdmVzIGF0IEVYQUNUTFkgdGltZSAwIChyaWdodCBvbiB0b3ApIG9mIGEgemVyby1kdXJhdGlvbiB0d2Vlbiwgd2UgbmVlZCB0byBkaXNjZXJuIGlmIGV2ZW50cyBhcmUgc3VwcHJlc3NlZCBzbyB0aGF0IHdoZW4gdGhlIHBsYXloZWFkIG1vdmVzIGFnYWluIChuZXh0IHRpbWUpLCBpdCdsbCB0cmlnZ2VyIHRoZSBjYWxsYmFjay4gSWYgZXZlbnRzIGFyZSBOT1Qgc3VwcHJlc3NlZCwgb2J2aW91c2x5IHRoZSBjYWxsYmFjayB3b3VsZCBiZSB0cmlnZ2VyZWQgaW4gdGhpcyByZW5kZXIuIEJhc2ljYWxseSwgdGhlIGNhbGxiYWNrIHNob3VsZCBmaXJlIGVpdGhlciB3aGVuIHRoZSBwbGF5aGVhZCBBUlJJVkVTIG9yIExFQVZFUyB0aGlzIGV4YWN0IHNwb3QsIG5vdCBib3RoLiBJbWFnaW5lIGRvaW5nIGEgdGltZWxpbmUuc2VlaygwKSBhbmQgdGhlcmUncyBhIGNhbGxiYWNrIHRoYXQgc2l0cyBhdCAwLiBTaW5jZSBldmVudHMgYXJlIHN1cHByZXNzZWQgb24gdGhhdCBzZWVrKCkgYnkgZGVmYXVsdCwgbm90aGluZyB3aWxsIGZpcmUsIGJ1dCB3aGVuIHRoZSBwbGF5aGVhZCBtb3ZlcyBvZmYgb2YgdGhhdCBwb3NpdGlvbiwgdGhlIGNhbGxiYWNrIHNob3VsZCBmaXJlLiBUaGlzIGJlaGF2aW9yIGlzIHdoYXQgcGVvcGxlIGludHVpdGl2ZWx5IGV4cGVjdC5cclxuXHJcbiAgICBzdXBwcmVzc0V2ZW50cyB8fCAoc3VwcHJlc3NFdmVudHMgPSB0b3RhbFRpbWUgJiYgIXByZXZJdGVyYXRpb24pOyAvLyBpZiBpdCB3YXMgcmVuZGVyZWQgcHJldmlvdXNseSBhdCBleGFjdGx5IDAgKF96VGltZSkgYW5kIG5vdyB0aGUgcGxheWhlYWQgaXMgbW92aW5nIGF3YXksIERPTidUIGZpcmUgY2FsbGJhY2tzIG90aGVyd2lzZSB0aGV5J2xsIHNlZW0gbGlrZSBkdXBsaWNhdGVzLlxyXG5cclxuICAgIHR3ZWVuLnJhdGlvID0gcmF0aW87XHJcbiAgICB0d2Vlbi5fZnJvbSAmJiAocmF0aW8gPSAxIC0gcmF0aW8pO1xyXG4gICAgdHdlZW4uX3RpbWUgPSAwO1xyXG4gICAgdHdlZW4uX3RUaW1lID0gdFRpbWU7XHJcbiAgICBwdCA9IHR3ZWVuLl9wdDtcclxuXHJcbiAgICB3aGlsZSAocHQpIHtcclxuICAgICAgcHQucihyYXRpbywgcHQuZCk7XHJcbiAgICAgIHB0ID0gcHQuX25leHQ7XHJcbiAgICB9XHJcblxyXG4gICAgdG90YWxUaW1lIDwgMCAmJiBfcmV3aW5kU3RhcnRBdCh0d2VlbiwgdG90YWxUaW1lLCBzdXBwcmVzc0V2ZW50cywgdHJ1ZSk7XHJcbiAgICB0d2Vlbi5fb25VcGRhdGUgJiYgIXN1cHByZXNzRXZlbnRzICYmIF9jYWxsYmFjayh0d2VlbiwgXCJvblVwZGF0ZVwiKTtcclxuICAgIHRUaW1lICYmIHR3ZWVuLl9yZXBlYXQgJiYgIXN1cHByZXNzRXZlbnRzICYmIHR3ZWVuLnBhcmVudCAmJiBfY2FsbGJhY2sodHdlZW4sIFwib25SZXBlYXRcIik7XHJcblxyXG4gICAgaWYgKCh0b3RhbFRpbWUgPj0gdHdlZW4uX3REdXIgfHwgdG90YWxUaW1lIDwgMCkgJiYgdHdlZW4ucmF0aW8gPT09IHJhdGlvKSB7XHJcbiAgICAgIHJhdGlvICYmIF9yZW1vdmVGcm9tUGFyZW50KHR3ZWVuLCAxKTtcclxuXHJcbiAgICAgIGlmICghc3VwcHJlc3NFdmVudHMgJiYgIV9yZXZlcnRpbmcpIHtcclxuICAgICAgICBfY2FsbGJhY2sodHdlZW4sIHJhdGlvID8gXCJvbkNvbXBsZXRlXCIgOiBcIm9uUmV2ZXJzZUNvbXBsZXRlXCIsIHRydWUpO1xyXG5cclxuICAgICAgICB0d2Vlbi5fcHJvbSAmJiB0d2Vlbi5fcHJvbSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBlbHNlIGlmICghdHdlZW4uX3pUaW1lKSB7XHJcbiAgICB0d2Vlbi5felRpbWUgPSB0b3RhbFRpbWU7XHJcbiAgfVxyXG59LFxyXG4gICAgX2ZpbmROZXh0UGF1c2VUd2VlbiA9IGZ1bmN0aW9uIF9maW5kTmV4dFBhdXNlVHdlZW4oYW5pbWF0aW9uLCBwcmV2VGltZSwgdGltZSkge1xyXG4gIHZhciBjaGlsZDtcclxuXHJcbiAgaWYgKHRpbWUgPiBwcmV2VGltZSkge1xyXG4gICAgY2hpbGQgPSBhbmltYXRpb24uX2ZpcnN0O1xyXG5cclxuICAgIHdoaWxlIChjaGlsZCAmJiBjaGlsZC5fc3RhcnQgPD0gdGltZSkge1xyXG4gICAgICBpZiAoY2hpbGQuZGF0YSA9PT0gXCJpc1BhdXNlXCIgJiYgY2hpbGQuX3N0YXJ0ID4gcHJldlRpbWUpIHtcclxuICAgICAgICByZXR1cm4gY2hpbGQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNoaWxkID0gY2hpbGQuX25leHQ7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIGNoaWxkID0gYW5pbWF0aW9uLl9sYXN0O1xyXG5cclxuICAgIHdoaWxlIChjaGlsZCAmJiBjaGlsZC5fc3RhcnQgPj0gdGltZSkge1xyXG4gICAgICBpZiAoY2hpbGQuZGF0YSA9PT0gXCJpc1BhdXNlXCIgJiYgY2hpbGQuX3N0YXJ0IDwgcHJldlRpbWUpIHtcclxuICAgICAgICByZXR1cm4gY2hpbGQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNoaWxkID0gY2hpbGQuX3ByZXY7XHJcbiAgICB9XHJcbiAgfVxyXG59LFxyXG4gICAgX3NldER1cmF0aW9uID0gZnVuY3Rpb24gX3NldER1cmF0aW9uKGFuaW1hdGlvbiwgZHVyYXRpb24sIHNraXBVbmNhY2hlLCBsZWF2ZVBsYXloZWFkKSB7XHJcbiAgdmFyIHJlcGVhdCA9IGFuaW1hdGlvbi5fcmVwZWF0LFxyXG4gICAgICBkdXIgPSBfcm91bmRQcmVjaXNlKGR1cmF0aW9uKSB8fCAwLFxyXG4gICAgICB0b3RhbFByb2dyZXNzID0gYW5pbWF0aW9uLl90VGltZSAvIGFuaW1hdGlvbi5fdER1cjtcclxuICB0b3RhbFByb2dyZXNzICYmICFsZWF2ZVBsYXloZWFkICYmIChhbmltYXRpb24uX3RpbWUgKj0gZHVyIC8gYW5pbWF0aW9uLl9kdXIpO1xyXG4gIGFuaW1hdGlvbi5fZHVyID0gZHVyO1xyXG4gIGFuaW1hdGlvbi5fdER1ciA9ICFyZXBlYXQgPyBkdXIgOiByZXBlYXQgPCAwID8gMWUxMCA6IF9yb3VuZFByZWNpc2UoZHVyICogKHJlcGVhdCArIDEpICsgYW5pbWF0aW9uLl9yRGVsYXkgKiByZXBlYXQpO1xyXG4gIHRvdGFsUHJvZ3Jlc3MgPiAwICYmICFsZWF2ZVBsYXloZWFkICYmIF9hbGlnblBsYXloZWFkKGFuaW1hdGlvbiwgYW5pbWF0aW9uLl90VGltZSA9IGFuaW1hdGlvbi5fdER1ciAqIHRvdGFsUHJvZ3Jlc3MpO1xyXG4gIGFuaW1hdGlvbi5wYXJlbnQgJiYgX3NldEVuZChhbmltYXRpb24pO1xyXG4gIHNraXBVbmNhY2hlIHx8IF91bmNhY2hlKGFuaW1hdGlvbi5wYXJlbnQsIGFuaW1hdGlvbik7XHJcbiAgcmV0dXJuIGFuaW1hdGlvbjtcclxufSxcclxuICAgIF9vblVwZGF0ZVRvdGFsRHVyYXRpb24gPSBmdW5jdGlvbiBfb25VcGRhdGVUb3RhbER1cmF0aW9uKGFuaW1hdGlvbikge1xyXG4gIHJldHVybiBhbmltYXRpb24gaW5zdGFuY2VvZiBUaW1lbGluZSA/IF91bmNhY2hlKGFuaW1hdGlvbikgOiBfc2V0RHVyYXRpb24oYW5pbWF0aW9uLCBhbmltYXRpb24uX2R1cik7XHJcbn0sXHJcbiAgICBfemVyb1Bvc2l0aW9uID0ge1xyXG4gIF9zdGFydDogMCxcclxuICBlbmRUaW1lOiBfZW1wdHlGdW5jLFxyXG4gIHRvdGFsRHVyYXRpb246IF9lbXB0eUZ1bmNcclxufSxcclxuICAgIF9wYXJzZVBvc2l0aW9uID0gZnVuY3Rpb24gX3BhcnNlUG9zaXRpb24oYW5pbWF0aW9uLCBwb3NpdGlvbiwgcGVyY2VudEFuaW1hdGlvbikge1xyXG4gIHZhciBsYWJlbHMgPSBhbmltYXRpb24ubGFiZWxzLFxyXG4gICAgICByZWNlbnQgPSBhbmltYXRpb24uX3JlY2VudCB8fCBfemVyb1Bvc2l0aW9uLFxyXG4gICAgICBjbGlwcGVkRHVyYXRpb24gPSBhbmltYXRpb24uZHVyYXRpb24oKSA+PSBfYmlnTnVtID8gcmVjZW50LmVuZFRpbWUoZmFsc2UpIDogYW5pbWF0aW9uLl9kdXIsXHJcbiAgICAgIC8vaW4gY2FzZSB0aGVyZSdzIGEgY2hpbGQgdGhhdCBpbmZpbml0ZWx5IHJlcGVhdHMsIHVzZXJzIGFsbW9zdCBuZXZlciBpbnRlbmQgZm9yIHRoZSBpbnNlcnRpb24gcG9pbnQgb2YgYSBuZXcgY2hpbGQgdG8gYmUgYmFzZWQgb24gYSBTVVBFUiBsb25nIHZhbHVlIGxpa2UgdGhhdCBzbyB3ZSBjbGlwIGl0IGFuZCBhc3N1bWUgdGhlIG1vc3QgcmVjZW50bHktYWRkZWQgY2hpbGQncyBlbmRUaW1lIHNob3VsZCBiZSB1c2VkIGluc3RlYWQuXHJcbiAgaSxcclxuICAgICAgb2Zmc2V0LFxyXG4gICAgICBpc1BlcmNlbnQ7XHJcblxyXG4gIGlmIChfaXNTdHJpbmcocG9zaXRpb24pICYmIChpc05hTihwb3NpdGlvbikgfHwgcG9zaXRpb24gaW4gbGFiZWxzKSkge1xyXG4gICAgLy9pZiB0aGUgc3RyaW5nIGlzIGEgbnVtYmVyIGxpa2UgXCIxXCIsIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSdzIGEgbGFiZWwgd2l0aCB0aGF0IG5hbWUsIG90aGVyd2lzZSBpbnRlcnByZXQgaXQgYXMgYSBudW1iZXIgKGFic29sdXRlIHZhbHVlKS5cclxuICAgIG9mZnNldCA9IHBvc2l0aW9uLmNoYXJBdCgwKTtcclxuICAgIGlzUGVyY2VudCA9IHBvc2l0aW9uLnN1YnN0cigtMSkgPT09IFwiJVwiO1xyXG4gICAgaSA9IHBvc2l0aW9uLmluZGV4T2YoXCI9XCIpO1xyXG5cclxuICAgIGlmIChvZmZzZXQgPT09IFwiPFwiIHx8IG9mZnNldCA9PT0gXCI+XCIpIHtcclxuICAgICAgaSA+PSAwICYmIChwb3NpdGlvbiA9IHBvc2l0aW9uLnJlcGxhY2UoLz0vLCBcIlwiKSk7XHJcbiAgICAgIHJldHVybiAob2Zmc2V0ID09PSBcIjxcIiA/IHJlY2VudC5fc3RhcnQgOiByZWNlbnQuZW5kVGltZShyZWNlbnQuX3JlcGVhdCA+PSAwKSkgKyAocGFyc2VGbG9hdChwb3NpdGlvbi5zdWJzdHIoMSkpIHx8IDApICogKGlzUGVyY2VudCA/IChpIDwgMCA/IHJlY2VudCA6IHBlcmNlbnRBbmltYXRpb24pLnRvdGFsRHVyYXRpb24oKSAvIDEwMCA6IDEpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpIDwgMCkge1xyXG4gICAgICBwb3NpdGlvbiBpbiBsYWJlbHMgfHwgKGxhYmVsc1twb3NpdGlvbl0gPSBjbGlwcGVkRHVyYXRpb24pO1xyXG4gICAgICByZXR1cm4gbGFiZWxzW3Bvc2l0aW9uXTtcclxuICAgIH1cclxuXHJcbiAgICBvZmZzZXQgPSBwYXJzZUZsb2F0KHBvc2l0aW9uLmNoYXJBdChpIC0gMSkgKyBwb3NpdGlvbi5zdWJzdHIoaSArIDEpKTtcclxuXHJcbiAgICBpZiAoaXNQZXJjZW50ICYmIHBlcmNlbnRBbmltYXRpb24pIHtcclxuICAgICAgb2Zmc2V0ID0gb2Zmc2V0IC8gMTAwICogKF9pc0FycmF5KHBlcmNlbnRBbmltYXRpb24pID8gcGVyY2VudEFuaW1hdGlvblswXSA6IHBlcmNlbnRBbmltYXRpb24pLnRvdGFsRHVyYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaSA+IDEgPyBfcGFyc2VQb3NpdGlvbihhbmltYXRpb24sIHBvc2l0aW9uLnN1YnN0cigwLCBpIC0gMSksIHBlcmNlbnRBbmltYXRpb24pICsgb2Zmc2V0IDogY2xpcHBlZER1cmF0aW9uICsgb2Zmc2V0O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHBvc2l0aW9uID09IG51bGwgPyBjbGlwcGVkRHVyYXRpb24gOiArcG9zaXRpb247XHJcbn0sXHJcbiAgICBfY3JlYXRlVHdlZW5UeXBlID0gZnVuY3Rpb24gX2NyZWF0ZVR3ZWVuVHlwZSh0eXBlLCBwYXJhbXMsIHRpbWVsaW5lKSB7XHJcbiAgdmFyIGlzTGVnYWN5ID0gX2lzTnVtYmVyKHBhcmFtc1sxXSksXHJcbiAgICAgIHZhcnNJbmRleCA9IChpc0xlZ2FjeSA/IDIgOiAxKSArICh0eXBlIDwgMiA/IDAgOiAxKSxcclxuICAgICAgdmFycyA9IHBhcmFtc1t2YXJzSW5kZXhdLFxyXG4gICAgICBpclZhcnMsXHJcbiAgICAgIHBhcmVudDtcclxuXHJcbiAgaXNMZWdhY3kgJiYgKHZhcnMuZHVyYXRpb24gPSBwYXJhbXNbMV0pO1xyXG4gIHZhcnMucGFyZW50ID0gdGltZWxpbmU7XHJcblxyXG4gIGlmICh0eXBlKSB7XHJcbiAgICBpclZhcnMgPSB2YXJzO1xyXG4gICAgcGFyZW50ID0gdGltZWxpbmU7XHJcblxyXG4gICAgd2hpbGUgKHBhcmVudCAmJiAhKFwiaW1tZWRpYXRlUmVuZGVyXCIgaW4gaXJWYXJzKSkge1xyXG4gICAgICAvLyBpbmhlcml0YW5jZSBoYXNuJ3QgaGFwcGVuZWQgeWV0LCBidXQgc29tZW9uZSBtYXkgaGF2ZSBzZXQgYSBkZWZhdWx0IGluIGFuIGFuY2VzdG9yIHRpbWVsaW5lLiBXZSBjb3VsZCBkbyB2YXJzLmltbWVkaWF0ZVJlbmRlciA9IF9pc05vdEZhbHNlKF9pbmhlcml0RGVmYXVsdHModmFycykuaW1tZWRpYXRlUmVuZGVyKSBidXQgdGhhdCdkIGV4YWN0IGEgc2xpZ2h0IHBlcmZvcm1hbmNlIHBlbmFsdHkgYmVjYXVzZSBfaW5oZXJpdERlZmF1bHRzKCkgYWxzbyBydW5zIGluIHRoZSBUd2VlbiBjb25zdHJ1Y3Rvci4gV2UncmUgcGF5aW5nIGEgc21hbGwga2IgcHJpY2UgaGVyZSB0byBnYWluIHNwZWVkLlxyXG4gICAgICBpclZhcnMgPSBwYXJlbnQudmFycy5kZWZhdWx0cyB8fCB7fTtcclxuICAgICAgcGFyZW50ID0gX2lzTm90RmFsc2UocGFyZW50LnZhcnMuaW5oZXJpdCkgJiYgcGFyZW50LnBhcmVudDtcclxuICAgIH1cclxuXHJcbiAgICB2YXJzLmltbWVkaWF0ZVJlbmRlciA9IF9pc05vdEZhbHNlKGlyVmFycy5pbW1lZGlhdGVSZW5kZXIpO1xyXG4gICAgdHlwZSA8IDIgPyB2YXJzLnJ1bkJhY2t3YXJkcyA9IDEgOiB2YXJzLnN0YXJ0QXQgPSBwYXJhbXNbdmFyc0luZGV4IC0gMV07IC8vIFwiZnJvbVwiIHZhcnNcclxuICB9XHJcblxyXG4gIHJldHVybiBuZXcgVHdlZW4ocGFyYW1zWzBdLCB2YXJzLCBwYXJhbXNbdmFyc0luZGV4ICsgMV0pO1xyXG59LFxyXG4gICAgX2NvbmRpdGlvbmFsUmV0dXJuID0gZnVuY3Rpb24gX2NvbmRpdGlvbmFsUmV0dXJuKHZhbHVlLCBmdW5jKSB7XHJcbiAgcmV0dXJuIHZhbHVlIHx8IHZhbHVlID09PSAwID8gZnVuYyh2YWx1ZSkgOiBmdW5jO1xyXG59LFxyXG4gICAgX2NsYW1wID0gZnVuY3Rpb24gX2NsYW1wKG1pbiwgbWF4LCB2YWx1ZSkge1xyXG4gIHJldHVybiB2YWx1ZSA8IG1pbiA/IG1pbiA6IHZhbHVlID4gbWF4ID8gbWF4IDogdmFsdWU7XHJcbn0sXHJcbiAgICBnZXRVbml0ID0gZnVuY3Rpb24gZ2V0VW5pdCh2YWx1ZSwgdikge1xyXG4gIHJldHVybiAhX2lzU3RyaW5nKHZhbHVlKSB8fCAhKHYgPSBfdW5pdEV4cC5leGVjKHZhbHVlKSkgPyBcIlwiIDogdlsxXTtcclxufSxcclxuICAgIC8vIG5vdGU6IHByb3RlY3QgYWdhaW5zdCBwYWRkZWQgbnVtYmVycyBhcyBzdHJpbmdzLCBsaWtlIFwiMTAwLjEwMFwiLiBUaGF0IHNob3VsZG4ndCByZXR1cm4gXCIwMFwiIGFzIHRoZSB1bml0LiBJZiBpdCdzIG51bWVyaWMsIHJldHVybiBubyB1bml0LlxyXG5jbGFtcCA9IGZ1bmN0aW9uIGNsYW1wKG1pbiwgbWF4LCB2YWx1ZSkge1xyXG4gIHJldHVybiBfY29uZGl0aW9uYWxSZXR1cm4odmFsdWUsIGZ1bmN0aW9uICh2KSB7XHJcbiAgICByZXR1cm4gX2NsYW1wKG1pbiwgbWF4LCB2KTtcclxuICB9KTtcclxufSxcclxuICAgIF9zbGljZSA9IFtdLnNsaWNlLFxyXG4gICAgX2lzQXJyYXlMaWtlID0gZnVuY3Rpb24gX2lzQXJyYXlMaWtlKHZhbHVlLCBub25FbXB0eSkge1xyXG4gIHJldHVybiB2YWx1ZSAmJiBfaXNPYmplY3QodmFsdWUpICYmIFwibGVuZ3RoXCIgaW4gdmFsdWUgJiYgKCFub25FbXB0eSAmJiAhdmFsdWUubGVuZ3RoIHx8IHZhbHVlLmxlbmd0aCAtIDEgaW4gdmFsdWUgJiYgX2lzT2JqZWN0KHZhbHVlWzBdKSkgJiYgIXZhbHVlLm5vZGVUeXBlICYmIHZhbHVlICE9PSBfd2luO1xyXG59LFxyXG4gICAgX2ZsYXR0ZW4gPSBmdW5jdGlvbiBfZmxhdHRlbihhciwgbGVhdmVTdHJpbmdzLCBhY2N1bXVsYXRvcikge1xyXG4gIGlmIChhY2N1bXVsYXRvciA9PT0gdm9pZCAwKSB7XHJcbiAgICBhY2N1bXVsYXRvciA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGFyLmZvckVhY2goZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICB2YXIgX2FjY3VtdWxhdG9yO1xyXG5cclxuICAgIHJldHVybiBfaXNTdHJpbmcodmFsdWUpICYmICFsZWF2ZVN0cmluZ3MgfHwgX2lzQXJyYXlMaWtlKHZhbHVlLCAxKSA/IChfYWNjdW11bGF0b3IgPSBhY2N1bXVsYXRvcikucHVzaC5hcHBseShfYWNjdW11bGF0b3IsIHRvQXJyYXkodmFsdWUpKSA6IGFjY3VtdWxhdG9yLnB1c2godmFsdWUpO1xyXG4gIH0pIHx8IGFjY3VtdWxhdG9yO1xyXG59LFxyXG4gICAgLy90YWtlcyBhbnkgdmFsdWUgYW5kIHJldHVybnMgYW4gYXJyYXkuIElmIGl0J3MgYSBzdHJpbmcgKGFuZCBsZWF2ZVN0cmluZ3MgaXNuJ3QgdHJ1ZSksIGl0J2xsIHVzZSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCkgYW5kIGNvbnZlcnQgdGhhdCB0byBhbiBhcnJheS4gSXQnbGwgYWxzbyBhY2NlcHQgaXRlcmFibGVzIGxpa2UgalF1ZXJ5IG9iamVjdHMuXHJcbnRvQXJyYXkgPSBmdW5jdGlvbiB0b0FycmF5KHZhbHVlLCBzY29wZSwgbGVhdmVTdHJpbmdzKSB7XHJcbiAgcmV0dXJuIF9jb250ZXh0ICYmICFzY29wZSAmJiBfY29udGV4dC5zZWxlY3RvciA/IF9jb250ZXh0LnNlbGVjdG9yKHZhbHVlKSA6IF9pc1N0cmluZyh2YWx1ZSkgJiYgIWxlYXZlU3RyaW5ncyAmJiAoX2NvcmVJbml0dGVkIHx8ICFfd2FrZSgpKSA/IF9zbGljZS5jYWxsKChzY29wZSB8fCBfZG9jKS5xdWVyeVNlbGVjdG9yQWxsKHZhbHVlKSwgMCkgOiBfaXNBcnJheSh2YWx1ZSkgPyBfZmxhdHRlbih2YWx1ZSwgbGVhdmVTdHJpbmdzKSA6IF9pc0FycmF5TGlrZSh2YWx1ZSkgPyBfc2xpY2UuY2FsbCh2YWx1ZSwgMCkgOiB2YWx1ZSA/IFt2YWx1ZV0gOiBbXTtcclxufSxcclxuICAgIHNlbGVjdG9yID0gZnVuY3Rpb24gc2VsZWN0b3IodmFsdWUpIHtcclxuICB2YWx1ZSA9IHRvQXJyYXkodmFsdWUpWzBdIHx8IF93YXJuKFwiSW52YWxpZCBzY29wZVwiKSB8fCB7fTtcclxuICByZXR1cm4gZnVuY3Rpb24gKHYpIHtcclxuICAgIHZhciBlbCA9IHZhbHVlLmN1cnJlbnQgfHwgdmFsdWUubmF0aXZlRWxlbWVudCB8fCB2YWx1ZTtcclxuICAgIHJldHVybiB0b0FycmF5KHYsIGVsLnF1ZXJ5U2VsZWN0b3JBbGwgPyBlbCA6IGVsID09PSB2YWx1ZSA/IF93YXJuKFwiSW52YWxpZCBzY29wZVwiKSB8fCBfZG9jLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikgOiB2YWx1ZSk7XHJcbiAgfTtcclxufSxcclxuICAgIHNodWZmbGUgPSBmdW5jdGlvbiBzaHVmZmxlKGEpIHtcclxuICByZXR1cm4gYS5zb3J0KGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiAuNSAtIE1hdGgucmFuZG9tKCk7XHJcbiAgfSk7XHJcbn0sXHJcbiAgICAvLyBhbHRlcm5hdGl2ZSB0aGF0J3MgYSBiaXQgZmFzdGVyIGFuZCBtb3JlIHJlbGlhYmx5IGRpdmVyc2UgYnV0IGJpZ2dlcjogICBmb3IgKGxldCBqLCB2LCBpID0gYS5sZW5ndGg7IGk7IGogPSAoTWF0aC5yYW5kb20oKSAqIGkpIHwgMCwgdiA9IGFbLS1pXSwgYVtpXSA9IGFbal0sIGFbal0gPSB2KTsgcmV0dXJuIGE7XHJcbi8vZm9yIGRpc3RyaWJ1dGluZyB2YWx1ZXMgYWNyb3NzIGFuIGFycmF5LiBDYW4gYWNjZXB0IGEgbnVtYmVyLCBhIGZ1bmN0aW9uIG9yIChtb3N0IGNvbW1vbmx5KSBhIGZ1bmN0aW9uIHdoaWNoIGNhbiBjb250YWluIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoge2Jhc2UsIGFtb3VudCwgZnJvbSwgZWFzZSwgZ3JpZCwgYXhpcywgbGVuZ3RoLCBlYWNofS4gUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgZXhwZWN0cyB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6IGluZGV4LCB0YXJnZXQsIGFycmF5LiBSZWNvZ25pemVzIHRoZSBmb2xsb3dpbmdcclxuZGlzdHJpYnV0ZSA9IGZ1bmN0aW9uIGRpc3RyaWJ1dGUodikge1xyXG4gIGlmIChfaXNGdW5jdGlvbih2KSkge1xyXG4gICAgcmV0dXJuIHY7XHJcbiAgfVxyXG5cclxuICB2YXIgdmFycyA9IF9pc09iamVjdCh2KSA/IHYgOiB7XHJcbiAgICBlYWNoOiB2XHJcbiAgfSxcclxuICAgICAgLy9uOjEgaXMganVzdCB0byBpbmRpY2F0ZSB2IHdhcyBhIG51bWJlcjsgd2UgbGV2ZXJhZ2UgdGhhdCBsYXRlciB0byBzZXQgdiBhY2NvcmRpbmcgdG8gdGhlIGxlbmd0aCB3ZSBnZXQuIElmIGEgbnVtYmVyIGlzIHBhc3NlZCBpbiwgd2UgdHJlYXQgaXQgbGlrZSB0aGUgb2xkIHN0YWdnZXIgdmFsdWUgd2hlcmUgMC4xLCBmb3IgZXhhbXBsZSwgd291bGQgbWVhbiB0aGF0IHRoaW5ncyB3b3VsZCBiZSBkaXN0cmlidXRlZCB3aXRoIDAuMSBiZXR3ZWVuIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgcmF0aGVyIHRoYW4gYSB0b3RhbCBcImFtb3VudFwiIHRoYXQncyBjaHVua2VkIG91dCBhbW9uZyB0aGVtIGFsbC5cclxuICBlYXNlID0gX3BhcnNlRWFzZSh2YXJzLmVhc2UpLFxyXG4gICAgICBmcm9tID0gdmFycy5mcm9tIHx8IDAsXHJcbiAgICAgIGJhc2UgPSBwYXJzZUZsb2F0KHZhcnMuYmFzZSkgfHwgMCxcclxuICAgICAgY2FjaGUgPSB7fSxcclxuICAgICAgaXNEZWNpbWFsID0gZnJvbSA+IDAgJiYgZnJvbSA8IDEsXHJcbiAgICAgIHJhdGlvcyA9IGlzTmFOKGZyb20pIHx8IGlzRGVjaW1hbCxcclxuICAgICAgYXhpcyA9IHZhcnMuYXhpcyxcclxuICAgICAgcmF0aW9YID0gZnJvbSxcclxuICAgICAgcmF0aW9ZID0gZnJvbTtcclxuXHJcbiAgaWYgKF9pc1N0cmluZyhmcm9tKSkge1xyXG4gICAgcmF0aW9YID0gcmF0aW9ZID0ge1xyXG4gICAgICBjZW50ZXI6IC41LFxyXG4gICAgICBlZGdlczogLjUsXHJcbiAgICAgIGVuZDogMVxyXG4gICAgfVtmcm9tXSB8fCAwO1xyXG4gIH0gZWxzZSBpZiAoIWlzRGVjaW1hbCAmJiByYXRpb3MpIHtcclxuICAgIHJhdGlvWCA9IGZyb21bMF07XHJcbiAgICByYXRpb1kgPSBmcm9tWzFdO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uIChpLCB0YXJnZXQsIGEpIHtcclxuICAgIHZhciBsID0gKGEgfHwgdmFycykubGVuZ3RoLFxyXG4gICAgICAgIGRpc3RhbmNlcyA9IGNhY2hlW2xdLFxyXG4gICAgICAgIG9yaWdpblgsXHJcbiAgICAgICAgb3JpZ2luWSxcclxuICAgICAgICB4LFxyXG4gICAgICAgIHksXHJcbiAgICAgICAgZCxcclxuICAgICAgICBqLFxyXG4gICAgICAgIG1heCxcclxuICAgICAgICBtaW4sXHJcbiAgICAgICAgd3JhcEF0O1xyXG5cclxuICAgIGlmICghZGlzdGFuY2VzKSB7XHJcbiAgICAgIHdyYXBBdCA9IHZhcnMuZ3JpZCA9PT0gXCJhdXRvXCIgPyAwIDogKHZhcnMuZ3JpZCB8fCBbMSwgX2JpZ051bV0pWzFdO1xyXG5cclxuICAgICAgaWYgKCF3cmFwQXQpIHtcclxuICAgICAgICBtYXggPSAtX2JpZ051bTtcclxuXHJcbiAgICAgICAgd2hpbGUgKG1heCA8IChtYXggPSBhW3dyYXBBdCsrXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0KSAmJiB3cmFwQXQgPCBsKSB7fVxyXG5cclxuICAgICAgICB3cmFwQXQgPCBsICYmIHdyYXBBdC0tO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkaXN0YW5jZXMgPSBjYWNoZVtsXSA9IFtdO1xyXG4gICAgICBvcmlnaW5YID0gcmF0aW9zID8gTWF0aC5taW4od3JhcEF0LCBsKSAqIHJhdGlvWCAtIC41IDogZnJvbSAlIHdyYXBBdDtcclxuICAgICAgb3JpZ2luWSA9IHdyYXBBdCA9PT0gX2JpZ051bSA/IDAgOiByYXRpb3MgPyBsICogcmF0aW9ZIC8gd3JhcEF0IC0gLjUgOiBmcm9tIC8gd3JhcEF0IHwgMDtcclxuICAgICAgbWF4ID0gMDtcclxuICAgICAgbWluID0gX2JpZ051bTtcclxuXHJcbiAgICAgIGZvciAoaiA9IDA7IGogPCBsOyBqKyspIHtcclxuICAgICAgICB4ID0gaiAlIHdyYXBBdCAtIG9yaWdpblg7XHJcbiAgICAgICAgeSA9IG9yaWdpblkgLSAoaiAvIHdyYXBBdCB8IDApO1xyXG4gICAgICAgIGRpc3RhbmNlc1tqXSA9IGQgPSAhYXhpcyA/IF9zcXJ0KHggKiB4ICsgeSAqIHkpIDogTWF0aC5hYnMoYXhpcyA9PT0gXCJ5XCIgPyB5IDogeCk7XHJcbiAgICAgICAgZCA+IG1heCAmJiAobWF4ID0gZCk7XHJcbiAgICAgICAgZCA8IG1pbiAmJiAobWluID0gZCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZyb20gPT09IFwicmFuZG9tXCIgJiYgc2h1ZmZsZShkaXN0YW5jZXMpO1xyXG4gICAgICBkaXN0YW5jZXMubWF4ID0gbWF4IC0gbWluO1xyXG4gICAgICBkaXN0YW5jZXMubWluID0gbWluO1xyXG4gICAgICBkaXN0YW5jZXMudiA9IGwgPSAocGFyc2VGbG9hdCh2YXJzLmFtb3VudCkgfHwgcGFyc2VGbG9hdCh2YXJzLmVhY2gpICogKHdyYXBBdCA+IGwgPyBsIC0gMSA6ICFheGlzID8gTWF0aC5tYXgod3JhcEF0LCBsIC8gd3JhcEF0KSA6IGF4aXMgPT09IFwieVwiID8gbCAvIHdyYXBBdCA6IHdyYXBBdCkgfHwgMCkgKiAoZnJvbSA9PT0gXCJlZGdlc1wiID8gLTEgOiAxKTtcclxuICAgICAgZGlzdGFuY2VzLmIgPSBsIDwgMCA/IGJhc2UgLSBsIDogYmFzZTtcclxuICAgICAgZGlzdGFuY2VzLnUgPSBnZXRVbml0KHZhcnMuYW1vdW50IHx8IHZhcnMuZWFjaCkgfHwgMDsgLy91bml0XHJcblxyXG4gICAgICBlYXNlID0gZWFzZSAmJiBsIDwgMCA/IF9pbnZlcnRFYXNlKGVhc2UpIDogZWFzZTtcclxuICAgIH1cclxuXHJcbiAgICBsID0gKGRpc3RhbmNlc1tpXSAtIGRpc3RhbmNlcy5taW4pIC8gZGlzdGFuY2VzLm1heCB8fCAwO1xyXG4gICAgcmV0dXJuIF9yb3VuZFByZWNpc2UoZGlzdGFuY2VzLmIgKyAoZWFzZSA/IGVhc2UobCkgOiBsKSAqIGRpc3RhbmNlcy52KSArIGRpc3RhbmNlcy51OyAvL3JvdW5kIGluIG9yZGVyIHRvIHdvcmsgYXJvdW5kIGZsb2F0aW5nIHBvaW50IGVycm9yc1xyXG4gIH07XHJcbn0sXHJcbiAgICBfcm91bmRNb2RpZmllciA9IGZ1bmN0aW9uIF9yb3VuZE1vZGlmaWVyKHYpIHtcclxuICAvL3Bhc3MgaW4gMC4xIGdldCBhIGZ1bmN0aW9uIHRoYXQnbGwgcm91bmQgdG8gdGhlIG5lYXJlc3QgdGVudGgsIG9yIDUgdG8gcm91bmQgdG8gdGhlIGNsb3Nlc3QgNSwgb3IgMC4wMDEgdG8gdGhlIGNsb3Nlc3QgMTAwMHRoLCBldGMuXHJcbiAgdmFyIHAgPSBNYXRoLnBvdygxMCwgKCh2ICsgXCJcIikuc3BsaXQoXCIuXCIpWzFdIHx8IFwiXCIpLmxlbmd0aCk7IC8vdG8gYXZvaWQgZmxvYXRpbmcgcG9pbnQgbWF0aCBlcnJvcnMgKGxpa2UgMjQgKiAwLjEgPT0gMi40MDAwMDAwMDAwMDAwMDA0KSwgd2UgY2hvcCBvZmYgYXQgYSBzcGVjaWZpYyBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgKG11Y2ggZmFzdGVyIHRoYW4gdG9GaXhlZCgpKVxyXG5cclxuICByZXR1cm4gZnVuY3Rpb24gKHJhdykge1xyXG4gICAgdmFyIG4gPSBfcm91bmRQcmVjaXNlKE1hdGgucm91bmQocGFyc2VGbG9hdChyYXcpIC8gdikgKiB2ICogcCk7XHJcblxyXG4gICAgcmV0dXJuIChuIC0gbiAlIDEpIC8gcCArIChfaXNOdW1iZXIocmF3KSA/IDAgOiBnZXRVbml0KHJhdykpOyAvLyBuIC0gbiAlIDEgcmVwbGFjZXMgTWF0aC5mbG9vcigpIGluIG9yZGVyIHRvIGhhbmRsZSBuZWdhdGl2ZSB2YWx1ZXMgcHJvcGVybHkuIEZvciBleGFtcGxlLCBNYXRoLmZsb29yKC0xNTAuMDAwMDAwMDAwMDAwMDMpIGlzIDE1MSFcclxuICB9O1xyXG59LFxyXG4gICAgc25hcCA9IGZ1bmN0aW9uIHNuYXAoc25hcFRvLCB2YWx1ZSkge1xyXG4gIHZhciBpc0FycmF5ID0gX2lzQXJyYXkoc25hcFRvKSxcclxuICAgICAgcmFkaXVzLFxyXG4gICAgICBpczJEO1xyXG5cclxuICBpZiAoIWlzQXJyYXkgJiYgX2lzT2JqZWN0KHNuYXBUbykpIHtcclxuICAgIHJhZGl1cyA9IGlzQXJyYXkgPSBzbmFwVG8ucmFkaXVzIHx8IF9iaWdOdW07XHJcblxyXG4gICAgaWYgKHNuYXBUby52YWx1ZXMpIHtcclxuICAgICAgc25hcFRvID0gdG9BcnJheShzbmFwVG8udmFsdWVzKTtcclxuXHJcbiAgICAgIGlmIChpczJEID0gIV9pc051bWJlcihzbmFwVG9bMF0pKSB7XHJcbiAgICAgICAgcmFkaXVzICo9IHJhZGl1czsgLy9wZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gc28gd2UgZG9uJ3QgaGF2ZSB0byBNYXRoLnNxcnQoKSBpbiB0aGUgbG9vcC5cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc25hcFRvID0gX3JvdW5kTW9kaWZpZXIoc25hcFRvLmluY3JlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gX2NvbmRpdGlvbmFsUmV0dXJuKHZhbHVlLCAhaXNBcnJheSA/IF9yb3VuZE1vZGlmaWVyKHNuYXBUbykgOiBfaXNGdW5jdGlvbihzbmFwVG8pID8gZnVuY3Rpb24gKHJhdykge1xyXG4gICAgaXMyRCA9IHNuYXBUbyhyYXcpO1xyXG4gICAgcmV0dXJuIE1hdGguYWJzKGlzMkQgLSByYXcpIDw9IHJhZGl1cyA/IGlzMkQgOiByYXc7XHJcbiAgfSA6IGZ1bmN0aW9uIChyYXcpIHtcclxuICAgIHZhciB4ID0gcGFyc2VGbG9hdChpczJEID8gcmF3LnggOiByYXcpLFxyXG4gICAgICAgIHkgPSBwYXJzZUZsb2F0KGlzMkQgPyByYXcueSA6IDApLFxyXG4gICAgICAgIG1pbiA9IF9iaWdOdW0sXHJcbiAgICAgICAgY2xvc2VzdCA9IDAsXHJcbiAgICAgICAgaSA9IHNuYXBUby5sZW5ndGgsXHJcbiAgICAgICAgZHgsXHJcbiAgICAgICAgZHk7XHJcblxyXG4gICAgd2hpbGUgKGktLSkge1xyXG4gICAgICBpZiAoaXMyRCkge1xyXG4gICAgICAgIGR4ID0gc25hcFRvW2ldLnggLSB4O1xyXG4gICAgICAgIGR5ID0gc25hcFRvW2ldLnkgLSB5O1xyXG4gICAgICAgIGR4ID0gZHggKiBkeCArIGR5ICogZHk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZHggPSBNYXRoLmFicyhzbmFwVG9baV0gLSB4KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGR4IDwgbWluKSB7XHJcbiAgICAgICAgbWluID0gZHg7XHJcbiAgICAgICAgY2xvc2VzdCA9IGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbG9zZXN0ID0gIXJhZGl1cyB8fCBtaW4gPD0gcmFkaXVzID8gc25hcFRvW2Nsb3Nlc3RdIDogcmF3O1xyXG4gICAgcmV0dXJuIGlzMkQgfHwgY2xvc2VzdCA9PT0gcmF3IHx8IF9pc051bWJlcihyYXcpID8gY2xvc2VzdCA6IGNsb3Nlc3QgKyBnZXRVbml0KHJhdyk7XHJcbiAgfSk7XHJcbn0sXHJcbiAgICByYW5kb20gPSBmdW5jdGlvbiByYW5kb20obWluLCBtYXgsIHJvdW5kaW5nSW5jcmVtZW50LCByZXR1cm5GdW5jdGlvbikge1xyXG4gIHJldHVybiBfY29uZGl0aW9uYWxSZXR1cm4oX2lzQXJyYXkobWluKSA/ICFtYXggOiByb3VuZGluZ0luY3JlbWVudCA9PT0gdHJ1ZSA/ICEhKHJvdW5kaW5nSW5jcmVtZW50ID0gMCkgOiAhcmV0dXJuRnVuY3Rpb24sIGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiBfaXNBcnJheShtaW4pID8gbWluW35+KE1hdGgucmFuZG9tKCkgKiBtaW4ubGVuZ3RoKV0gOiAocm91bmRpbmdJbmNyZW1lbnQgPSByb3VuZGluZ0luY3JlbWVudCB8fCAxZS01KSAmJiAocmV0dXJuRnVuY3Rpb24gPSByb3VuZGluZ0luY3JlbWVudCA8IDEgPyBNYXRoLnBvdygxMCwgKHJvdW5kaW5nSW5jcmVtZW50ICsgXCJcIikubGVuZ3RoIC0gMikgOiAxKSAmJiBNYXRoLmZsb29yKE1hdGgucm91bmQoKG1pbiAtIHJvdW5kaW5nSW5jcmVtZW50IC8gMiArIE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgcm91bmRpbmdJbmNyZW1lbnQgKiAuOTkpKSAvIHJvdW5kaW5nSW5jcmVtZW50KSAqIHJvdW5kaW5nSW5jcmVtZW50ICogcmV0dXJuRnVuY3Rpb24pIC8gcmV0dXJuRnVuY3Rpb247XHJcbiAgfSk7XHJcbn0sXHJcbiAgICBwaXBlID0gZnVuY3Rpb24gcGlwZSgpIHtcclxuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgZnVuY3Rpb25zID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xyXG4gICAgZnVuY3Rpb25zW19rZXldID0gYXJndW1lbnRzW19rZXldO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9ucy5yZWR1Y2UoZnVuY3Rpb24gKHYsIGYpIHtcclxuICAgICAgcmV0dXJuIGYodik7XHJcbiAgICB9LCB2YWx1ZSk7XHJcbiAgfTtcclxufSxcclxuICAgIHVuaXRpemUgPSBmdW5jdGlvbiB1bml0aXplKGZ1bmMsIHVuaXQpIHtcclxuICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gZnVuYyhwYXJzZUZsb2F0KHZhbHVlKSkgKyAodW5pdCB8fCBnZXRVbml0KHZhbHVlKSk7XHJcbiAgfTtcclxufSxcclxuICAgIG5vcm1hbGl6ZSA9IGZ1bmN0aW9uIG5vcm1hbGl6ZShtaW4sIG1heCwgdmFsdWUpIHtcclxuICByZXR1cm4gbWFwUmFuZ2UobWluLCBtYXgsIDAsIDEsIHZhbHVlKTtcclxufSxcclxuICAgIF93cmFwQXJyYXkgPSBmdW5jdGlvbiBfd3JhcEFycmF5KGEsIHdyYXBwZXIsIHZhbHVlKSB7XHJcbiAgcmV0dXJuIF9jb25kaXRpb25hbFJldHVybih2YWx1ZSwgZnVuY3Rpb24gKGluZGV4KSB7XHJcbiAgICByZXR1cm4gYVt+fndyYXBwZXIoaW5kZXgpXTtcclxuICB9KTtcclxufSxcclxuICAgIHdyYXAgPSBmdW5jdGlvbiB3cmFwKG1pbiwgbWF4LCB2YWx1ZSkge1xyXG4gIC8vIE5PVEU6IHdyYXAoKSBDQU5OT1QgYmUgYW4gYXJyb3cgZnVuY3Rpb24hIEEgdmVyeSBvZGQgY29tcGlsaW5nIGJ1ZyBjYXVzZXMgcHJvYmxlbXMgKHVucmVsYXRlZCB0byBHU0FQKS5cclxuICB2YXIgcmFuZ2UgPSBtYXggLSBtaW47XHJcbiAgcmV0dXJuIF9pc0FycmF5KG1pbikgPyBfd3JhcEFycmF5KG1pbiwgd3JhcCgwLCBtaW4ubGVuZ3RoKSwgbWF4KSA6IF9jb25kaXRpb25hbFJldHVybih2YWx1ZSwgZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gKHJhbmdlICsgKHZhbHVlIC0gbWluKSAlIHJhbmdlKSAlIHJhbmdlICsgbWluO1xyXG4gIH0pO1xyXG59LFxyXG4gICAgd3JhcFlveW8gPSBmdW5jdGlvbiB3cmFwWW95byhtaW4sIG1heCwgdmFsdWUpIHtcclxuICB2YXIgcmFuZ2UgPSBtYXggLSBtaW4sXHJcbiAgICAgIHRvdGFsID0gcmFuZ2UgKiAyO1xyXG4gIHJldHVybiBfaXNBcnJheShtaW4pID8gX3dyYXBBcnJheShtaW4sIHdyYXBZb3lvKDAsIG1pbi5sZW5ndGggLSAxKSwgbWF4KSA6IF9jb25kaXRpb25hbFJldHVybih2YWx1ZSwgZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICB2YWx1ZSA9ICh0b3RhbCArICh2YWx1ZSAtIG1pbikgJSB0b3RhbCkgJSB0b3RhbCB8fCAwO1xyXG4gICAgcmV0dXJuIG1pbiArICh2YWx1ZSA+IHJhbmdlID8gdG90YWwgLSB2YWx1ZSA6IHZhbHVlKTtcclxuICB9KTtcclxufSxcclxuICAgIF9yZXBsYWNlUmFuZG9tID0gZnVuY3Rpb24gX3JlcGxhY2VSYW5kb20odmFsdWUpIHtcclxuICAvL3JlcGxhY2VzIGFsbCBvY2N1cnJlbmNlcyBvZiByYW5kb20oLi4uKSBpbiBhIHN0cmluZyB3aXRoIHRoZSBjYWxjdWxhdGVkIHJhbmRvbSB2YWx1ZS4gY2FuIGJlIGEgcmFuZ2UgbGlrZSByYW5kb20oLTEwMCwgMTAwLCA1KSBvciBhbiBhcnJheSBsaWtlIHJhbmRvbShbMCwgMTAwLCA1MDBdKVxyXG4gIHZhciBwcmV2ID0gMCxcclxuICAgICAgcyA9IFwiXCIsXHJcbiAgICAgIGksXHJcbiAgICAgIG51bXMsXHJcbiAgICAgIGVuZCxcclxuICAgICAgaXNBcnJheTtcclxuXHJcbiAgd2hpbGUgKH4oaSA9IHZhbHVlLmluZGV4T2YoXCJyYW5kb20oXCIsIHByZXYpKSkge1xyXG4gICAgZW5kID0gdmFsdWUuaW5kZXhPZihcIilcIiwgaSk7XHJcbiAgICBpc0FycmF5ID0gdmFsdWUuY2hhckF0KGkgKyA3KSA9PT0gXCJbXCI7XHJcbiAgICBudW1zID0gdmFsdWUuc3Vic3RyKGkgKyA3LCBlbmQgLSBpIC0gNykubWF0Y2goaXNBcnJheSA/IF9kZWxpbWl0ZWRWYWx1ZUV4cCA6IF9zdHJpY3ROdW1FeHApO1xyXG4gICAgcyArPSB2YWx1ZS5zdWJzdHIocHJldiwgaSAtIHByZXYpICsgcmFuZG9tKGlzQXJyYXkgPyBudW1zIDogK251bXNbMF0sIGlzQXJyYXkgPyAwIDogK251bXNbMV0sICtudW1zWzJdIHx8IDFlLTUpO1xyXG4gICAgcHJldiA9IGVuZCArIDE7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcyArIHZhbHVlLnN1YnN0cihwcmV2LCB2YWx1ZS5sZW5ndGggLSBwcmV2KTtcclxufSxcclxuICAgIG1hcFJhbmdlID0gZnVuY3Rpb24gbWFwUmFuZ2UoaW5NaW4sIGluTWF4LCBvdXRNaW4sIG91dE1heCwgdmFsdWUpIHtcclxuICB2YXIgaW5SYW5nZSA9IGluTWF4IC0gaW5NaW4sXHJcbiAgICAgIG91dFJhbmdlID0gb3V0TWF4IC0gb3V0TWluO1xyXG4gIHJldHVybiBfY29uZGl0aW9uYWxSZXR1cm4odmFsdWUsIGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIG91dE1pbiArICgodmFsdWUgLSBpbk1pbikgLyBpblJhbmdlICogb3V0UmFuZ2UgfHwgMCk7XHJcbiAgfSk7XHJcbn0sXHJcbiAgICBpbnRlcnBvbGF0ZSA9IGZ1bmN0aW9uIGludGVycG9sYXRlKHN0YXJ0LCBlbmQsIHByb2dyZXNzLCBtdXRhdGUpIHtcclxuICB2YXIgZnVuYyA9IGlzTmFOKHN0YXJ0ICsgZW5kKSA/IDAgOiBmdW5jdGlvbiAocCkge1xyXG4gICAgcmV0dXJuICgxIC0gcCkgKiBzdGFydCArIHAgKiBlbmQ7XHJcbiAgfTtcclxuXHJcbiAgaWYgKCFmdW5jKSB7XHJcbiAgICB2YXIgaXNTdHJpbmcgPSBfaXNTdHJpbmcoc3RhcnQpLFxyXG4gICAgICAgIG1hc3RlciA9IHt9LFxyXG4gICAgICAgIHAsXHJcbiAgICAgICAgaSxcclxuICAgICAgICBpbnRlcnBvbGF0b3JzLFxyXG4gICAgICAgIGwsXHJcbiAgICAgICAgaWw7XHJcblxyXG4gICAgcHJvZ3Jlc3MgPT09IHRydWUgJiYgKG11dGF0ZSA9IDEpICYmIChwcm9ncmVzcyA9IG51bGwpO1xyXG5cclxuICAgIGlmIChpc1N0cmluZykge1xyXG4gICAgICBzdGFydCA9IHtcclxuICAgICAgICBwOiBzdGFydFxyXG4gICAgICB9O1xyXG4gICAgICBlbmQgPSB7XHJcbiAgICAgICAgcDogZW5kXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2UgaWYgKF9pc0FycmF5KHN0YXJ0KSAmJiAhX2lzQXJyYXkoZW5kKSkge1xyXG4gICAgICBpbnRlcnBvbGF0b3JzID0gW107XHJcbiAgICAgIGwgPSBzdGFydC5sZW5ndGg7XHJcbiAgICAgIGlsID0gbCAtIDI7XHJcblxyXG4gICAgICBmb3IgKGkgPSAxOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgaW50ZXJwb2xhdG9ycy5wdXNoKGludGVycG9sYXRlKHN0YXJ0W2kgLSAxXSwgc3RhcnRbaV0pKTsgLy9idWlsZCB0aGUgaW50ZXJwb2xhdG9ycyB1cCBmcm9udCBhcyBhIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiBzbyB0aGF0IHdoZW4gdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCBtYW55IHRpbWVzLCBpdCBjYW4ganVzdCByZXVzZSB0aGVtLlxyXG4gICAgICB9XHJcblxyXG4gICAgICBsLS07XHJcblxyXG4gICAgICBmdW5jID0gZnVuY3Rpb24gZnVuYyhwKSB7XHJcbiAgICAgICAgcCAqPSBsO1xyXG4gICAgICAgIHZhciBpID0gTWF0aC5taW4oaWwsIH5+cCk7XHJcbiAgICAgICAgcmV0dXJuIGludGVycG9sYXRvcnNbaV0ocCAtIGkpO1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgcHJvZ3Jlc3MgPSBlbmQ7XHJcbiAgICB9IGVsc2UgaWYgKCFtdXRhdGUpIHtcclxuICAgICAgc3RhcnQgPSBfbWVyZ2UoX2lzQXJyYXkoc3RhcnQpID8gW10gOiB7fSwgc3RhcnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghaW50ZXJwb2xhdG9ycykge1xyXG4gICAgICBmb3IgKHAgaW4gZW5kKSB7XHJcbiAgICAgICAgX2FkZFByb3BUd2Vlbi5jYWxsKG1hc3Rlciwgc3RhcnQsIHAsIFwiZ2V0XCIsIGVuZFtwXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZ1bmMgPSBmdW5jdGlvbiBmdW5jKHApIHtcclxuICAgICAgICByZXR1cm4gX3JlbmRlclByb3BUd2VlbnMocCwgbWFzdGVyKSB8fCAoaXNTdHJpbmcgPyBzdGFydC5wIDogc3RhcnQpO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIF9jb25kaXRpb25hbFJldHVybihwcm9ncmVzcywgZnVuYyk7XHJcbn0sXHJcbiAgICBfZ2V0TGFiZWxJbkRpcmVjdGlvbiA9IGZ1bmN0aW9uIF9nZXRMYWJlbEluRGlyZWN0aW9uKHRpbWVsaW5lLCBmcm9tVGltZSwgYmFja3dhcmQpIHtcclxuICAvL3VzZWQgZm9yIG5leHRMYWJlbCgpIGFuZCBwcmV2aW91c0xhYmVsKClcclxuICB2YXIgbGFiZWxzID0gdGltZWxpbmUubGFiZWxzLFxyXG4gICAgICBtaW4gPSBfYmlnTnVtLFxyXG4gICAgICBwLFxyXG4gICAgICBkaXN0YW5jZSxcclxuICAgICAgbGFiZWw7XHJcblxyXG4gIGZvciAocCBpbiBsYWJlbHMpIHtcclxuICAgIGRpc3RhbmNlID0gbGFiZWxzW3BdIC0gZnJvbVRpbWU7XHJcblxyXG4gICAgaWYgKGRpc3RhbmNlIDwgMCA9PT0gISFiYWNrd2FyZCAmJiBkaXN0YW5jZSAmJiBtaW4gPiAoZGlzdGFuY2UgPSBNYXRoLmFicyhkaXN0YW5jZSkpKSB7XHJcbiAgICAgIGxhYmVsID0gcDtcclxuICAgICAgbWluID0gZGlzdGFuY2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbGFiZWw7XHJcbn0sXHJcbiAgICBfY2FsbGJhY2sgPSBmdW5jdGlvbiBfY2FsbGJhY2soYW5pbWF0aW9uLCB0eXBlLCBleGVjdXRlTGF6eUZpcnN0KSB7XHJcbiAgdmFyIHYgPSBhbmltYXRpb24udmFycyxcclxuICAgICAgY2FsbGJhY2sgPSB2W3R5cGVdLFxyXG4gICAgICBwcmV2Q29udGV4dCA9IF9jb250ZXh0LFxyXG4gICAgICBjb250ZXh0ID0gYW5pbWF0aW9uLl9jdHgsXHJcbiAgICAgIHBhcmFtcyxcclxuICAgICAgc2NvcGUsXHJcbiAgICAgIHJlc3VsdDtcclxuXHJcbiAgaWYgKCFjYWxsYmFjaykge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgcGFyYW1zID0gdlt0eXBlICsgXCJQYXJhbXNcIl07XHJcbiAgc2NvcGUgPSB2LmNhbGxiYWNrU2NvcGUgfHwgYW5pbWF0aW9uO1xyXG4gIGV4ZWN1dGVMYXp5Rmlyc3QgJiYgX2xhenlUd2VlbnMubGVuZ3RoICYmIF9sYXp5UmVuZGVyKCk7IC8vaW4gY2FzZSByZW5kZXJpbmcgY2F1c2VkIGFueSB0d2VlbnMgdG8gbGF6eS1pbml0LCB3ZSBzaG91bGQgcmVuZGVyIHRoZW0gYmVjYXVzZSB0eXBpY2FsbHkgd2hlbiBhIHRpbWVsaW5lIGZpbmlzaGVzLCB1c2VycyBleHBlY3QgdGhpbmdzIHRvIGhhdmUgcmVuZGVyZWQgZnVsbHkuIEltYWdpbmUgYW4gb25VcGRhdGUgb24gYSB0aW1lbGluZSB0aGF0IHJlcG9ydHMvY2hlY2tzIHR3ZWVuZWQgdmFsdWVzLlxyXG5cclxuICBjb250ZXh0ICYmIChfY29udGV4dCA9IGNvbnRleHQpO1xyXG4gIHJlc3VsdCA9IHBhcmFtcyA/IGNhbGxiYWNrLmFwcGx5KHNjb3BlLCBwYXJhbXMpIDogY2FsbGJhY2suY2FsbChzY29wZSk7XHJcbiAgX2NvbnRleHQgPSBwcmV2Q29udGV4dDtcclxuICByZXR1cm4gcmVzdWx0O1xyXG59LFxyXG4gICAgX2ludGVycnVwdCA9IGZ1bmN0aW9uIF9pbnRlcnJ1cHQoYW5pbWF0aW9uKSB7XHJcbiAgX3JlbW92ZUZyb21QYXJlbnQoYW5pbWF0aW9uKTtcclxuXHJcbiAgYW5pbWF0aW9uLnNjcm9sbFRyaWdnZXIgJiYgYW5pbWF0aW9uLnNjcm9sbFRyaWdnZXIua2lsbCghIV9yZXZlcnRpbmcpO1xyXG4gIGFuaW1hdGlvbi5wcm9ncmVzcygpIDwgMSAmJiBfY2FsbGJhY2soYW5pbWF0aW9uLCBcIm9uSW50ZXJydXB0XCIpO1xyXG4gIHJldHVybiBhbmltYXRpb247XHJcbn0sXHJcbiAgICBfcXVpY2tUd2VlbixcclxuICAgIF9yZWdpc3RlclBsdWdpblF1ZXVlID0gW10sXHJcbiAgICBfY3JlYXRlUGx1Z2luID0gZnVuY3Rpb24gX2NyZWF0ZVBsdWdpbihjb25maWcpIHtcclxuICBpZiAoIWNvbmZpZykgcmV0dXJuO1xyXG4gIGNvbmZpZyA9ICFjb25maWcubmFtZSAmJiBjb25maWdbXCJkZWZhdWx0XCJdIHx8IGNvbmZpZzsgLy8gVU1EIHBhY2thZ2luZyB3cmFwcyB0aGluZ3Mgb2RkbHksIHNvIGZvciBleGFtcGxlIE1vdGlvblBhdGhIZWxwZXIgYmVjb21lcyB7TW90aW9uUGF0aEhlbHBlcjpNb3Rpb25QYXRoSGVscGVyLCBkZWZhdWx0Ok1vdGlvblBhdGhIZWxwZXJ9LlxyXG5cclxuICBpZiAoX3dpbmRvd0V4aXN0cygpIHx8IGNvbmZpZy5oZWFkbGVzcykge1xyXG4gICAgLy8gZWRnZSBjYXNlOiBzb21lIGJ1aWxkIHRvb2xzIG1heSBwYXNzIGluIGEgbnVsbC91bmRlZmluZWQgdmFsdWVcclxuICAgIHZhciBuYW1lID0gY29uZmlnLm5hbWUsXHJcbiAgICAgICAgaXNGdW5jID0gX2lzRnVuY3Rpb24oY29uZmlnKSxcclxuICAgICAgICBQbHVnaW4gPSBuYW1lICYmICFpc0Z1bmMgJiYgY29uZmlnLmluaXQgPyBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHRoaXMuX3Byb3BzID0gW107XHJcbiAgICB9IDogY29uZmlnLFxyXG4gICAgICAgIC8vaW4gY2FzZSBzb21lb25lIHBhc3NlcyBpbiBhbiBvYmplY3QgdGhhdCdzIG5vdCBhIHBsdWdpbiwgbGlrZSBDdXN0b21FYXNlXHJcbiAgICBpbnN0YW5jZURlZmF1bHRzID0ge1xyXG4gICAgICBpbml0OiBfZW1wdHlGdW5jLFxyXG4gICAgICByZW5kZXI6IF9yZW5kZXJQcm9wVHdlZW5zLFxyXG4gICAgICBhZGQ6IF9hZGRQcm9wVHdlZW4sXHJcbiAgICAgIGtpbGw6IF9raWxsUHJvcFR3ZWVuc09mLFxyXG4gICAgICBtb2RpZmllcjogX2FkZFBsdWdpbk1vZGlmaWVyLFxyXG4gICAgICByYXdWYXJzOiAwXHJcbiAgICB9LFxyXG4gICAgICAgIHN0YXRpY3MgPSB7XHJcbiAgICAgIHRhcmdldFRlc3Q6IDAsXHJcbiAgICAgIGdldDogMCxcclxuICAgICAgZ2V0U2V0dGVyOiBfZ2V0U2V0dGVyLFxyXG4gICAgICBhbGlhc2VzOiB7fSxcclxuICAgICAgcmVnaXN0ZXI6IDBcclxuICAgIH07XHJcblxyXG4gICAgX3dha2UoKTtcclxuXHJcbiAgICBpZiAoY29uZmlnICE9PSBQbHVnaW4pIHtcclxuICAgICAgaWYgKF9wbHVnaW5zW25hbWVdKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBfc2V0RGVmYXVsdHMoUGx1Z2luLCBfc2V0RGVmYXVsdHMoX2NvcHlFeGNsdWRpbmcoY29uZmlnLCBpbnN0YW5jZURlZmF1bHRzKSwgc3RhdGljcykpOyAvL3N0YXRpYyBtZXRob2RzXHJcblxyXG5cclxuICAgICAgX21lcmdlKFBsdWdpbi5wcm90b3R5cGUsIF9tZXJnZShpbnN0YW5jZURlZmF1bHRzLCBfY29weUV4Y2x1ZGluZyhjb25maWcsIHN0YXRpY3MpKSk7IC8vaW5zdGFuY2UgbWV0aG9kc1xyXG5cclxuXHJcbiAgICAgIF9wbHVnaW5zW1BsdWdpbi5wcm9wID0gbmFtZV0gPSBQbHVnaW47XHJcblxyXG4gICAgICBpZiAoY29uZmlnLnRhcmdldFRlc3QpIHtcclxuICAgICAgICBfaGFybmVzc1BsdWdpbnMucHVzaChQbHVnaW4pO1xyXG5cclxuICAgICAgICBfcmVzZXJ2ZWRQcm9wc1tuYW1lXSA9IDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG5hbWUgPSAobmFtZSA9PT0gXCJjc3NcIiA/IFwiQ1NTXCIgOiBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zdWJzdHIoMSkpICsgXCJQbHVnaW5cIjsgLy9mb3IgdGhlIGdsb2JhbCBuYW1lLiBcIm1vdGlvblBhdGhcIiBzaG91bGQgYmVjb21lIE1vdGlvblBhdGhQbHVnaW5cclxuICAgIH1cclxuXHJcbiAgICBfYWRkR2xvYmFsKG5hbWUsIFBsdWdpbik7XHJcblxyXG4gICAgY29uZmlnLnJlZ2lzdGVyICYmIGNvbmZpZy5yZWdpc3Rlcihnc2FwLCBQbHVnaW4sIFByb3BUd2Vlbik7XHJcbiAgfSBlbHNlIHtcclxuICAgIF9yZWdpc3RlclBsdWdpblF1ZXVlLnB1c2goY29uZmlnKTtcclxuICB9XHJcbn0sXHJcblxyXG4vKlxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBDT0xPUlNcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICovXHJcbl8yNTUgPSAyNTUsXHJcbiAgICBfY29sb3JMb29rdXAgPSB7XHJcbiAgYXF1YTogWzAsIF8yNTUsIF8yNTVdLFxyXG4gIGxpbWU6IFswLCBfMjU1LCAwXSxcclxuICBzaWx2ZXI6IFsxOTIsIDE5MiwgMTkyXSxcclxuICBibGFjazogWzAsIDAsIDBdLFxyXG4gIG1hcm9vbjogWzEyOCwgMCwgMF0sXHJcbiAgdGVhbDogWzAsIDEyOCwgMTI4XSxcclxuICBibHVlOiBbMCwgMCwgXzI1NV0sXHJcbiAgbmF2eTogWzAsIDAsIDEyOF0sXHJcbiAgd2hpdGU6IFtfMjU1LCBfMjU1LCBfMjU1XSxcclxuICBvbGl2ZTogWzEyOCwgMTI4LCAwXSxcclxuICB5ZWxsb3c6IFtfMjU1LCBfMjU1LCAwXSxcclxuICBvcmFuZ2U6IFtfMjU1LCAxNjUsIDBdLFxyXG4gIGdyYXk6IFsxMjgsIDEyOCwgMTI4XSxcclxuICBwdXJwbGU6IFsxMjgsIDAsIDEyOF0sXHJcbiAgZ3JlZW46IFswLCAxMjgsIDBdLFxyXG4gIHJlZDogW18yNTUsIDAsIDBdLFxyXG4gIHBpbms6IFtfMjU1LCAxOTIsIDIwM10sXHJcbiAgY3lhbjogWzAsIF8yNTUsIF8yNTVdLFxyXG4gIHRyYW5zcGFyZW50OiBbXzI1NSwgXzI1NSwgXzI1NSwgMF1cclxufSxcclxuICAgIC8vIHBvc3NpYmxlIGZ1dHVyZSBpZGVhIHRvIHJlcGxhY2UgdGhlIGhhcmQtY29kZWQgY29sb3IgbmFtZSB2YWx1ZXMgLSBwdXQgdGhpcyBpbiB0aGUgdGlja2VyLndha2UoKSB3aGVyZSB3ZSBzZXQgdGhlIF9kb2M6XHJcbi8vIGxldCBjdHggPSBfZG9jLmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIikuZ2V0Q29udGV4dChcIjJkXCIpO1xyXG4vLyBfZm9yRWFjaE5hbWUoXCJhcXVhLGxpbWUsc2lsdmVyLGJsYWNrLG1hcm9vbix0ZWFsLGJsdWUsbmF2eSx3aGl0ZSxvbGl2ZSx5ZWxsb3csb3JhbmdlLGdyYXkscHVycGxlLGdyZWVuLHJlZCxwaW5rLGN5YW5cIiwgY29sb3IgPT4ge2N0eC5maWxsU3R5bGUgPSBjb2xvcjsgX2NvbG9yTG9va3VwW2NvbG9yXSA9IHNwbGl0Q29sb3IoY3R4LmZpbGxTdHlsZSl9KTtcclxuX2h1ZSA9IGZ1bmN0aW9uIF9odWUoaCwgbTEsIG0yKSB7XHJcbiAgaCArPSBoIDwgMCA/IDEgOiBoID4gMSA/IC0xIDogMDtcclxuICByZXR1cm4gKGggKiA2IDwgMSA/IG0xICsgKG0yIC0gbTEpICogaCAqIDYgOiBoIDwgLjUgPyBtMiA6IGggKiAzIDwgMiA/IG0xICsgKG0yIC0gbTEpICogKDIgLyAzIC0gaCkgKiA2IDogbTEpICogXzI1NSArIC41IHwgMDtcclxufSxcclxuICAgIHNwbGl0Q29sb3IgPSBmdW5jdGlvbiBzcGxpdENvbG9yKHYsIHRvSFNMLCBmb3JjZUFscGhhKSB7XHJcbiAgdmFyIGEgPSAhdiA/IF9jb2xvckxvb2t1cC5ibGFjayA6IF9pc051bWJlcih2KSA/IFt2ID4+IDE2LCB2ID4+IDggJiBfMjU1LCB2ICYgXzI1NV0gOiAwLFxyXG4gICAgICByLFxyXG4gICAgICBnLFxyXG4gICAgICBiLFxyXG4gICAgICBoLFxyXG4gICAgICBzLFxyXG4gICAgICBsLFxyXG4gICAgICBtYXgsXHJcbiAgICAgIG1pbixcclxuICAgICAgZCxcclxuICAgICAgd2FzSFNMO1xyXG5cclxuICBpZiAoIWEpIHtcclxuICAgIGlmICh2LnN1YnN0cigtMSkgPT09IFwiLFwiKSB7XHJcbiAgICAgIC8vc29tZXRpbWVzIGEgdHJhaWxpbmcgY29tbWEgaXMgaW5jbHVkZWQgYW5kIHdlIHNob3VsZCBjaG9wIGl0IG9mZiAodHlwaWNhbGx5IGZyb20gYSBjb21tYS1kZWxpbWl0ZWQgbGlzdCBvZiB2YWx1ZXMgbGlrZSBhIHRleHRTaGFkb3c6XCIycHggMnB4IDJweCBibHVlLCA1cHggNXB4IDVweCByZ2IoMjU1LDAsMClcIiAtIGluIHRoaXMgZXhhbXBsZSBcImJsdWUsXCIgaGFzIGEgdHJhaWxpbmcgY29tbWEuIFdlIGNvdWxkIHN0cmlwIGl0IG91dCBpbnNpZGUgcGFyc2VDb21wbGV4KCkgYnV0IHdlJ2QgbmVlZCB0byBkbyBpdCB0byB0aGUgYmVnaW5uaW5nIGFuZCBlbmRpbmcgdmFsdWVzIHBsdXMgaXQgd291bGRuJ3QgcHJvdmlkZSBwcm90ZWN0aW9uIGZyb20gb3RoZXIgcG90ZW50aWFsIHNjZW5hcmlvcyBsaWtlIGlmIHRoZSB1c2VyIHBhc3NlcyBpbiBhIHNpbWlsYXIgdmFsdWUuXHJcbiAgICAgIHYgPSB2LnN1YnN0cigwLCB2Lmxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChfY29sb3JMb29rdXBbdl0pIHtcclxuICAgICAgYSA9IF9jb2xvckxvb2t1cFt2XTtcclxuICAgIH0gZWxzZSBpZiAodi5jaGFyQXQoMCkgPT09IFwiI1wiKSB7XHJcbiAgICAgIGlmICh2Lmxlbmd0aCA8IDYpIHtcclxuICAgICAgICAvL2ZvciBzaG9ydGhhbmQgbGlrZSAjOUYwIG9yICM5RjBGIChjb3VsZCBoYXZlIGFscGhhKVxyXG4gICAgICAgIHIgPSB2LmNoYXJBdCgxKTtcclxuICAgICAgICBnID0gdi5jaGFyQXQoMik7XHJcbiAgICAgICAgYiA9IHYuY2hhckF0KDMpO1xyXG4gICAgICAgIHYgPSBcIiNcIiArIHIgKyByICsgZyArIGcgKyBiICsgYiArICh2Lmxlbmd0aCA9PT0gNSA/IHYuY2hhckF0KDQpICsgdi5jaGFyQXQoNCkgOiBcIlwiKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHYubGVuZ3RoID09PSA5KSB7XHJcbiAgICAgICAgLy8gaGV4IHdpdGggYWxwaGEsIGxpa2UgI2ZkNWU1M2ZmXHJcbiAgICAgICAgYSA9IHBhcnNlSW50KHYuc3Vic3RyKDEsIDYpLCAxNik7XHJcbiAgICAgICAgcmV0dXJuIFthID4+IDE2LCBhID4+IDggJiBfMjU1LCBhICYgXzI1NSwgcGFyc2VJbnQodi5zdWJzdHIoNyksIDE2KSAvIDI1NV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHYgPSBwYXJzZUludCh2LnN1YnN0cigxKSwgMTYpO1xyXG4gICAgICBhID0gW3YgPj4gMTYsIHYgPj4gOCAmIF8yNTUsIHYgJiBfMjU1XTtcclxuICAgIH0gZWxzZSBpZiAodi5zdWJzdHIoMCwgMykgPT09IFwiaHNsXCIpIHtcclxuICAgICAgYSA9IHdhc0hTTCA9IHYubWF0Y2goX3N0cmljdE51bUV4cCk7XHJcblxyXG4gICAgICBpZiAoIXRvSFNMKSB7XHJcbiAgICAgICAgaCA9ICthWzBdICUgMzYwIC8gMzYwO1xyXG4gICAgICAgIHMgPSArYVsxXSAvIDEwMDtcclxuICAgICAgICBsID0gK2FbMl0gLyAxMDA7XHJcbiAgICAgICAgZyA9IGwgPD0gLjUgPyBsICogKHMgKyAxKSA6IGwgKyBzIC0gbCAqIHM7XHJcbiAgICAgICAgciA9IGwgKiAyIC0gZztcclxuICAgICAgICBhLmxlbmd0aCA+IDMgJiYgKGFbM10gKj0gMSk7IC8vY2FzdCBhcyBudW1iZXJcclxuXHJcbiAgICAgICAgYVswXSA9IF9odWUoaCArIDEgLyAzLCByLCBnKTtcclxuICAgICAgICBhWzFdID0gX2h1ZShoLCByLCBnKTtcclxuICAgICAgICBhWzJdID0gX2h1ZShoIC0gMSAvIDMsIHIsIGcpO1xyXG4gICAgICB9IGVsc2UgaWYgKH52LmluZGV4T2YoXCI9XCIpKSB7XHJcbiAgICAgICAgLy9pZiByZWxhdGl2ZSB2YWx1ZXMgYXJlIGZvdW5kLCBqdXN0IHJldHVybiB0aGUgcmF3IHN0cmluZ3Mgd2l0aCB0aGUgcmVsYXRpdmUgcHJlZml4ZXMgaW4gcGxhY2UuXHJcbiAgICAgICAgYSA9IHYubWF0Y2goX251bUV4cCk7XHJcbiAgICAgICAgZm9yY2VBbHBoYSAmJiBhLmxlbmd0aCA8IDQgJiYgKGFbM10gPSAxKTtcclxuICAgICAgICByZXR1cm4gYTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYSA9IHYubWF0Y2goX3N0cmljdE51bUV4cCkgfHwgX2NvbG9yTG9va3VwLnRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGEgPSBhLm1hcChOdW1iZXIpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHRvSFNMICYmICF3YXNIU0wpIHtcclxuICAgIHIgPSBhWzBdIC8gXzI1NTtcclxuICAgIGcgPSBhWzFdIC8gXzI1NTtcclxuICAgIGIgPSBhWzJdIC8gXzI1NTtcclxuICAgIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpO1xyXG4gICAgbWluID0gTWF0aC5taW4ociwgZywgYik7XHJcbiAgICBsID0gKG1heCArIG1pbikgLyAyO1xyXG5cclxuICAgIGlmIChtYXggPT09IG1pbikge1xyXG4gICAgICBoID0gcyA9IDA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkID0gbWF4IC0gbWluO1xyXG4gICAgICBzID0gbCA+IDAuNSA/IGQgLyAoMiAtIG1heCAtIG1pbikgOiBkIC8gKG1heCArIG1pbik7XHJcbiAgICAgIGggPSBtYXggPT09IHIgPyAoZyAtIGIpIC8gZCArIChnIDwgYiA/IDYgOiAwKSA6IG1heCA9PT0gZyA/IChiIC0gcikgLyBkICsgMiA6IChyIC0gZykgLyBkICsgNDtcclxuICAgICAgaCAqPSA2MDtcclxuICAgIH1cclxuXHJcbiAgICBhWzBdID0gfn4oaCArIC41KTtcclxuICAgIGFbMV0gPSB+fihzICogMTAwICsgLjUpO1xyXG4gICAgYVsyXSA9IH5+KGwgKiAxMDAgKyAuNSk7XHJcbiAgfVxyXG5cclxuICBmb3JjZUFscGhhICYmIGEubGVuZ3RoIDwgNCAmJiAoYVszXSA9IDEpO1xyXG4gIHJldHVybiBhO1xyXG59LFxyXG4gICAgX2NvbG9yT3JkZXJEYXRhID0gZnVuY3Rpb24gX2NvbG9yT3JkZXJEYXRhKHYpIHtcclxuICAvLyBzdHJpcHMgb3V0IHRoZSBjb2xvcnMgZnJvbSB0aGUgc3RyaW5nLCBmaW5kcyBhbGwgdGhlIG51bWVyaWMgc2xvdHMgKHdpdGggdW5pdHMpIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIHRob3NlLiBUaGUgQXJyYXkgYWxzbyBoYXMgYSBcImNcIiBwcm9wZXJ0eSB3aGljaCBpcyBhbiBBcnJheSBvZiB0aGUgaW5kZXggdmFsdWVzIHdoZXJlIHRoZSBjb2xvcnMgYmVsb25nLiBUaGlzIGlzIHRvIGhlbHAgd29yayBhcm91bmQgaXNzdWVzIHdoZXJlIHRoZXJlJ3MgYSBtaXMtbWF0Y2hlZCBvcmRlciBvZiBjb2xvci9udW1lcmljIGRhdGEgbGlrZSBkcm9wLXNoYWRvdygjZjAwIDBweCAxcHggMnB4KSBhbmQgZHJvcC1zaGFkb3coMHggMXB4IDJweCAjZjAwKS4gVGhpcyBpcyBiYXNpY2FsbHkgYSBoZWxwZXIgZnVuY3Rpb24gdXNlZCBpbiBfZm9ybWF0Q29sb3JzKClcclxuICB2YXIgdmFsdWVzID0gW10sXHJcbiAgICAgIGMgPSBbXSxcclxuICAgICAgaSA9IC0xO1xyXG4gIHYuc3BsaXQoX2NvbG9yRXhwKS5mb3JFYWNoKGZ1bmN0aW9uICh2KSB7XHJcbiAgICB2YXIgYSA9IHYubWF0Y2goX251bVdpdGhVbml0RXhwKSB8fCBbXTtcclxuICAgIHZhbHVlcy5wdXNoLmFwcGx5KHZhbHVlcywgYSk7XHJcbiAgICBjLnB1c2goaSArPSBhLmxlbmd0aCArIDEpO1xyXG4gIH0pO1xyXG4gIHZhbHVlcy5jID0gYztcclxuICByZXR1cm4gdmFsdWVzO1xyXG59LFxyXG4gICAgX2Zvcm1hdENvbG9ycyA9IGZ1bmN0aW9uIF9mb3JtYXRDb2xvcnMocywgdG9IU0wsIG9yZGVyTWF0Y2hEYXRhKSB7XHJcbiAgdmFyIHJlc3VsdCA9IFwiXCIsXHJcbiAgICAgIGNvbG9ycyA9IChzICsgcmVzdWx0KS5tYXRjaChfY29sb3JFeHApLFxyXG4gICAgICB0eXBlID0gdG9IU0wgPyBcImhzbGEoXCIgOiBcInJnYmEoXCIsXHJcbiAgICAgIGkgPSAwLFxyXG4gICAgICBjLFxyXG4gICAgICBzaGVsbCxcclxuICAgICAgZCxcclxuICAgICAgbDtcclxuXHJcbiAgaWYgKCFjb2xvcnMpIHtcclxuICAgIHJldHVybiBzO1xyXG4gIH1cclxuXHJcbiAgY29sb3JzID0gY29sb3JzLm1hcChmdW5jdGlvbiAoY29sb3IpIHtcclxuICAgIHJldHVybiAoY29sb3IgPSBzcGxpdENvbG9yKGNvbG9yLCB0b0hTTCwgMSkpICYmIHR5cGUgKyAodG9IU0wgPyBjb2xvclswXSArIFwiLFwiICsgY29sb3JbMV0gKyBcIiUsXCIgKyBjb2xvclsyXSArIFwiJSxcIiArIGNvbG9yWzNdIDogY29sb3Iuam9pbihcIixcIikpICsgXCIpXCI7XHJcbiAgfSk7XHJcblxyXG4gIGlmIChvcmRlck1hdGNoRGF0YSkge1xyXG4gICAgZCA9IF9jb2xvck9yZGVyRGF0YShzKTtcclxuICAgIGMgPSBvcmRlck1hdGNoRGF0YS5jO1xyXG5cclxuICAgIGlmIChjLmpvaW4ocmVzdWx0KSAhPT0gZC5jLmpvaW4ocmVzdWx0KSkge1xyXG4gICAgICBzaGVsbCA9IHMucmVwbGFjZShfY29sb3JFeHAsIFwiMVwiKS5zcGxpdChfbnVtV2l0aFVuaXRFeHApO1xyXG4gICAgICBsID0gc2hlbGwubGVuZ3RoIC0gMTtcclxuXHJcbiAgICAgIGZvciAoOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgcmVzdWx0ICs9IHNoZWxsW2ldICsgKH5jLmluZGV4T2YoaSkgPyBjb2xvcnMuc2hpZnQoKSB8fCB0eXBlICsgXCIwLDAsMCwwKVwiIDogKGQubGVuZ3RoID8gZCA6IGNvbG9ycy5sZW5ndGggPyBjb2xvcnMgOiBvcmRlck1hdGNoRGF0YSkuc2hpZnQoKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlmICghc2hlbGwpIHtcclxuICAgIHNoZWxsID0gcy5zcGxpdChfY29sb3JFeHApO1xyXG4gICAgbCA9IHNoZWxsLmxlbmd0aCAtIDE7XHJcblxyXG4gICAgZm9yICg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgcmVzdWx0ICs9IHNoZWxsW2ldICsgY29sb3JzW2ldO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJlc3VsdCArIHNoZWxsW2xdO1xyXG59LFxyXG4gICAgX2NvbG9yRXhwID0gZnVuY3Rpb24gKCkge1xyXG4gIHZhciBzID0gXCIoPzpcXFxcYig/Oig/OnJnYnxyZ2JhfGhzbHxoc2xhKVxcXFwoLis/XFxcXCkpfFxcXFxCIyg/OlswLTlhLWZdezMsNH0pezEsMn1cXFxcYlwiLFxyXG4gICAgICAvL3dlJ2xsIGR5bmFtaWNhbGx5IGJ1aWxkIHRoaXMgUmVndWxhciBFeHByZXNzaW9uIHRvIGNvbnNlcnZlIGZpbGUgc2l6ZS4gQWZ0ZXIgYnVpbGRpbmcgaXQsIGl0IHdpbGwgYmUgYWJsZSB0byBmaW5kIHJnYigpLCByZ2JhKCksICMgKGhleGFkZWNpbWFsKSwgYW5kIG5hbWVkIGNvbG9yIHZhbHVlcyBsaWtlIHJlZCwgYmx1ZSwgcHVycGxlLCBldGMuLFxyXG4gIHA7XHJcblxyXG4gIGZvciAocCBpbiBfY29sb3JMb29rdXApIHtcclxuICAgIHMgKz0gXCJ8XCIgKyBwICsgXCJcXFxcYlwiO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG5ldyBSZWdFeHAocyArIFwiKVwiLCBcImdpXCIpO1xyXG59KCksXHJcbiAgICBfaHNsRXhwID0gL2hzbFthXT9cXCgvLFxyXG4gICAgX2NvbG9yU3RyaW5nRmlsdGVyID0gZnVuY3Rpb24gX2NvbG9yU3RyaW5nRmlsdGVyKGEpIHtcclxuICB2YXIgY29tYmluZWQgPSBhLmpvaW4oXCIgXCIpLFxyXG4gICAgICB0b0hTTDtcclxuICBfY29sb3JFeHAubGFzdEluZGV4ID0gMDtcclxuXHJcbiAgaWYgKF9jb2xvckV4cC50ZXN0KGNvbWJpbmVkKSkge1xyXG4gICAgdG9IU0wgPSBfaHNsRXhwLnRlc3QoY29tYmluZWQpO1xyXG4gICAgYVsxXSA9IF9mb3JtYXRDb2xvcnMoYVsxXSwgdG9IU0wpO1xyXG4gICAgYVswXSA9IF9mb3JtYXRDb2xvcnMoYVswXSwgdG9IU0wsIF9jb2xvck9yZGVyRGF0YShhWzFdKSk7IC8vIG1ha2Ugc3VyZSB0aGUgb3JkZXIgb2YgbnVtYmVycy9jb2xvcnMgbWF0Y2ggd2l0aCB0aGUgRU5EIHZhbHVlLlxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufSxcclxuXHJcbi8qXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqIFRJQ0tFUlxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKi9cclxuX3RpY2tlckFjdGl2ZSxcclxuICAgIF90aWNrZXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgdmFyIF9nZXRUaW1lID0gRGF0ZS5ub3csXHJcbiAgICAgIF9sYWdUaHJlc2hvbGQgPSA1MDAsXHJcbiAgICAgIF9hZGp1c3RlZExhZyA9IDMzLFxyXG4gICAgICBfc3RhcnRUaW1lID0gX2dldFRpbWUoKSxcclxuICAgICAgX2xhc3RVcGRhdGUgPSBfc3RhcnRUaW1lLFxyXG4gICAgICBfZ2FwID0gMTAwMCAvIDI0MCxcclxuICAgICAgX25leHRUaW1lID0gX2dhcCxcclxuICAgICAgX2xpc3RlbmVycyA9IFtdLFxyXG4gICAgICBfaWQsXHJcbiAgICAgIF9yZXEsXHJcbiAgICAgIF9yYWYsXHJcbiAgICAgIF9zZWxmLFxyXG4gICAgICBfZGVsdGEsXHJcbiAgICAgIF9pLFxyXG4gICAgICBfdGljayA9IGZ1bmN0aW9uIF90aWNrKHYpIHtcclxuICAgIHZhciBlbGFwc2VkID0gX2dldFRpbWUoKSAtIF9sYXN0VXBkYXRlLFxyXG4gICAgICAgIG1hbnVhbCA9IHYgPT09IHRydWUsXHJcbiAgICAgICAgb3ZlcmxhcCxcclxuICAgICAgICBkaXNwYXRjaCxcclxuICAgICAgICB0aW1lLFxyXG4gICAgICAgIGZyYW1lO1xyXG5cclxuICAgIChlbGFwc2VkID4gX2xhZ1RocmVzaG9sZCB8fCBlbGFwc2VkIDwgMCkgJiYgKF9zdGFydFRpbWUgKz0gZWxhcHNlZCAtIF9hZGp1c3RlZExhZyk7XHJcbiAgICBfbGFzdFVwZGF0ZSArPSBlbGFwc2VkO1xyXG4gICAgdGltZSA9IF9sYXN0VXBkYXRlIC0gX3N0YXJ0VGltZTtcclxuICAgIG92ZXJsYXAgPSB0aW1lIC0gX25leHRUaW1lO1xyXG5cclxuICAgIGlmIChvdmVybGFwID4gMCB8fCBtYW51YWwpIHtcclxuICAgICAgZnJhbWUgPSArK19zZWxmLmZyYW1lO1xyXG4gICAgICBfZGVsdGEgPSB0aW1lIC0gX3NlbGYudGltZSAqIDEwMDA7XHJcbiAgICAgIF9zZWxmLnRpbWUgPSB0aW1lID0gdGltZSAvIDEwMDA7XHJcbiAgICAgIF9uZXh0VGltZSArPSBvdmVybGFwICsgKG92ZXJsYXAgPj0gX2dhcCA/IDQgOiBfZ2FwIC0gb3ZlcmxhcCk7XHJcbiAgICAgIGRpc3BhdGNoID0gMTtcclxuICAgIH1cclxuXHJcbiAgICBtYW51YWwgfHwgKF9pZCA9IF9yZXEoX3RpY2spKTsgLy9tYWtlIHN1cmUgdGhlIHJlcXVlc3QgaXMgbWFkZSBiZWZvcmUgd2UgZGlzcGF0Y2ggdGhlIFwidGlja1wiIGV2ZW50IHNvIHRoYXQgdGltaW5nIGlzIG1haW50YWluZWQuIE90aGVyd2lzZSwgaWYgcHJvY2Vzc2luZyB0aGUgXCJ0aWNrXCIgcmVxdWlyZXMgYSBidW5jaCBvZiB0aW1lIChsaWtlIDE1bXMpIGFuZCB3ZSdyZSB1c2luZyBhIHNldFRpbWVvdXQoKSB0aGF0J3MgYmFzZWQgb24gMTYuN21zLCBpdCdkIHRlY2huaWNhbGx5IHRha2UgMzEuN21zIGJldHdlZW4gZnJhbWVzIG90aGVyd2lzZS5cclxuXHJcbiAgICBpZiAoZGlzcGF0Y2gpIHtcclxuICAgICAgZm9yIChfaSA9IDA7IF9pIDwgX2xpc3RlbmVycy5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICAvLyB1c2UgX2kgYW5kIGNoZWNrIF9saXN0ZW5lcnMubGVuZ3RoIGluc3RlYWQgb2YgYSB2YXJpYWJsZSBiZWNhdXNlIGEgbGlzdGVuZXIgY291bGQgZ2V0IHJlbW92ZWQgZHVyaW5nIHRoZSBsb29wLCBhbmQgaWYgdGhhdCBoYXBwZW5zIHRvIGFuIGVsZW1lbnQgbGVzcyB0aGFuIHRoZSBjdXJyZW50IGluZGV4LCBpdCdkIHRocm93IHRoaW5ncyBvZmYgaW4gdGhlIGxvb3AuXHJcbiAgICAgICAgX2xpc3RlbmVyc1tfaV0odGltZSwgX2RlbHRhLCBmcmFtZSwgdik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuICBfc2VsZiA9IHtcclxuICAgIHRpbWU6IDAsXHJcbiAgICBmcmFtZTogMCxcclxuICAgIHRpY2s6IGZ1bmN0aW9uIHRpY2soKSB7XHJcbiAgICAgIF90aWNrKHRydWUpO1xyXG4gICAgfSxcclxuICAgIGRlbHRhUmF0aW86IGZ1bmN0aW9uIGRlbHRhUmF0aW8oZnBzKSB7XHJcbiAgICAgIHJldHVybiBfZGVsdGEgLyAoMTAwMCAvIChmcHMgfHwgNjApKTtcclxuICAgIH0sXHJcbiAgICB3YWtlOiBmdW5jdGlvbiB3YWtlKCkge1xyXG4gICAgICBpZiAoX2NvcmVSZWFkeSkge1xyXG4gICAgICAgIGlmICghX2NvcmVJbml0dGVkICYmIF93aW5kb3dFeGlzdHMoKSkge1xyXG4gICAgICAgICAgX3dpbiA9IF9jb3JlSW5pdHRlZCA9IHdpbmRvdztcclxuICAgICAgICAgIF9kb2MgPSBfd2luLmRvY3VtZW50IHx8IHt9O1xyXG4gICAgICAgICAgX2dsb2JhbHMuZ3NhcCA9IGdzYXA7XHJcbiAgICAgICAgICAoX3dpbi5nc2FwVmVyc2lvbnMgfHwgKF93aW4uZ3NhcFZlcnNpb25zID0gW10pKS5wdXNoKGdzYXAudmVyc2lvbik7XHJcblxyXG4gICAgICAgICAgX2luc3RhbGwoX2luc3RhbGxTY29wZSB8fCBfd2luLkdyZWVuU29ja0dsb2JhbHMgfHwgIV93aW4uZ3NhcCAmJiBfd2luIHx8IHt9KTtcclxuXHJcbiAgICAgICAgICBfcmVnaXN0ZXJQbHVnaW5RdWV1ZS5mb3JFYWNoKF9jcmVhdGVQbHVnaW4pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgX3JhZiA9IHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgIT09IFwidW5kZWZpbmVkXCIgJiYgcmVxdWVzdEFuaW1hdGlvbkZyYW1lO1xyXG4gICAgICAgIF9pZCAmJiBfc2VsZi5zbGVlcCgpO1xyXG5cclxuICAgICAgICBfcmVxID0gX3JhZiB8fCBmdW5jdGlvbiAoZikge1xyXG4gICAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZiwgX25leHRUaW1lIC0gX3NlbGYudGltZSAqIDEwMDAgKyAxIHwgMCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgX3RpY2tlckFjdGl2ZSA9IDE7XHJcblxyXG4gICAgICAgIF90aWNrKDIpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2xlZXA6IGZ1bmN0aW9uIHNsZWVwKCkge1xyXG4gICAgICAoX3JhZiA/IGNhbmNlbEFuaW1hdGlvbkZyYW1lIDogY2xlYXJUaW1lb3V0KShfaWQpO1xyXG4gICAgICBfdGlja2VyQWN0aXZlID0gMDtcclxuICAgICAgX3JlcSA9IF9lbXB0eUZ1bmM7XHJcbiAgICB9LFxyXG4gICAgbGFnU21vb3RoaW5nOiBmdW5jdGlvbiBsYWdTbW9vdGhpbmcodGhyZXNob2xkLCBhZGp1c3RlZExhZykge1xyXG4gICAgICBfbGFnVGhyZXNob2xkID0gdGhyZXNob2xkIHx8IEluZmluaXR5OyAvLyB6ZXJvIHNob3VsZCBiZSBpbnRlcnByZXRlZCBhcyBiYXNpY2FsbHkgdW5saW1pdGVkXHJcblxyXG4gICAgICBfYWRqdXN0ZWRMYWcgPSBNYXRoLm1pbihhZGp1c3RlZExhZyB8fCAzMywgX2xhZ1RocmVzaG9sZCk7XHJcbiAgICB9LFxyXG4gICAgZnBzOiBmdW5jdGlvbiBmcHMoX2Zwcykge1xyXG4gICAgICBfZ2FwID0gMTAwMCAvIChfZnBzIHx8IDI0MCk7XHJcbiAgICAgIF9uZXh0VGltZSA9IF9zZWxmLnRpbWUgKiAxMDAwICsgX2dhcDtcclxuICAgIH0sXHJcbiAgICBhZGQ6IGZ1bmN0aW9uIGFkZChjYWxsYmFjaywgb25jZSwgcHJpb3JpdGl6ZSkge1xyXG4gICAgICB2YXIgZnVuYyA9IG9uY2UgPyBmdW5jdGlvbiAodCwgZCwgZiwgdikge1xyXG4gICAgICAgIGNhbGxiYWNrKHQsIGQsIGYsIHYpO1xyXG5cclxuICAgICAgICBfc2VsZi5yZW1vdmUoZnVuYyk7XHJcbiAgICAgIH0gOiBjYWxsYmFjaztcclxuXHJcbiAgICAgIF9zZWxmLnJlbW92ZShjYWxsYmFjayk7XHJcblxyXG4gICAgICBfbGlzdGVuZXJzW3ByaW9yaXRpemUgPyBcInVuc2hpZnRcIiA6IFwicHVzaFwiXShmdW5jKTtcclxuXHJcbiAgICAgIF93YWtlKCk7XHJcblxyXG4gICAgICByZXR1cm4gZnVuYztcclxuICAgIH0sXHJcbiAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZShjYWxsYmFjaywgaSkge1xyXG4gICAgICB+KGkgPSBfbGlzdGVuZXJzLmluZGV4T2YoY2FsbGJhY2spKSAmJiBfbGlzdGVuZXJzLnNwbGljZShpLCAxKSAmJiBfaSA+PSBpICYmIF9pLS07XHJcbiAgICB9LFxyXG4gICAgX2xpc3RlbmVyczogX2xpc3RlbmVyc1xyXG4gIH07XHJcbiAgcmV0dXJuIF9zZWxmO1xyXG59KCksXHJcbiAgICBfd2FrZSA9IGZ1bmN0aW9uIF93YWtlKCkge1xyXG4gIHJldHVybiAhX3RpY2tlckFjdGl2ZSAmJiBfdGlja2VyLndha2UoKTtcclxufSxcclxuICAgIC8vYWxzbyBlbnN1cmVzIHRoZSBjb3JlIGNsYXNzZXMgYXJlIGluaXRpYWxpemVkLlxyXG5cclxuLypcclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiogRUFTSU5HXHJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4qL1xyXG5fZWFzZU1hcCA9IHt9LFxyXG4gICAgX2N1c3RvbUVhc2VFeHAgPSAvXltcXGQuXFwtTV1bXFxkLlxcLSxcXHNdLyxcclxuICAgIF9xdW90ZXNFeHAgPSAvW1wiJ10vZyxcclxuICAgIF9wYXJzZU9iamVjdEluU3RyaW5nID0gZnVuY3Rpb24gX3BhcnNlT2JqZWN0SW5TdHJpbmcodmFsdWUpIHtcclxuICAvL3Rha2VzIGEgc3RyaW5nIGxpa2UgXCJ7d2lnZ2xlczoxMCwgdHlwZTphbnRpY2lwYXRlfSlcIiBhbmQgdHVybnMgaXQgaW50byBhIHJlYWwgb2JqZWN0LiBOb3RpY2UgaXQgZW5kcyBpbiBcIilcIiBhbmQgaW5jbHVkZXMgdGhlIHt9IHdyYXBwZXJzLiBUaGlzIGlzIGJlY2F1c2Ugd2Ugb25seSB1c2UgdGhpcyBmdW5jdGlvbiBmb3IgcGFyc2luZyBlYXNlIGNvbmZpZ3MgYW5kIHByaW9yaXRpemVkIG9wdGltaXphdGlvbiByYXRoZXIgdGhhbiByZXVzYWJpbGl0eS5cclxuICB2YXIgb2JqID0ge30sXHJcbiAgICAgIHNwbGl0ID0gdmFsdWUuc3Vic3RyKDEsIHZhbHVlLmxlbmd0aCAtIDMpLnNwbGl0KFwiOlwiKSxcclxuICAgICAga2V5ID0gc3BsaXRbMF0sXHJcbiAgICAgIGkgPSAxLFxyXG4gICAgICBsID0gc3BsaXQubGVuZ3RoLFxyXG4gICAgICBpbmRleCxcclxuICAgICAgdmFsLFxyXG4gICAgICBwYXJzZWRWYWw7XHJcblxyXG4gIGZvciAoOyBpIDwgbDsgaSsrKSB7XHJcbiAgICB2YWwgPSBzcGxpdFtpXTtcclxuICAgIGluZGV4ID0gaSAhPT0gbCAtIDEgPyB2YWwubGFzdEluZGV4T2YoXCIsXCIpIDogdmFsLmxlbmd0aDtcclxuICAgIHBhcnNlZFZhbCA9IHZhbC5zdWJzdHIoMCwgaW5kZXgpO1xyXG4gICAgb2JqW2tleV0gPSBpc05hTihwYXJzZWRWYWwpID8gcGFyc2VkVmFsLnJlcGxhY2UoX3F1b3Rlc0V4cCwgXCJcIikudHJpbSgpIDogK3BhcnNlZFZhbDtcclxuICAgIGtleSA9IHZhbC5zdWJzdHIoaW5kZXggKyAxKS50cmltKCk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gb2JqO1xyXG59LFxyXG4gICAgX3ZhbHVlSW5QYXJlbnRoZXNlcyA9IGZ1bmN0aW9uIF92YWx1ZUluUGFyZW50aGVzZXModmFsdWUpIHtcclxuICB2YXIgb3BlbiA9IHZhbHVlLmluZGV4T2YoXCIoXCIpICsgMSxcclxuICAgICAgY2xvc2UgPSB2YWx1ZS5pbmRleE9mKFwiKVwiKSxcclxuICAgICAgbmVzdGVkID0gdmFsdWUuaW5kZXhPZihcIihcIiwgb3Blbik7XHJcbiAgcmV0dXJuIHZhbHVlLnN1YnN0cmluZyhvcGVuLCB+bmVzdGVkICYmIG5lc3RlZCA8IGNsb3NlID8gdmFsdWUuaW5kZXhPZihcIilcIiwgY2xvc2UgKyAxKSA6IGNsb3NlKTtcclxufSxcclxuICAgIF9jb25maWdFYXNlRnJvbVN0cmluZyA9IGZ1bmN0aW9uIF9jb25maWdFYXNlRnJvbVN0cmluZyhuYW1lKSB7XHJcbiAgLy9uYW1lIGNhbiBiZSBhIHN0cmluZyBsaWtlIFwiZWxhc3RpYy5vdXQoMSwwLjUpXCIsIGFuZCBwYXNzIGluIF9lYXNlTWFwIGFzIG9iaiBhbmQgaXQnbGwgcGFyc2UgaXQgb3V0IGFuZCBjYWxsIHRoZSBhY3R1YWwgZnVuY3Rpb24gbGlrZSBfZWFzZU1hcC5FbGFzdGljLmVhc2VPdXQuY29uZmlnKDEsMC41KS4gSXQgd2lsbCBhbHNvIHBhcnNlIGN1c3RvbSBlYXNlIHN0cmluZ3MgYXMgbG9uZyBhcyBDdXN0b21FYXNlIGlzIGxvYWRlZCBhbmQgcmVnaXN0ZXJlZCAoaW50ZXJuYWxseSBhcyBfZWFzZU1hcC5fQ0UpLlxyXG4gIHZhciBzcGxpdCA9IChuYW1lICsgXCJcIikuc3BsaXQoXCIoXCIpLFxyXG4gICAgICBlYXNlID0gX2Vhc2VNYXBbc3BsaXRbMF1dO1xyXG4gIHJldHVybiBlYXNlICYmIHNwbGl0Lmxlbmd0aCA+IDEgJiYgZWFzZS5jb25maWcgPyBlYXNlLmNvbmZpZy5hcHBseShudWxsLCB+bmFtZS5pbmRleE9mKFwie1wiKSA/IFtfcGFyc2VPYmplY3RJblN0cmluZyhzcGxpdFsxXSldIDogX3ZhbHVlSW5QYXJlbnRoZXNlcyhuYW1lKS5zcGxpdChcIixcIikubWFwKF9udW1lcmljSWZQb3NzaWJsZSkpIDogX2Vhc2VNYXAuX0NFICYmIF9jdXN0b21FYXNlRXhwLnRlc3QobmFtZSkgPyBfZWFzZU1hcC5fQ0UoXCJcIiwgbmFtZSkgOiBlYXNlO1xyXG59LFxyXG4gICAgX2ludmVydEVhc2UgPSBmdW5jdGlvbiBfaW52ZXJ0RWFzZShlYXNlKSB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uIChwKSB7XHJcbiAgICByZXR1cm4gMSAtIGVhc2UoMSAtIHApO1xyXG4gIH07XHJcbn0sXHJcbiAgICAvLyBhbGxvdyB5b3lvRWFzZSB0byBiZSBzZXQgaW4gY2hpbGRyZW4gYW5kIGhhdmUgdGhvc2UgYWZmZWN0ZWQgd2hlbiB0aGUgcGFyZW50L2FuY2VzdG9yIHRpbWVsaW5lIHlveW9zLlxyXG5fcHJvcGFnYXRlWW95b0Vhc2UgPSBmdW5jdGlvbiBfcHJvcGFnYXRlWW95b0Vhc2UodGltZWxpbmUsIGlzWW95bykge1xyXG4gIHZhciBjaGlsZCA9IHRpbWVsaW5lLl9maXJzdCxcclxuICAgICAgZWFzZTtcclxuXHJcbiAgd2hpbGUgKGNoaWxkKSB7XHJcbiAgICBpZiAoY2hpbGQgaW5zdGFuY2VvZiBUaW1lbGluZSkge1xyXG4gICAgICBfcHJvcGFnYXRlWW95b0Vhc2UoY2hpbGQsIGlzWW95byk7XHJcbiAgICB9IGVsc2UgaWYgKGNoaWxkLnZhcnMueW95b0Vhc2UgJiYgKCFjaGlsZC5feW95byB8fCAhY2hpbGQuX3JlcGVhdCkgJiYgY2hpbGQuX3lveW8gIT09IGlzWW95bykge1xyXG4gICAgICBpZiAoY2hpbGQudGltZWxpbmUpIHtcclxuICAgICAgICBfcHJvcGFnYXRlWW95b0Vhc2UoY2hpbGQudGltZWxpbmUsIGlzWW95byk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZWFzZSA9IGNoaWxkLl9lYXNlO1xyXG4gICAgICAgIGNoaWxkLl9lYXNlID0gY2hpbGQuX3lFYXNlO1xyXG4gICAgICAgIGNoaWxkLl95RWFzZSA9IGVhc2U7XHJcbiAgICAgICAgY2hpbGQuX3lveW8gPSBpc1lveW87XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjaGlsZCA9IGNoaWxkLl9uZXh0O1xyXG4gIH1cclxufSxcclxuICAgIF9wYXJzZUVhc2UgPSBmdW5jdGlvbiBfcGFyc2VFYXNlKGVhc2UsIGRlZmF1bHRFYXNlKSB7XHJcbiAgcmV0dXJuICFlYXNlID8gZGVmYXVsdEVhc2UgOiAoX2lzRnVuY3Rpb24oZWFzZSkgPyBlYXNlIDogX2Vhc2VNYXBbZWFzZV0gfHwgX2NvbmZpZ0Vhc2VGcm9tU3RyaW5nKGVhc2UpKSB8fCBkZWZhdWx0RWFzZTtcclxufSxcclxuICAgIF9pbnNlcnRFYXNlID0gZnVuY3Rpb24gX2luc2VydEVhc2UobmFtZXMsIGVhc2VJbiwgZWFzZU91dCwgZWFzZUluT3V0KSB7XHJcbiAgaWYgKGVhc2VPdXQgPT09IHZvaWQgMCkge1xyXG4gICAgZWFzZU91dCA9IGZ1bmN0aW9uIGVhc2VPdXQocCkge1xyXG4gICAgICByZXR1cm4gMSAtIGVhc2VJbigxIC0gcCk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgaWYgKGVhc2VJbk91dCA9PT0gdm9pZCAwKSB7XHJcbiAgICBlYXNlSW5PdXQgPSBmdW5jdGlvbiBlYXNlSW5PdXQocCkge1xyXG4gICAgICByZXR1cm4gcCA8IC41ID8gZWFzZUluKHAgKiAyKSAvIDIgOiAxIC0gZWFzZUluKCgxIC0gcCkgKiAyKSAvIDI7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgdmFyIGVhc2UgPSB7XHJcbiAgICBlYXNlSW46IGVhc2VJbixcclxuICAgIGVhc2VPdXQ6IGVhc2VPdXQsXHJcbiAgICBlYXNlSW5PdXQ6IGVhc2VJbk91dFxyXG4gIH0sXHJcbiAgICAgIGxvd2VyY2FzZU5hbWU7XHJcblxyXG4gIF9mb3JFYWNoTmFtZShuYW1lcywgZnVuY3Rpb24gKG5hbWUpIHtcclxuICAgIF9lYXNlTWFwW25hbWVdID0gX2dsb2JhbHNbbmFtZV0gPSBlYXNlO1xyXG4gICAgX2Vhc2VNYXBbbG93ZXJjYXNlTmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKV0gPSBlYXNlT3V0O1xyXG5cclxuICAgIGZvciAodmFyIHAgaW4gZWFzZSkge1xyXG4gICAgICBfZWFzZU1hcFtsb3dlcmNhc2VOYW1lICsgKHAgPT09IFwiZWFzZUluXCIgPyBcIi5pblwiIDogcCA9PT0gXCJlYXNlT3V0XCIgPyBcIi5vdXRcIiA6IFwiLmluT3V0XCIpXSA9IF9lYXNlTWFwW25hbWUgKyBcIi5cIiArIHBdID0gZWFzZVtwXTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGVhc2U7XHJcbn0sXHJcbiAgICBfZWFzZUluT3V0RnJvbU91dCA9IGZ1bmN0aW9uIF9lYXNlSW5PdXRGcm9tT3V0KGVhc2VPdXQpIHtcclxuICByZXR1cm4gZnVuY3Rpb24gKHApIHtcclxuICAgIHJldHVybiBwIDwgLjUgPyAoMSAtIGVhc2VPdXQoMSAtIHAgKiAyKSkgLyAyIDogLjUgKyBlYXNlT3V0KChwIC0gLjUpICogMikgLyAyO1xyXG4gIH07XHJcbn0sXHJcbiAgICBfY29uZmlnRWxhc3RpYyA9IGZ1bmN0aW9uIF9jb25maWdFbGFzdGljKHR5cGUsIGFtcGxpdHVkZSwgcGVyaW9kKSB7XHJcbiAgdmFyIHAxID0gYW1wbGl0dWRlID49IDEgPyBhbXBsaXR1ZGUgOiAxLFxyXG4gICAgICAvL25vdGU6IGlmIGFtcGxpdHVkZSBpcyA8IDEsIHdlIHNpbXBseSBhZGp1c3QgdGhlIHBlcmlvZCBmb3IgYSBtb3JlIG5hdHVyYWwgZmVlbC4gT3RoZXJ3aXNlIHRoZSBtYXRoIGRvZXNuJ3Qgd29yayByaWdodCBhbmQgdGhlIGN1cnZlIHN0YXJ0cyBhdCAxLlxyXG4gIHAyID0gKHBlcmlvZCB8fCAodHlwZSA/IC4zIDogLjQ1KSkgLyAoYW1wbGl0dWRlIDwgMSA/IGFtcGxpdHVkZSA6IDEpLFxyXG4gICAgICBwMyA9IHAyIC8gXzJQSSAqIChNYXRoLmFzaW4oMSAvIHAxKSB8fCAwKSxcclxuICAgICAgZWFzZU91dCA9IGZ1bmN0aW9uIGVhc2VPdXQocCkge1xyXG4gICAgcmV0dXJuIHAgPT09IDEgPyAxIDogcDEgKiBNYXRoLnBvdygyLCAtMTAgKiBwKSAqIF9zaW4oKHAgLSBwMykgKiBwMikgKyAxO1xyXG4gIH0sXHJcbiAgICAgIGVhc2UgPSB0eXBlID09PSBcIm91dFwiID8gZWFzZU91dCA6IHR5cGUgPT09IFwiaW5cIiA/IGZ1bmN0aW9uIChwKSB7XHJcbiAgICByZXR1cm4gMSAtIGVhc2VPdXQoMSAtIHApO1xyXG4gIH0gOiBfZWFzZUluT3V0RnJvbU91dChlYXNlT3V0KTtcclxuXHJcbiAgcDIgPSBfMlBJIC8gcDI7IC8vcHJlY2FsY3VsYXRlIHRvIG9wdGltaXplXHJcblxyXG4gIGVhc2UuY29uZmlnID0gZnVuY3Rpb24gKGFtcGxpdHVkZSwgcGVyaW9kKSB7XHJcbiAgICByZXR1cm4gX2NvbmZpZ0VsYXN0aWModHlwZSwgYW1wbGl0dWRlLCBwZXJpb2QpO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBlYXNlO1xyXG59LFxyXG4gICAgX2NvbmZpZ0JhY2sgPSBmdW5jdGlvbiBfY29uZmlnQmFjayh0eXBlLCBvdmVyc2hvb3QpIHtcclxuICBpZiAob3ZlcnNob290ID09PSB2b2lkIDApIHtcclxuICAgIG92ZXJzaG9vdCA9IDEuNzAxNTg7XHJcbiAgfVxyXG5cclxuICB2YXIgZWFzZU91dCA9IGZ1bmN0aW9uIGVhc2VPdXQocCkge1xyXG4gICAgcmV0dXJuIHAgPyAtLXAgKiBwICogKChvdmVyc2hvb3QgKyAxKSAqIHAgKyBvdmVyc2hvb3QpICsgMSA6IDA7XHJcbiAgfSxcclxuICAgICAgZWFzZSA9IHR5cGUgPT09IFwib3V0XCIgPyBlYXNlT3V0IDogdHlwZSA9PT0gXCJpblwiID8gZnVuY3Rpb24gKHApIHtcclxuICAgIHJldHVybiAxIC0gZWFzZU91dCgxIC0gcCk7XHJcbiAgfSA6IF9lYXNlSW5PdXRGcm9tT3V0KGVhc2VPdXQpO1xyXG5cclxuICBlYXNlLmNvbmZpZyA9IGZ1bmN0aW9uIChvdmVyc2hvb3QpIHtcclxuICAgIHJldHVybiBfY29uZmlnQmFjayh0eXBlLCBvdmVyc2hvb3QpO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBlYXNlO1xyXG59OyAvLyBhIGNoZWFwZXIgKGtiIGFuZCBjcHUpIGJ1dCBtb3JlIG1pbGQgd2F5IHRvIGdldCBhIHBhcmFtZXRlcml6ZWQgd2VpZ2h0ZWQgZWFzZSBieSBmZWVkaW5nIGluIGEgdmFsdWUgYmV0d2VlbiAtMSAoZWFzZUluKSBhbmQgMSAoZWFzZU91dCkgd2hlcmUgMCBpcyBsaW5lYXIuXHJcbi8vIF93ZWlnaHRlZEVhc2UgPSByYXRpbyA9PiB7XHJcbi8vIFx0bGV0IHkgPSAwLjUgKyByYXRpbyAvIDI7XHJcbi8vIFx0cmV0dXJuIHAgPT4gKDIgKiAoMSAtIHApICogcCAqIHkgKyBwICogcCk7XHJcbi8vIH0sXHJcbi8vIGEgc3Ryb25nZXIgKGJ1dCBtb3JlIGV4cGVuc2l2ZSBrYi9jcHUpIHBhcmFtZXRlcml6ZWQgd2VpZ2h0ZWQgZWFzZSB0aGF0IGxldHMgeW91IGZlZWQgaW4gYSB2YWx1ZSBiZXR3ZWVuIC0xIChlYXNlSW4pIGFuZCAxIChlYXNlT3V0KSB3aGVyZSAwIGlzIGxpbmVhci5cclxuLy8gX3dlaWdodGVkRWFzZVN0cm9uZyA9IHJhdGlvID0+IHtcclxuLy8gXHRyYXRpbyA9IC41ICsgcmF0aW8gLyAyO1xyXG4vLyBcdGxldCBvID0gMSAvIDMgKiAocmF0aW8gPCAuNSA/IHJhdGlvIDogMSAtIHJhdGlvKSxcclxuLy8gXHRcdGIgPSByYXRpbyAtIG8sXHJcbi8vIFx0XHRjID0gcmF0aW8gKyBvO1xyXG4vLyBcdHJldHVybiBwID0+IHAgPT09IDEgPyBwIDogMyAqIGIgKiAoMSAtIHApICogKDEgLSBwKSAqIHAgKyAzICogYyAqICgxIC0gcCkgKiBwICogcCArIHAgKiBwICogcDtcclxuLy8gfTtcclxuXHJcblxyXG5fZm9yRWFjaE5hbWUoXCJMaW5lYXIsUXVhZCxDdWJpYyxRdWFydCxRdWludCxTdHJvbmdcIiwgZnVuY3Rpb24gKG5hbWUsIGkpIHtcclxuICB2YXIgcG93ZXIgPSBpIDwgNSA/IGkgKyAxIDogaTtcclxuXHJcbiAgX2luc2VydEVhc2UobmFtZSArIFwiLFBvd2VyXCIgKyAocG93ZXIgLSAxKSwgaSA/IGZ1bmN0aW9uIChwKSB7XHJcbiAgICByZXR1cm4gTWF0aC5wb3cocCwgcG93ZXIpO1xyXG4gIH0gOiBmdW5jdGlvbiAocCkge1xyXG4gICAgcmV0dXJuIHA7XHJcbiAgfSwgZnVuY3Rpb24gKHApIHtcclxuICAgIHJldHVybiAxIC0gTWF0aC5wb3coMSAtIHAsIHBvd2VyKTtcclxuICB9LCBmdW5jdGlvbiAocCkge1xyXG4gICAgcmV0dXJuIHAgPCAuNSA/IE1hdGgucG93KHAgKiAyLCBwb3dlcikgLyAyIDogMSAtIE1hdGgucG93KCgxIC0gcCkgKiAyLCBwb3dlcikgLyAyO1xyXG4gIH0pO1xyXG59KTtcclxuXHJcbl9lYXNlTWFwLkxpbmVhci5lYXNlTm9uZSA9IF9lYXNlTWFwLm5vbmUgPSBfZWFzZU1hcC5MaW5lYXIuZWFzZUluO1xyXG5cclxuX2luc2VydEVhc2UoXCJFbGFzdGljXCIsIF9jb25maWdFbGFzdGljKFwiaW5cIiksIF9jb25maWdFbGFzdGljKFwib3V0XCIpLCBfY29uZmlnRWxhc3RpYygpKTtcclxuXHJcbihmdW5jdGlvbiAobiwgYykge1xyXG4gIHZhciBuMSA9IDEgLyBjLFxyXG4gICAgICBuMiA9IDIgKiBuMSxcclxuICAgICAgbjMgPSAyLjUgKiBuMSxcclxuICAgICAgZWFzZU91dCA9IGZ1bmN0aW9uIGVhc2VPdXQocCkge1xyXG4gICAgcmV0dXJuIHAgPCBuMSA/IG4gKiBwICogcCA6IHAgPCBuMiA/IG4gKiBNYXRoLnBvdyhwIC0gMS41IC8gYywgMikgKyAuNzUgOiBwIDwgbjMgPyBuICogKHAgLT0gMi4yNSAvIGMpICogcCArIC45Mzc1IDogbiAqIE1hdGgucG93KHAgLSAyLjYyNSAvIGMsIDIpICsgLjk4NDM3NTtcclxuICB9O1xyXG5cclxuICBfaW5zZXJ0RWFzZShcIkJvdW5jZVwiLCBmdW5jdGlvbiAocCkge1xyXG4gICAgcmV0dXJuIDEgLSBlYXNlT3V0KDEgLSBwKTtcclxuICB9LCBlYXNlT3V0KTtcclxufSkoNy41NjI1LCAyLjc1KTtcclxuXHJcbl9pbnNlcnRFYXNlKFwiRXhwb1wiLCBmdW5jdGlvbiAocCkge1xyXG4gIHJldHVybiBNYXRoLnBvdygyLCAxMCAqIChwIC0gMSkpICogcCArIHAgKiBwICogcCAqIHAgKiBwICogcCAqICgxIC0gcCk7XHJcbn0pOyAvLyBwcmV2aW91c2x5IDIgKiogKDEwICogKHAgLSAxKSkgYnV0IHRoYXQgZG9lc24ndCBlbmQgdXAgd2l0aCB0aGUgdmFsdWUgcXVpdGUgYXQgdGhlIHJpZ2h0IHNwb3Qgc28gd2UgZG8gYSBibGVuZGVkIGVhc2UgdG8gZW5zdXJlIGl0IGxhbmRzIHdoZXJlIGl0IHNob3VsZCBwZXJmZWN0bHkuXHJcblxyXG5cclxuX2luc2VydEVhc2UoXCJDaXJjXCIsIGZ1bmN0aW9uIChwKSB7XHJcbiAgcmV0dXJuIC0oX3NxcnQoMSAtIHAgKiBwKSAtIDEpO1xyXG59KTtcclxuXHJcbl9pbnNlcnRFYXNlKFwiU2luZVwiLCBmdW5jdGlvbiAocCkge1xyXG4gIHJldHVybiBwID09PSAxID8gMSA6IC1fY29zKHAgKiBfSEFMRl9QSSkgKyAxO1xyXG59KTtcclxuXHJcbl9pbnNlcnRFYXNlKFwiQmFja1wiLCBfY29uZmlnQmFjayhcImluXCIpLCBfY29uZmlnQmFjayhcIm91dFwiKSwgX2NvbmZpZ0JhY2soKSk7XHJcblxyXG5fZWFzZU1hcC5TdGVwcGVkRWFzZSA9IF9lYXNlTWFwLnN0ZXBzID0gX2dsb2JhbHMuU3RlcHBlZEVhc2UgPSB7XHJcbiAgY29uZmlnOiBmdW5jdGlvbiBjb25maWcoc3RlcHMsIGltbWVkaWF0ZVN0YXJ0KSB7XHJcbiAgICBpZiAoc3RlcHMgPT09IHZvaWQgMCkge1xyXG4gICAgICBzdGVwcyA9IDE7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHAxID0gMSAvIHN0ZXBzLFxyXG4gICAgICAgIHAyID0gc3RlcHMgKyAoaW1tZWRpYXRlU3RhcnQgPyAwIDogMSksXHJcbiAgICAgICAgcDMgPSBpbW1lZGlhdGVTdGFydCA/IDEgOiAwLFxyXG4gICAgICAgIG1heCA9IDEgLSBfdGlueU51bTtcclxuICAgIHJldHVybiBmdW5jdGlvbiAocCkge1xyXG4gICAgICByZXR1cm4gKChwMiAqIF9jbGFtcCgwLCBtYXgsIHApIHwgMCkgKyBwMykgKiBwMTtcclxuICAgIH07XHJcbiAgfVxyXG59O1xyXG5fZGVmYXVsdHMuZWFzZSA9IF9lYXNlTWFwW1wicXVhZC5vdXRcIl07XHJcblxyXG5fZm9yRWFjaE5hbWUoXCJvbkNvbXBsZXRlLG9uVXBkYXRlLG9uU3RhcnQsb25SZXBlYXQsb25SZXZlcnNlQ29tcGxldGUsb25JbnRlcnJ1cHRcIiwgZnVuY3Rpb24gKG5hbWUpIHtcclxuICByZXR1cm4gX2NhbGxiYWNrTmFtZXMgKz0gbmFtZSArIFwiLFwiICsgbmFtZSArIFwiUGFyYW1zLFwiO1xyXG59KTtcclxuLypcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICogQ0FDSEVcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICovXHJcblxyXG5cclxuZXhwb3J0IHZhciBHU0NhY2hlID0gZnVuY3Rpb24gR1NDYWNoZSh0YXJnZXQsIGhhcm5lc3MpIHtcclxuICB0aGlzLmlkID0gX2dzSUQrKztcclxuICB0YXJnZXQuX2dzYXAgPSB0aGlzO1xyXG4gIHRoaXMudGFyZ2V0ID0gdGFyZ2V0O1xyXG4gIHRoaXMuaGFybmVzcyA9IGhhcm5lc3M7XHJcbiAgdGhpcy5nZXQgPSBoYXJuZXNzID8gaGFybmVzcy5nZXQgOiBfZ2V0UHJvcGVydHk7XHJcbiAgdGhpcy5zZXQgPSBoYXJuZXNzID8gaGFybmVzcy5nZXRTZXR0ZXIgOiBfZ2V0U2V0dGVyO1xyXG59O1xyXG4vKlxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBBTklNQVRJT05cclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICovXHJcblxyXG5leHBvcnQgdmFyIEFuaW1hdGlvbiA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7XHJcbiAgZnVuY3Rpb24gQW5pbWF0aW9uKHZhcnMpIHtcclxuICAgIHRoaXMudmFycyA9IHZhcnM7XHJcbiAgICB0aGlzLl9kZWxheSA9ICt2YXJzLmRlbGF5IHx8IDA7XHJcblxyXG4gICAgaWYgKHRoaXMuX3JlcGVhdCA9IHZhcnMucmVwZWF0ID09PSBJbmZpbml0eSA/IC0yIDogdmFycy5yZXBlYXQgfHwgMCkge1xyXG4gICAgICAvLyBUT0RPOiByZXBlYXQ6IEluZmluaXR5IG9uIGEgdGltZWxpbmUncyBjaGlsZHJlbiBtdXN0IGZsYWcgdGhhdCB0aW1lbGluZSBpbnRlcm5hbGx5IGFuZCBhZmZlY3QgaXRzIHRvdGFsRHVyYXRpb24sIG90aGVyd2lzZSBpdCdsbCBzdG9wIGluIHRoZSBuZWdhdGl2ZSBkaXJlY3Rpb24gd2hlbiByZWFjaGluZyB0aGUgc3RhcnQuXHJcbiAgICAgIHRoaXMuX3JEZWxheSA9IHZhcnMucmVwZWF0RGVsYXkgfHwgMDtcclxuICAgICAgdGhpcy5feW95byA9ICEhdmFycy55b3lvIHx8ICEhdmFycy55b3lvRWFzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl90cyA9IDE7XHJcblxyXG4gICAgX3NldER1cmF0aW9uKHRoaXMsICt2YXJzLmR1cmF0aW9uLCAxLCAxKTtcclxuXHJcbiAgICB0aGlzLmRhdGEgPSB2YXJzLmRhdGE7XHJcblxyXG4gICAgaWYgKF9jb250ZXh0KSB7XHJcbiAgICAgIHRoaXMuX2N0eCA9IF9jb250ZXh0O1xyXG5cclxuICAgICAgX2NvbnRleHQuZGF0YS5wdXNoKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIF90aWNrZXJBY3RpdmUgfHwgX3RpY2tlci53YWtlKCk7XHJcbiAgfVxyXG5cclxuICB2YXIgX3Byb3RvID0gQW5pbWF0aW9uLnByb3RvdHlwZTtcclxuXHJcbiAgX3Byb3RvLmRlbGF5ID0gZnVuY3Rpb24gZGVsYXkodmFsdWUpIHtcclxuICAgIGlmICh2YWx1ZSB8fCB2YWx1ZSA9PT0gMCkge1xyXG4gICAgICB0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5zbW9vdGhDaGlsZFRpbWluZyAmJiB0aGlzLnN0YXJ0VGltZSh0aGlzLl9zdGFydCArIHZhbHVlIC0gdGhpcy5fZGVsYXkpO1xyXG4gICAgICB0aGlzLl9kZWxheSA9IHZhbHVlO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZGVsYXk7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvLmR1cmF0aW9uID0gZnVuY3Rpb24gZHVyYXRpb24odmFsdWUpIHtcclxuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gdGhpcy50b3RhbER1cmF0aW9uKHRoaXMuX3JlcGVhdCA+IDAgPyB2YWx1ZSArICh2YWx1ZSArIHRoaXMuX3JEZWxheSkgKiB0aGlzLl9yZXBlYXQgOiB2YWx1ZSkgOiB0aGlzLnRvdGFsRHVyYXRpb24oKSAmJiB0aGlzLl9kdXI7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvLnRvdGFsRHVyYXRpb24gPSBmdW5jdGlvbiB0b3RhbER1cmF0aW9uKHZhbHVlKSB7XHJcbiAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3REdXI7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fZGlydHkgPSAwO1xyXG4gICAgcmV0dXJuIF9zZXREdXJhdGlvbih0aGlzLCB0aGlzLl9yZXBlYXQgPCAwID8gdmFsdWUgOiAodmFsdWUgLSB0aGlzLl9yZXBlYXQgKiB0aGlzLl9yRGVsYXkpIC8gKHRoaXMuX3JlcGVhdCArIDEpKTtcclxuICB9O1xyXG5cclxuICBfcHJvdG8udG90YWxUaW1lID0gZnVuY3Rpb24gdG90YWxUaW1lKF90b3RhbFRpbWUsIHN1cHByZXNzRXZlbnRzKSB7XHJcbiAgICBfd2FrZSgpO1xyXG5cclxuICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fdFRpbWU7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHBhcmVudCA9IHRoaXMuX2RwO1xyXG5cclxuICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LnNtb290aENoaWxkVGltaW5nICYmIHRoaXMuX3RzKSB7XHJcbiAgICAgIF9hbGlnblBsYXloZWFkKHRoaXMsIF90b3RhbFRpbWUpO1xyXG5cclxuICAgICAgIXBhcmVudC5fZHAgfHwgcGFyZW50LnBhcmVudCB8fCBfcG9zdEFkZENoZWNrcyhwYXJlbnQsIHRoaXMpOyAvLyBlZGdlIGNhc2U6IGlmIHRoaXMgaXMgYSBjaGlsZCBvZiBhIHRpbWVsaW5lIHRoYXQgYWxyZWFkeSBjb21wbGV0ZWQsIGZvciBleGFtcGxlLCB3ZSBtdXN0IHJlLWFjdGl2YXRlIHRoZSBwYXJlbnQuXHJcbiAgICAgIC8vaW4gY2FzZSBhbnkgb2YgdGhlIGFuY2VzdG9yIHRpbWVsaW5lcyBoYWQgY29tcGxldGVkIGJ1dCBzaG91bGQgbm93IGJlIGVuYWJsZWQsIHdlIHNob3VsZCByZXNldCB0aGVpciB0b3RhbFRpbWUoKSB3aGljaCB3aWxsIGFsc28gZW5zdXJlIHRoYXQgdGhleSdyZSBsaW5lZCB1cCBwcm9wZXJseSBhbmQgZW5hYmxlZC4gU2tpcCBmb3IgYW5pbWF0aW9ucyB0aGF0IGFyZSBvbiB0aGUgcm9vdCAod2FzdGVmdWwpLiBFeGFtcGxlOiBhIFRpbWVsaW5lTGl0ZS5leHBvcnRSb290KCkgaXMgcGVyZm9ybWVkIHdoZW4gdGhlcmUncyBhIHBhdXNlZCB0d2VlbiBvbiB0aGUgcm9vdCwgdGhlIGV4cG9ydCB3aWxsIG5vdCBjb21wbGV0ZSB1bnRpbCB0aGF0IHR3ZWVuIGlzIHVucGF1c2VkLCBidXQgaW1hZ2luZSBhIGNoaWxkIGdldHMgcmVzdGFydGVkIGxhdGVyLCBhZnRlciBhbGwgW3VucGF1c2VkXSB0d2VlbnMgaGF2ZSBjb21wbGV0ZWQuIFRoZSBzdGFydCBvZiB0aGF0IGNoaWxkIHdvdWxkIGdldCBwdXNoZWQgb3V0LCBidXQgb25lIG9mIHRoZSBhbmNlc3RvcnMgbWF5IGhhdmUgY29tcGxldGVkLlxyXG5cclxuICAgICAgd2hpbGUgKHBhcmVudCAmJiBwYXJlbnQucGFyZW50KSB7XHJcbiAgICAgICAgaWYgKHBhcmVudC5wYXJlbnQuX3RpbWUgIT09IHBhcmVudC5fc3RhcnQgKyAocGFyZW50Ll90cyA+PSAwID8gcGFyZW50Ll90VGltZSAvIHBhcmVudC5fdHMgOiAocGFyZW50LnRvdGFsRHVyYXRpb24oKSAtIHBhcmVudC5fdFRpbWUpIC8gLXBhcmVudC5fdHMpKSB7XHJcbiAgICAgICAgICBwYXJlbnQudG90YWxUaW1lKHBhcmVudC5fdFRpbWUsIHRydWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudDtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF0aGlzLnBhcmVudCAmJiB0aGlzLl9kcC5hdXRvUmVtb3ZlQ2hpbGRyZW4gJiYgKHRoaXMuX3RzID4gMCAmJiBfdG90YWxUaW1lIDwgdGhpcy5fdER1ciB8fCB0aGlzLl90cyA8IDAgJiYgX3RvdGFsVGltZSA+IDAgfHwgIXRoaXMuX3REdXIgJiYgIV90b3RhbFRpbWUpKSB7XHJcbiAgICAgICAgLy9pZiB0aGUgYW5pbWF0aW9uIGRvZXNuJ3QgaGF2ZSBhIHBhcmVudCwgcHV0IGl0IGJhY2sgaW50byBpdHMgbGFzdCBwYXJlbnQgKHJlY29yZGVkIGFzIF9kcCBmb3IgZXhhY3RseSBjYXNlcyBsaWtlIHRoaXMpLiBMaW1pdCB0byBwYXJlbnRzIHdpdGggYXV0b1JlbW92ZUNoaWxkcmVuIChsaWtlIGdsb2JhbFRpbWVsaW5lKSBzbyB0aGF0IGlmIHRoZSB1c2VyIG1hbnVhbGx5IHJlbW92ZXMgYW4gYW5pbWF0aW9uIGZyb20gYSB0aW1lbGluZSBhbmQgdGhlbiBhbHRlcnMgaXRzIHBsYXloZWFkLCBpdCBkb2Vzbid0IGdldCBhZGRlZCBiYWNrIGluLlxyXG4gICAgICAgIF9hZGRUb1RpbWVsaW5lKHRoaXMuX2RwLCB0aGlzLCB0aGlzLl9zdGFydCAtIHRoaXMuX2RlbGF5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLl90VGltZSAhPT0gX3RvdGFsVGltZSB8fCAhdGhpcy5fZHVyICYmICFzdXBwcmVzc0V2ZW50cyB8fCB0aGlzLl9pbml0dGVkICYmIE1hdGguYWJzKHRoaXMuX3pUaW1lKSA9PT0gX3RpbnlOdW0gfHwgIV90b3RhbFRpbWUgJiYgIXRoaXMuX2luaXR0ZWQgJiYgKHRoaXMuYWRkIHx8IHRoaXMuX3B0TG9va3VwKSkge1xyXG4gICAgICAvLyBjaGVjayBmb3IgX3B0TG9va3VwIG9uIGEgVHdlZW4gaW5zdGFuY2UgdG8gZW5zdXJlIGl0IGhhcyBhY3R1YWxseSBmaW5pc2hlZCBiZWluZyBpbnN0YW50aWF0ZWQsIG90aGVyd2lzZSBpZiB0aGlzLnJldmVyc2UoKSBnZXRzIGNhbGxlZCBpbiB0aGUgQW5pbWF0aW9uIGNvbnN0cnVjdG9yLCBpdCBjb3VsZCB0cmlnZ2VyIGEgcmVuZGVyKCkgaGVyZSBldmVuIHRob3VnaCB0aGUgX3RhcmdldHMgd2VyZW4ndCBwb3B1bGF0ZWQsIHRodXMgd2hlbiBfaW5pdCgpIGlzIGNhbGxlZCB0aGVyZSB3b24ndCBiZSBhbnkgUHJvcFR3ZWVucyAoaXQnbGwgYWN0IGxpa2UgdGhlIHR3ZWVuIGlzIG5vbi1mdW5jdGlvbmFsKVxyXG4gICAgICB0aGlzLl90cyB8fCAodGhpcy5fcFRpbWUgPSBfdG90YWxUaW1lKTsgLy8gb3RoZXJ3aXNlLCBpZiBhbiBhbmltYXRpb24gaXMgcGF1c2VkLCB0aGVuIHRoZSBwbGF5aGVhZCBpcyBtb3ZlZCBiYWNrIHRvIHplcm8sIHRoZW4gcmVzdW1lZCwgaXQnZCByZXZlcnQgYmFjayB0byB0aGUgb3JpZ2luYWwgdGltZSBhdCB0aGUgcGF1c2VcclxuICAgICAgLy9pZiAoIXRoaXMuX2xvY2spIHsgLy8gYXZvaWQgZW5kbGVzcyByZWN1cnNpb24gKG5vdCBzdXJlIHdlIG5lZWQgdGhpcyB5ZXQgb3IgaWYgaXQncyB3b3J0aCB0aGUgcGVyZm9ybWFuY2UgaGl0KVxyXG4gICAgICAvLyAgIHRoaXMuX2xvY2sgPSAxO1xyXG5cclxuICAgICAgX2xhenlTYWZlUmVuZGVyKHRoaXMsIF90b3RhbFRpbWUsIHN1cHByZXNzRXZlbnRzKTsgLy8gICB0aGlzLl9sb2NrID0gMDtcclxuICAgICAgLy99XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH07XHJcblxyXG4gIF9wcm90by50aW1lID0gZnVuY3Rpb24gdGltZSh2YWx1ZSwgc3VwcHJlc3NFdmVudHMpIHtcclxuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gdGhpcy50b3RhbFRpbWUoTWF0aC5taW4odGhpcy50b3RhbER1cmF0aW9uKCksIHZhbHVlICsgX2VsYXBzZWRDeWNsZUR1cmF0aW9uKHRoaXMpKSAlICh0aGlzLl9kdXIgKyB0aGlzLl9yRGVsYXkpIHx8ICh2YWx1ZSA/IHRoaXMuX2R1ciA6IDApLCBzdXBwcmVzc0V2ZW50cykgOiB0aGlzLl90aW1lOyAvLyBub3RlOiBpZiB0aGUgbW9kdWx1cyByZXN1bHRzIGluIDAsIHRoZSBwbGF5aGVhZCBjb3VsZCBiZSBleGFjdGx5IGF0IHRoZSBlbmQgb3IgdGhlIGJlZ2lubmluZywgYW5kIHdlIGFsd2F5cyBkZWZlciB0byB0aGUgRU5EIHdpdGggYSBub24temVybyB2YWx1ZSwgb3RoZXJ3aXNlIGlmIHlvdSBzZXQgdGhlIHRpbWUoKSB0byB0aGUgdmVyeSBlbmQgKGR1cmF0aW9uKCkpLCBpdCB3b3VsZCByZW5kZXIgYXQgdGhlIFNUQVJUIVxyXG4gIH07XHJcblxyXG4gIF9wcm90by50b3RhbFByb2dyZXNzID0gZnVuY3Rpb24gdG90YWxQcm9ncmVzcyh2YWx1ZSwgc3VwcHJlc3NFdmVudHMpIHtcclxuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gdGhpcy50b3RhbFRpbWUodGhpcy50b3RhbER1cmF0aW9uKCkgKiB2YWx1ZSwgc3VwcHJlc3NFdmVudHMpIDogdGhpcy50b3RhbER1cmF0aW9uKCkgPyBNYXRoLm1pbigxLCB0aGlzLl90VGltZSAvIHRoaXMuX3REdXIpIDogdGhpcy5yYXdUaW1lKCkgPj0gMCAmJiB0aGlzLl9pbml0dGVkID8gMSA6IDA7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvLnByb2dyZXNzID0gZnVuY3Rpb24gcHJvZ3Jlc3ModmFsdWUsIHN1cHByZXNzRXZlbnRzKSB7XHJcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IHRoaXMudG90YWxUaW1lKHRoaXMuZHVyYXRpb24oKSAqICh0aGlzLl95b3lvICYmICEodGhpcy5pdGVyYXRpb24oKSAmIDEpID8gMSAtIHZhbHVlIDogdmFsdWUpICsgX2VsYXBzZWRDeWNsZUR1cmF0aW9uKHRoaXMpLCBzdXBwcmVzc0V2ZW50cykgOiB0aGlzLmR1cmF0aW9uKCkgPyBNYXRoLm1pbigxLCB0aGlzLl90aW1lIC8gdGhpcy5fZHVyKSA6IHRoaXMucmF3VGltZSgpID4gMCA/IDEgOiAwO1xyXG4gIH07XHJcblxyXG4gIF9wcm90by5pdGVyYXRpb24gPSBmdW5jdGlvbiBpdGVyYXRpb24odmFsdWUsIHN1cHByZXNzRXZlbnRzKSB7XHJcbiAgICB2YXIgY3ljbGVEdXJhdGlvbiA9IHRoaXMuZHVyYXRpb24oKSArIHRoaXMuX3JEZWxheTtcclxuXHJcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IHRoaXMudG90YWxUaW1lKHRoaXMuX3RpbWUgKyAodmFsdWUgLSAxKSAqIGN5Y2xlRHVyYXRpb24sIHN1cHByZXNzRXZlbnRzKSA6IHRoaXMuX3JlcGVhdCA/IF9hbmltYXRpb25DeWNsZSh0aGlzLl90VGltZSwgY3ljbGVEdXJhdGlvbikgKyAxIDogMTtcclxuICB9IC8vIHBvdGVudGlhbCBmdXR1cmUgYWRkaXRpb246XHJcbiAgLy8gaXNQbGF5aW5nQmFja3dhcmRzKCkge1xyXG4gIC8vIFx0bGV0IGFuaW1hdGlvbiA9IHRoaXMsXHJcbiAgLy8gXHRcdG9yaWVudGF0aW9uID0gMTsgLy8gMSA9IGZvcndhcmQsIC0xID0gYmFja3dhcmRcclxuICAvLyBcdHdoaWxlIChhbmltYXRpb24pIHtcclxuICAvLyBcdFx0b3JpZW50YXRpb24gKj0gYW5pbWF0aW9uLnJldmVyc2VkKCkgfHwgKGFuaW1hdGlvbi5yZXBlYXQoKSAmJiAhKGFuaW1hdGlvbi5pdGVyYXRpb24oKSAmIDEpKSA/IC0xIDogMTtcclxuICAvLyBcdFx0YW5pbWF0aW9uID0gYW5pbWF0aW9uLnBhcmVudDtcclxuICAvLyBcdH1cclxuICAvLyBcdHJldHVybiBvcmllbnRhdGlvbiA8IDA7XHJcbiAgLy8gfVxyXG4gIDtcclxuXHJcbiAgX3Byb3RvLnRpbWVTY2FsZSA9IGZ1bmN0aW9uIHRpbWVTY2FsZSh2YWx1ZSwgc3VwcHJlc3NFdmVudHMpIHtcclxuICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fcnRzID09PSAtX3RpbnlOdW0gPyAwIDogdGhpcy5fcnRzOyAvLyByZWNvcmRlZCB0aW1lU2NhbGUuIFNwZWNpYWwgY2FzZTogaWYgc29tZW9uZSBjYWxscyByZXZlcnNlKCkgb24gYW4gYW5pbWF0aW9uIHdpdGggdGltZVNjYWxlIG9mIDAsIHdlIGFzc2lnbiBpdCAtX3RpbnlOdW0gdG8gcmVtZW1iZXIgaXQncyByZXZlcnNlZC5cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fcnRzID09PSB2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB2YXIgdFRpbWUgPSB0aGlzLnBhcmVudCAmJiB0aGlzLl90cyA/IF9wYXJlbnRUb0NoaWxkVG90YWxUaW1lKHRoaXMucGFyZW50Ll90aW1lLCB0aGlzKSA6IHRoaXMuX3RUaW1lOyAvLyBtYWtlIHN1cmUgdG8gZG8gdGhlIHBhcmVudFRvQ2hpbGRUb3RhbFRpbWUoKSBCRUZPUkUgc2V0dGluZyB0aGUgbmV3IF90cyBiZWNhdXNlIHRoZSBvbGQgb25lIG11c3QgYmUgdXNlZCBpbiB0aGF0IGNhbGN1bGF0aW9uLlxyXG4gICAgLy8gZnV0dXJlIGFkZGl0aW9uPyBVcCBzaWRlOiBmYXN0IGFuZCBtaW5pbWFsIGZpbGUgc2l6ZS4gRG93biBzaWRlOiBvbmx5IHdvcmtzIG9uIHRoaXMgYW5pbWF0aW9uOyBpZiBhIHRpbWVsaW5lIGlzIHJldmVyc2VkLCBmb3IgZXhhbXBsZSwgaXRzIGNoaWxkcmVucycgb25SZXZlcnNlIHdvdWxkbid0IGdldCBjYWxsZWQuXHJcbiAgICAvLygrdmFsdWUgPCAwICYmIHRoaXMuX3J0cyA+PSAwKSAmJiBfY2FsbGJhY2sodGhpcywgXCJvblJldmVyc2VcIiwgdHJ1ZSk7XHJcbiAgICAvLyBwcmlvcml0aXplIHJlbmRlcmluZyB3aGVyZSB0aGUgcGFyZW50J3MgcGxheWhlYWQgbGluZXMgdXAgaW5zdGVhZCBvZiB0aGlzLl90VGltZSBiZWNhdXNlIHRoZXJlIGNvdWxkIGJlIGEgdHdlZW4gdGhhdCdzIGFuaW1hdGluZyBhbm90aGVyIHR3ZWVuJ3MgdGltZVNjYWxlIGluIHRoZSBzYW1lIHJlbmRlcmluZyBsb29wIChzYW1lIHBhcmVudCksIHRodXMgaWYgdGhlIHRpbWVTY2FsZSB0d2VlbiByZW5kZXJzIGZpcnN0LCBpdCB3b3VsZCBhbHRlciBfc3RhcnQgQkVGT1JFIF90VGltZSB3YXMgc2V0IG9uIHRoYXQgdGljayAoaW4gdGhlIHJlbmRlcmluZyBsb29wKSwgZWZmZWN0aXZlbHkgZnJlZXppbmcgaXQgdW50aWwgdGhlIHRpbWVTY2FsZSB0d2VlbiBmaW5pc2hlcy5cclxuXHJcbiAgICB0aGlzLl9ydHMgPSArdmFsdWUgfHwgMDtcclxuICAgIHRoaXMuX3RzID0gdGhpcy5fcHMgfHwgdmFsdWUgPT09IC1fdGlueU51bSA/IDAgOiB0aGlzLl9ydHM7IC8vIF90cyBpcyB0aGUgZnVuY3Rpb25hbCB0aW1lU2NhbGUgd2hpY2ggd291bGQgYmUgMCBpZiB0aGUgYW5pbWF0aW9uIGlzIHBhdXNlZC5cclxuXHJcbiAgICB0aGlzLnRvdGFsVGltZShfY2xhbXAoLU1hdGguYWJzKHRoaXMuX2RlbGF5KSwgdGhpcy50b3RhbER1cmF0aW9uKCksIHRUaW1lKSwgc3VwcHJlc3NFdmVudHMgIT09IGZhbHNlKTtcclxuXHJcbiAgICBfc2V0RW5kKHRoaXMpOyAvLyBpZiBwYXJlbnQuc21vb3RoQ2hpbGRUaW1pbmcgd2FzIGZhbHNlLCB0aGUgZW5kIHRpbWUgZGlkbid0IGdldCB1cGRhdGVkIGluIHRoZSBfYWxpZ25QbGF5aGVhZCgpIG1ldGhvZCwgc28gZG8gaXQgaGVyZS5cclxuXHJcblxyXG4gICAgcmV0dXJuIF9yZWNhY2hlQW5jZXN0b3JzKHRoaXMpO1xyXG4gIH07XHJcblxyXG4gIF9wcm90by5wYXVzZWQgPSBmdW5jdGlvbiBwYXVzZWQodmFsdWUpIHtcclxuICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fcHM7XHJcbiAgICB9IC8vIHBvc3NpYmxlIGZ1dHVyZSBhZGRpdGlvbiAtIGlmIGFuIGFuaW1hdGlvbiBpcyByZW1vdmVkIGZyb20gaXRzIHBhcmVudCBhbmQgdGhlbiAucmVzdGFydCgpIG9yIC5wbGF5KCkgb3IgLnJlc3VtZSgpIGlzIGNhbGxlZCwgcGVyaGFwcyB3ZSBzaG91bGQgZm9yY2UgaXQgYmFjayBpbnRvIHRoZSBnbG9iYWxUaW1lbGluZSBidXQgYmUgY2FyZWZ1bCBiZWNhdXNlIHdoYXQgaWYgaXQncyBhbHJlYWR5IGF0IGl0cyBlbmQ/IFdlIGRvbid0IHdhbnQgaXQgdG8ganVzdCBwZXJzaXN0IGZvcmV2ZXIgYW5kIG5vdCBnZXQgcmVsZWFzZWQgZm9yIEdDLlxyXG4gICAgLy8gIXRoaXMucGFyZW50ICYmICF2YWx1ZSAmJiB0aGlzLl90VGltZSA8IHRoaXMuX3REdXIgJiYgdGhpcyAhPT0gX2dsb2JhbFRpbWVsaW5lICYmIF9nbG9iYWxUaW1lbGluZS5hZGQodGhpcyk7XHJcblxyXG5cclxuICAgIGlmICh0aGlzLl9wcyAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5fcHMgPSB2YWx1ZTtcclxuXHJcbiAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuX3BUaW1lID0gdGhpcy5fdFRpbWUgfHwgTWF0aC5tYXgoLXRoaXMuX2RlbGF5LCB0aGlzLnJhd1RpbWUoKSk7IC8vIGlmIHRoZSBwYXVzZSBvY2N1cnMgZHVyaW5nIHRoZSBkZWxheSBwaGFzZSwgbWFrZSBzdXJlIHRoYXQncyBmYWN0b3JlZCBpbiB3aGVuIHJlc3VtaW5nLlxyXG5cclxuICAgICAgICB0aGlzLl90cyA9IHRoaXMuX2FjdCA9IDA7IC8vIF90cyBpcyB0aGUgZnVuY3Rpb25hbCB0aW1lU2NhbGUsIHNvIGEgcGF1c2VkIHR3ZWVuIHdvdWxkIGVmZmVjdGl2ZWx5IGhhdmUgYSB0aW1lU2NhbGUgb2YgMC4gV2UgcmVjb3JkIHRoZSBcInJlYWxcIiB0aW1lU2NhbGUgYXMgX3J0cyAocmVjb3JkZWQgdGltZSBzY2FsZSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBfd2FrZSgpO1xyXG5cclxuICAgICAgICB0aGlzLl90cyA9IHRoaXMuX3J0czsgLy9vbmx5IGRlZmVyIHRvIF9wVGltZSAocGF1c2VUaW1lKSBpZiB0VGltZSBpcyB6ZXJvLiBSZW1lbWJlciwgc29tZW9uZSBjb3VsZCBwYXVzZSgpIGFuIGFuaW1hdGlvbiwgdGhlbiBzY3J1YiB0aGUgcGxheWhlYWQgYW5kIHJlc3VtZSgpLiBJZiB0aGUgcGFyZW50IGRvZXNuJ3QgaGF2ZSBzbW9vdGhDaGlsZFRpbWluZywgd2UgcmVuZGVyIGF0IHRoZSByYXdUaW1lKCkgYmVjYXVzZSB0aGUgc3RhcnRUaW1lIHdvbid0IGdldCB1cGRhdGVkLlxyXG5cclxuICAgICAgICB0aGlzLnRvdGFsVGltZSh0aGlzLnBhcmVudCAmJiAhdGhpcy5wYXJlbnQuc21vb3RoQ2hpbGRUaW1pbmcgPyB0aGlzLnJhd1RpbWUoKSA6IHRoaXMuX3RUaW1lIHx8IHRoaXMuX3BUaW1lLCB0aGlzLnByb2dyZXNzKCkgPT09IDEgJiYgTWF0aC5hYnModGhpcy5felRpbWUpICE9PSBfdGlueU51bSAmJiAodGhpcy5fdFRpbWUgLT0gX3RpbnlOdW0pKTsgLy8gZWRnZSBjYXNlOiBhbmltYXRpb24ucHJvZ3Jlc3MoMSkucGF1c2UoKS5wbGF5KCkgd291bGRuJ3QgcmVuZGVyIGFnYWluIGJlY2F1c2UgdGhlIHBsYXloZWFkIGlzIGFscmVhZHkgYXQgdGhlIGVuZCwgYnV0IHRoZSBjYWxsIHRvIHRvdGFsVGltZSgpIGJlbG93IHdpbGwgYWRkIGl0IGJhY2sgdG8gaXRzIHBhcmVudC4uLmFuZCBub3QgcmVtb3ZlIGl0IGFnYWluIChzaW5jZSByZW1vdmluZyBvbmx5IGhhcHBlbnMgdXBvbiByZW5kZXJpbmcgYXQgYSBuZXcgdGltZSkuIE9mZnNldHRpbmcgdGhlIF90VGltZSBzbGlnaHRseSBpcyBkb25lIHNpbXBseSB0byBjYXVzZSB0aGUgZmluYWwgcmVuZGVyIGluIHRvdGFsVGltZSgpIHRoYXQnbGwgcG9wIGl0IG9mZiBpdHMgdGltZWxpbmUgKGlmIGF1dG9SZW1vdmVDaGlsZHJlbiBpcyB0cnVlLCBvZiBjb3Vyc2UpLiBDaGVjayB0byBtYWtlIHN1cmUgX3pUaW1lIGlzbid0IC1fdGlueU51bSB0byBhdm9pZCBhbiBlZGdlIGNhc2Ugd2hlcmUgdGhlIHBsYXloZWFkIGlzIHB1c2hlZCB0byB0aGUgZW5kIGJ1dCBJTlNJREUgYSB0d2Vlbi9jYWxsYmFjaywgdGhlIHRpbWVsaW5lIGl0c2VsZiBpcyBwYXVzZWQgdGh1cyBoYWx0aW5nIHJlbmRlcmluZyBhbmQgbGVhdmluZyBhIGZldyB1bnJlbmRlcmVkLiBXaGVuIHJlc3VtaW5nLCBpdCB3b3VsZG4ndCByZW5kZXIgdGhvc2Ugb3RoZXJ3aXNlLlxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvLnN0YXJ0VGltZSA9IGZ1bmN0aW9uIHN0YXJ0VGltZSh2YWx1ZSkge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5fc3RhcnQgPSB2YWx1ZTtcclxuICAgICAgdmFyIHBhcmVudCA9IHRoaXMucGFyZW50IHx8IHRoaXMuX2RwO1xyXG4gICAgICBwYXJlbnQgJiYgKHBhcmVudC5fc29ydCB8fCAhdGhpcy5wYXJlbnQpICYmIF9hZGRUb1RpbWVsaW5lKHBhcmVudCwgdGhpcywgdmFsdWUgLSB0aGlzLl9kZWxheSk7XHJcbiAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl9zdGFydDtcclxuICB9O1xyXG5cclxuICBfcHJvdG8uZW5kVGltZSA9IGZ1bmN0aW9uIGVuZFRpbWUoaW5jbHVkZVJlcGVhdHMpIHtcclxuICAgIHJldHVybiB0aGlzLl9zdGFydCArIChfaXNOb3RGYWxzZShpbmNsdWRlUmVwZWF0cykgPyB0aGlzLnRvdGFsRHVyYXRpb24oKSA6IHRoaXMuZHVyYXRpb24oKSkgLyBNYXRoLmFicyh0aGlzLl90cyB8fCAxKTtcclxuICB9O1xyXG5cclxuICBfcHJvdG8ucmF3VGltZSA9IGZ1bmN0aW9uIHJhd1RpbWUod3JhcFJlcGVhdHMpIHtcclxuICAgIHZhciBwYXJlbnQgPSB0aGlzLnBhcmVudCB8fCB0aGlzLl9kcDsgLy8gX2RwID0gZGV0YWNoZWQgcGFyZW50XHJcblxyXG4gICAgcmV0dXJuICFwYXJlbnQgPyB0aGlzLl90VGltZSA6IHdyYXBSZXBlYXRzICYmICghdGhpcy5fdHMgfHwgdGhpcy5fcmVwZWF0ICYmIHRoaXMuX3RpbWUgJiYgdGhpcy50b3RhbFByb2dyZXNzKCkgPCAxKSA/IHRoaXMuX3RUaW1lICUgKHRoaXMuX2R1ciArIHRoaXMuX3JEZWxheSkgOiAhdGhpcy5fdHMgPyB0aGlzLl90VGltZSA6IF9wYXJlbnRUb0NoaWxkVG90YWxUaW1lKHBhcmVudC5yYXdUaW1lKHdyYXBSZXBlYXRzKSwgdGhpcyk7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvLnJldmVydCA9IGZ1bmN0aW9uIHJldmVydChjb25maWcpIHtcclxuICAgIGlmIChjb25maWcgPT09IHZvaWQgMCkge1xyXG4gICAgICBjb25maWcgPSBfcmV2ZXJ0Q29uZmlnO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBwcmV2SXNSZXZlcnRpbmcgPSBfcmV2ZXJ0aW5nO1xyXG4gICAgX3JldmVydGluZyA9IGNvbmZpZztcclxuXHJcbiAgICBpZiAoX2lzUmV2ZXJ0V29ydGh5KHRoaXMpKSB7XHJcbiAgICAgIHRoaXMudGltZWxpbmUgJiYgdGhpcy50aW1lbGluZS5yZXZlcnQoY29uZmlnKTtcclxuICAgICAgdGhpcy50b3RhbFRpbWUoLTAuMDEsIGNvbmZpZy5zdXBwcmVzc0V2ZW50cyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhICE9PSBcIm5lc3RlZFwiICYmIGNvbmZpZy5raWxsICE9PSBmYWxzZSAmJiB0aGlzLmtpbGwoKTtcclxuICAgIF9yZXZlcnRpbmcgPSBwcmV2SXNSZXZlcnRpbmc7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9O1xyXG5cclxuICBfcHJvdG8uZ2xvYmFsVGltZSA9IGZ1bmN0aW9uIGdsb2JhbFRpbWUocmF3VGltZSkge1xyXG4gICAgdmFyIGFuaW1hdGlvbiA9IHRoaXMsXHJcbiAgICAgICAgdGltZSA9IGFyZ3VtZW50cy5sZW5ndGggPyByYXdUaW1lIDogYW5pbWF0aW9uLnJhd1RpbWUoKTtcclxuXHJcbiAgICB3aGlsZSAoYW5pbWF0aW9uKSB7XHJcbiAgICAgIHRpbWUgPSBhbmltYXRpb24uX3N0YXJ0ICsgdGltZSAvIChNYXRoLmFicyhhbmltYXRpb24uX3RzKSB8fCAxKTtcclxuICAgICAgYW5pbWF0aW9uID0gYW5pbWF0aW9uLl9kcDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gIXRoaXMucGFyZW50ICYmIHRoaXMuX3NhdCA/IHRoaXMuX3NhdC5nbG9iYWxUaW1lKHJhd1RpbWUpIDogdGltZTsgLy8gdGhlIF9zdGFydEF0IHR3ZWVucyBmb3IgLmZyb21UbygpIGFuZCAuZnJvbSgpIHRoYXQgaGF2ZSBpbW1lZGlhdGVSZW5kZXIgc2hvdWxkIGFsd2F5cyBiZSBGSVJTVCBpbiB0aGUgdGltZWxpbmUgKGltcG9ydGFudCBmb3IgY29udGV4dC5yZXZlcnQoKSkuIFwiX3NhdFwiIHN0YW5kcyBmb3IgX3N0YXJ0QXRUd2VlbiwgcmVmZXJyaW5nIHRvIHRoZSBwYXJlbnQgdHdlZW4gdGhhdCBjcmVhdGVkIHRoZSBfc3RhcnRBdC4gV2UgbXVzdCBkaXNjZXJuIGlmIHRoYXQgdHdlZW4gaGFkIGltbWVkaWF0ZVJlbmRlciBzbyB0aGF0IHdlIGNhbiBrbm93IHdoZXRoZXIgb3Igbm90IHRvIHByaW9yaXRpemUgaXQgaW4gcmV2ZXJ0KCkuXHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvLnJlcGVhdCA9IGZ1bmN0aW9uIHJlcGVhdCh2YWx1ZSkge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5fcmVwZWF0ID0gdmFsdWUgPT09IEluZmluaXR5ID8gLTIgOiB2YWx1ZTtcclxuICAgICAgcmV0dXJuIF9vblVwZGF0ZVRvdGFsRHVyYXRpb24odGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX3JlcGVhdCA9PT0gLTIgPyBJbmZpbml0eSA6IHRoaXMuX3JlcGVhdDtcclxuICB9O1xyXG5cclxuICBfcHJvdG8ucmVwZWF0RGVsYXkgPSBmdW5jdGlvbiByZXBlYXREZWxheSh2YWx1ZSkge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgICAgdmFyIHRpbWUgPSB0aGlzLl90aW1lO1xyXG4gICAgICB0aGlzLl9yRGVsYXkgPSB2YWx1ZTtcclxuXHJcbiAgICAgIF9vblVwZGF0ZVRvdGFsRHVyYXRpb24odGhpcyk7XHJcblxyXG4gICAgICByZXR1cm4gdGltZSA/IHRoaXMudGltZSh0aW1lKSA6IHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX3JEZWxheTtcclxuICB9O1xyXG5cclxuICBfcHJvdG8ueW95byA9IGZ1bmN0aW9uIHlveW8odmFsdWUpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuX3lveW8gPSB2YWx1ZTtcclxuICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX3lveW87XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvLnNlZWsgPSBmdW5jdGlvbiBzZWVrKHBvc2l0aW9uLCBzdXBwcmVzc0V2ZW50cykge1xyXG4gICAgcmV0dXJuIHRoaXMudG90YWxUaW1lKF9wYXJzZVBvc2l0aW9uKHRoaXMsIHBvc2l0aW9uKSwgX2lzTm90RmFsc2Uoc3VwcHJlc3NFdmVudHMpKTtcclxuICB9O1xyXG5cclxuICBfcHJvdG8ucmVzdGFydCA9IGZ1bmN0aW9uIHJlc3RhcnQoaW5jbHVkZURlbGF5LCBzdXBwcmVzc0V2ZW50cykge1xyXG4gICAgdGhpcy5wbGF5KCkudG90YWxUaW1lKGluY2x1ZGVEZWxheSA/IC10aGlzLl9kZWxheSA6IDAsIF9pc05vdEZhbHNlKHN1cHByZXNzRXZlbnRzKSk7XHJcbiAgICB0aGlzLl9kdXIgfHwgKHRoaXMuX3pUaW1lID0gLV90aW55TnVtKTsgLy8gZW5zdXJlcyBvbkNvbXBsZXRlIGZpcmVzIG9uIGEgemVyby1kdXJhdGlvbiBhbmltYXRpb24gdGhhdCBnZXRzIHJlc3RhcnRlZC5cclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9O1xyXG5cclxuICBfcHJvdG8ucGxheSA9IGZ1bmN0aW9uIHBsYXkoZnJvbSwgc3VwcHJlc3NFdmVudHMpIHtcclxuICAgIGZyb20gIT0gbnVsbCAmJiB0aGlzLnNlZWsoZnJvbSwgc3VwcHJlc3NFdmVudHMpO1xyXG4gICAgcmV0dXJuIHRoaXMucmV2ZXJzZWQoZmFsc2UpLnBhdXNlZChmYWxzZSk7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvLnJldmVyc2UgPSBmdW5jdGlvbiByZXZlcnNlKGZyb20sIHN1cHByZXNzRXZlbnRzKSB7XHJcbiAgICBmcm9tICE9IG51bGwgJiYgdGhpcy5zZWVrKGZyb20gfHwgdGhpcy50b3RhbER1cmF0aW9uKCksIHN1cHByZXNzRXZlbnRzKTtcclxuICAgIHJldHVybiB0aGlzLnJldmVyc2VkKHRydWUpLnBhdXNlZChmYWxzZSk7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvLnBhdXNlID0gZnVuY3Rpb24gcGF1c2UoYXRUaW1lLCBzdXBwcmVzc0V2ZW50cykge1xyXG4gICAgYXRUaW1lICE9IG51bGwgJiYgdGhpcy5zZWVrKGF0VGltZSwgc3VwcHJlc3NFdmVudHMpO1xyXG4gICAgcmV0dXJuIHRoaXMucGF1c2VkKHRydWUpO1xyXG4gIH07XHJcblxyXG4gIF9wcm90by5yZXN1bWUgPSBmdW5jdGlvbiByZXN1bWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXVzZWQoZmFsc2UpO1xyXG4gIH07XHJcblxyXG4gIF9wcm90by5yZXZlcnNlZCA9IGZ1bmN0aW9uIHJldmVyc2VkKHZhbHVlKSB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCkge1xyXG4gICAgICAhIXZhbHVlICE9PSB0aGlzLnJldmVyc2VkKCkgJiYgdGhpcy50aW1lU2NhbGUoLXRoaXMuX3J0cyB8fCAodmFsdWUgPyAtX3RpbnlOdW0gOiAwKSk7IC8vIGluIGNhc2UgdGltZVNjYWxlIGlzIHplcm8sIHJldmVyc2luZyB3b3VsZCBoYXZlIG5vIGVmZmVjdCBzbyB3ZSB1c2UgX3RpbnlOdW0uXHJcblxyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fcnRzIDwgMDtcclxuICB9O1xyXG5cclxuICBfcHJvdG8uaW52YWxpZGF0ZSA9IGZ1bmN0aW9uIGludmFsaWRhdGUoKSB7XHJcbiAgICB0aGlzLl9pbml0dGVkID0gdGhpcy5fYWN0ID0gMDtcclxuICAgIHRoaXMuX3pUaW1lID0gLV90aW55TnVtO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvLmlzQWN0aXZlID0gZnVuY3Rpb24gaXNBY3RpdmUoKSB7XHJcbiAgICB2YXIgcGFyZW50ID0gdGhpcy5wYXJlbnQgfHwgdGhpcy5fZHAsXHJcbiAgICAgICAgc3RhcnQgPSB0aGlzLl9zdGFydCxcclxuICAgICAgICByYXdUaW1lO1xyXG4gICAgcmV0dXJuICEhKCFwYXJlbnQgfHwgdGhpcy5fdHMgJiYgdGhpcy5faW5pdHRlZCAmJiBwYXJlbnQuaXNBY3RpdmUoKSAmJiAocmF3VGltZSA9IHBhcmVudC5yYXdUaW1lKHRydWUpKSA+PSBzdGFydCAmJiByYXdUaW1lIDwgdGhpcy5lbmRUaW1lKHRydWUpIC0gX3RpbnlOdW0pO1xyXG4gIH07XHJcblxyXG4gIF9wcm90by5ldmVudENhbGxiYWNrID0gZnVuY3Rpb24gZXZlbnRDYWxsYmFjayh0eXBlLCBjYWxsYmFjaywgcGFyYW1zKSB7XHJcbiAgICB2YXIgdmFycyA9IHRoaXMudmFycztcclxuXHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgaWYgKCFjYWxsYmFjaykge1xyXG4gICAgICAgIGRlbGV0ZSB2YXJzW3R5cGVdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHZhcnNbdHlwZV0gPSBjYWxsYmFjaztcclxuICAgICAgICBwYXJhbXMgJiYgKHZhcnNbdHlwZSArIFwiUGFyYW1zXCJdID0gcGFyYW1zKTtcclxuICAgICAgICB0eXBlID09PSBcIm9uVXBkYXRlXCIgJiYgKHRoaXMuX29uVXBkYXRlID0gY2FsbGJhY2spO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdmFyc1t0eXBlXTtcclxuICB9O1xyXG5cclxuICBfcHJvdG8udGhlbiA9IGZ1bmN0aW9uIHRoZW4ob25GdWxmaWxsZWQpIHtcclxuICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xyXG4gICAgICB2YXIgZiA9IF9pc0Z1bmN0aW9uKG9uRnVsZmlsbGVkKSA/IG9uRnVsZmlsbGVkIDogX3Bhc3NUaHJvdWdoLFxyXG4gICAgICAgICAgX3Jlc29sdmUgPSBmdW5jdGlvbiBfcmVzb2x2ZSgpIHtcclxuICAgICAgICB2YXIgX3RoZW4gPSBzZWxmLnRoZW47XHJcbiAgICAgICAgc2VsZi50aGVuID0gbnVsbDsgLy8gdGVtcG9yYXJpbHkgbnVsbCB0aGUgdGhlbigpIG1ldGhvZCB0byBhdm9pZCBhbiBpbmZpbml0ZSBsb29wIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL2dyZWVuc29jay9HU0FQL2lzc3Vlcy8zMjIpXHJcblxyXG4gICAgICAgIF9pc0Z1bmN0aW9uKGYpICYmIChmID0gZihzZWxmKSkgJiYgKGYudGhlbiB8fCBmID09PSBzZWxmKSAmJiAoc2VsZi50aGVuID0gX3RoZW4pO1xyXG4gICAgICAgIHJlc29sdmUoZik7XHJcbiAgICAgICAgc2VsZi50aGVuID0gX3RoZW47XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBpZiAoc2VsZi5faW5pdHRlZCAmJiBzZWxmLnRvdGFsUHJvZ3Jlc3MoKSA9PT0gMSAmJiBzZWxmLl90cyA+PSAwIHx8ICFzZWxmLl90VGltZSAmJiBzZWxmLl90cyA8IDApIHtcclxuICAgICAgICBfcmVzb2x2ZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNlbGYuX3Byb20gPSBfcmVzb2x2ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvLmtpbGwgPSBmdW5jdGlvbiBraWxsKCkge1xyXG4gICAgX2ludGVycnVwdCh0aGlzKTtcclxuICB9O1xyXG5cclxuICByZXR1cm4gQW5pbWF0aW9uO1xyXG59KCk7XHJcblxyXG5fc2V0RGVmYXVsdHMoQW5pbWF0aW9uLnByb3RvdHlwZSwge1xyXG4gIF90aW1lOiAwLFxyXG4gIF9zdGFydDogMCxcclxuICBfZW5kOiAwLFxyXG4gIF90VGltZTogMCxcclxuICBfdER1cjogMCxcclxuICBfZGlydHk6IDAsXHJcbiAgX3JlcGVhdDogMCxcclxuICBfeW95bzogZmFsc2UsXHJcbiAgcGFyZW50OiBudWxsLFxyXG4gIF9pbml0dGVkOiBmYWxzZSxcclxuICBfckRlbGF5OiAwLFxyXG4gIF90czogMSxcclxuICBfZHA6IDAsXHJcbiAgcmF0aW86IDAsXHJcbiAgX3pUaW1lOiAtX3RpbnlOdW0sXHJcbiAgX3Byb206IDAsXHJcbiAgX3BzOiBmYWxzZSxcclxuICBfcnRzOiAxXHJcbn0pO1xyXG4vKlxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqIFRJTUVMSU5FXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICovXHJcblxyXG5cclxuZXhwb3J0IHZhciBUaW1lbGluZSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0FuaW1hdGlvbikge1xyXG4gIF9pbmhlcml0c0xvb3NlKFRpbWVsaW5lLCBfQW5pbWF0aW9uKTtcclxuXHJcbiAgZnVuY3Rpb24gVGltZWxpbmUodmFycywgcG9zaXRpb24pIHtcclxuICAgIHZhciBfdGhpcztcclxuXHJcbiAgICBpZiAodmFycyA9PT0gdm9pZCAwKSB7XHJcbiAgICAgIHZhcnMgPSB7fTtcclxuICAgIH1cclxuXHJcbiAgICBfdGhpcyA9IF9BbmltYXRpb24uY2FsbCh0aGlzLCB2YXJzKSB8fCB0aGlzO1xyXG4gICAgX3RoaXMubGFiZWxzID0ge307XHJcbiAgICBfdGhpcy5zbW9vdGhDaGlsZFRpbWluZyA9ICEhdmFycy5zbW9vdGhDaGlsZFRpbWluZztcclxuICAgIF90aGlzLmF1dG9SZW1vdmVDaGlsZHJlbiA9ICEhdmFycy5hdXRvUmVtb3ZlQ2hpbGRyZW47XHJcbiAgICBfdGhpcy5fc29ydCA9IF9pc05vdEZhbHNlKHZhcnMuc29ydENoaWxkcmVuKTtcclxuICAgIF9nbG9iYWxUaW1lbGluZSAmJiBfYWRkVG9UaW1lbGluZSh2YXJzLnBhcmVudCB8fCBfZ2xvYmFsVGltZWxpbmUsIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBwb3NpdGlvbik7XHJcbiAgICB2YXJzLnJldmVyc2VkICYmIF90aGlzLnJldmVyc2UoKTtcclxuICAgIHZhcnMucGF1c2VkICYmIF90aGlzLnBhdXNlZCh0cnVlKTtcclxuICAgIHZhcnMuc2Nyb2xsVHJpZ2dlciAmJiBfc2Nyb2xsVHJpZ2dlcihfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgdmFycy5zY3JvbGxUcmlnZ2VyKTtcclxuICAgIHJldHVybiBfdGhpcztcclxuICB9XHJcblxyXG4gIHZhciBfcHJvdG8yID0gVGltZWxpbmUucHJvdG90eXBlO1xyXG5cclxuICBfcHJvdG8yLnRvID0gZnVuY3Rpb24gdG8odGFyZ2V0cywgdmFycywgcG9zaXRpb24pIHtcclxuICAgIF9jcmVhdGVUd2VlblR5cGUoMCwgYXJndW1lbnRzLCB0aGlzKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9O1xyXG5cclxuICBfcHJvdG8yLmZyb20gPSBmdW5jdGlvbiBmcm9tKHRhcmdldHMsIHZhcnMsIHBvc2l0aW9uKSB7XHJcbiAgICBfY3JlYXRlVHdlZW5UeXBlKDEsIGFyZ3VtZW50cywgdGhpcyk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvMi5mcm9tVG8gPSBmdW5jdGlvbiBmcm9tVG8odGFyZ2V0cywgZnJvbVZhcnMsIHRvVmFycywgcG9zaXRpb24pIHtcclxuICAgIF9jcmVhdGVUd2VlblR5cGUoMiwgYXJndW1lbnRzLCB0aGlzKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9O1xyXG5cclxuICBfcHJvdG8yLnNldCA9IGZ1bmN0aW9uIHNldCh0YXJnZXRzLCB2YXJzLCBwb3NpdGlvbikge1xyXG4gICAgdmFycy5kdXJhdGlvbiA9IDA7XHJcbiAgICB2YXJzLnBhcmVudCA9IHRoaXM7XHJcbiAgICBfaW5oZXJpdERlZmF1bHRzKHZhcnMpLnJlcGVhdERlbGF5IHx8ICh2YXJzLnJlcGVhdCA9IDApO1xyXG4gICAgdmFycy5pbW1lZGlhdGVSZW5kZXIgPSAhIXZhcnMuaW1tZWRpYXRlUmVuZGVyO1xyXG4gICAgbmV3IFR3ZWVuKHRhcmdldHMsIHZhcnMsIF9wYXJzZVBvc2l0aW9uKHRoaXMsIHBvc2l0aW9uKSwgMSk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9O1xyXG5cclxuICBfcHJvdG8yLmNhbGwgPSBmdW5jdGlvbiBjYWxsKGNhbGxiYWNrLCBwYXJhbXMsIHBvc2l0aW9uKSB7XHJcbiAgICByZXR1cm4gX2FkZFRvVGltZWxpbmUodGhpcywgVHdlZW4uZGVsYXllZENhbGwoMCwgY2FsbGJhY2ssIHBhcmFtcyksIHBvc2l0aW9uKTtcclxuICB9IC8vT05MWSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSEgTWF5YmUgZGVsZXRlP1xyXG4gIDtcclxuXHJcbiAgX3Byb3RvMi5zdGFnZ2VyVG8gPSBmdW5jdGlvbiBzdGFnZ2VyVG8odGFyZ2V0cywgZHVyYXRpb24sIHZhcnMsIHN0YWdnZXIsIHBvc2l0aW9uLCBvbkNvbXBsZXRlQWxsLCBvbkNvbXBsZXRlQWxsUGFyYW1zKSB7XHJcbiAgICB2YXJzLmR1cmF0aW9uID0gZHVyYXRpb247XHJcbiAgICB2YXJzLnN0YWdnZXIgPSB2YXJzLnN0YWdnZXIgfHwgc3RhZ2dlcjtcclxuICAgIHZhcnMub25Db21wbGV0ZSA9IG9uQ29tcGxldGVBbGw7XHJcbiAgICB2YXJzLm9uQ29tcGxldGVQYXJhbXMgPSBvbkNvbXBsZXRlQWxsUGFyYW1zO1xyXG4gICAgdmFycy5wYXJlbnQgPSB0aGlzO1xyXG4gICAgbmV3IFR3ZWVuKHRhcmdldHMsIHZhcnMsIF9wYXJzZVBvc2l0aW9uKHRoaXMsIHBvc2l0aW9uKSk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9O1xyXG5cclxuICBfcHJvdG8yLnN0YWdnZXJGcm9tID0gZnVuY3Rpb24gc3RhZ2dlckZyb20odGFyZ2V0cywgZHVyYXRpb24sIHZhcnMsIHN0YWdnZXIsIHBvc2l0aW9uLCBvbkNvbXBsZXRlQWxsLCBvbkNvbXBsZXRlQWxsUGFyYW1zKSB7XHJcbiAgICB2YXJzLnJ1bkJhY2t3YXJkcyA9IDE7XHJcbiAgICBfaW5oZXJpdERlZmF1bHRzKHZhcnMpLmltbWVkaWF0ZVJlbmRlciA9IF9pc05vdEZhbHNlKHZhcnMuaW1tZWRpYXRlUmVuZGVyKTtcclxuICAgIHJldHVybiB0aGlzLnN0YWdnZXJUbyh0YXJnZXRzLCBkdXJhdGlvbiwgdmFycywgc3RhZ2dlciwgcG9zaXRpb24sIG9uQ29tcGxldGVBbGwsIG9uQ29tcGxldGVBbGxQYXJhbXMpO1xyXG4gIH07XHJcblxyXG4gIF9wcm90bzIuc3RhZ2dlckZyb21UbyA9IGZ1bmN0aW9uIHN0YWdnZXJGcm9tVG8odGFyZ2V0cywgZHVyYXRpb24sIGZyb21WYXJzLCB0b1ZhcnMsIHN0YWdnZXIsIHBvc2l0aW9uLCBvbkNvbXBsZXRlQWxsLCBvbkNvbXBsZXRlQWxsUGFyYW1zKSB7XHJcbiAgICB0b1ZhcnMuc3RhcnRBdCA9IGZyb21WYXJzO1xyXG4gICAgX2luaGVyaXREZWZhdWx0cyh0b1ZhcnMpLmltbWVkaWF0ZVJlbmRlciA9IF9pc05vdEZhbHNlKHRvVmFycy5pbW1lZGlhdGVSZW5kZXIpO1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhZ2dlclRvKHRhcmdldHMsIGR1cmF0aW9uLCB0b1ZhcnMsIHN0YWdnZXIsIHBvc2l0aW9uLCBvbkNvbXBsZXRlQWxsLCBvbkNvbXBsZXRlQWxsUGFyYW1zKTtcclxuICB9O1xyXG5cclxuICBfcHJvdG8yLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcih0b3RhbFRpbWUsIHN1cHByZXNzRXZlbnRzLCBmb3JjZSkge1xyXG4gICAgdmFyIHByZXZUaW1lID0gdGhpcy5fdGltZSxcclxuICAgICAgICB0RHVyID0gdGhpcy5fZGlydHkgPyB0aGlzLnRvdGFsRHVyYXRpb24oKSA6IHRoaXMuX3REdXIsXHJcbiAgICAgICAgZHVyID0gdGhpcy5fZHVyLFxyXG4gICAgICAgIHRUaW1lID0gdG90YWxUaW1lIDw9IDAgPyAwIDogX3JvdW5kUHJlY2lzZSh0b3RhbFRpbWUpLFxyXG4gICAgICAgIC8vIGlmIGEgcGF1c2VkIHRpbWVsaW5lIGlzIHJlc3VtZWQgKG9yIGl0cyBfc3RhcnQgaXMgdXBkYXRlZCBmb3IgYW5vdGhlciByZWFzb24uLi53aGljaCByb3VuZHMgaXQpLCB0aGF0IGNvdWxkIHJlc3VsdCBpbiB0aGUgcGxheWhlYWQgc2hpZnRpbmcgYSAqKnRpbnkqKiBhbW91bnQgYW5kIGEgemVyby1kdXJhdGlvbiBjaGlsZCBhdCB0aGF0IHNwb3QgbWF5IGdldCByZW5kZXJlZCBhdCBhIGRpZmZlcmVudCByYXRpbywgbGlrZSBpdHMgdG90YWxUaW1lIGluIHJlbmRlcigpIG1heSBiZSAxZS0xNyBpbnN0ZWFkIG9mIDAsIGZvciBleGFtcGxlLlxyXG4gICAgY3Jvc3NpbmdTdGFydCA9IHRoaXMuX3pUaW1lIDwgMCAhPT0gdG90YWxUaW1lIDwgMCAmJiAodGhpcy5faW5pdHRlZCB8fCAhZHVyKSxcclxuICAgICAgICB0aW1lLFxyXG4gICAgICAgIGNoaWxkLFxyXG4gICAgICAgIG5leHQsXHJcbiAgICAgICAgaXRlcmF0aW9uLFxyXG4gICAgICAgIGN5Y2xlRHVyYXRpb24sXHJcbiAgICAgICAgcHJldlBhdXNlZCxcclxuICAgICAgICBwYXVzZVR3ZWVuLFxyXG4gICAgICAgIHRpbWVTY2FsZSxcclxuICAgICAgICBwcmV2U3RhcnQsXHJcbiAgICAgICAgcHJldkl0ZXJhdGlvbixcclxuICAgICAgICB5b3lvLFxyXG4gICAgICAgIGlzWW95bztcclxuICAgIHRoaXMgIT09IF9nbG9iYWxUaW1lbGluZSAmJiB0VGltZSA+IHREdXIgJiYgdG90YWxUaW1lID49IDAgJiYgKHRUaW1lID0gdER1cik7XHJcblxyXG4gICAgaWYgKHRUaW1lICE9PSB0aGlzLl90VGltZSB8fCBmb3JjZSB8fCBjcm9zc2luZ1N0YXJ0KSB7XHJcbiAgICAgIGlmIChwcmV2VGltZSAhPT0gdGhpcy5fdGltZSAmJiBkdXIpIHtcclxuICAgICAgICAvL2lmIHRvdGFsRHVyYXRpb24oKSBmaW5kcyBhIGNoaWxkIHdpdGggYSBuZWdhdGl2ZSBzdGFydFRpbWUgYW5kIHNtb290aENoaWxkVGltaW5nIGlzIHRydWUsIHRoaW5ncyBnZXQgc2hpZnRlZCBhcm91bmQgaW50ZXJuYWxseSBzbyB3ZSBuZWVkIHRvIGFkanVzdCB0aGUgdGltZSBhY2NvcmRpbmdseS4gRm9yIGV4YW1wbGUsIGlmIGEgdHdlZW4gc3RhcnRzIGF0IC0zMCB3ZSBtdXN0IHNoaWZ0IEVWRVJZVEhJTkcgZm9yd2FyZCAzMCBzZWNvbmRzIGFuZCBtb3ZlIHRoaXMgdGltZWxpbmUncyBzdGFydFRpbWUgYmFja3dhcmQgYnkgMzAgc2Vjb25kcyBzbyB0aGF0IHRoaW5ncyBhbGlnbiB3aXRoIHRoZSBwbGF5aGVhZCAobm8ganVtcCkuXHJcbiAgICAgICAgdFRpbWUgKz0gdGhpcy5fdGltZSAtIHByZXZUaW1lO1xyXG4gICAgICAgIHRvdGFsVGltZSArPSB0aGlzLl90aW1lIC0gcHJldlRpbWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRpbWUgPSB0VGltZTtcclxuICAgICAgcHJldlN0YXJ0ID0gdGhpcy5fc3RhcnQ7XHJcbiAgICAgIHRpbWVTY2FsZSA9IHRoaXMuX3RzO1xyXG4gICAgICBwcmV2UGF1c2VkID0gIXRpbWVTY2FsZTtcclxuXHJcbiAgICAgIGlmIChjcm9zc2luZ1N0YXJ0KSB7XHJcbiAgICAgICAgZHVyIHx8IChwcmV2VGltZSA9IHRoaXMuX3pUaW1lKTsgLy93aGVuIHRoZSBwbGF5aGVhZCBhcnJpdmVzIGF0IEVYQUNUTFkgdGltZSAwIChyaWdodCBvbiB0b3ApIG9mIGEgemVyby1kdXJhdGlvbiB0aW1lbGluZSwgd2UgbmVlZCB0byBkaXNjZXJuIGlmIGV2ZW50cyBhcmUgc3VwcHJlc3NlZCBzbyB0aGF0IHdoZW4gdGhlIHBsYXloZWFkIG1vdmVzIGFnYWluIChuZXh0IHRpbWUpLCBpdCdsbCB0cmlnZ2VyIHRoZSBjYWxsYmFjay4gSWYgZXZlbnRzIGFyZSBOT1Qgc3VwcHJlc3NlZCwgb2J2aW91c2x5IHRoZSBjYWxsYmFjayB3b3VsZCBiZSB0cmlnZ2VyZWQgaW4gdGhpcyByZW5kZXIuIEJhc2ljYWxseSwgdGhlIGNhbGxiYWNrIHNob3VsZCBmaXJlIGVpdGhlciB3aGVuIHRoZSBwbGF5aGVhZCBBUlJJVkVTIG9yIExFQVZFUyB0aGlzIGV4YWN0IHNwb3QsIG5vdCBib3RoLiBJbWFnaW5lIGRvaW5nIGEgdGltZWxpbmUuc2VlaygwKSBhbmQgdGhlcmUncyBhIGNhbGxiYWNrIHRoYXQgc2l0cyBhdCAwLiBTaW5jZSBldmVudHMgYXJlIHN1cHByZXNzZWQgb24gdGhhdCBzZWVrKCkgYnkgZGVmYXVsdCwgbm90aGluZyB3aWxsIGZpcmUsIGJ1dCB3aGVuIHRoZSBwbGF5aGVhZCBtb3ZlcyBvZmYgb2YgdGhhdCBwb3NpdGlvbiwgdGhlIGNhbGxiYWNrIHNob3VsZCBmaXJlLiBUaGlzIGJlaGF2aW9yIGlzIHdoYXQgcGVvcGxlIGludHVpdGl2ZWx5IGV4cGVjdC5cclxuXHJcbiAgICAgICAgKHRvdGFsVGltZSB8fCAhc3VwcHJlc3NFdmVudHMpICYmICh0aGlzLl96VGltZSA9IHRvdGFsVGltZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLl9yZXBlYXQpIHtcclxuICAgICAgICAvL2FkanVzdCB0aGUgdGltZSBmb3IgcmVwZWF0cyBhbmQgeW95b3NcclxuICAgICAgICB5b3lvID0gdGhpcy5feW95bztcclxuICAgICAgICBjeWNsZUR1cmF0aW9uID0gZHVyICsgdGhpcy5fckRlbGF5O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fcmVwZWF0IDwgLTEgJiYgdG90YWxUaW1lIDwgMCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMudG90YWxUaW1lKGN5Y2xlRHVyYXRpb24gKiAxMDAgKyB0b3RhbFRpbWUsIHN1cHByZXNzRXZlbnRzLCBmb3JjZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aW1lID0gX3JvdW5kUHJlY2lzZSh0VGltZSAlIGN5Y2xlRHVyYXRpb24pOyAvL3JvdW5kIHRvIGF2b2lkIGZsb2F0aW5nIHBvaW50IGVycm9ycy4gKDQgJSAwLjggc2hvdWxkIGJlIDAgYnV0IHNvbWUgYnJvd3NlcnMgcmVwb3J0IGl0IGFzIDAuNzk5OTk5OTkhKVxyXG5cclxuICAgICAgICBpZiAodFRpbWUgPT09IHREdXIpIHtcclxuICAgICAgICAgIC8vIHRoZSB0RHVyID09PSB0VGltZSBpcyBmb3IgZWRnZSBjYXNlcyB3aGVyZSB0aGVyZSdzIGEgbGVuZ3RoeSBkZWNpbWFsIG9uIHRoZSBkdXJhdGlvbiBhbmQgaXQgbWF5IHJlYWNoIHRoZSB2ZXJ5IGVuZCBidXQgdGhlIHRpbWUgaXMgcmVuZGVyZWQgYXMgbm90LXF1aXRlLXRoZXJlIChyZW1lbWJlciwgdER1ciBpcyByb3VuZGVkIHRvIDQgZGVjaW1hbHMgd2hlcmVhcyBkdXIgaXNuJ3QpXHJcbiAgICAgICAgICBpdGVyYXRpb24gPSB0aGlzLl9yZXBlYXQ7XHJcbiAgICAgICAgICB0aW1lID0gZHVyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwcmV2SXRlcmF0aW9uID0gX3JvdW5kUHJlY2lzZSh0VGltZSAvIGN5Y2xlRHVyYXRpb24pOyAvLyBmdWxsIGRlY2ltYWwgdmVyc2lvbiBvZiBpdGVyYXRpb25zLCBub3QgdGhlIHByZXZpb3VzIGl0ZXJhdGlvbiAod2UncmUgcmV1c2luZyBwcmV2SXRlcmF0aW9uIHZhcmlhYmxlIGZvciBlZmZpY2llbmN5KVxyXG5cclxuICAgICAgICAgIGl0ZXJhdGlvbiA9IH5+cHJldkl0ZXJhdGlvbjtcclxuXHJcbiAgICAgICAgICBpZiAoaXRlcmF0aW9uICYmIGl0ZXJhdGlvbiA9PT0gcHJldkl0ZXJhdGlvbikge1xyXG4gICAgICAgICAgICB0aW1lID0gZHVyO1xyXG4gICAgICAgICAgICBpdGVyYXRpb24tLTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aW1lID4gZHVyICYmICh0aW1lID0gZHVyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByZXZJdGVyYXRpb24gPSBfYW5pbWF0aW9uQ3ljbGUodGhpcy5fdFRpbWUsIGN5Y2xlRHVyYXRpb24pO1xyXG4gICAgICAgICFwcmV2VGltZSAmJiB0aGlzLl90VGltZSAmJiBwcmV2SXRlcmF0aW9uICE9PSBpdGVyYXRpb24gJiYgdGhpcy5fdFRpbWUgLSBwcmV2SXRlcmF0aW9uICogY3ljbGVEdXJhdGlvbiAtIHRoaXMuX2R1ciA8PSAwICYmIChwcmV2SXRlcmF0aW9uID0gaXRlcmF0aW9uKTsgLy8gZWRnZSBjYXNlIC0gaWYgc29tZW9uZSBkb2VzIGFkZFBhdXNlKCkgYXQgdGhlIHZlcnkgYmVnaW5uaW5nIG9mIGEgcmVwZWF0aW5nIHRpbWVsaW5lLCB0aGF0IHBhdXNlIGlzIHRlY2huaWNhbGx5IGF0IHRoZSBzYW1lIHNwb3QgYXMgdGhlIGVuZCB3aGljaCBjYXVzZXMgdGhpcy5fdGltZSB0byBnZXQgc2V0IHRvIDAgd2hlbiB0aGUgdG90YWxUaW1lIHdvdWxkIG5vcm1hbGx5IHBsYWNlIHRoZSBwbGF5aGVhZCBhdCB0aGUgZW5kLiBTZWUgaHR0cHM6Ly9nc2FwLmNvbS9mb3J1bXMvdG9waWMvMjM4MjMtY2xvc2luZy1uYXYtYW5pbWF0aW9uLW5vdC13b3JraW5nLW9uLWllLWFuZC1pcGhvbmUtNi1tYXliZS1vdGhlci1vbGRlci1icm93c2VyLz90YWI9Y29tbWVudHMjY29tbWVudC0xMTMwMDUgYWxzbywgdGhpcy5fdFRpbWUgLSBwcmV2SXRlcmF0aW9uICogY3ljbGVEdXJhdGlvbiAtIHRoaXMuX2R1ciA8PSAwIGp1c3QgY2hlY2tzIHRvIG1ha2Ugc3VyZSBpdCB3YXNuJ3QgcHJldmlvdXNseSBpbiB0aGUgXCJyZXBlYXREZWxheVwiIHBvcnRpb25cclxuXHJcbiAgICAgICAgaWYgKHlveW8gJiYgaXRlcmF0aW9uICYgMSkge1xyXG4gICAgICAgICAgdGltZSA9IGR1ciAtIHRpbWU7XHJcbiAgICAgICAgICBpc1lveW8gPSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvKlxyXG4gICAgICAgIG1ha2Ugc3VyZSBjaGlsZHJlbiBhdCB0aGUgZW5kL2JlZ2lubmluZyBvZiB0aGUgdGltZWxpbmUgYXJlIHJlbmRlcmVkIHByb3Blcmx5LiBJZiwgZm9yIGV4YW1wbGUsXHJcbiAgICAgICAgYSAzLXNlY29uZCBsb25nIHRpbWVsaW5lIHJlbmRlcmVkIGF0IDIuOSBzZWNvbmRzIHByZXZpb3VzbHksIGFuZCBub3cgcmVuZGVycyBhdCAzLjIgc2Vjb25kcyAod2hpY2hcclxuICAgICAgICB3b3VsZCBnZXQgdHJhbnNsYXRlZCB0byAyLjggc2Vjb25kcyBpZiB0aGUgdGltZWxpbmUgeW95b3Mgb3IgMC4yIHNlY29uZHMgaWYgaXQganVzdCByZXBlYXRzKSwgdGhlcmVcclxuICAgICAgICBjb3VsZCBiZSBhIGNhbGxiYWNrIG9yIGEgc2hvcnQgdHdlZW4gdGhhdCdzIGF0IDIuOTUgb3IgMyBzZWNvbmRzIGluIHdoaWNoIHdvdWxkbid0IHJlbmRlci4gU29cclxuICAgICAgICB3ZSBuZWVkIHRvIHB1c2ggdGhlIHRpbWVsaW5lIHRvIHRoZSBlbmQgKGFuZC9vciBiZWdpbm5pbmcgZGVwZW5kaW5nIG9uIGl0cyB5b3lvIHZhbHVlKS4gQWxzbyB3ZSBtdXN0XHJcbiAgICAgICAgZW5zdXJlIHRoYXQgemVyby1kdXJhdGlvbiB0d2VlbnMgYXQgdGhlIHZlcnkgYmVnaW5uaW5nIG9yIGVuZCBvZiB0aGUgVGltZWxpbmUgd29yay5cclxuICAgICAgICAqL1xyXG5cclxuXHJcbiAgICAgICAgaWYgKGl0ZXJhdGlvbiAhPT0gcHJldkl0ZXJhdGlvbiAmJiAhdGhpcy5fbG9jaykge1xyXG4gICAgICAgICAgdmFyIHJld2luZGluZyA9IHlveW8gJiYgcHJldkl0ZXJhdGlvbiAmIDEsXHJcbiAgICAgICAgICAgICAgZG9lc1dyYXAgPSByZXdpbmRpbmcgPT09ICh5b3lvICYmIGl0ZXJhdGlvbiAmIDEpO1xyXG4gICAgICAgICAgaXRlcmF0aW9uIDwgcHJldkl0ZXJhdGlvbiAmJiAocmV3aW5kaW5nID0gIXJld2luZGluZyk7XHJcbiAgICAgICAgICBwcmV2VGltZSA9IHJld2luZGluZyA/IDAgOiB0VGltZSAlIGR1ciA/IGR1ciA6IHRUaW1lOyAvLyBpZiB0aGUgcGxheWhlYWQgaXMgbGFuZGluZyBleGFjdGx5IGF0IHRoZSBlbmQgb2YgYW4gaXRlcmF0aW9uLCB1c2UgdGhhdCB0b3RhbFRpbWUgcmF0aGVyIHRoYW4gb25seSB0aGUgZHVyYXRpb24sIG90aGVyd2lzZSBpdCdsbCBza2lwIHRoZSAybmQgcmVuZGVyIHNpbmNlIGl0J3MgZWZmZWN0aXZlbHkgYXQgdGhlIHNhbWUgdGltZS5cclxuXHJcbiAgICAgICAgICB0aGlzLl9sb2NrID0gMTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyKHByZXZUaW1lIHx8IChpc1lveW8gPyAwIDogX3JvdW5kUHJlY2lzZShpdGVyYXRpb24gKiBjeWNsZUR1cmF0aW9uKSksIHN1cHByZXNzRXZlbnRzLCAhZHVyKS5fbG9jayA9IDA7XHJcbiAgICAgICAgICB0aGlzLl90VGltZSA9IHRUaW1lOyAvLyBpZiBhIHVzZXIgZ2V0cyB0aGUgaXRlcmF0aW9uKCkgaW5zaWRlIHRoZSBvblJlcGVhdCwgZm9yIGV4YW1wbGUsIGl0IHNob3VsZCBiZSBhY2N1cmF0ZS5cclxuXHJcbiAgICAgICAgICAhc3VwcHJlc3NFdmVudHMgJiYgdGhpcy5wYXJlbnQgJiYgX2NhbGxiYWNrKHRoaXMsIFwib25SZXBlYXRcIik7XHJcbiAgICAgICAgICB0aGlzLnZhcnMucmVwZWF0UmVmcmVzaCAmJiAhaXNZb3lvICYmICh0aGlzLmludmFsaWRhdGUoKS5fbG9jayA9IDEpO1xyXG5cclxuICAgICAgICAgIGlmIChwcmV2VGltZSAmJiBwcmV2VGltZSAhPT0gdGhpcy5fdGltZSB8fCBwcmV2UGF1c2VkICE9PSAhdGhpcy5fdHMgfHwgdGhpcy52YXJzLm9uUmVwZWF0ICYmICF0aGlzLnBhcmVudCAmJiAhdGhpcy5fYWN0KSB7XHJcbiAgICAgICAgICAgIC8vIGlmIHByZXZUaW1lIGlzIDAgYW5kIHdlIHJlbmRlciBhdCB0aGUgdmVyeSBlbmQsIF90aW1lIHdpbGwgYmUgdGhlIGVuZCwgdGh1cyB3b24ndCBtYXRjaC4gU28gaW4gdGhpcyBlZGdlIGNhc2UsIHByZXZUaW1lIHdvbid0IG1hdGNoIF90aW1lIGJ1dCB0aGF0J3Mgb2theS4gSWYgaXQgZ2V0cyBraWxsZWQgaW4gdGhlIG9uUmVwZWF0LCBlamVjdCBhcyB3ZWxsLlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBkdXIgPSB0aGlzLl9kdXI7IC8vIGluIGNhc2UgdGhlIGR1cmF0aW9uIGNoYW5nZWQgaW4gdGhlIG9uUmVwZWF0XHJcblxyXG4gICAgICAgICAgdER1ciA9IHRoaXMuX3REdXI7XHJcblxyXG4gICAgICAgICAgaWYgKGRvZXNXcmFwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvY2sgPSAyO1xyXG4gICAgICAgICAgICBwcmV2VGltZSA9IHJld2luZGluZyA/IGR1ciA6IC0wLjAwMDE7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyKHByZXZUaW1lLCB0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy52YXJzLnJlcGVhdFJlZnJlc2ggJiYgIWlzWW95byAmJiB0aGlzLmludmFsaWRhdGUoKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLl9sb2NrID0gMDtcclxuXHJcbiAgICAgICAgICBpZiAoIXRoaXMuX3RzICYmICFwcmV2UGF1c2VkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgICAgfSAvL2luIG9yZGVyIGZvciB5b3lvRWFzZSB0byB3b3JrIHByb3Blcmx5IHdoZW4gdGhlcmUncyBhIHN0YWdnZXIsIHdlIG11c3Qgc3dhcCBvdXQgdGhlIGVhc2UgaW4gZWFjaCBzdWItdHdlZW4uXHJcblxyXG5cclxuICAgICAgICAgIF9wcm9wYWdhdGVZb3lvRWFzZSh0aGlzLCBpc1lveW8pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuX2hhc1BhdXNlICYmICF0aGlzLl9mb3JjaW5nICYmIHRoaXMuX2xvY2sgPCAyKSB7XHJcbiAgICAgICAgcGF1c2VUd2VlbiA9IF9maW5kTmV4dFBhdXNlVHdlZW4odGhpcywgX3JvdW5kUHJlY2lzZShwcmV2VGltZSksIF9yb3VuZFByZWNpc2UodGltZSkpO1xyXG5cclxuICAgICAgICBpZiAocGF1c2VUd2Vlbikge1xyXG4gICAgICAgICAgdFRpbWUgLT0gdGltZSAtICh0aW1lID0gcGF1c2VUd2Vlbi5fc3RhcnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5fdFRpbWUgPSB0VGltZTtcclxuICAgICAgdGhpcy5fdGltZSA9IHRpbWU7XHJcbiAgICAgIHRoaXMuX2FjdCA9ICF0aW1lU2NhbGU7IC8vYXMgbG9uZyBhcyBpdCdzIG5vdCBwYXVzZWQsIGZvcmNlIGl0IHRvIGJlIGFjdGl2ZSBzbyB0aGF0IGlmIHRoZSB1c2VyIHJlbmRlcnMgaW5kZXBlbmRlbnQgb2YgdGhlIHBhcmVudCB0aW1lbGluZSwgaXQnbGwgYmUgZm9yY2VkIHRvIHJlLXJlbmRlciBvbiB0aGUgbmV4dCB0aWNrLlxyXG5cclxuICAgICAgaWYgKCF0aGlzLl9pbml0dGVkKSB7XHJcbiAgICAgICAgdGhpcy5fb25VcGRhdGUgPSB0aGlzLnZhcnMub25VcGRhdGU7XHJcbiAgICAgICAgdGhpcy5faW5pdHRlZCA9IDE7XHJcbiAgICAgICAgdGhpcy5felRpbWUgPSB0b3RhbFRpbWU7XHJcbiAgICAgICAgcHJldlRpbWUgPSAwOyAvLyB1cG9uIGluaXQsIHRoZSBwbGF5aGVhZCBzaG91bGQgYWx3YXlzIGdvIGZvcndhcmQ7IHNvbWVvbmUgY291bGQgaW52YWxpZGF0ZSgpIGEgY29tcGxldGVkIHRpbWVsaW5lIGFuZCB0aGVuIGlmIHRoZXkgcmVzdGFydCgpLCB0aGF0IHdvdWxkIG1ha2UgY2hpbGQgdHdlZW5zIHJlbmRlciBpbiByZXZlcnNlIG9yZGVyIHdoaWNoIGNvdWxkIGxvY2sgaW4gdGhlIHdyb25nIHN0YXJ0aW5nIHZhbHVlcyBpZiB0aGV5IGJ1aWxkIG9uIGVhY2ggb3RoZXIsIGxpa2UgdGwudG8ob2JqLCB7eDogMTAwfSkudG8ob2JqLCB7eDogMH0pLlxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIXByZXZUaW1lICYmIHRUaW1lICYmICFzdXBwcmVzc0V2ZW50cyAmJiAhcHJldkl0ZXJhdGlvbikge1xyXG4gICAgICAgIF9jYWxsYmFjayh0aGlzLCBcIm9uU3RhcnRcIik7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl90VGltZSAhPT0gdFRpbWUpIHtcclxuICAgICAgICAgIC8vIGluIGNhc2UgdGhlIG9uU3RhcnQgdHJpZ2dlcmVkIGEgcmVuZGVyIGF0IGEgZGlmZmVyZW50IHNwb3QsIGVqZWN0LiBMaWtlIGlmIHNvbWVvbmUgZGlkIGFuaW1hdGlvbi5wYXVzZSgwLjUpIG9yIHNvbWV0aGluZyBpbnNpZGUgdGhlIG9uU3RhcnQuXHJcbiAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aW1lID49IHByZXZUaW1lICYmIHRvdGFsVGltZSA+PSAwKSB7XHJcbiAgICAgICAgY2hpbGQgPSB0aGlzLl9maXJzdDtcclxuXHJcbiAgICAgICAgd2hpbGUgKGNoaWxkKSB7XHJcbiAgICAgICAgICBuZXh0ID0gY2hpbGQuX25leHQ7XHJcblxyXG4gICAgICAgICAgaWYgKChjaGlsZC5fYWN0IHx8IHRpbWUgPj0gY2hpbGQuX3N0YXJ0KSAmJiBjaGlsZC5fdHMgJiYgcGF1c2VUd2VlbiAhPT0gY2hpbGQpIHtcclxuICAgICAgICAgICAgaWYgKGNoaWxkLnBhcmVudCAhPT0gdGhpcykge1xyXG4gICAgICAgICAgICAgIC8vIGFuIGV4dHJlbWUgZWRnZSBjYXNlIC0gdGhlIGNoaWxkJ3MgcmVuZGVyIGNvdWxkIGRvIHNvbWV0aGluZyBsaWtlIGtpbGwoKSB0aGUgXCJuZXh0XCIgb25lIGluIHRoZSBsaW5rZWQgbGlzdCwgb3IgcmVwYXJlbnQgaXQuIEluIHRoYXQgY2FzZSB3ZSBtdXN0IHJlLWluaXRpYXRlIHRoZSB3aG9sZSByZW5kZXIgdG8gYmUgc2FmZS5cclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXIodG90YWxUaW1lLCBzdXBwcmVzc0V2ZW50cywgZm9yY2UpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjaGlsZC5yZW5kZXIoY2hpbGQuX3RzID4gMCA/ICh0aW1lIC0gY2hpbGQuX3N0YXJ0KSAqIGNoaWxkLl90cyA6IChjaGlsZC5fZGlydHkgPyBjaGlsZC50b3RhbER1cmF0aW9uKCkgOiBjaGlsZC5fdER1cikgKyAodGltZSAtIGNoaWxkLl9zdGFydCkgKiBjaGlsZC5fdHMsIHN1cHByZXNzRXZlbnRzLCBmb3JjZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGltZSAhPT0gdGhpcy5fdGltZSB8fCAhdGhpcy5fdHMgJiYgIXByZXZQYXVzZWQpIHtcclxuICAgICAgICAgICAgICAvL2luIGNhc2UgYSB0d2VlbiBwYXVzZXMgb3Igc2Vla3MgdGhlIHRpbWVsaW5lIHdoZW4gcmVuZGVyaW5nLCBsaWtlIGluc2lkZSBvZiBhbiBvblVwZGF0ZS9vbkNvbXBsZXRlXHJcbiAgICAgICAgICAgICAgcGF1c2VUd2VlbiA9IDA7XHJcbiAgICAgICAgICAgICAgbmV4dCAmJiAodFRpbWUgKz0gdGhpcy5felRpbWUgPSAtX3RpbnlOdW0pOyAvLyBpdCBkaWRuJ3QgZmluaXNoIHJlbmRlcmluZywgc28gZmxhZyB6VGltZSBhcyBuZWdhdGl2ZSBzbyB0aGF0IHRoZSBuZXh0IHRpbWUgcmVuZGVyKCkgaXMgY2FsbGVkIGl0J2xsIGJlIGZvcmNlZCAodG8gcmVuZGVyIGFueSByZW1haW5pbmcgY2hpbGRyZW4pXHJcblxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY2hpbGQgPSBuZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjaGlsZCA9IHRoaXMuX2xhc3Q7XHJcbiAgICAgICAgdmFyIGFkanVzdGVkVGltZSA9IHRvdGFsVGltZSA8IDAgPyB0b3RhbFRpbWUgOiB0aW1lOyAvL3doZW4gdGhlIHBsYXloZWFkIGdvZXMgYmFja3dhcmQgYmV5b25kIHRoZSBzdGFydCBvZiB0aGlzIHRpbWVsaW5lLCB3ZSBtdXN0IHBhc3MgdGhhdCBpbmZvcm1hdGlvbiBkb3duIHRvIHRoZSBjaGlsZCBhbmltYXRpb25zIHNvIHRoYXQgemVyby1kdXJhdGlvbiB0d2VlbnMga25vdyB3aGV0aGVyIHRvIHJlbmRlciB0aGVpciBzdGFydGluZyBvciBlbmRpbmcgdmFsdWVzLlxyXG5cclxuICAgICAgICB3aGlsZSAoY2hpbGQpIHtcclxuICAgICAgICAgIG5leHQgPSBjaGlsZC5fcHJldjtcclxuXHJcbiAgICAgICAgICBpZiAoKGNoaWxkLl9hY3QgfHwgYWRqdXN0ZWRUaW1lIDw9IGNoaWxkLl9lbmQpICYmIGNoaWxkLl90cyAmJiBwYXVzZVR3ZWVuICE9PSBjaGlsZCkge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQucGFyZW50ICE9PSB0aGlzKSB7XHJcbiAgICAgICAgICAgICAgLy8gYW4gZXh0cmVtZSBlZGdlIGNhc2UgLSB0aGUgY2hpbGQncyByZW5kZXIgY291bGQgZG8gc29tZXRoaW5nIGxpa2Uga2lsbCgpIHRoZSBcIm5leHRcIiBvbmUgaW4gdGhlIGxpbmtlZCBsaXN0LCBvciByZXBhcmVudCBpdC4gSW4gdGhhdCBjYXNlIHdlIG11c3QgcmUtaW5pdGlhdGUgdGhlIHdob2xlIHJlbmRlciB0byBiZSBzYWZlLlxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlbmRlcih0b3RhbFRpbWUsIHN1cHByZXNzRXZlbnRzLCBmb3JjZSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNoaWxkLnJlbmRlcihjaGlsZC5fdHMgPiAwID8gKGFkanVzdGVkVGltZSAtIGNoaWxkLl9zdGFydCkgKiBjaGlsZC5fdHMgOiAoY2hpbGQuX2RpcnR5ID8gY2hpbGQudG90YWxEdXJhdGlvbigpIDogY2hpbGQuX3REdXIpICsgKGFkanVzdGVkVGltZSAtIGNoaWxkLl9zdGFydCkgKiBjaGlsZC5fdHMsIHN1cHByZXNzRXZlbnRzLCBmb3JjZSB8fCBfcmV2ZXJ0aW5nICYmIF9pc1JldmVydFdvcnRoeShjaGlsZCkpOyAvLyBpZiByZXZlcnRpbmcsIHdlIHNob3VsZCBhbHdheXMgZm9yY2UgcmVuZGVycyBvZiBpbml0dGVkIHR3ZWVucyAoYnV0IHJlbWVtYmVyIHRoYXQgLmZyb21UbygpIG9yIC5mcm9tKCkgbWF5IGhhdmUgYSBfc3RhcnRBdCBidXQgbm90IF9pbml0dGVkIHlldCkuIElmLCBmb3IgZXhhbXBsZSwgYSAuZnJvbVRvKCkgdHdlZW4gd2l0aCBhIHN0YWdnZXIgKHdoaWNoIGNyZWF0ZXMgYW4gaW50ZXJuYWwgdGltZWxpbmUpIGdldHMgcmV2ZXJ0ZWQgQkVGT1JFIHNvbWUgb2YgaXRzIGNoaWxkIHR3ZWVucyByZW5kZXIgZm9yIHRoZSBmaXJzdCB0aW1lLCBpdCBtYXkgbm90IHByb3Blcmx5IHRyaWdnZXIgdGhlbSB0byByZXZlcnQuXHJcblxyXG4gICAgICAgICAgICBpZiAodGltZSAhPT0gdGhpcy5fdGltZSB8fCAhdGhpcy5fdHMgJiYgIXByZXZQYXVzZWQpIHtcclxuICAgICAgICAgICAgICAvL2luIGNhc2UgYSB0d2VlbiBwYXVzZXMgb3Igc2Vla3MgdGhlIHRpbWVsaW5lIHdoZW4gcmVuZGVyaW5nLCBsaWtlIGluc2lkZSBvZiBhbiBvblVwZGF0ZS9vbkNvbXBsZXRlXHJcbiAgICAgICAgICAgICAgcGF1c2VUd2VlbiA9IDA7XHJcbiAgICAgICAgICAgICAgbmV4dCAmJiAodFRpbWUgKz0gdGhpcy5felRpbWUgPSBhZGp1c3RlZFRpbWUgPyAtX3RpbnlOdW0gOiBfdGlueU51bSk7IC8vIGl0IGRpZG4ndCBmaW5pc2ggcmVuZGVyaW5nLCBzbyBhZGp1c3QgelRpbWUgc28gdGhhdCBzbyB0aGF0IHRoZSBuZXh0IHRpbWUgcmVuZGVyKCkgaXMgY2FsbGVkIGl0J2xsIGJlIGZvcmNlZCAodG8gcmVuZGVyIGFueSByZW1haW5pbmcgY2hpbGRyZW4pXHJcblxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY2hpbGQgPSBuZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHBhdXNlVHdlZW4gJiYgIXN1cHByZXNzRXZlbnRzKSB7XHJcbiAgICAgICAgdGhpcy5wYXVzZSgpO1xyXG4gICAgICAgIHBhdXNlVHdlZW4ucmVuZGVyKHRpbWUgPj0gcHJldlRpbWUgPyAwIDogLV90aW55TnVtKS5felRpbWUgPSB0aW1lID49IHByZXZUaW1lID8gMSA6IC0xO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fdHMpIHtcclxuICAgICAgICAgIC8vdGhlIGNhbGxiYWNrIHJlc3VtZWQgcGxheWJhY2shIFNvIHNpbmNlIHdlIG1heSBoYXZlIGhlbGQgYmFjayB0aGUgcGxheWhlYWQgZHVlIHRvIHdoZXJlIHRoZSBwYXVzZSBpcyBwb3NpdGlvbmVkLCBnbyBhaGVhZCBhbmQganVtcCB0byB3aGVyZSBpdCdzIFNVUFBPU0VEIHRvIGJlIChpZiBubyBwYXVzZSBoYXBwZW5lZCkuXHJcbiAgICAgICAgICB0aGlzLl9zdGFydCA9IHByZXZTdGFydDsgLy9pZiB0aGUgcGF1c2Ugd2FzIGF0IGFuIGVhcmxpZXIgdGltZSBhbmQgdGhlIHVzZXIgcmVzdW1lZCBpbiB0aGUgY2FsbGJhY2ssIGl0IGNvdWxkIHJlcG9zaXRpb24gdGhlIHRpbWVsaW5lIChjaGFuZ2luZyBpdHMgc3RhcnRUaW1lKSwgdGhyb3dpbmcgdGhpbmdzIG9mZiBzbGlnaHRseSwgc28gd2UgbWFrZSBzdXJlIHRoZSBfc3RhcnQgZG9lc24ndCBzaGlmdC5cclxuXHJcbiAgICAgICAgICBfc2V0RW5kKHRoaXMpO1xyXG5cclxuICAgICAgICAgIHJldHVybiB0aGlzLnJlbmRlcih0b3RhbFRpbWUsIHN1cHByZXNzRXZlbnRzLCBmb3JjZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLl9vblVwZGF0ZSAmJiAhc3VwcHJlc3NFdmVudHMgJiYgX2NhbGxiYWNrKHRoaXMsIFwib25VcGRhdGVcIiwgdHJ1ZSk7XHJcbiAgICAgIGlmICh0VGltZSA9PT0gdER1ciAmJiB0aGlzLl90VGltZSA+PSB0aGlzLnRvdGFsRHVyYXRpb24oKSB8fCAhdFRpbWUgJiYgcHJldlRpbWUpIGlmIChwcmV2U3RhcnQgPT09IHRoaXMuX3N0YXJ0IHx8IE1hdGguYWJzKHRpbWVTY2FsZSkgIT09IE1hdGguYWJzKHRoaXMuX3RzKSkgaWYgKCF0aGlzLl9sb2NrKSB7XHJcbiAgICAgICAgLy8gcmVtZW1iZXIsIGEgY2hpbGQncyBjYWxsYmFjayBtYXkgYWx0ZXIgdGhpcyB0aW1lbGluZSdzIHBsYXloZWFkIG9yIHRpbWVTY2FsZSB3aGljaCBpcyB3aHkgd2UgbmVlZCB0byBhZGQgc29tZSBvZiB0aGVzZSBjaGVja3MuXHJcbiAgICAgICAgKHRvdGFsVGltZSB8fCAhZHVyKSAmJiAodFRpbWUgPT09IHREdXIgJiYgdGhpcy5fdHMgPiAwIHx8ICF0VGltZSAmJiB0aGlzLl90cyA8IDApICYmIF9yZW1vdmVGcm9tUGFyZW50KHRoaXMsIDEpOyAvLyBkb24ndCByZW1vdmUgaWYgdGhlIHRpbWVsaW5lIGlzIHJldmVyc2VkIGFuZCB0aGUgcGxheWhlYWQgaXNuJ3QgYXQgMCwgb3RoZXJ3aXNlIHRsLnByb2dyZXNzKDEpLnJldmVyc2UoKSB3b24ndCB3b3JrLiBPbmx5IHJlbW92ZSBpZiB0aGUgcGxheWhlYWQgaXMgYXQgdGhlIGVuZCBhbmQgdGltZVNjYWxlIGlzIHBvc2l0aXZlLCBvciBpZiB0aGUgcGxheWhlYWQgaXMgYXQgMCBhbmQgdGhlIHRpbWVTY2FsZSBpcyBuZWdhdGl2ZS5cclxuXHJcbiAgICAgICAgaWYgKCFzdXBwcmVzc0V2ZW50cyAmJiAhKHRvdGFsVGltZSA8IDAgJiYgIXByZXZUaW1lKSAmJiAodFRpbWUgfHwgcHJldlRpbWUgfHwgIXREdXIpKSB7XHJcbiAgICAgICAgICBfY2FsbGJhY2sodGhpcywgdFRpbWUgPT09IHREdXIgJiYgdG90YWxUaW1lID49IDAgPyBcIm9uQ29tcGxldGVcIiA6IFwib25SZXZlcnNlQ29tcGxldGVcIiwgdHJ1ZSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5fcHJvbSAmJiAhKHRUaW1lIDwgdER1ciAmJiB0aGlzLnRpbWVTY2FsZSgpID4gMCkgJiYgdGhpcy5fcHJvbSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH07XHJcblxyXG4gIF9wcm90bzIuYWRkID0gZnVuY3Rpb24gYWRkKGNoaWxkLCBwb3NpdGlvbikge1xyXG4gICAgdmFyIF90aGlzMiA9IHRoaXM7XHJcblxyXG4gICAgX2lzTnVtYmVyKHBvc2l0aW9uKSB8fCAocG9zaXRpb24gPSBfcGFyc2VQb3NpdGlvbih0aGlzLCBwb3NpdGlvbiwgY2hpbGQpKTtcclxuXHJcbiAgICBpZiAoIShjaGlsZCBpbnN0YW5jZW9mIEFuaW1hdGlvbikpIHtcclxuICAgICAgaWYgKF9pc0FycmF5KGNoaWxkKSkge1xyXG4gICAgICAgIGNoaWxkLmZvckVhY2goZnVuY3Rpb24gKG9iaikge1xyXG4gICAgICAgICAgcmV0dXJuIF90aGlzMi5hZGQob2JqLCBwb3NpdGlvbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChfaXNTdHJpbmcoY2hpbGQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkTGFiZWwoY2hpbGQsIHBvc2l0aW9uKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKF9pc0Z1bmN0aW9uKGNoaWxkKSkge1xyXG4gICAgICAgIGNoaWxkID0gVHdlZW4uZGVsYXllZENhbGwoMCwgY2hpbGQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMgIT09IGNoaWxkID8gX2FkZFRvVGltZWxpbmUodGhpcywgY2hpbGQsIHBvc2l0aW9uKSA6IHRoaXM7IC8vZG9uJ3QgYWxsb3cgYSB0aW1lbGluZSB0byBiZSBhZGRlZCB0byBpdHNlbGYgYXMgYSBjaGlsZCFcclxuICB9O1xyXG5cclxuICBfcHJvdG8yLmdldENoaWxkcmVuID0gZnVuY3Rpb24gZ2V0Q2hpbGRyZW4obmVzdGVkLCB0d2VlbnMsIHRpbWVsaW5lcywgaWdub3JlQmVmb3JlVGltZSkge1xyXG4gICAgaWYgKG5lc3RlZCA9PT0gdm9pZCAwKSB7XHJcbiAgICAgIG5lc3RlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR3ZWVucyA9PT0gdm9pZCAwKSB7XHJcbiAgICAgIHR3ZWVucyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRpbWVsaW5lcyA9PT0gdm9pZCAwKSB7XHJcbiAgICAgIHRpbWVsaW5lcyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlnbm9yZUJlZm9yZVRpbWUgPT09IHZvaWQgMCkge1xyXG4gICAgICBpZ25vcmVCZWZvcmVUaW1lID0gLV9iaWdOdW07XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGEgPSBbXSxcclxuICAgICAgICBjaGlsZCA9IHRoaXMuX2ZpcnN0O1xyXG5cclxuICAgIHdoaWxlIChjaGlsZCkge1xyXG4gICAgICBpZiAoY2hpbGQuX3N0YXJ0ID49IGlnbm9yZUJlZm9yZVRpbWUpIHtcclxuICAgICAgICBpZiAoY2hpbGQgaW5zdGFuY2VvZiBUd2Vlbikge1xyXG4gICAgICAgICAgdHdlZW5zICYmIGEucHVzaChjaGlsZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRpbWVsaW5lcyAmJiBhLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgbmVzdGVkICYmIGEucHVzaC5hcHBseShhLCBjaGlsZC5nZXRDaGlsZHJlbih0cnVlLCB0d2VlbnMsIHRpbWVsaW5lcykpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgY2hpbGQgPSBjaGlsZC5fbmV4dDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYTtcclxuICB9O1xyXG5cclxuICBfcHJvdG8yLmdldEJ5SWQgPSBmdW5jdGlvbiBnZXRCeUlkKGlkKSB7XHJcbiAgICB2YXIgYW5pbWF0aW9ucyA9IHRoaXMuZ2V0Q2hpbGRyZW4oMSwgMSwgMSksXHJcbiAgICAgICAgaSA9IGFuaW1hdGlvbnMubGVuZ3RoO1xyXG5cclxuICAgIHdoaWxlIChpLS0pIHtcclxuICAgICAgaWYgKGFuaW1hdGlvbnNbaV0udmFycy5pZCA9PT0gaWQpIHtcclxuICAgICAgICByZXR1cm4gYW5pbWF0aW9uc1tpXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIF9wcm90bzIucmVtb3ZlID0gZnVuY3Rpb24gcmVtb3ZlKGNoaWxkKSB7XHJcbiAgICBpZiAoX2lzU3RyaW5nKGNoaWxkKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5yZW1vdmVMYWJlbChjaGlsZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKF9pc0Z1bmN0aW9uKGNoaWxkKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5raWxsVHdlZW5zT2YoY2hpbGQpO1xyXG4gICAgfVxyXG5cclxuICAgIGNoaWxkLnBhcmVudCA9PT0gdGhpcyAmJiBfcmVtb3ZlTGlua2VkTGlzdEl0ZW0odGhpcywgY2hpbGQpO1xyXG5cclxuICAgIGlmIChjaGlsZCA9PT0gdGhpcy5fcmVjZW50KSB7XHJcbiAgICAgIHRoaXMuX3JlY2VudCA9IHRoaXMuX2xhc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIF91bmNhY2hlKHRoaXMpO1xyXG4gIH07XHJcblxyXG4gIF9wcm90bzIudG90YWxUaW1lID0gZnVuY3Rpb24gdG90YWxUaW1lKF90b3RhbFRpbWUyLCBzdXBwcmVzc0V2ZW50cykge1xyXG4gICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90VGltZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9mb3JjaW5nID0gMTtcclxuXHJcbiAgICBpZiAoIXRoaXMuX2RwICYmIHRoaXMuX3RzKSB7XHJcbiAgICAgIC8vc3BlY2lhbCBjYXNlIGZvciB0aGUgZ2xvYmFsIHRpbWVsaW5lIChvciBhbnkgb3RoZXIgdGhhdCBoYXMgbm8gcGFyZW50IG9yIGRldGFjaGVkIHBhcmVudCkuXHJcbiAgICAgIHRoaXMuX3N0YXJ0ID0gX3JvdW5kUHJlY2lzZShfdGlja2VyLnRpbWUgLSAodGhpcy5fdHMgPiAwID8gX3RvdGFsVGltZTIgLyB0aGlzLl90cyA6ICh0aGlzLnRvdGFsRHVyYXRpb24oKSAtIF90b3RhbFRpbWUyKSAvIC10aGlzLl90cykpO1xyXG4gICAgfVxyXG5cclxuICAgIF9BbmltYXRpb24ucHJvdG90eXBlLnRvdGFsVGltZS5jYWxsKHRoaXMsIF90b3RhbFRpbWUyLCBzdXBwcmVzc0V2ZW50cyk7XHJcblxyXG4gICAgdGhpcy5fZm9yY2luZyA9IDA7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9O1xyXG5cclxuICBfcHJvdG8yLmFkZExhYmVsID0gZnVuY3Rpb24gYWRkTGFiZWwobGFiZWwsIHBvc2l0aW9uKSB7XHJcbiAgICB0aGlzLmxhYmVsc1tsYWJlbF0gPSBfcGFyc2VQb3NpdGlvbih0aGlzLCBwb3NpdGlvbik7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9O1xyXG5cclxuICBfcHJvdG8yLnJlbW92ZUxhYmVsID0gZnVuY3Rpb24gcmVtb3ZlTGFiZWwobGFiZWwpIHtcclxuICAgIGRlbGV0ZSB0aGlzLmxhYmVsc1tsYWJlbF07XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9O1xyXG5cclxuICBfcHJvdG8yLmFkZFBhdXNlID0gZnVuY3Rpb24gYWRkUGF1c2UocG9zaXRpb24sIGNhbGxiYWNrLCBwYXJhbXMpIHtcclxuICAgIHZhciB0ID0gVHdlZW4uZGVsYXllZENhbGwoMCwgY2FsbGJhY2sgfHwgX2VtcHR5RnVuYywgcGFyYW1zKTtcclxuICAgIHQuZGF0YSA9IFwiaXNQYXVzZVwiO1xyXG4gICAgdGhpcy5faGFzUGF1c2UgPSAxO1xyXG4gICAgcmV0dXJuIF9hZGRUb1RpbWVsaW5lKHRoaXMsIHQsIF9wYXJzZVBvc2l0aW9uKHRoaXMsIHBvc2l0aW9uKSk7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvMi5yZW1vdmVQYXVzZSA9IGZ1bmN0aW9uIHJlbW92ZVBhdXNlKHBvc2l0aW9uKSB7XHJcbiAgICB2YXIgY2hpbGQgPSB0aGlzLl9maXJzdDtcclxuICAgIHBvc2l0aW9uID0gX3BhcnNlUG9zaXRpb24odGhpcywgcG9zaXRpb24pO1xyXG5cclxuICAgIHdoaWxlIChjaGlsZCkge1xyXG4gICAgICBpZiAoY2hpbGQuX3N0YXJ0ID09PSBwb3NpdGlvbiAmJiBjaGlsZC5kYXRhID09PSBcImlzUGF1c2VcIikge1xyXG4gICAgICAgIF9yZW1vdmVGcm9tUGFyZW50KGNoaWxkKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY2hpbGQgPSBjaGlsZC5fbmV4dDtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBfcHJvdG8yLmtpbGxUd2VlbnNPZiA9IGZ1bmN0aW9uIGtpbGxUd2VlbnNPZih0YXJnZXRzLCBwcm9wcywgb25seUFjdGl2ZSkge1xyXG4gICAgdmFyIHR3ZWVucyA9IHRoaXMuZ2V0VHdlZW5zT2YodGFyZ2V0cywgb25seUFjdGl2ZSksXHJcbiAgICAgICAgaSA9IHR3ZWVucy5sZW5ndGg7XHJcblxyXG4gICAgd2hpbGUgKGktLSkge1xyXG4gICAgICBfb3ZlcndyaXRpbmdUd2VlbiAhPT0gdHdlZW5zW2ldICYmIHR3ZWVuc1tpXS5raWxsKHRhcmdldHMsIHByb3BzKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9O1xyXG5cclxuICBfcHJvdG8yLmdldFR3ZWVuc09mID0gZnVuY3Rpb24gZ2V0VHdlZW5zT2YodGFyZ2V0cywgb25seUFjdGl2ZSkge1xyXG4gICAgdmFyIGEgPSBbXSxcclxuICAgICAgICBwYXJzZWRUYXJnZXRzID0gdG9BcnJheSh0YXJnZXRzKSxcclxuICAgICAgICBjaGlsZCA9IHRoaXMuX2ZpcnN0LFxyXG4gICAgICAgIGlzR2xvYmFsVGltZSA9IF9pc051bWJlcihvbmx5QWN0aXZlKSxcclxuICAgICAgICAvLyBhIG51bWJlciBpcyBpbnRlcnByZXRlZCBhcyBhIGdsb2JhbCB0aW1lLiBJZiB0aGUgYW5pbWF0aW9uIHNwYW5zXHJcbiAgICBjaGlsZHJlbjtcclxuXHJcbiAgICB3aGlsZSAoY2hpbGQpIHtcclxuICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgVHdlZW4pIHtcclxuICAgICAgICBpZiAoX2FycmF5Q29udGFpbnNBbnkoY2hpbGQuX3RhcmdldHMsIHBhcnNlZFRhcmdldHMpICYmIChpc0dsb2JhbFRpbWUgPyAoIV9vdmVyd3JpdGluZ1R3ZWVuIHx8IGNoaWxkLl9pbml0dGVkICYmIGNoaWxkLl90cykgJiYgY2hpbGQuZ2xvYmFsVGltZSgwKSA8PSBvbmx5QWN0aXZlICYmIGNoaWxkLmdsb2JhbFRpbWUoY2hpbGQudG90YWxEdXJhdGlvbigpKSA+IG9ubHlBY3RpdmUgOiAhb25seUFjdGl2ZSB8fCBjaGlsZC5pc0FjdGl2ZSgpKSkge1xyXG4gICAgICAgICAgLy8gbm90ZTogaWYgdGhpcyBpcyBmb3Igb3ZlcndyaXRpbmcsIGl0IHNob3VsZCBvbmx5IGJlIGZvciB0d2VlbnMgdGhhdCBhcmVuJ3QgcGF1c2VkIGFuZCBhcmUgaW5pdHRlZC5cclxuICAgICAgICAgIGEucHVzaChjaGlsZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKChjaGlsZHJlbiA9IGNoaWxkLmdldFR3ZWVuc09mKHBhcnNlZFRhcmdldHMsIG9ubHlBY3RpdmUpKS5sZW5ndGgpIHtcclxuICAgICAgICBhLnB1c2guYXBwbHkoYSwgY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjaGlsZCA9IGNoaWxkLl9uZXh0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhO1xyXG4gIH0gLy8gcG90ZW50aWFsIGZ1dHVyZSBmZWF0dXJlIC0gdGFyZ2V0cygpIG9uIHRpbWVsaW5lc1xyXG4gIC8vIHRhcmdldHMoKSB7XHJcbiAgLy8gXHRsZXQgcmVzdWx0ID0gW107XHJcbiAgLy8gXHR0aGlzLmdldENoaWxkcmVuKHRydWUsIHRydWUsIGZhbHNlKS5mb3JFYWNoKHQgPT4gcmVzdWx0LnB1c2goLi4udC50YXJnZXRzKCkpKTtcclxuICAvLyBcdHJldHVybiByZXN1bHQuZmlsdGVyKCh2LCBpKSA9PiByZXN1bHQuaW5kZXhPZih2KSA9PT0gaSk7XHJcbiAgLy8gfVxyXG4gIDtcclxuXHJcbiAgX3Byb3RvMi50d2VlblRvID0gZnVuY3Rpb24gdHdlZW5Ubyhwb3NpdGlvbiwgdmFycykge1xyXG4gICAgdmFycyA9IHZhcnMgfHwge307XHJcblxyXG4gICAgdmFyIHRsID0gdGhpcyxcclxuICAgICAgICBlbmRUaW1lID0gX3BhcnNlUG9zaXRpb24odGwsIHBvc2l0aW9uKSxcclxuICAgICAgICBfdmFycyA9IHZhcnMsXHJcbiAgICAgICAgc3RhcnRBdCA9IF92YXJzLnN0YXJ0QXQsXHJcbiAgICAgICAgX29uU3RhcnQgPSBfdmFycy5vblN0YXJ0LFxyXG4gICAgICAgIG9uU3RhcnRQYXJhbXMgPSBfdmFycy5vblN0YXJ0UGFyYW1zLFxyXG4gICAgICAgIGltbWVkaWF0ZVJlbmRlciA9IF92YXJzLmltbWVkaWF0ZVJlbmRlcixcclxuICAgICAgICBpbml0dGVkLFxyXG4gICAgICAgIHR3ZWVuID0gVHdlZW4udG8odGwsIF9zZXREZWZhdWx0cyh7XHJcbiAgICAgIGVhc2U6IHZhcnMuZWFzZSB8fCBcIm5vbmVcIixcclxuICAgICAgbGF6eTogZmFsc2UsXHJcbiAgICAgIGltbWVkaWF0ZVJlbmRlcjogZmFsc2UsXHJcbiAgICAgIHRpbWU6IGVuZFRpbWUsXHJcbiAgICAgIG92ZXJ3cml0ZTogXCJhdXRvXCIsXHJcbiAgICAgIGR1cmF0aW9uOiB2YXJzLmR1cmF0aW9uIHx8IE1hdGguYWJzKChlbmRUaW1lIC0gKHN0YXJ0QXQgJiYgXCJ0aW1lXCIgaW4gc3RhcnRBdCA/IHN0YXJ0QXQudGltZSA6IHRsLl90aW1lKSkgLyB0bC50aW1lU2NhbGUoKSkgfHwgX3RpbnlOdW0sXHJcbiAgICAgIG9uU3RhcnQ6IGZ1bmN0aW9uIG9uU3RhcnQoKSB7XHJcbiAgICAgICAgdGwucGF1c2UoKTtcclxuXHJcbiAgICAgICAgaWYgKCFpbml0dGVkKSB7XHJcbiAgICAgICAgICB2YXIgZHVyYXRpb24gPSB2YXJzLmR1cmF0aW9uIHx8IE1hdGguYWJzKChlbmRUaW1lIC0gKHN0YXJ0QXQgJiYgXCJ0aW1lXCIgaW4gc3RhcnRBdCA/IHN0YXJ0QXQudGltZSA6IHRsLl90aW1lKSkgLyB0bC50aW1lU2NhbGUoKSk7XHJcbiAgICAgICAgICB0d2Vlbi5fZHVyICE9PSBkdXJhdGlvbiAmJiBfc2V0RHVyYXRpb24odHdlZW4sIGR1cmF0aW9uLCAwLCAxKS5yZW5kZXIodHdlZW4uX3RpbWUsIHRydWUsIHRydWUpO1xyXG4gICAgICAgICAgaW5pdHRlZCA9IDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBfb25TdGFydCAmJiBfb25TdGFydC5hcHBseSh0d2Vlbiwgb25TdGFydFBhcmFtcyB8fCBbXSk7IC8vaW4gY2FzZSB0aGUgdXNlciBoYWQgYW4gb25TdGFydCBpbiB0aGUgdmFycyAtIHdlIGRvbid0IHdhbnQgdG8gb3ZlcndyaXRlIGl0LlxyXG4gICAgICB9XHJcbiAgICB9LCB2YXJzKSk7XHJcblxyXG4gICAgcmV0dXJuIGltbWVkaWF0ZVJlbmRlciA/IHR3ZWVuLnJlbmRlcigwKSA6IHR3ZWVuO1xyXG4gIH07XHJcblxyXG4gIF9wcm90bzIudHdlZW5Gcm9tVG8gPSBmdW5jdGlvbiB0d2VlbkZyb21Ubyhmcm9tUG9zaXRpb24sIHRvUG9zaXRpb24sIHZhcnMpIHtcclxuICAgIHJldHVybiB0aGlzLnR3ZWVuVG8odG9Qb3NpdGlvbiwgX3NldERlZmF1bHRzKHtcclxuICAgICAgc3RhcnRBdDoge1xyXG4gICAgICAgIHRpbWU6IF9wYXJzZVBvc2l0aW9uKHRoaXMsIGZyb21Qb3NpdGlvbilcclxuICAgICAgfVxyXG4gICAgfSwgdmFycykpO1xyXG4gIH07XHJcblxyXG4gIF9wcm90bzIucmVjZW50ID0gZnVuY3Rpb24gcmVjZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlY2VudDtcclxuICB9O1xyXG5cclxuICBfcHJvdG8yLm5leHRMYWJlbCA9IGZ1bmN0aW9uIG5leHRMYWJlbChhZnRlclRpbWUpIHtcclxuICAgIGlmIChhZnRlclRpbWUgPT09IHZvaWQgMCkge1xyXG4gICAgICBhZnRlclRpbWUgPSB0aGlzLl90aW1lO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBfZ2V0TGFiZWxJbkRpcmVjdGlvbih0aGlzLCBfcGFyc2VQb3NpdGlvbih0aGlzLCBhZnRlclRpbWUpKTtcclxuICB9O1xyXG5cclxuICBfcHJvdG8yLnByZXZpb3VzTGFiZWwgPSBmdW5jdGlvbiBwcmV2aW91c0xhYmVsKGJlZm9yZVRpbWUpIHtcclxuICAgIGlmIChiZWZvcmVUaW1lID09PSB2b2lkIDApIHtcclxuICAgICAgYmVmb3JlVGltZSA9IHRoaXMuX3RpbWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIF9nZXRMYWJlbEluRGlyZWN0aW9uKHRoaXMsIF9wYXJzZVBvc2l0aW9uKHRoaXMsIGJlZm9yZVRpbWUpLCAxKTtcclxuICB9O1xyXG5cclxuICBfcHJvdG8yLmN1cnJlbnRMYWJlbCA9IGZ1bmN0aW9uIGN1cnJlbnRMYWJlbCh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyB0aGlzLnNlZWsodmFsdWUsIHRydWUpIDogdGhpcy5wcmV2aW91c0xhYmVsKHRoaXMuX3RpbWUgKyBfdGlueU51bSk7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvMi5zaGlmdENoaWxkcmVuID0gZnVuY3Rpb24gc2hpZnRDaGlsZHJlbihhbW91bnQsIGFkanVzdExhYmVscywgaWdub3JlQmVmb3JlVGltZSkge1xyXG4gICAgaWYgKGlnbm9yZUJlZm9yZVRpbWUgPT09IHZvaWQgMCkge1xyXG4gICAgICBpZ25vcmVCZWZvcmVUaW1lID0gMDtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgY2hpbGQgPSB0aGlzLl9maXJzdCxcclxuICAgICAgICBsYWJlbHMgPSB0aGlzLmxhYmVscyxcclxuICAgICAgICBwO1xyXG5cclxuICAgIHdoaWxlIChjaGlsZCkge1xyXG4gICAgICBpZiAoY2hpbGQuX3N0YXJ0ID49IGlnbm9yZUJlZm9yZVRpbWUpIHtcclxuICAgICAgICBjaGlsZC5fc3RhcnQgKz0gYW1vdW50O1xyXG4gICAgICAgIGNoaWxkLl9lbmQgKz0gYW1vdW50O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjaGlsZCA9IGNoaWxkLl9uZXh0O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChhZGp1c3RMYWJlbHMpIHtcclxuICAgICAgZm9yIChwIGluIGxhYmVscykge1xyXG4gICAgICAgIGlmIChsYWJlbHNbcF0gPj0gaWdub3JlQmVmb3JlVGltZSkge1xyXG4gICAgICAgICAgbGFiZWxzW3BdICs9IGFtb3VudDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gX3VuY2FjaGUodGhpcyk7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvMi5pbnZhbGlkYXRlID0gZnVuY3Rpb24gaW52YWxpZGF0ZShzb2Z0KSB7XHJcbiAgICB2YXIgY2hpbGQgPSB0aGlzLl9maXJzdDtcclxuICAgIHRoaXMuX2xvY2sgPSAwO1xyXG5cclxuICAgIHdoaWxlIChjaGlsZCkge1xyXG4gICAgICBjaGlsZC5pbnZhbGlkYXRlKHNvZnQpO1xyXG4gICAgICBjaGlsZCA9IGNoaWxkLl9uZXh0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBfQW5pbWF0aW9uLnByb3RvdHlwZS5pbnZhbGlkYXRlLmNhbGwodGhpcywgc29mdCk7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvMi5jbGVhciA9IGZ1bmN0aW9uIGNsZWFyKGluY2x1ZGVMYWJlbHMpIHtcclxuICAgIGlmIChpbmNsdWRlTGFiZWxzID09PSB2b2lkIDApIHtcclxuICAgICAgaW5jbHVkZUxhYmVscyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGNoaWxkID0gdGhpcy5fZmlyc3QsXHJcbiAgICAgICAgbmV4dDtcclxuXHJcbiAgICB3aGlsZSAoY2hpbGQpIHtcclxuICAgICAgbmV4dCA9IGNoaWxkLl9uZXh0O1xyXG4gICAgICB0aGlzLnJlbW92ZShjaGlsZCk7XHJcbiAgICAgIGNoaWxkID0gbmV4dDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9kcCAmJiAodGhpcy5fdGltZSA9IHRoaXMuX3RUaW1lID0gdGhpcy5fcFRpbWUgPSAwKTtcclxuICAgIGluY2x1ZGVMYWJlbHMgJiYgKHRoaXMubGFiZWxzID0ge30pO1xyXG4gICAgcmV0dXJuIF91bmNhY2hlKHRoaXMpO1xyXG4gIH07XHJcblxyXG4gIF9wcm90bzIudG90YWxEdXJhdGlvbiA9IGZ1bmN0aW9uIHRvdGFsRHVyYXRpb24odmFsdWUpIHtcclxuICAgIHZhciBtYXggPSAwLFxyXG4gICAgICAgIHNlbGYgPSB0aGlzLFxyXG4gICAgICAgIGNoaWxkID0gc2VsZi5fbGFzdCxcclxuICAgICAgICBwcmV2U3RhcnQgPSBfYmlnTnVtLFxyXG4gICAgICAgIHByZXYsXHJcbiAgICAgICAgc3RhcnQsXHJcbiAgICAgICAgcGFyZW50O1xyXG5cclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBzZWxmLnRpbWVTY2FsZSgoc2VsZi5fcmVwZWF0IDwgMCA/IHNlbGYuZHVyYXRpb24oKSA6IHNlbGYudG90YWxEdXJhdGlvbigpKSAvIChzZWxmLnJldmVyc2VkKCkgPyAtdmFsdWUgOiB2YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzZWxmLl9kaXJ0eSkge1xyXG4gICAgICBwYXJlbnQgPSBzZWxmLnBhcmVudDtcclxuXHJcbiAgICAgIHdoaWxlIChjaGlsZCkge1xyXG4gICAgICAgIHByZXYgPSBjaGlsZC5fcHJldjsgLy9yZWNvcmQgaXQgaGVyZSBpbiBjYXNlIHRoZSB0d2VlbiBjaGFuZ2VzIHBvc2l0aW9uIGluIHRoZSBzZXF1ZW5jZS4uLlxyXG5cclxuICAgICAgICBjaGlsZC5fZGlydHkgJiYgY2hpbGQudG90YWxEdXJhdGlvbigpOyAvL2NvdWxkIGNoYW5nZSB0aGUgdHdlZW4uX3N0YXJ0VGltZSwgc28gbWFrZSBzdXJlIHRoZSBhbmltYXRpb24ncyBjYWNoZSBpcyBjbGVhbiBiZWZvcmUgYW5hbHl6aW5nIGl0LlxyXG5cclxuICAgICAgICBzdGFydCA9IGNoaWxkLl9zdGFydDtcclxuXHJcbiAgICAgICAgaWYgKHN0YXJ0ID4gcHJldlN0YXJ0ICYmIHNlbGYuX3NvcnQgJiYgY2hpbGQuX3RzICYmICFzZWxmLl9sb2NrKSB7XHJcbiAgICAgICAgICAvL2luIGNhc2Ugb25lIG9mIHRoZSB0d2VlbnMgc2hpZnRlZCBvdXQgb2Ygb3JkZXIsIGl0IG5lZWRzIHRvIGJlIHJlLWluc2VydGVkIGludG8gdGhlIGNvcnJlY3QgcG9zaXRpb24gaW4gdGhlIHNlcXVlbmNlXHJcbiAgICAgICAgICBzZWxmLl9sb2NrID0gMTsgLy9wcmV2ZW50IGVuZGxlc3MgcmVjdXJzaXZlIGNhbGxzIC0gdGhlcmUgYXJlIG1ldGhvZHMgdGhhdCBnZXQgdHJpZ2dlcmVkIHRoYXQgY2hlY2sgZHVyYXRpb24vdG90YWxEdXJhdGlvbiB3aGVuIHdlIGFkZCgpLlxyXG5cclxuICAgICAgICAgIF9hZGRUb1RpbWVsaW5lKHNlbGYsIGNoaWxkLCBzdGFydCAtIGNoaWxkLl9kZWxheSwgMSkuX2xvY2sgPSAwO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwcmV2U3RhcnQgPSBzdGFydDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzdGFydCA8IDAgJiYgY2hpbGQuX3RzKSB7XHJcbiAgICAgICAgICAvL2NoaWxkcmVuIGFyZW4ndCBhbGxvd2VkIHRvIGhhdmUgbmVnYXRpdmUgc3RhcnRUaW1lcyB1bmxlc3Mgc21vb3RoQ2hpbGRUaW1pbmcgaXMgdHJ1ZSwgc28gYWRqdXN0IGhlcmUgaWYgb25lIGlzIGZvdW5kLlxyXG4gICAgICAgICAgbWF4IC09IHN0YXJ0O1xyXG5cclxuICAgICAgICAgIGlmICghcGFyZW50ICYmICFzZWxmLl9kcCB8fCBwYXJlbnQgJiYgcGFyZW50LnNtb290aENoaWxkVGltaW5nKSB7XHJcbiAgICAgICAgICAgIHNlbGYuX3N0YXJ0ICs9IHN0YXJ0IC8gc2VsZi5fdHM7XHJcbiAgICAgICAgICAgIHNlbGYuX3RpbWUgLT0gc3RhcnQ7XHJcbiAgICAgICAgICAgIHNlbGYuX3RUaW1lIC09IHN0YXJ0O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHNlbGYuc2hpZnRDaGlsZHJlbigtc3RhcnQsIGZhbHNlLCAtMWU5OTkpO1xyXG4gICAgICAgICAgcHJldlN0YXJ0ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNoaWxkLl9lbmQgPiBtYXggJiYgY2hpbGQuX3RzICYmIChtYXggPSBjaGlsZC5fZW5kKTtcclxuICAgICAgICBjaGlsZCA9IHByZXY7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIF9zZXREdXJhdGlvbihzZWxmLCBzZWxmID09PSBfZ2xvYmFsVGltZWxpbmUgJiYgc2VsZi5fdGltZSA+IG1heCA/IHNlbGYuX3RpbWUgOiBtYXgsIDEsIDEpO1xyXG5cclxuICAgICAgc2VsZi5fZGlydHkgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzZWxmLl90RHVyO1xyXG4gIH07XHJcblxyXG4gIFRpbWVsaW5lLnVwZGF0ZVJvb3QgPSBmdW5jdGlvbiB1cGRhdGVSb290KHRpbWUpIHtcclxuICAgIGlmIChfZ2xvYmFsVGltZWxpbmUuX3RzKSB7XHJcbiAgICAgIF9sYXp5U2FmZVJlbmRlcihfZ2xvYmFsVGltZWxpbmUsIF9wYXJlbnRUb0NoaWxkVG90YWxUaW1lKHRpbWUsIF9nbG9iYWxUaW1lbGluZSkpO1xyXG5cclxuICAgICAgX2xhc3RSZW5kZXJlZEZyYW1lID0gX3RpY2tlci5mcmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoX3RpY2tlci5mcmFtZSA+PSBfbmV4dEdDRnJhbWUpIHtcclxuICAgICAgX25leHRHQ0ZyYW1lICs9IF9jb25maWcuYXV0b1NsZWVwIHx8IDEyMDtcclxuICAgICAgdmFyIGNoaWxkID0gX2dsb2JhbFRpbWVsaW5lLl9maXJzdDtcclxuICAgICAgaWYgKCFjaGlsZCB8fCAhY2hpbGQuX3RzKSBpZiAoX2NvbmZpZy5hdXRvU2xlZXAgJiYgX3RpY2tlci5fbGlzdGVuZXJzLmxlbmd0aCA8IDIpIHtcclxuICAgICAgICB3aGlsZSAoY2hpbGQgJiYgIWNoaWxkLl90cykge1xyXG4gICAgICAgICAgY2hpbGQgPSBjaGlsZC5fbmV4dDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNoaWxkIHx8IF90aWNrZXIuc2xlZXAoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHJldHVybiBUaW1lbGluZTtcclxufShBbmltYXRpb24pO1xyXG5cclxuX3NldERlZmF1bHRzKFRpbWVsaW5lLnByb3RvdHlwZSwge1xyXG4gIF9sb2NrOiAwLFxyXG4gIF9oYXNQYXVzZTogMCxcclxuICBfZm9yY2luZzogMFxyXG59KTtcclxuXHJcbnZhciBfYWRkQ29tcGxleFN0cmluZ1Byb3BUd2VlbiA9IGZ1bmN0aW9uIF9hZGRDb21wbGV4U3RyaW5nUHJvcFR3ZWVuKHRhcmdldCwgcHJvcCwgc3RhcnQsIGVuZCwgc2V0dGVyLCBzdHJpbmdGaWx0ZXIsIGZ1bmNQYXJhbSkge1xyXG4gIC8vbm90ZTogd2UgY2FsbCBfYWRkQ29tcGxleFN0cmluZ1Byb3BUd2Vlbi5jYWxsKHR3ZWVuSW5zdGFuY2UuLi4pIHRvIGVuc3VyZSB0aGF0IGl0J3Mgc2NvcGVkIHByb3Blcmx5LiBXZSBtYXkgY2FsbCBpdCBmcm9tIHdpdGhpbiBhIHBsdWdpbiB0b28sIHRodXMgXCJ0aGlzXCIgd291bGQgcmVmZXIgdG8gdGhlIHBsdWdpbi5cclxuICB2YXIgcHQgPSBuZXcgUHJvcFR3ZWVuKHRoaXMuX3B0LCB0YXJnZXQsIHByb3AsIDAsIDEsIF9yZW5kZXJDb21wbGV4U3RyaW5nLCBudWxsLCBzZXR0ZXIpLFxyXG4gICAgICBpbmRleCA9IDAsXHJcbiAgICAgIG1hdGNoSW5kZXggPSAwLFxyXG4gICAgICByZXN1bHQsXHJcbiAgICAgIHN0YXJ0TnVtcyxcclxuICAgICAgY29sb3IsXHJcbiAgICAgIGVuZE51bSxcclxuICAgICAgY2h1bmssXHJcbiAgICAgIHN0YXJ0TnVtLFxyXG4gICAgICBoYXNSYW5kb20sXHJcbiAgICAgIGE7XHJcbiAgcHQuYiA9IHN0YXJ0O1xyXG4gIHB0LmUgPSBlbmQ7XHJcbiAgc3RhcnQgKz0gXCJcIjsgLy9lbnN1cmUgdmFsdWVzIGFyZSBzdHJpbmdzXHJcblxyXG4gIGVuZCArPSBcIlwiO1xyXG5cclxuICBpZiAoaGFzUmFuZG9tID0gfmVuZC5pbmRleE9mKFwicmFuZG9tKFwiKSkge1xyXG4gICAgZW5kID0gX3JlcGxhY2VSYW5kb20oZW5kKTtcclxuICB9XHJcblxyXG4gIGlmIChzdHJpbmdGaWx0ZXIpIHtcclxuICAgIGEgPSBbc3RhcnQsIGVuZF07XHJcbiAgICBzdHJpbmdGaWx0ZXIoYSwgdGFyZ2V0LCBwcm9wKTsgLy9wYXNzIGFuIGFycmF5IHdpdGggdGhlIHN0YXJ0aW5nIGFuZCBlbmRpbmcgdmFsdWVzIGFuZCBsZXQgdGhlIGZpbHRlciBkbyB3aGF0ZXZlciBpdCBuZWVkcyB0byB0aGUgdmFsdWVzLlxyXG5cclxuICAgIHN0YXJ0ID0gYVswXTtcclxuICAgIGVuZCA9IGFbMV07XHJcbiAgfVxyXG5cclxuICBzdGFydE51bXMgPSBzdGFydC5tYXRjaChfY29tcGxleFN0cmluZ051bUV4cCkgfHwgW107XHJcblxyXG4gIHdoaWxlIChyZXN1bHQgPSBfY29tcGxleFN0cmluZ051bUV4cC5leGVjKGVuZCkpIHtcclxuICAgIGVuZE51bSA9IHJlc3VsdFswXTtcclxuICAgIGNodW5rID0gZW5kLnN1YnN0cmluZyhpbmRleCwgcmVzdWx0LmluZGV4KTtcclxuXHJcbiAgICBpZiAoY29sb3IpIHtcclxuICAgICAgY29sb3IgPSAoY29sb3IgKyAxKSAlIDU7XHJcbiAgICB9IGVsc2UgaWYgKGNodW5rLnN1YnN0cigtNSkgPT09IFwicmdiYShcIikge1xyXG4gICAgICBjb2xvciA9IDE7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGVuZE51bSAhPT0gc3RhcnROdW1zW21hdGNoSW5kZXgrK10pIHtcclxuICAgICAgc3RhcnROdW0gPSBwYXJzZUZsb2F0KHN0YXJ0TnVtc1ttYXRjaEluZGV4IC0gMV0pIHx8IDA7IC8vdGhlc2UgbmVzdGVkIFByb3BUd2VlbnMgYXJlIGhhbmRsZWQgaW4gYSBzcGVjaWFsIHdheSAtIHdlJ2xsIG5ldmVyIGFjdHVhbGx5IGNhbGwgYSByZW5kZXIgb3Igc2V0dGVyIG1ldGhvZCBvbiB0aGVtLiBXZSdsbCBqdXN0IGxvb3AgdGhyb3VnaCB0aGVtIGluIHRoZSBwYXJlbnQgY29tcGxleCBzdHJpbmcgUHJvcFR3ZWVuJ3MgcmVuZGVyIG1ldGhvZC5cclxuXHJcbiAgICAgIHB0Ll9wdCA9IHtcclxuICAgICAgICBfbmV4dDogcHQuX3B0LFxyXG4gICAgICAgIHA6IGNodW5rIHx8IG1hdGNoSW5kZXggPT09IDEgPyBjaHVuayA6IFwiLFwiLFxyXG4gICAgICAgIC8vbm90ZTogU1ZHIHNwZWMgYWxsb3dzIG9taXNzaW9uIG9mIGNvbW1hL3NwYWNlIHdoZW4gYSBuZWdhdGl2ZSBzaWduIGlzIHdlZGdlZCBiZXR3ZWVuIHR3byBudW1iZXJzLCBsaWtlIDIuNS01LjMgaW5zdGVhZCBvZiAyLjUsLTUuMyBidXQgd2hlbiB0d2VlbmluZywgdGhlIG5lZ2F0aXZlIHZhbHVlIG1heSBzd2l0Y2ggdG8gcG9zaXRpdmUsIHNvIHdlIGluc2VydCB0aGUgY29tbWEganVzdCBpbiBjYXNlLlxyXG4gICAgICAgIHM6IHN0YXJ0TnVtLFxyXG4gICAgICAgIGM6IGVuZE51bS5jaGFyQXQoMSkgPT09IFwiPVwiID8gX3BhcnNlUmVsYXRpdmUoc3RhcnROdW0sIGVuZE51bSkgLSBzdGFydE51bSA6IHBhcnNlRmxvYXQoZW5kTnVtKSAtIHN0YXJ0TnVtLFxyXG4gICAgICAgIG06IGNvbG9yICYmIGNvbG9yIDwgNCA/IE1hdGgucm91bmQgOiAwXHJcbiAgICAgIH07XHJcbiAgICAgIGluZGV4ID0gX2NvbXBsZXhTdHJpbmdOdW1FeHAubGFzdEluZGV4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHQuYyA9IGluZGV4IDwgZW5kLmxlbmd0aCA/IGVuZC5zdWJzdHJpbmcoaW5kZXgsIGVuZC5sZW5ndGgpIDogXCJcIjsgLy93ZSB1c2UgdGhlIFwiY1wiIG9mIHRoZSBQcm9wVHdlZW4gdG8gc3RvcmUgdGhlIGZpbmFsIHBhcnQgb2YgdGhlIHN0cmluZyAoYWZ0ZXIgdGhlIGxhc3QgbnVtYmVyKVxyXG5cclxuICBwdC5mcCA9IGZ1bmNQYXJhbTtcclxuXHJcbiAgaWYgKF9yZWxFeHAudGVzdChlbmQpIHx8IGhhc1JhbmRvbSkge1xyXG4gICAgcHQuZSA9IDA7IC8vaWYgdGhlIGVuZCBzdHJpbmcgY29udGFpbnMgcmVsYXRpdmUgdmFsdWVzIG9yIGR5bmFtaWMgcmFuZG9tKC4uLikgdmFsdWVzLCBkZWxldGUgdGhlIGVuZCBpdCBzbyB0aGF0IG9uIHRoZSBmaW5hbCByZW5kZXIgd2UgZG9uJ3QgYWN0dWFsbHkgc2V0IGl0IHRvIHRoZSBzdHJpbmcgd2l0aCArPSBvciAtPSBjaGFyYWN0ZXJzIChmb3JjZXMgaXQgdG8gdXNlIHRoZSBjYWxjdWxhdGVkIHZhbHVlKS5cclxuICB9XHJcblxyXG4gIHRoaXMuX3B0ID0gcHQ7IC8vc3RhcnQgdGhlIGxpbmtlZCBsaXN0IHdpdGggdGhpcyBuZXcgUHJvcFR3ZWVuLiBSZW1lbWJlciwgd2UgY2FsbCBfYWRkQ29tcGxleFN0cmluZ1Byb3BUd2Vlbi5jYWxsKHR3ZWVuSW5zdGFuY2UuLi4pIHRvIGVuc3VyZSB0aGF0IGl0J3Mgc2NvcGVkIHByb3Blcmx5LiBXZSBtYXkgY2FsbCBpdCBmcm9tIHdpdGhpbiBhIHBsdWdpbiB0b28sIHRodXMgXCJ0aGlzXCIgd291bGQgcmVmZXIgdG8gdGhlIHBsdWdpbi5cclxuXHJcbiAgcmV0dXJuIHB0O1xyXG59LFxyXG4gICAgX2FkZFByb3BUd2VlbiA9IGZ1bmN0aW9uIF9hZGRQcm9wVHdlZW4odGFyZ2V0LCBwcm9wLCBzdGFydCwgZW5kLCBpbmRleCwgdGFyZ2V0cywgbW9kaWZpZXIsIHN0cmluZ0ZpbHRlciwgZnVuY1BhcmFtLCBvcHRpb25hbCkge1xyXG4gIF9pc0Z1bmN0aW9uKGVuZCkgJiYgKGVuZCA9IGVuZChpbmRleCB8fCAwLCB0YXJnZXQsIHRhcmdldHMpKTtcclxuICB2YXIgY3VycmVudFZhbHVlID0gdGFyZ2V0W3Byb3BdLFxyXG4gICAgICBwYXJzZWRTdGFydCA9IHN0YXJ0ICE9PSBcImdldFwiID8gc3RhcnQgOiAhX2lzRnVuY3Rpb24oY3VycmVudFZhbHVlKSA/IGN1cnJlbnRWYWx1ZSA6IGZ1bmNQYXJhbSA/IHRhcmdldFtwcm9wLmluZGV4T2YoXCJzZXRcIikgfHwgIV9pc0Z1bmN0aW9uKHRhcmdldFtcImdldFwiICsgcHJvcC5zdWJzdHIoMyldKSA/IHByb3AgOiBcImdldFwiICsgcHJvcC5zdWJzdHIoMyldKGZ1bmNQYXJhbSkgOiB0YXJnZXRbcHJvcF0oKSxcclxuICAgICAgc2V0dGVyID0gIV9pc0Z1bmN0aW9uKGN1cnJlbnRWYWx1ZSkgPyBfc2V0dGVyUGxhaW4gOiBmdW5jUGFyYW0gPyBfc2V0dGVyRnVuY1dpdGhQYXJhbSA6IF9zZXR0ZXJGdW5jLFxyXG4gICAgICBwdDtcclxuXHJcbiAgaWYgKF9pc1N0cmluZyhlbmQpKSB7XHJcbiAgICBpZiAofmVuZC5pbmRleE9mKFwicmFuZG9tKFwiKSkge1xyXG4gICAgICBlbmQgPSBfcmVwbGFjZVJhbmRvbShlbmQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChlbmQuY2hhckF0KDEpID09PSBcIj1cIikge1xyXG4gICAgICBwdCA9IF9wYXJzZVJlbGF0aXZlKHBhcnNlZFN0YXJ0LCBlbmQpICsgKGdldFVuaXQocGFyc2VkU3RhcnQpIHx8IDApO1xyXG5cclxuICAgICAgaWYgKHB0IHx8IHB0ID09PSAwKSB7XHJcbiAgICAgICAgLy8gdG8gYXZvaWQgaXNOYU4sIGxpa2UgaWYgc29tZW9uZSBwYXNzZXMgaW4gYSB2YWx1ZSBsaWtlIFwiIT0gd2hhdGV2ZXJcIlxyXG4gICAgICAgIGVuZCA9IHB0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpZiAoIW9wdGlvbmFsIHx8IHBhcnNlZFN0YXJ0ICE9PSBlbmQgfHwgX2ZvcmNlQWxsUHJvcFR3ZWVucykge1xyXG4gICAgaWYgKCFpc05hTihwYXJzZWRTdGFydCAqIGVuZCkgJiYgZW5kICE9PSBcIlwiKSB7XHJcbiAgICAgIC8vIGZ1biBmYWN0OiBhbnkgbnVtYmVyIG11bHRpcGxpZWQgYnkgXCJcIiBpcyBldmFsdWF0ZWQgYXMgdGhlIG51bWJlciAwIVxyXG4gICAgICBwdCA9IG5ldyBQcm9wVHdlZW4odGhpcy5fcHQsIHRhcmdldCwgcHJvcCwgK3BhcnNlZFN0YXJ0IHx8IDAsIGVuZCAtIChwYXJzZWRTdGFydCB8fCAwKSwgdHlwZW9mIGN1cnJlbnRWYWx1ZSA9PT0gXCJib29sZWFuXCIgPyBfcmVuZGVyQm9vbGVhbiA6IF9yZW5kZXJQbGFpbiwgMCwgc2V0dGVyKTtcclxuICAgICAgZnVuY1BhcmFtICYmIChwdC5mcCA9IGZ1bmNQYXJhbSk7XHJcbiAgICAgIG1vZGlmaWVyICYmIHB0Lm1vZGlmaWVyKG1vZGlmaWVyLCB0aGlzLCB0YXJnZXQpO1xyXG4gICAgICByZXR1cm4gdGhpcy5fcHQgPSBwdDtcclxuICAgIH1cclxuXHJcbiAgICAhY3VycmVudFZhbHVlICYmICEocHJvcCBpbiB0YXJnZXQpICYmIF9taXNzaW5nUGx1Z2luKHByb3AsIGVuZCk7XHJcbiAgICByZXR1cm4gX2FkZENvbXBsZXhTdHJpbmdQcm9wVHdlZW4uY2FsbCh0aGlzLCB0YXJnZXQsIHByb3AsIHBhcnNlZFN0YXJ0LCBlbmQsIHNldHRlciwgc3RyaW5nRmlsdGVyIHx8IF9jb25maWcuc3RyaW5nRmlsdGVyLCBmdW5jUGFyYW0pO1xyXG4gIH1cclxufSxcclxuICAgIC8vY3JlYXRlcyBhIGNvcHkgb2YgdGhlIHZhcnMgb2JqZWN0IGFuZCBwcm9jZXNzZXMgYW55IGZ1bmN0aW9uLWJhc2VkIHZhbHVlcyAocHV0dGluZyB0aGUgcmVzdWx0aW5nIHZhbHVlcyBkaXJlY3RseSBpbnRvIHRoZSBjb3B5KSBhcyB3ZWxsIGFzIHN0cmluZ3Mgd2l0aCBcInJhbmRvbSgpXCIgaW4gdGhlbS4gSXQgZG9lcyBOT1QgcHJvY2VzcyByZWxhdGl2ZSB2YWx1ZXMuXHJcbl9wcm9jZXNzVmFycyA9IGZ1bmN0aW9uIF9wcm9jZXNzVmFycyh2YXJzLCBpbmRleCwgdGFyZ2V0LCB0YXJnZXRzLCB0d2Vlbikge1xyXG4gIF9pc0Z1bmN0aW9uKHZhcnMpICYmICh2YXJzID0gX3BhcnNlRnVuY09yU3RyaW5nKHZhcnMsIHR3ZWVuLCBpbmRleCwgdGFyZ2V0LCB0YXJnZXRzKSk7XHJcblxyXG4gIGlmICghX2lzT2JqZWN0KHZhcnMpIHx8IHZhcnMuc3R5bGUgJiYgdmFycy5ub2RlVHlwZSB8fCBfaXNBcnJheSh2YXJzKSB8fCBfaXNUeXBlZEFycmF5KHZhcnMpKSB7XHJcbiAgICByZXR1cm4gX2lzU3RyaW5nKHZhcnMpID8gX3BhcnNlRnVuY09yU3RyaW5nKHZhcnMsIHR3ZWVuLCBpbmRleCwgdGFyZ2V0LCB0YXJnZXRzKSA6IHZhcnM7XHJcbiAgfVxyXG5cclxuICB2YXIgY29weSA9IHt9LFxyXG4gICAgICBwO1xyXG5cclxuICBmb3IgKHAgaW4gdmFycykge1xyXG4gICAgY29weVtwXSA9IF9wYXJzZUZ1bmNPclN0cmluZyh2YXJzW3BdLCB0d2VlbiwgaW5kZXgsIHRhcmdldCwgdGFyZ2V0cyk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gY29weTtcclxufSxcclxuICAgIF9jaGVja1BsdWdpbiA9IGZ1bmN0aW9uIF9jaGVja1BsdWdpbihwcm9wZXJ0eSwgdmFycywgdHdlZW4sIGluZGV4LCB0YXJnZXQsIHRhcmdldHMpIHtcclxuICB2YXIgcGx1Z2luLCBwdCwgcHRMb29rdXAsIGk7XHJcblxyXG4gIGlmIChfcGx1Z2luc1twcm9wZXJ0eV0gJiYgKHBsdWdpbiA9IG5ldyBfcGx1Z2luc1twcm9wZXJ0eV0oKSkuaW5pdCh0YXJnZXQsIHBsdWdpbi5yYXdWYXJzID8gdmFyc1twcm9wZXJ0eV0gOiBfcHJvY2Vzc1ZhcnModmFyc1twcm9wZXJ0eV0sIGluZGV4LCB0YXJnZXQsIHRhcmdldHMsIHR3ZWVuKSwgdHdlZW4sIGluZGV4LCB0YXJnZXRzKSAhPT0gZmFsc2UpIHtcclxuICAgIHR3ZWVuLl9wdCA9IHB0ID0gbmV3IFByb3BUd2Vlbih0d2Vlbi5fcHQsIHRhcmdldCwgcHJvcGVydHksIDAsIDEsIHBsdWdpbi5yZW5kZXIsIHBsdWdpbiwgMCwgcGx1Z2luLnByaW9yaXR5KTtcclxuXHJcbiAgICBpZiAodHdlZW4gIT09IF9xdWlja1R3ZWVuKSB7XHJcbiAgICAgIHB0TG9va3VwID0gdHdlZW4uX3B0TG9va3VwW3R3ZWVuLl90YXJnZXRzLmluZGV4T2YodGFyZ2V0KV07IC8vbm90ZTogd2UgY2FuJ3QgdXNlIHR3ZWVuLl9wdExvb2t1cFtpbmRleF0gYmVjYXVzZSBmb3Igc3RhZ2dlcmVkIHR3ZWVucywgdGhlIGluZGV4IGZyb20gdGhlIGZ1bGxUYXJnZXRzIGFycmF5IHdvbid0IG1hdGNoIHdoYXQgaXQgaXMgaW4gZWFjaCBpbmRpdmlkdWFsIHR3ZWVuIHRoYXQgc3Bhd25zIGZyb20gdGhlIHN0YWdnZXIuXHJcblxyXG4gICAgICBpID0gcGx1Z2luLl9wcm9wcy5sZW5ndGg7XHJcblxyXG4gICAgICB3aGlsZSAoaS0tKSB7XHJcbiAgICAgICAgcHRMb29rdXBbcGx1Z2luLl9wcm9wc1tpXV0gPSBwdDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHBsdWdpbjtcclxufSxcclxuICAgIF9vdmVyd3JpdGluZ1R3ZWVuLFxyXG4gICAgLy9zdG9yZSBhIHJlZmVyZW5jZSB0ZW1wb3JhcmlseSBzbyB3ZSBjYW4gYXZvaWQgb3ZlcndyaXRpbmcgaXRzZWxmLlxyXG5fZm9yY2VBbGxQcm9wVHdlZW5zLFxyXG4gICAgX2luaXRUd2VlbiA9IGZ1bmN0aW9uIF9pbml0VHdlZW4odHdlZW4sIHRpbWUsIHRUaW1lKSB7XHJcbiAgdmFyIHZhcnMgPSB0d2Vlbi52YXJzLFxyXG4gICAgICBlYXNlID0gdmFycy5lYXNlLFxyXG4gICAgICBzdGFydEF0ID0gdmFycy5zdGFydEF0LFxyXG4gICAgICBpbW1lZGlhdGVSZW5kZXIgPSB2YXJzLmltbWVkaWF0ZVJlbmRlcixcclxuICAgICAgbGF6eSA9IHZhcnMubGF6eSxcclxuICAgICAgb25VcGRhdGUgPSB2YXJzLm9uVXBkYXRlLFxyXG4gICAgICBydW5CYWNrd2FyZHMgPSB2YXJzLnJ1bkJhY2t3YXJkcyxcclxuICAgICAgeW95b0Vhc2UgPSB2YXJzLnlveW9FYXNlLFxyXG4gICAgICBrZXlmcmFtZXMgPSB2YXJzLmtleWZyYW1lcyxcclxuICAgICAgYXV0b1JldmVydCA9IHZhcnMuYXV0b1JldmVydCxcclxuICAgICAgZHVyID0gdHdlZW4uX2R1cixcclxuICAgICAgcHJldlN0YXJ0QXQgPSB0d2Vlbi5fc3RhcnRBdCxcclxuICAgICAgdGFyZ2V0cyA9IHR3ZWVuLl90YXJnZXRzLFxyXG4gICAgICBwYXJlbnQgPSB0d2Vlbi5wYXJlbnQsXHJcbiAgICAgIGZ1bGxUYXJnZXRzID0gcGFyZW50ICYmIHBhcmVudC5kYXRhID09PSBcIm5lc3RlZFwiID8gcGFyZW50LnZhcnMudGFyZ2V0cyA6IHRhcmdldHMsXHJcbiAgICAgIGF1dG9PdmVyd3JpdGUgPSB0d2Vlbi5fb3ZlcndyaXRlID09PSBcImF1dG9cIiAmJiAhX3N1cHByZXNzT3ZlcndyaXRlcyxcclxuICAgICAgdGwgPSB0d2Vlbi50aW1lbGluZSxcclxuICAgICAgY2xlYW5WYXJzLFxyXG4gICAgICBpLFxyXG4gICAgICBwLFxyXG4gICAgICBwdCxcclxuICAgICAgdGFyZ2V0LFxyXG4gICAgICBoYXNQcmlvcml0eSxcclxuICAgICAgZ3NEYXRhLFxyXG4gICAgICBoYXJuZXNzLFxyXG4gICAgICBwbHVnaW4sXHJcbiAgICAgIHB0TG9va3VwLFxyXG4gICAgICBpbmRleCxcclxuICAgICAgaGFybmVzc1ZhcnMsXHJcbiAgICAgIG92ZXJ3cml0dGVuO1xyXG4gIHRsICYmICgha2V5ZnJhbWVzIHx8ICFlYXNlKSAmJiAoZWFzZSA9IFwibm9uZVwiKTtcclxuICB0d2Vlbi5fZWFzZSA9IF9wYXJzZUVhc2UoZWFzZSwgX2RlZmF1bHRzLmVhc2UpO1xyXG4gIHR3ZWVuLl95RWFzZSA9IHlveW9FYXNlID8gX2ludmVydEVhc2UoX3BhcnNlRWFzZSh5b3lvRWFzZSA9PT0gdHJ1ZSA/IGVhc2UgOiB5b3lvRWFzZSwgX2RlZmF1bHRzLmVhc2UpKSA6IDA7XHJcblxyXG4gIGlmICh5b3lvRWFzZSAmJiB0d2Vlbi5feW95byAmJiAhdHdlZW4uX3JlcGVhdCkge1xyXG4gICAgLy90aGVyZSBtdXN0IGhhdmUgYmVlbiBhIHBhcmVudCB0aW1lbGluZSB3aXRoIHlveW86dHJ1ZSB0aGF0IGlzIGN1cnJlbnRseSBpbiBpdHMgeW95byBwaGFzZSwgc28gZmxpcCB0aGUgZWFzZXMuXHJcbiAgICB5b3lvRWFzZSA9IHR3ZWVuLl95RWFzZTtcclxuICAgIHR3ZWVuLl95RWFzZSA9IHR3ZWVuLl9lYXNlO1xyXG4gICAgdHdlZW4uX2Vhc2UgPSB5b3lvRWFzZTtcclxuICB9XHJcblxyXG4gIHR3ZWVuLl9mcm9tID0gIXRsICYmICEhdmFycy5ydW5CYWNrd2FyZHM7IC8vbmVzdGVkIHRpbWVsaW5lcyBzaG91bGQgbmV2ZXIgcnVuIGJhY2t3YXJkcyAtIHRoZSBiYWNrd2FyZHMtbmVzcyBpcyBpbiB0aGUgY2hpbGQgdHdlZW5zLlxyXG5cclxuICBpZiAoIXRsIHx8IGtleWZyYW1lcyAmJiAhdmFycy5zdGFnZ2VyKSB7XHJcbiAgICAvL2lmIHRoZXJlJ3MgYW4gaW50ZXJuYWwgdGltZWxpbmUsIHNraXAgYWxsIHRoZSBwYXJzaW5nIGJlY2F1c2Ugd2UgcGFzc2VkIHRoYXQgdGFzayBkb3duIHRoZSBjaGFpbi5cclxuICAgIGhhcm5lc3MgPSB0YXJnZXRzWzBdID8gX2dldENhY2hlKHRhcmdldHNbMF0pLmhhcm5lc3MgOiAwO1xyXG4gICAgaGFybmVzc1ZhcnMgPSBoYXJuZXNzICYmIHZhcnNbaGFybmVzcy5wcm9wXTsgLy9zb21lb25lIG1heSBuZWVkIHRvIHNwZWNpZnkgQ1NTLXNwZWNpZmljIHZhbHVlcyBBTkQgbm9uLUNTUyB2YWx1ZXMsIGxpa2UgaWYgdGhlIGVsZW1lbnQgaGFzIGFuIFwieFwiIHByb3BlcnR5IHBsdXMgaXQncyBhIHN0YW5kYXJkIERPTSBlbGVtZW50LiBXZSBhbGxvdyBwZW9wbGUgdG8gZGlzdGluZ3Vpc2ggYnkgd3JhcHBpbmcgcGx1Z2luLXNwZWNpZmljIHN0dWZmIGluIGEgY3NzOnt9IG9iamVjdCBmb3IgZXhhbXBsZS5cclxuXHJcbiAgICBjbGVhblZhcnMgPSBfY29weUV4Y2x1ZGluZyh2YXJzLCBfcmVzZXJ2ZWRQcm9wcyk7XHJcblxyXG4gICAgaWYgKHByZXZTdGFydEF0KSB7XHJcbiAgICAgIHByZXZTdGFydEF0Ll96VGltZSA8IDAgJiYgcHJldlN0YXJ0QXQucHJvZ3Jlc3MoMSk7IC8vIGluIGNhc2UgaXQncyBhIGxhenkgc3RhcnRBdCB0aGF0IGhhc24ndCByZW5kZXJlZCB5ZXQuXHJcblxyXG4gICAgICB0aW1lIDwgMCAmJiBydW5CYWNrd2FyZHMgJiYgaW1tZWRpYXRlUmVuZGVyICYmICFhdXRvUmV2ZXJ0ID8gcHJldlN0YXJ0QXQucmVuZGVyKC0xLCB0cnVlKSA6IHByZXZTdGFydEF0LnJldmVydChydW5CYWNrd2FyZHMgJiYgZHVyID8gX3JldmVydENvbmZpZ05vS2lsbCA6IF9zdGFydEF0UmV2ZXJ0Q29uZmlnKTsgLy8gaWYgaXQncyBhIFwic3RhcnRBdFwiIChub3QgXCJmcm9tKClcIiBvciBydW5CYWNrd2FyZHM6IHRydWUpLCB3ZSBvbmx5IG5lZWQgdG8gZG8gYSBzaGFsbG93IHJldmVydCAoa2VlcCB0cmFuc2Zvcm1zIGNhY2hlZCBpbiBDU1NQbHVnaW4pXHJcbiAgICAgIC8vIGRvbid0IGp1c3QgX3JlbW92ZUZyb21QYXJlbnQocHJldlN0YXJ0QXQucmVuZGVyKC0xLCB0cnVlKSkgYmVjYXVzZSB0aGF0J2xsIGxlYXZlIGlubGluZSBzdHlsZXMuIFdlJ3JlIGNyZWF0aW5nIGEgbmV3IF9zdGFydEF0IGZvciBcInN0YXJ0QXRcIiB0d2VlbnMgdGhhdCByZS1jYXB0dXJlIHRoaW5ncyB0byBlbnN1cmUgdGhhdCBpZiB0aGUgcHJlLXR3ZWVuIHZhbHVlcyBjaGFuZ2VkIHNpbmNlIHRoZSB0d2VlbiB3YXMgY3JlYXRlZCwgdGhleSdyZSByZWNvcmRlZC5cclxuXHJcbiAgICAgIHByZXZTdGFydEF0Ll9sYXp5ID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RhcnRBdCkge1xyXG4gICAgICBfcmVtb3ZlRnJvbVBhcmVudCh0d2Vlbi5fc3RhcnRBdCA9IFR3ZWVuLnNldCh0YXJnZXRzLCBfc2V0RGVmYXVsdHMoe1xyXG4gICAgICAgIGRhdGE6IFwiaXNTdGFydFwiLFxyXG4gICAgICAgIG92ZXJ3cml0ZTogZmFsc2UsXHJcbiAgICAgICAgcGFyZW50OiBwYXJlbnQsXHJcbiAgICAgICAgaW1tZWRpYXRlUmVuZGVyOiB0cnVlLFxyXG4gICAgICAgIGxhenk6ICFwcmV2U3RhcnRBdCAmJiBfaXNOb3RGYWxzZShsYXp5KSxcclxuICAgICAgICBzdGFydEF0OiBudWxsLFxyXG4gICAgICAgIGRlbGF5OiAwLFxyXG4gICAgICAgIG9uVXBkYXRlOiBvblVwZGF0ZSAmJiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICByZXR1cm4gX2NhbGxiYWNrKHR3ZWVuLCBcIm9uVXBkYXRlXCIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3RhZ2dlcjogMFxyXG4gICAgICB9LCBzdGFydEF0KSkpOyAvL2NvcHkgdGhlIHByb3BlcnRpZXMvdmFsdWVzIGludG8gYSBuZXcgb2JqZWN0IHRvIGF2b2lkIGNvbGxpc2lvbnMsIGxpa2UgdmFyIHRvID0ge3g6MH0sIGZyb20gPSB7eDo1MDB9OyB0aW1lbGluZS5mcm9tVG8oZSwgZnJvbSwgdG8pLmZyb21UbyhlLCB0bywgZnJvbSk7XHJcblxyXG5cclxuICAgICAgdHdlZW4uX3N0YXJ0QXQuX2RwID0gMDsgLy8gZG9uJ3QgYWxsb3cgaXQgdG8gZ2V0IHB1dCBiYWNrIGludG8gcm9vdCB0aW1lbGluZSEgTGlrZSB3aGVuIHJldmVydCgpIGlzIGNhbGxlZCBhbmQgdG90YWxUaW1lKCkgZ2V0cyBzZXQuXHJcblxyXG4gICAgICB0d2Vlbi5fc3RhcnRBdC5fc2F0ID0gdHdlZW47IC8vIHVzZWQgaW4gZ2xvYmFsVGltZSgpLiBfc2F0IHN0YW5kcyBmb3IgX3N0YXJ0QXRUd2VlblxyXG5cclxuICAgICAgdGltZSA8IDAgJiYgKF9yZXZlcnRpbmcgfHwgIWltbWVkaWF0ZVJlbmRlciAmJiAhYXV0b1JldmVydCkgJiYgdHdlZW4uX3N0YXJ0QXQucmV2ZXJ0KF9yZXZlcnRDb25maWdOb0tpbGwpOyAvLyByYXJlIGVkZ2UgY2FzZSwgbGlrZSBpZiBhIHJlbmRlciBpcyBmb3JjZWQgaW4gdGhlIG5lZ2F0aXZlIGRpcmVjdGlvbiBvZiBhIG5vbi1pbml0dGVkIHR3ZWVuLlxyXG5cclxuICAgICAgaWYgKGltbWVkaWF0ZVJlbmRlcikge1xyXG4gICAgICAgIGlmIChkdXIgJiYgdGltZSA8PSAwICYmIHRUaW1lIDw9IDApIHtcclxuICAgICAgICAgIC8vIGNoZWNrIHRUaW1lIGhlcmUgYmVjYXVzZSBpbiB0aGUgY2FzZSBvZiBhIHlveW8gdHdlZW4gd2hvc2UgcGxheWhlYWQgZ2V0cyBwdXNoZWQgdG8gdGhlIGVuZCBsaWtlIHR3ZWVuLnByb2dyZXNzKDEpLCB3ZSBzaG91bGQgYWxsb3cgaXQgdGhyb3VnaCBzbyB0aGF0IHRoZSBvbkNvbXBsZXRlIGdldHMgZmlyZWQgcHJvcGVybHkuXHJcbiAgICAgICAgICB0aW1lICYmICh0d2Vlbi5felRpbWUgPSB0aW1lKTtcclxuICAgICAgICAgIHJldHVybjsgLy93ZSBza2lwIGluaXRpYWxpemF0aW9uIGhlcmUgc28gdGhhdCBvdmVyd3JpdGluZyBkb2Vzbid0IG9jY3VyIHVudGlsIHRoZSB0d2VlbiBhY3R1YWxseSBiZWdpbnMuIE90aGVyd2lzZSwgaWYgeW91IGNyZWF0ZSBzZXZlcmFsIGltbWVkaWF0ZVJlbmRlcjp0cnVlIHR3ZWVucyBvZiB0aGUgc2FtZSB0YXJnZXQvcHJvcGVydGllcyB0byBkcm9wIGludG8gYSBUaW1lbGluZSwgdGhlIGxhc3Qgb25lIGNyZWF0ZWQgd291bGQgb3ZlcndyaXRlIHRoZSBmaXJzdCBvbmVzIGJlY2F1c2UgdGhleSBkaWRuJ3QgZ2V0IHBsYWNlZCBpbnRvIHRoZSB0aW1lbGluZSB5ZXQgYmVmb3JlIHRoZSBmaXJzdCByZW5kZXIgb2NjdXJzIGFuZCBraWNrcyBpbiBvdmVyd3JpdGluZy5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAocnVuQmFja3dhcmRzICYmIGR1cikge1xyXG4gICAgICAvL2Zyb20oKSB0d2VlbnMgbXVzdCBiZSBoYW5kbGVkIHVuaXF1ZWx5OiB0aGVpciBiZWdpbm5pbmcgdmFsdWVzIG11c3QgYmUgcmVuZGVyZWQgYnV0IHdlIGRvbid0IHdhbnQgb3ZlcndyaXRpbmcgdG8gb2NjdXIgeWV0ICh3aGVuIHRpbWUgaXMgc3RpbGwgMCkuIFdhaXQgdW50aWwgdGhlIHR3ZWVuIGFjdHVhbGx5IGJlZ2lucyBiZWZvcmUgZG9pbmcgYWxsIHRoZSByb3V0aW5lcyBsaWtlIG92ZXJ3cml0aW5nLiBBdCB0aGF0IHRpbWUsIHdlIHNob3VsZCByZW5kZXIgYXQgdGhlIEVORCBvZiB0aGUgdHdlZW4gdG8gZW5zdXJlIHRoYXQgdGhpbmdzIGluaXRpYWxpemUgY29ycmVjdGx5IChyZW1lbWJlciwgZnJvbSgpIHR3ZWVucyBnbyBiYWNrd2FyZHMpXHJcbiAgICAgIGlmICghcHJldlN0YXJ0QXQpIHtcclxuICAgICAgICB0aW1lICYmIChpbW1lZGlhdGVSZW5kZXIgPSBmYWxzZSk7IC8vaW4gcmFyZSBjYXNlcyAobGlrZSBpZiBhIGZyb20oKSB0d2VlbiBydW5zIGFuZCB0aGVuIGlzIGludmFsaWRhdGUoKS1lZCksIGltbWVkaWF0ZVJlbmRlciBjb3VsZCBiZSB0cnVlIGJ1dCB0aGUgaW5pdGlhbCBmb3JjZWQtcmVuZGVyIGdldHMgc2tpcHBlZCwgc28gdGhlcmUncyBubyBuZWVkIHRvIGZvcmNlIHRoZSByZW5kZXIgaW4gdGhpcyBjb250ZXh0IHdoZW4gdGhlIF90aW1lIGlzIGdyZWF0ZXIgdGhhbiAwXHJcblxyXG4gICAgICAgIHAgPSBfc2V0RGVmYXVsdHMoe1xyXG4gICAgICAgICAgb3ZlcndyaXRlOiBmYWxzZSxcclxuICAgICAgICAgIGRhdGE6IFwiaXNGcm9tU3RhcnRcIixcclxuICAgICAgICAgIC8vd2UgdGFnIHRoZSB0d2VlbiB3aXRoIGFzIFwiaXNGcm9tU3RhcnRcIiBzbyB0aGF0IGlmIFtpbnNpZGUgYSBwbHVnaW5dIHdlIG5lZWQgdG8gb25seSBkbyBzb21ldGhpbmcgYXQgdGhlIHZlcnkgRU5EIG9mIGEgdHdlZW4sIHdlIGhhdmUgYSB3YXkgb2YgaWRlbnRpZnlpbmcgdGhpcyB0d2VlbiBhcyBtZXJlbHkgdGhlIG9uZSB0aGF0J3Mgc2V0dGluZyB0aGUgYmVnaW5uaW5nIHZhbHVlcyBmb3IgYSBcImZyb20oKVwiIHR3ZWVuLiBGb3IgZXhhbXBsZSwgY2xlYXJQcm9wcyBpbiBDU1NQbHVnaW4gc2hvdWxkIG9ubHkgZ2V0IGFwcGxpZWQgYXQgdGhlIHZlcnkgRU5EIG9mIGEgdHdlZW4gYW5kIHdpdGhvdXQgdGhpcyB0YWcsIGZyb20oLi4ue2hlaWdodDoxMDAsIGNsZWFyUHJvcHM6XCJoZWlnaHRcIiwgZGVsYXk6MX0pIHdvdWxkIHdpcGUgdGhlIGhlaWdodCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0d2VlbiBhbmQgYWZ0ZXIgMSBzZWNvbmQsIGl0J2Qga2ljayBiYWNrIGluLlxyXG4gICAgICAgICAgbGF6eTogaW1tZWRpYXRlUmVuZGVyICYmICFwcmV2U3RhcnRBdCAmJiBfaXNOb3RGYWxzZShsYXp5KSxcclxuICAgICAgICAgIGltbWVkaWF0ZVJlbmRlcjogaW1tZWRpYXRlUmVuZGVyLFxyXG4gICAgICAgICAgLy96ZXJvLWR1cmF0aW9uIHR3ZWVucyByZW5kZXIgaW1tZWRpYXRlbHkgYnkgZGVmYXVsdCwgYnV0IGlmIHdlJ3JlIG5vdCBzcGVjaWZpY2FsbHkgaW5zdHJ1Y3RlZCB0byByZW5kZXIgdGhpcyB0d2VlbiBpbW1lZGlhdGVseSwgd2Ugc2hvdWxkIHNraXAgdGhpcyBhbmQgbWVyZWx5IF9pbml0KCkgdG8gcmVjb3JkIHRoZSBzdGFydGluZyB2YWx1ZXMgKHJlbmRlcmluZyB0aGVtIGltbWVkaWF0ZWx5IHdvdWxkIHB1c2ggdGhlbSB0byBjb21wbGV0aW9uIHdoaWNoIGlzIHdhc3RlZnVsIGluIHRoYXQgY2FzZSAtIHdlJ2QgaGF2ZSB0byByZW5kZXIoLTEpIGltbWVkaWF0ZWx5IGFmdGVyKVxyXG4gICAgICAgICAgc3RhZ2dlcjogMCxcclxuICAgICAgICAgIHBhcmVudDogcGFyZW50IC8vZW5zdXJlcyB0aGF0IG5lc3RlZCB0d2VlbnMgdGhhdCBoYWQgYSBzdGFnZ2VyIGFyZSBoYW5kbGVkIHByb3Blcmx5LCBsaWtlIGdzYXAuZnJvbShcIi5jbGFzc1wiLCB7eTogZ3NhcC51dGlscy53cmFwKFstMTAwLDEwMF0pLCBzdGFnZ2VyOiAwLjV9KVxyXG5cclxuICAgICAgICB9LCBjbGVhblZhcnMpO1xyXG4gICAgICAgIGhhcm5lc3NWYXJzICYmIChwW2hhcm5lc3MucHJvcF0gPSBoYXJuZXNzVmFycyk7IC8vIGluIGNhc2Ugc29tZW9uZSBkb2VzIHNvbWV0aGluZyBsaWtlIC5mcm9tKC4uLiwge2Nzczp7fX0pXHJcblxyXG4gICAgICAgIF9yZW1vdmVGcm9tUGFyZW50KHR3ZWVuLl9zdGFydEF0ID0gVHdlZW4uc2V0KHRhcmdldHMsIHApKTtcclxuXHJcbiAgICAgICAgdHdlZW4uX3N0YXJ0QXQuX2RwID0gMDsgLy8gZG9uJ3QgYWxsb3cgaXQgdG8gZ2V0IHB1dCBiYWNrIGludG8gcm9vdCB0aW1lbGluZSFcclxuXHJcbiAgICAgICAgdHdlZW4uX3N0YXJ0QXQuX3NhdCA9IHR3ZWVuOyAvLyB1c2VkIGluIGdsb2JhbFRpbWUoKVxyXG5cclxuICAgICAgICB0aW1lIDwgMCAmJiAoX3JldmVydGluZyA/IHR3ZWVuLl9zdGFydEF0LnJldmVydChfcmV2ZXJ0Q29uZmlnTm9LaWxsKSA6IHR3ZWVuLl9zdGFydEF0LnJlbmRlcigtMSwgdHJ1ZSkpO1xyXG4gICAgICAgIHR3ZWVuLl96VGltZSA9IHRpbWU7XHJcblxyXG4gICAgICAgIGlmICghaW1tZWRpYXRlUmVuZGVyKSB7XHJcbiAgICAgICAgICBfaW5pdFR3ZWVuKHR3ZWVuLl9zdGFydEF0LCBfdGlueU51bSwgX3RpbnlOdW0pOyAvL2Vuc3VyZXMgdGhhdCB0aGUgaW5pdGlhbCB2YWx1ZXMgYXJlIHJlY29yZGVkXHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoIXRpbWUpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0d2Vlbi5fcHQgPSB0d2Vlbi5fcHRDYWNoZSA9IDA7XHJcbiAgICBsYXp5ID0gZHVyICYmIF9pc05vdEZhbHNlKGxhenkpIHx8IGxhenkgJiYgIWR1cjtcclxuXHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgdGFyZ2V0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB0YXJnZXQgPSB0YXJnZXRzW2ldO1xyXG4gICAgICBnc0RhdGEgPSB0YXJnZXQuX2dzYXAgfHwgX2hhcm5lc3ModGFyZ2V0cylbaV0uX2dzYXA7XHJcbiAgICAgIHR3ZWVuLl9wdExvb2t1cFtpXSA9IHB0TG9va3VwID0ge307XHJcbiAgICAgIF9sYXp5TG9va3VwW2dzRGF0YS5pZF0gJiYgX2xhenlUd2VlbnMubGVuZ3RoICYmIF9sYXp5UmVuZGVyKCk7IC8vaWYgb3RoZXIgdHdlZW5zIG9mIHRoZSBzYW1lIHRhcmdldCBoYXZlIHJlY2VudGx5IGluaXR0ZWQgYnV0IGhhdmVuJ3QgcmVuZGVyZWQgeWV0LCB3ZSd2ZSBnb3QgdG8gZm9yY2UgdGhlIHJlbmRlciBzbyB0aGF0IHRoZSBzdGFydGluZyB2YWx1ZXMgYXJlIGNvcnJlY3QgKGltYWdpbmUgcG9wdWxhdGluZyBhIHRpbWVsaW5lIHdpdGggYSBidW5jaCBvZiBzZXF1ZW50aWFsIHR3ZWVucyBhbmQgdGhlbiBqdW1waW5nIHRvIHRoZSBlbmQpXHJcblxyXG4gICAgICBpbmRleCA9IGZ1bGxUYXJnZXRzID09PSB0YXJnZXRzID8gaSA6IGZ1bGxUYXJnZXRzLmluZGV4T2YodGFyZ2V0KTtcclxuXHJcbiAgICAgIGlmIChoYXJuZXNzICYmIChwbHVnaW4gPSBuZXcgaGFybmVzcygpKS5pbml0KHRhcmdldCwgaGFybmVzc1ZhcnMgfHwgY2xlYW5WYXJzLCB0d2VlbiwgaW5kZXgsIGZ1bGxUYXJnZXRzKSAhPT0gZmFsc2UpIHtcclxuICAgICAgICB0d2Vlbi5fcHQgPSBwdCA9IG5ldyBQcm9wVHdlZW4odHdlZW4uX3B0LCB0YXJnZXQsIHBsdWdpbi5uYW1lLCAwLCAxLCBwbHVnaW4ucmVuZGVyLCBwbHVnaW4sIDAsIHBsdWdpbi5wcmlvcml0eSk7XHJcblxyXG4gICAgICAgIHBsdWdpbi5fcHJvcHMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xyXG4gICAgICAgICAgcHRMb29rdXBbbmFtZV0gPSBwdDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcGx1Z2luLnByaW9yaXR5ICYmIChoYXNQcmlvcml0eSA9IDEpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIWhhcm5lc3MgfHwgaGFybmVzc1ZhcnMpIHtcclxuICAgICAgICBmb3IgKHAgaW4gY2xlYW5WYXJzKSB7XHJcbiAgICAgICAgICBpZiAoX3BsdWdpbnNbcF0gJiYgKHBsdWdpbiA9IF9jaGVja1BsdWdpbihwLCBjbGVhblZhcnMsIHR3ZWVuLCBpbmRleCwgdGFyZ2V0LCBmdWxsVGFyZ2V0cykpKSB7XHJcbiAgICAgICAgICAgIHBsdWdpbi5wcmlvcml0eSAmJiAoaGFzUHJpb3JpdHkgPSAxKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHB0TG9va3VwW3BdID0gcHQgPSBfYWRkUHJvcFR3ZWVuLmNhbGwodHdlZW4sIHRhcmdldCwgcCwgXCJnZXRcIiwgY2xlYW5WYXJzW3BdLCBpbmRleCwgZnVsbFRhcmdldHMsIDAsIHZhcnMuc3RyaW5nRmlsdGVyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHR3ZWVuLl9vcCAmJiB0d2Vlbi5fb3BbaV0gJiYgdHdlZW4ua2lsbCh0YXJnZXQsIHR3ZWVuLl9vcFtpXSk7XHJcblxyXG4gICAgICBpZiAoYXV0b092ZXJ3cml0ZSAmJiB0d2Vlbi5fcHQpIHtcclxuICAgICAgICBfb3ZlcndyaXRpbmdUd2VlbiA9IHR3ZWVuO1xyXG5cclxuICAgICAgICBfZ2xvYmFsVGltZWxpbmUua2lsbFR3ZWVuc09mKHRhcmdldCwgcHRMb29rdXAsIHR3ZWVuLmdsb2JhbFRpbWUodGltZSkpOyAvLyBtYWtlIHN1cmUgdGhlIG92ZXJ3cml0aW5nIGRvZXNuJ3Qgb3ZlcndyaXRlIFRISVMgdHdlZW4hISFcclxuXHJcblxyXG4gICAgICAgIG92ZXJ3cml0dGVuID0gIXR3ZWVuLnBhcmVudDtcclxuICAgICAgICBfb3ZlcndyaXRpbmdUd2VlbiA9IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHR3ZWVuLl9wdCAmJiBsYXp5ICYmIChfbGF6eUxvb2t1cFtnc0RhdGEuaWRdID0gMSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFzUHJpb3JpdHkgJiYgX3NvcnRQcm9wVHdlZW5zQnlQcmlvcml0eSh0d2Vlbik7XHJcbiAgICB0d2Vlbi5fb25Jbml0ICYmIHR3ZWVuLl9vbkluaXQodHdlZW4pOyAvL3BsdWdpbnMgbGlrZSBSb3VuZFByb3BzIG11c3Qgd2FpdCB1bnRpbCBBTEwgb2YgdGhlIFByb3BUd2VlbnMgYXJlIGluc3RhbnRpYXRlZC4gSW4gdGhlIHBsdWdpbidzIGluaXQoKSBmdW5jdGlvbiwgaXQgc2V0cyB0aGUgX29uSW5pdCBvbiB0aGUgdHdlZW4gaW5zdGFuY2UuIE1heSBub3QgYmUgcHJldHR5L2ludHVpdGl2ZSwgYnV0IGl0J3MgZmFzdCBhbmQga2VlcHMgZmlsZSBzaXplIGRvd24uXHJcbiAgfVxyXG5cclxuICB0d2Vlbi5fb25VcGRhdGUgPSBvblVwZGF0ZTtcclxuICB0d2Vlbi5faW5pdHRlZCA9ICghdHdlZW4uX29wIHx8IHR3ZWVuLl9wdCkgJiYgIW92ZXJ3cml0dGVuOyAvLyBpZiBvdmVyd3JpdHRlblByb3BzIHJlc3VsdGVkIGluIHRoZSBlbnRpcmUgdHdlZW4gYmVpbmcga2lsbGVkLCBkbyBOT1QgZmxhZyBpdCBhcyBpbml0dGVkIG9yIGVsc2UgaXQgbWF5IHJlbmRlciBmb3Igb25lIHRpY2suXHJcblxyXG4gIGtleWZyYW1lcyAmJiB0aW1lIDw9IDAgJiYgdGwucmVuZGVyKF9iaWdOdW0sIHRydWUsIHRydWUpOyAvLyBpZiB0aGVyZSdzIGEgMCUga2V5ZnJhbWUsIGl0J2xsIHJlbmRlciBpbiB0aGUgXCJiZWZvcmVcIiBzdGF0ZSBmb3IgYW55IHN0YWdnZXJlZC9kZWxheWVkIGFuaW1hdGlvbnMgdGh1cyB3aGVuIHRoZSBmb2xsb3dpbmcgdHdlZW4gaW5pdGlhbGl6ZXMsIGl0J2xsIHVzZSB0aGUgXCJiZWZvcmVcIiBzdGF0ZSBpbnN0ZWFkIG9mIHRoZSBcImFmdGVyXCIgc3RhdGUgYXMgdGhlIGluaXRpYWwgdmFsdWVzLlxyXG59LFxyXG4gICAgX3VwZGF0ZVByb3BUd2VlbnMgPSBmdW5jdGlvbiBfdXBkYXRlUHJvcFR3ZWVucyh0d2VlbiwgcHJvcGVydHksIHZhbHVlLCBzdGFydCwgc3RhcnRJc1JlbGF0aXZlLCByYXRpbywgdGltZSwgc2tpcFJlY3Vyc2lvbikge1xyXG4gIHZhciBwdENhY2hlID0gKHR3ZWVuLl9wdCAmJiB0d2Vlbi5fcHRDYWNoZSB8fCAodHdlZW4uX3B0Q2FjaGUgPSB7fSkpW3Byb3BlcnR5XSxcclxuICAgICAgcHQsXHJcbiAgICAgIHJvb3RQVCxcclxuICAgICAgbG9va3VwLFxyXG4gICAgICBpO1xyXG5cclxuICBpZiAoIXB0Q2FjaGUpIHtcclxuICAgIHB0Q2FjaGUgPSB0d2Vlbi5fcHRDYWNoZVtwcm9wZXJ0eV0gPSBbXTtcclxuICAgIGxvb2t1cCA9IHR3ZWVuLl9wdExvb2t1cDtcclxuICAgIGkgPSB0d2Vlbi5fdGFyZ2V0cy5sZW5ndGg7XHJcblxyXG4gICAgd2hpbGUgKGktLSkge1xyXG4gICAgICBwdCA9IGxvb2t1cFtpXVtwcm9wZXJ0eV07XHJcblxyXG4gICAgICBpZiAocHQgJiYgcHQuZCAmJiBwdC5kLl9wdCkge1xyXG4gICAgICAgIC8vIGl0J3MgYSBwbHVnaW4sIHNvIGZpbmQgdGhlIG5lc3RlZCBQcm9wVHdlZW5cclxuICAgICAgICBwdCA9IHB0LmQuX3B0O1xyXG5cclxuICAgICAgICB3aGlsZSAocHQgJiYgcHQucCAhPT0gcHJvcGVydHkgJiYgcHQuZnAgIT09IHByb3BlcnR5KSB7XHJcbiAgICAgICAgICAvLyBcImZwXCIgaXMgZnVuY3Rpb25QYXJhbSBmb3IgdGhpbmdzIGxpa2Ugc2V0dGluZyBDU1MgdmFyaWFibGVzIHdoaWNoIHJlcXVpcmUgLnNldFByb3BlcnR5KFwiLS12YXItbmFtZVwiLCB2YWx1ZSlcclxuICAgICAgICAgIHB0ID0gcHQuX25leHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIXB0KSB7XHJcbiAgICAgICAgLy8gdGhlcmUgaXMgbm8gUHJvcFR3ZWVuIGFzc29jaWF0ZWQgd2l0aCB0aGF0IHByb3BlcnR5LCBzbyB3ZSBtdXN0IEZPUkNFIG9uZSB0byBiZSBjcmVhdGVkIGFuZCBkaXRjaCBvdXQgb2YgdGhpc1xyXG4gICAgICAgIC8vIGlmIHRoZSB0d2VlbiBoYXMgb3RoZXIgcHJvcGVydGllcyB0aGF0IGFscmVhZHkgcmVuZGVyZWQgYXQgbmV3IHBvc2l0aW9ucywgd2UnZCBub3JtYWxseSBoYXZlIHRvIHJld2luZCB0byBwdXQgdGhlbSBiYWNrIGxpa2UgdHdlZW4ucmVuZGVyKDAsIHRydWUpIGJlZm9yZSBmb3JjaW5nIGFuIF9pbml0VHdlZW4oKSwgYnV0IHRoYXQgY2FuIGNyZWF0ZSBhbm90aGVyIGVkZ2UgY2FzZSBsaWtlIHR3ZWVuaW5nIGEgdGltZWxpbmUncyBwcm9ncmVzcyB3b3VsZCB0cmlnZ2VyIG9uVXBkYXRlcyB0byBmaXJlIHdoaWNoIGNvdWxkIG1vdmUgb3RoZXIgdGhpbmdzIGFyb3VuZC4gSXQncyBiZXR0ZXIgdG8ganVzdCBpbmZvcm0gdXNlcnMgdGhhdCAucmVzZXRUbygpIHNob3VsZCBPTkxZIGJlIHVzZWQgZm9yIHR3ZWVucyB0aGF0IGFscmVhZHkgaGF2ZSB0aGF0IHByb3BlcnR5LiBGb3IgZXhhbXBsZSwgeW91IGNhbid0IGdzYXAudG8oLi4ueyB5OiAwIH0pIGFuZCB0aGVuIHR3ZWVuLnJlc3RUbyhcInhcIiwgMjAwKSBmb3IgZXhhbXBsZS5cclxuICAgICAgICBfZm9yY2VBbGxQcm9wVHdlZW5zID0gMTsgLy8gb3RoZXJ3aXNlLCB3aGVuIHdlIF9hZGRQcm9wVHdlZW4oKSBhbmQgaXQgZmluZHMgbm8gY2hhbmdlIGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgdmFsdWVzLCBpdCBza2lwcyBjcmVhdGluZyBhIFByb3BUd2VlbiAoZm9yIGVmZmljaWVuY3kuLi53aHkgdHdlZW4gd2hlbiB0aGVyZSdzIG5vIGRpZmZlcmVuY2U/KSBidXQgaW4gdGhpcyBjYXNlIHdlIE5FRUQgdGhhdCBQcm9wVHdlZW4gY3JlYXRlZCBzbyB3ZSBjYW4gZWRpdCBpdC5cclxuXHJcbiAgICAgICAgdHdlZW4udmFyc1twcm9wZXJ0eV0gPSBcIis9MFwiO1xyXG5cclxuICAgICAgICBfaW5pdFR3ZWVuKHR3ZWVuLCB0aW1lKTtcclxuXHJcbiAgICAgICAgX2ZvcmNlQWxsUHJvcFR3ZWVucyA9IDA7XHJcbiAgICAgICAgcmV0dXJuIHNraXBSZWN1cnNpb24gPyBfd2Fybihwcm9wZXJ0eSArIFwiIG5vdCBlbGlnaWJsZSBmb3IgcmVzZXRcIikgOiAxOyAvLyBpZiBzb21lb25lIHRyaWVzIHRvIGRvIGEgcXVpY2tUbygpIG9uIGEgc3BlY2lhbCBwcm9wZXJ0eSBsaWtlIGJvcmRlclJhZGl1cyB3aGljaCBtdXN0IGdldCBzcGxpdCBpbnRvIDQgZGlmZmVyZW50IHByb3BlcnRpZXMsIHRoYXQncyBub3QgZWxpZ2libGUgZm9yIC5yZXNldFRvKCkuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHB0Q2FjaGUucHVzaChwdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpID0gcHRDYWNoZS5sZW5ndGg7XHJcblxyXG4gIHdoaWxlIChpLS0pIHtcclxuICAgIHJvb3RQVCA9IHB0Q2FjaGVbaV07XHJcbiAgICBwdCA9IHJvb3RQVC5fcHQgfHwgcm9vdFBUOyAvLyBjb21wbGV4IHZhbHVlcyBtYXkgaGF2ZSBuZXN0ZWQgUHJvcFR3ZWVucy4gV2Ugb25seSBhY2NvbW1vZGF0ZSB0aGUgRklSU1QgdmFsdWUuXHJcblxyXG4gICAgcHQucyA9IChzdGFydCB8fCBzdGFydCA9PT0gMCkgJiYgIXN0YXJ0SXNSZWxhdGl2ZSA/IHN0YXJ0IDogcHQucyArIChzdGFydCB8fCAwKSArIHJhdGlvICogcHQuYztcclxuICAgIHB0LmMgPSB2YWx1ZSAtIHB0LnM7XHJcbiAgICByb290UFQuZSAmJiAocm9vdFBULmUgPSBfcm91bmQodmFsdWUpICsgZ2V0VW5pdChyb290UFQuZSkpOyAvLyBtYWlubHkgZm9yIENTU1BsdWdpbiAoZW5kIHZhbHVlKVxyXG5cclxuICAgIHJvb3RQVC5iICYmIChyb290UFQuYiA9IHB0LnMgKyBnZXRVbml0KHJvb3RQVC5iKSk7IC8vIChiZWdpbm5pbmcgdmFsdWUpXHJcbiAgfVxyXG59LFxyXG4gICAgX2FkZEFsaWFzZXNUb1ZhcnMgPSBmdW5jdGlvbiBfYWRkQWxpYXNlc1RvVmFycyh0YXJnZXRzLCB2YXJzKSB7XHJcbiAgdmFyIGhhcm5lc3MgPSB0YXJnZXRzWzBdID8gX2dldENhY2hlKHRhcmdldHNbMF0pLmhhcm5lc3MgOiAwLFxyXG4gICAgICBwcm9wZXJ0eUFsaWFzZXMgPSBoYXJuZXNzICYmIGhhcm5lc3MuYWxpYXNlcyxcclxuICAgICAgY29weSxcclxuICAgICAgcCxcclxuICAgICAgaSxcclxuICAgICAgYWxpYXNlcztcclxuXHJcbiAgaWYgKCFwcm9wZXJ0eUFsaWFzZXMpIHtcclxuICAgIHJldHVybiB2YXJzO1xyXG4gIH1cclxuXHJcbiAgY29weSA9IF9tZXJnZSh7fSwgdmFycyk7XHJcblxyXG4gIGZvciAocCBpbiBwcm9wZXJ0eUFsaWFzZXMpIHtcclxuICAgIGlmIChwIGluIGNvcHkpIHtcclxuICAgICAgYWxpYXNlcyA9IHByb3BlcnR5QWxpYXNlc1twXS5zcGxpdChcIixcIik7XHJcbiAgICAgIGkgPSBhbGlhc2VzLmxlbmd0aDtcclxuXHJcbiAgICAgIHdoaWxlIChpLS0pIHtcclxuICAgICAgICBjb3B5W2FsaWFzZXNbaV1dID0gY29weVtwXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNvcHk7XHJcbn0sXHJcbiAgICAvLyBwYXJzZXMgbXVsdGlwbGUgZm9ybWF0cywgbGlrZSB7XCIwJVwiOiB7eDogMTAwfSwge1wiNTAlXCI6IHt4OiAtMjB9fSBhbmQgeyB4OiB7XCIwJVwiOiAxMDAsIFwiNTAlXCI6IC0yMH0gfSwgYW5kIGFuIFwiZWFzZVwiIGNhbiBiZSBzZXQgb24gYW55IG9iamVjdC4gV2UgcG9wdWxhdGUgYW4gXCJhbGxQcm9wc1wiIG9iamVjdCB3aXRoIGFuIEFycmF5IGZvciBlYWNoIHByb3BlcnR5LCBsaWtlIHt4OiBbe30sIHt9XSwgeTpbe30sIHt9XX0gd2l0aCBkYXRhIGZvciBlYWNoIHByb3BlcnR5IHR3ZWVuLiBUaGUgb2JqZWN0cyBoYXZlIGEgXCJ0XCIgKHRpbWUpLCBcInZcIiwgKHZhbHVlKSwgYW5kIFwiZVwiIChlYXNlKSBwcm9wZXJ0eS4gVGhpcyBhbGxvd3MgdXMgdG8gcGllY2UgdG9nZXRoZXIgYSB0aW1lbGluZSBsYXRlci5cclxuX3BhcnNlS2V5ZnJhbWUgPSBmdW5jdGlvbiBfcGFyc2VLZXlmcmFtZShwcm9wLCBvYmosIGFsbFByb3BzLCBlYXNlRWFjaCkge1xyXG4gIHZhciBlYXNlID0gb2JqLmVhc2UgfHwgZWFzZUVhY2ggfHwgXCJwb3dlcjEuaW5PdXRcIixcclxuICAgICAgcCxcclxuICAgICAgYTtcclxuXHJcbiAgaWYgKF9pc0FycmF5KG9iaikpIHtcclxuICAgIGEgPSBhbGxQcm9wc1twcm9wXSB8fCAoYWxsUHJvcHNbcHJvcF0gPSBbXSk7IC8vIHQgPSB0aW1lIChvdXQgb2YgMTAwKSwgdiA9IHZhbHVlLCBlID0gZWFzZVxyXG5cclxuICAgIG9iai5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSwgaSkge1xyXG4gICAgICByZXR1cm4gYS5wdXNoKHtcclxuICAgICAgICB0OiBpIC8gKG9iai5sZW5ndGggLSAxKSAqIDEwMCxcclxuICAgICAgICB2OiB2YWx1ZSxcclxuICAgICAgICBlOiBlYXNlXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGZvciAocCBpbiBvYmopIHtcclxuICAgICAgYSA9IGFsbFByb3BzW3BdIHx8IChhbGxQcm9wc1twXSA9IFtdKTtcclxuICAgICAgcCA9PT0gXCJlYXNlXCIgfHwgYS5wdXNoKHtcclxuICAgICAgICB0OiBwYXJzZUZsb2F0KHByb3ApLFxyXG4gICAgICAgIHY6IG9ialtwXSxcclxuICAgICAgICBlOiBlYXNlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufSxcclxuICAgIF9wYXJzZUZ1bmNPclN0cmluZyA9IGZ1bmN0aW9uIF9wYXJzZUZ1bmNPclN0cmluZyh2YWx1ZSwgdHdlZW4sIGksIHRhcmdldCwgdGFyZ2V0cykge1xyXG4gIHJldHVybiBfaXNGdW5jdGlvbih2YWx1ZSkgPyB2YWx1ZS5jYWxsKHR3ZWVuLCBpLCB0YXJnZXQsIHRhcmdldHMpIDogX2lzU3RyaW5nKHZhbHVlKSAmJiB+dmFsdWUuaW5kZXhPZihcInJhbmRvbShcIikgPyBfcmVwbGFjZVJhbmRvbSh2YWx1ZSkgOiB2YWx1ZTtcclxufSxcclxuICAgIF9zdGFnZ2VyVHdlZW5Qcm9wcyA9IF9jYWxsYmFja05hbWVzICsgXCJyZXBlYXQscmVwZWF0RGVsYXkseW95byxyZXBlYXRSZWZyZXNoLHlveW9FYXNlLGF1dG9SZXZlcnRcIixcclxuICAgIF9zdGFnZ2VyUHJvcHNUb1NraXAgPSB7fTtcclxuXHJcbl9mb3JFYWNoTmFtZShfc3RhZ2dlclR3ZWVuUHJvcHMgKyBcIixpZCxzdGFnZ2VyLGRlbGF5LGR1cmF0aW9uLHBhdXNlZCxzY3JvbGxUcmlnZ2VyXCIsIGZ1bmN0aW9uIChuYW1lKSB7XHJcbiAgcmV0dXJuIF9zdGFnZ2VyUHJvcHNUb1NraXBbbmFtZV0gPSAxO1xyXG59KTtcclxuLypcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICogVFdFRU5cclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICovXHJcblxyXG5cclxuZXhwb3J0IHZhciBUd2VlbiA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0FuaW1hdGlvbjIpIHtcclxuICBfaW5oZXJpdHNMb29zZShUd2VlbiwgX0FuaW1hdGlvbjIpO1xyXG5cclxuICBmdW5jdGlvbiBUd2Vlbih0YXJnZXRzLCB2YXJzLCBwb3NpdGlvbiwgc2tpcEluaGVyaXQpIHtcclxuICAgIHZhciBfdGhpczM7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB2YXJzID09PSBcIm51bWJlclwiKSB7XHJcbiAgICAgIHBvc2l0aW9uLmR1cmF0aW9uID0gdmFycztcclxuICAgICAgdmFycyA9IHBvc2l0aW9uO1xyXG4gICAgICBwb3NpdGlvbiA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgX3RoaXMzID0gX0FuaW1hdGlvbjIuY2FsbCh0aGlzLCBza2lwSW5oZXJpdCA/IHZhcnMgOiBfaW5oZXJpdERlZmF1bHRzKHZhcnMpKSB8fCB0aGlzO1xyXG4gICAgdmFyIF90aGlzMyR2YXJzID0gX3RoaXMzLnZhcnMsXHJcbiAgICAgICAgZHVyYXRpb24gPSBfdGhpczMkdmFycy5kdXJhdGlvbixcclxuICAgICAgICBkZWxheSA9IF90aGlzMyR2YXJzLmRlbGF5LFxyXG4gICAgICAgIGltbWVkaWF0ZVJlbmRlciA9IF90aGlzMyR2YXJzLmltbWVkaWF0ZVJlbmRlcixcclxuICAgICAgICBzdGFnZ2VyID0gX3RoaXMzJHZhcnMuc3RhZ2dlcixcclxuICAgICAgICBvdmVyd3JpdGUgPSBfdGhpczMkdmFycy5vdmVyd3JpdGUsXHJcbiAgICAgICAga2V5ZnJhbWVzID0gX3RoaXMzJHZhcnMua2V5ZnJhbWVzLFxyXG4gICAgICAgIGRlZmF1bHRzID0gX3RoaXMzJHZhcnMuZGVmYXVsdHMsXHJcbiAgICAgICAgc2Nyb2xsVHJpZ2dlciA9IF90aGlzMyR2YXJzLnNjcm9sbFRyaWdnZXIsXHJcbiAgICAgICAgeW95b0Vhc2UgPSBfdGhpczMkdmFycy55b3lvRWFzZSxcclxuICAgICAgICBwYXJlbnQgPSB2YXJzLnBhcmVudCB8fCBfZ2xvYmFsVGltZWxpbmUsXHJcbiAgICAgICAgcGFyc2VkVGFyZ2V0cyA9IChfaXNBcnJheSh0YXJnZXRzKSB8fCBfaXNUeXBlZEFycmF5KHRhcmdldHMpID8gX2lzTnVtYmVyKHRhcmdldHNbMF0pIDogXCJsZW5ndGhcIiBpbiB2YXJzKSA/IFt0YXJnZXRzXSA6IHRvQXJyYXkodGFyZ2V0cyksXHJcbiAgICAgICAgdGwsXHJcbiAgICAgICAgaSxcclxuICAgICAgICBjb3B5LFxyXG4gICAgICAgIGwsXHJcbiAgICAgICAgcCxcclxuICAgICAgICBjdXJUYXJnZXQsXHJcbiAgICAgICAgc3RhZ2dlckZ1bmMsXHJcbiAgICAgICAgc3RhZ2dlclZhcnNUb01lcmdlO1xyXG4gICAgX3RoaXMzLl90YXJnZXRzID0gcGFyc2VkVGFyZ2V0cy5sZW5ndGggPyBfaGFybmVzcyhwYXJzZWRUYXJnZXRzKSA6IF93YXJuKFwiR1NBUCB0YXJnZXQgXCIgKyB0YXJnZXRzICsgXCIgbm90IGZvdW5kLiBodHRwczovL2dzYXAuY29tXCIsICFfY29uZmlnLm51bGxUYXJnZXRXYXJuKSB8fCBbXTtcclxuICAgIF90aGlzMy5fcHRMb29rdXAgPSBbXTsgLy9Qcm9wVHdlZW4gbG9va3VwLiBBbiBhcnJheSBjb250YWluaW5nIGFuIG9iamVjdCBmb3IgZWFjaCB0YXJnZXQsIGhhdmluZyBrZXlzIGZvciBlYWNoIHR3ZWVuaW5nIHByb3BlcnR5XHJcblxyXG4gICAgX3RoaXMzLl9vdmVyd3JpdGUgPSBvdmVyd3JpdGU7XHJcblxyXG4gICAgaWYgKGtleWZyYW1lcyB8fCBzdGFnZ2VyIHx8IF9pc0Z1bmNPclN0cmluZyhkdXJhdGlvbikgfHwgX2lzRnVuY09yU3RyaW5nKGRlbGF5KSkge1xyXG4gICAgICB2YXJzID0gX3RoaXMzLnZhcnM7XHJcbiAgICAgIHRsID0gX3RoaXMzLnRpbWVsaW5lID0gbmV3IFRpbWVsaW5lKHtcclxuICAgICAgICBkYXRhOiBcIm5lc3RlZFwiLFxyXG4gICAgICAgIGRlZmF1bHRzOiBkZWZhdWx0cyB8fCB7fSxcclxuICAgICAgICB0YXJnZXRzOiBwYXJlbnQgJiYgcGFyZW50LmRhdGEgPT09IFwibmVzdGVkXCIgPyBwYXJlbnQudmFycy50YXJnZXRzIDogcGFyc2VkVGFyZ2V0c1xyXG4gICAgICB9KTsgLy8gd2UgbmVlZCB0byBzdG9yZSB0aGUgdGFyZ2V0cyBiZWNhdXNlIGZvciBzdGFnZ2VycyBhbmQga2V5ZnJhbWVzLCB3ZSBlbmQgdXAgY3JlYXRpbmcgYW4gaW5kaXZpZHVhbCB0d2VlbiBmb3IgZWFjaCBidXQgZnVuY3Rpb24tYmFzZWQgdmFsdWVzIG5lZWQgdG8ga25vdyB0aGUgaW5kZXggYW5kIHRoZSB3aG9sZSBBcnJheSBvZiB0YXJnZXRzLlxyXG5cclxuICAgICAgdGwua2lsbCgpO1xyXG4gICAgICB0bC5wYXJlbnQgPSB0bC5fZHAgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMyk7XHJcbiAgICAgIHRsLl9zdGFydCA9IDA7XHJcblxyXG4gICAgICBpZiAoc3RhZ2dlciB8fCBfaXNGdW5jT3JTdHJpbmcoZHVyYXRpb24pIHx8IF9pc0Z1bmNPclN0cmluZyhkZWxheSkpIHtcclxuICAgICAgICBsID0gcGFyc2VkVGFyZ2V0cy5sZW5ndGg7XHJcbiAgICAgICAgc3RhZ2dlckZ1bmMgPSBzdGFnZ2VyICYmIGRpc3RyaWJ1dGUoc3RhZ2dlcik7XHJcblxyXG4gICAgICAgIGlmIChfaXNPYmplY3Qoc3RhZ2dlcikpIHtcclxuICAgICAgICAgIC8vdXNlcnMgY2FuIHBhc3MgaW4gY2FsbGJhY2tzIGxpa2Ugb25TdGFydC9vbkNvbXBsZXRlIGluIHRoZSBzdGFnZ2VyIG9iamVjdC4gVGhlc2Ugc2hvdWxkIGZpcmUgd2l0aCBlYWNoIGluZGl2aWR1YWwgdHdlZW4uXHJcbiAgICAgICAgICBmb3IgKHAgaW4gc3RhZ2dlcikge1xyXG4gICAgICAgICAgICBpZiAofl9zdGFnZ2VyVHdlZW5Qcm9wcy5pbmRleE9mKHApKSB7XHJcbiAgICAgICAgICAgICAgc3RhZ2dlclZhcnNUb01lcmdlIHx8IChzdGFnZ2VyVmFyc1RvTWVyZ2UgPSB7fSk7XHJcbiAgICAgICAgICAgICAgc3RhZ2dlclZhcnNUb01lcmdlW3BdID0gc3RhZ2dlcltwXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgY29weSA9IF9jb3B5RXhjbHVkaW5nKHZhcnMsIF9zdGFnZ2VyUHJvcHNUb1NraXApO1xyXG4gICAgICAgICAgY29weS5zdGFnZ2VyID0gMDtcclxuICAgICAgICAgIHlveW9FYXNlICYmIChjb3B5LnlveW9FYXNlID0geW95b0Vhc2UpO1xyXG4gICAgICAgICAgc3RhZ2dlclZhcnNUb01lcmdlICYmIF9tZXJnZShjb3B5LCBzdGFnZ2VyVmFyc1RvTWVyZ2UpO1xyXG4gICAgICAgICAgY3VyVGFyZ2V0ID0gcGFyc2VkVGFyZ2V0c1tpXTsgLy9kb24ndCBqdXN0IGNvcHkgZHVyYXRpb24gb3IgZGVsYXkgYmVjYXVzZSBpZiB0aGV5J3JlIGEgc3RyaW5nIG9yIGZ1bmN0aW9uLCB3ZSdkIGVuZCB1cCBpbiBhbiBpbmZpbml0ZSBsb29wIGJlY2F1c2UgX2lzRnVuY09yU3RyaW5nKCkgd291bGQgZXZhbHVhdGUgYXMgdHJ1ZSBpbiB0aGUgY2hpbGQgdHdlZW5zLCBlbnRlcmluZyB0aGlzIGxvb3AsIGV0Yy4gU28gd2UgcGFyc2UgdGhlIHZhbHVlIHN0cmFpZ2h0IGZyb20gdmFycyBhbmQgZGVmYXVsdCB0byAwLlxyXG5cclxuICAgICAgICAgIGNvcHkuZHVyYXRpb24gPSArX3BhcnNlRnVuY09yU3RyaW5nKGR1cmF0aW9uLCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMyksIGksIGN1clRhcmdldCwgcGFyc2VkVGFyZ2V0cyk7XHJcbiAgICAgICAgICBjb3B5LmRlbGF5ID0gKCtfcGFyc2VGdW5jT3JTdHJpbmcoZGVsYXksIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMzKSwgaSwgY3VyVGFyZ2V0LCBwYXJzZWRUYXJnZXRzKSB8fCAwKSAtIF90aGlzMy5fZGVsYXk7XHJcblxyXG4gICAgICAgICAgaWYgKCFzdGFnZ2VyICYmIGwgPT09IDEgJiYgY29weS5kZWxheSkge1xyXG4gICAgICAgICAgICAvLyBpZiBzb21lb25lIGRvZXMgZGVsYXk6XCJyYW5kb20oMSwgNSlcIiwgcmVwZWF0Oi0xLCBmb3IgZXhhbXBsZSwgdGhlIGRlbGF5IHNob3VsZG4ndCBiZSBpbnNpZGUgdGhlIHJlcGVhdC5cclxuICAgICAgICAgICAgX3RoaXMzLl9kZWxheSA9IGRlbGF5ID0gY29weS5kZWxheTtcclxuICAgICAgICAgICAgX3RoaXMzLl9zdGFydCArPSBkZWxheTtcclxuICAgICAgICAgICAgY29weS5kZWxheSA9IDA7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGwudG8oY3VyVGFyZ2V0LCBjb3B5LCBzdGFnZ2VyRnVuYyA/IHN0YWdnZXJGdW5jKGksIGN1clRhcmdldCwgcGFyc2VkVGFyZ2V0cykgOiAwKTtcclxuICAgICAgICAgIHRsLl9lYXNlID0gX2Vhc2VNYXAubm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRsLmR1cmF0aW9uKCkgPyBkdXJhdGlvbiA9IGRlbGF5ID0gMCA6IF90aGlzMy50aW1lbGluZSA9IDA7IC8vIGlmIHRoZSB0aW1lbGluZSdzIGR1cmF0aW9uIGlzIDAsIHdlIGRvbid0IG5lZWQgYSB0aW1lbGluZSBpbnRlcm5hbGx5IVxyXG4gICAgICB9IGVsc2UgaWYgKGtleWZyYW1lcykge1xyXG4gICAgICAgIF9pbmhlcml0RGVmYXVsdHMoX3NldERlZmF1bHRzKHRsLnZhcnMuZGVmYXVsdHMsIHtcclxuICAgICAgICAgIGVhc2U6IFwibm9uZVwiXHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICB0bC5fZWFzZSA9IF9wYXJzZUVhc2Uoa2V5ZnJhbWVzLmVhc2UgfHwgdmFycy5lYXNlIHx8IFwibm9uZVwiKTtcclxuICAgICAgICB2YXIgdGltZSA9IDAsXHJcbiAgICAgICAgICAgIGEsXHJcbiAgICAgICAgICAgIGtmLFxyXG4gICAgICAgICAgICB2O1xyXG5cclxuICAgICAgICBpZiAoX2lzQXJyYXkoa2V5ZnJhbWVzKSkge1xyXG4gICAgICAgICAga2V5ZnJhbWVzLmZvckVhY2goZnVuY3Rpb24gKGZyYW1lKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0bC50byhwYXJzZWRUYXJnZXRzLCBmcmFtZSwgXCI+XCIpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0bC5kdXJhdGlvbigpOyAvLyB0byBlbnN1cmUgdGwuX2R1ciBpcyBjYWNoZWQgYmVjYXVzZSB3ZSB0YXAgaW50byBpdCBmb3IgcGVyZm9ybWFuY2UgcHVycG9zZXMgaW4gdGhlIHJlbmRlcigpIG1ldGhvZC5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29weSA9IHt9O1xyXG5cclxuICAgICAgICAgIGZvciAocCBpbiBrZXlmcmFtZXMpIHtcclxuICAgICAgICAgICAgcCA9PT0gXCJlYXNlXCIgfHwgcCA9PT0gXCJlYXNlRWFjaFwiIHx8IF9wYXJzZUtleWZyYW1lKHAsIGtleWZyYW1lc1twXSwgY29weSwga2V5ZnJhbWVzLmVhc2VFYWNoKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBmb3IgKHAgaW4gY29weSkge1xyXG4gICAgICAgICAgICBhID0gY29weVtwXS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGEudCAtIGIudDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRpbWUgPSAwO1xyXG5cclxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICBrZiA9IGFbaV07XHJcbiAgICAgICAgICAgICAgdiA9IHtcclxuICAgICAgICAgICAgICAgIGVhc2U6IGtmLmUsXHJcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogKGtmLnQgLSAoaSA/IGFbaSAtIDFdLnQgOiAwKSkgLyAxMDAgKiBkdXJhdGlvblxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgdltwXSA9IGtmLnY7XHJcbiAgICAgICAgICAgICAgdGwudG8ocGFyc2VkVGFyZ2V0cywgdiwgdGltZSk7XHJcbiAgICAgICAgICAgICAgdGltZSArPSB2LmR1cmF0aW9uO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGwuZHVyYXRpb24oKSA8IGR1cmF0aW9uICYmIHRsLnRvKHt9LCB7XHJcbiAgICAgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbiAtIHRsLmR1cmF0aW9uKClcclxuICAgICAgICAgIH0pOyAvLyBpbiBjYXNlIGtleWZyYW1lcyBkaWRuJ3QgZ28gdG8gMTAwJVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgZHVyYXRpb24gfHwgX3RoaXMzLmR1cmF0aW9uKGR1cmF0aW9uID0gdGwuZHVyYXRpb24oKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBfdGhpczMudGltZWxpbmUgPSAwOyAvL3NwZWVkIG9wdGltaXphdGlvbiwgZmFzdGVyIGxvb2t1cHMgKG5vIGdvaW5nIHVwIHRoZSBwcm90b3R5cGUgY2hhaW4pXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG92ZXJ3cml0ZSA9PT0gdHJ1ZSAmJiAhX3N1cHByZXNzT3ZlcndyaXRlcykge1xyXG4gICAgICBfb3ZlcndyaXRpbmdUd2VlbiA9IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMzKTtcclxuXHJcbiAgICAgIF9nbG9iYWxUaW1lbGluZS5raWxsVHdlZW5zT2YocGFyc2VkVGFyZ2V0cyk7XHJcblxyXG4gICAgICBfb3ZlcndyaXRpbmdUd2VlbiA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgX2FkZFRvVGltZWxpbmUocGFyZW50LCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMyksIHBvc2l0aW9uKTtcclxuXHJcbiAgICB2YXJzLnJldmVyc2VkICYmIF90aGlzMy5yZXZlcnNlKCk7XHJcbiAgICB2YXJzLnBhdXNlZCAmJiBfdGhpczMucGF1c2VkKHRydWUpO1xyXG5cclxuICAgIGlmIChpbW1lZGlhdGVSZW5kZXIgfHwgIWR1cmF0aW9uICYmICFrZXlmcmFtZXMgJiYgX3RoaXMzLl9zdGFydCA9PT0gX3JvdW5kUHJlY2lzZShwYXJlbnQuX3RpbWUpICYmIF9pc05vdEZhbHNlKGltbWVkaWF0ZVJlbmRlcikgJiYgX2hhc05vUGF1c2VkQW5jZXN0b3JzKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMzKSkgJiYgcGFyZW50LmRhdGEgIT09IFwibmVzdGVkXCIpIHtcclxuICAgICAgX3RoaXMzLl90VGltZSA9IC1fdGlueU51bTsgLy9mb3JjZXMgYSByZW5kZXIgd2l0aG91dCBoYXZpbmcgdG8gc2V0IHRoZSByZW5kZXIoKSBcImZvcmNlXCIgcGFyYW1ldGVyIHRvIHRydWUgYmVjYXVzZSB3ZSB3YW50IHRvIGFsbG93IGxhenlpbmcgYnkgZGVmYXVsdCAodXNpbmcgdGhlIFwiZm9yY2VcIiBwYXJhbWV0ZXIgYWx3YXlzIGZvcmNlcyBhbiBpbW1lZGlhdGUgZnVsbCByZW5kZXIpXHJcblxyXG4gICAgICBfdGhpczMucmVuZGVyKE1hdGgubWF4KDAsIC1kZWxheSkgfHwgMCk7IC8vaW4gY2FzZSBkZWxheSBpcyBuZWdhdGl2ZVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBzY3JvbGxUcmlnZ2VyICYmIF9zY3JvbGxUcmlnZ2VyKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMzKSwgc2Nyb2xsVHJpZ2dlcik7XHJcbiAgICByZXR1cm4gX3RoaXMzO1xyXG4gIH1cclxuXHJcbiAgdmFyIF9wcm90bzMgPSBUd2Vlbi5wcm90b3R5cGU7XHJcblxyXG4gIF9wcm90bzMucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKHRvdGFsVGltZSwgc3VwcHJlc3NFdmVudHMsIGZvcmNlKSB7XHJcbiAgICB2YXIgcHJldlRpbWUgPSB0aGlzLl90aW1lLFxyXG4gICAgICAgIHREdXIgPSB0aGlzLl90RHVyLFxyXG4gICAgICAgIGR1ciA9IHRoaXMuX2R1cixcclxuICAgICAgICBpc05lZ2F0aXZlID0gdG90YWxUaW1lIDwgMCxcclxuICAgICAgICB0VGltZSA9IHRvdGFsVGltZSA+IHREdXIgLSBfdGlueU51bSAmJiAhaXNOZWdhdGl2ZSA/IHREdXIgOiB0b3RhbFRpbWUgPCBfdGlueU51bSA/IDAgOiB0b3RhbFRpbWUsXHJcbiAgICAgICAgdGltZSxcclxuICAgICAgICBwdCxcclxuICAgICAgICBpdGVyYXRpb24sXHJcbiAgICAgICAgY3ljbGVEdXJhdGlvbixcclxuICAgICAgICBwcmV2SXRlcmF0aW9uLFxyXG4gICAgICAgIGlzWW95byxcclxuICAgICAgICByYXRpbyxcclxuICAgICAgICB0aW1lbGluZSxcclxuICAgICAgICB5b3lvRWFzZTtcclxuXHJcbiAgICBpZiAoIWR1cikge1xyXG4gICAgICBfcmVuZGVyWmVyb0R1cmF0aW9uVHdlZW4odGhpcywgdG90YWxUaW1lLCBzdXBwcmVzc0V2ZW50cywgZm9yY2UpO1xyXG4gICAgfSBlbHNlIGlmICh0VGltZSAhPT0gdGhpcy5fdFRpbWUgfHwgIXRvdGFsVGltZSB8fCBmb3JjZSB8fCAhdGhpcy5faW5pdHRlZCAmJiB0aGlzLl90VGltZSB8fCB0aGlzLl9zdGFydEF0ICYmIHRoaXMuX3pUaW1lIDwgMCAhPT0gaXNOZWdhdGl2ZSB8fCB0aGlzLl9sYXp5KSB7XHJcbiAgICAgIC8vIHRoaXMgc2Vuc2VzIGlmIHdlJ3JlIGNyb3NzaW5nIG92ZXIgdGhlIHN0YXJ0IHRpbWUsIGluIHdoaWNoIGNhc2Ugd2UgbXVzdCByZWNvcmQgX3pUaW1lIGFuZCBmb3JjZSB0aGUgcmVuZGVyLCBidXQgd2UgZG8gaXQgaW4gdGhpcyBsZW5ndGh5IGNvbmRpdGlvbmFsIHdheSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyAodXN1YWxseSB3ZSBjYW4gc2tpcCB0aGUgY2FsY3VsYXRpb25zKTogdGhpcy5faW5pdHRlZCAmJiAodGhpcy5felRpbWUgPCAwKSAhPT0gKHRvdGFsVGltZSA8IDApXHJcbiAgICAgIHRpbWUgPSB0VGltZTtcclxuICAgICAgdGltZWxpbmUgPSB0aGlzLnRpbWVsaW5lO1xyXG5cclxuICAgICAgaWYgKHRoaXMuX3JlcGVhdCkge1xyXG4gICAgICAgIC8vYWRqdXN0IHRoZSB0aW1lIGZvciByZXBlYXRzIGFuZCB5b3lvc1xyXG4gICAgICAgIGN5Y2xlRHVyYXRpb24gPSBkdXIgKyB0aGlzLl9yRGVsYXk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9yZXBlYXQgPCAtMSAmJiBpc05lZ2F0aXZlKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy50b3RhbFRpbWUoY3ljbGVEdXJhdGlvbiAqIDEwMCArIHRvdGFsVGltZSwgc3VwcHJlc3NFdmVudHMsIGZvcmNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRpbWUgPSBfcm91bmRQcmVjaXNlKHRUaW1lICUgY3ljbGVEdXJhdGlvbik7IC8vcm91bmQgdG8gYXZvaWQgZmxvYXRpbmcgcG9pbnQgZXJyb3JzLiAoNCAlIDAuOCBzaG91bGQgYmUgMCBidXQgc29tZSBicm93c2VycyByZXBvcnQgaXQgYXMgMC43OTk5OTk5OSEpXHJcblxyXG4gICAgICAgIGlmICh0VGltZSA9PT0gdER1cikge1xyXG4gICAgICAgICAgLy8gdGhlIHREdXIgPT09IHRUaW1lIGlzIGZvciBlZGdlIGNhc2VzIHdoZXJlIHRoZXJlJ3MgYSBsZW5ndGh5IGRlY2ltYWwgb24gdGhlIGR1cmF0aW9uIGFuZCBpdCBtYXkgcmVhY2ggdGhlIHZlcnkgZW5kIGJ1dCB0aGUgdGltZSBpcyByZW5kZXJlZCBhcyBub3QtcXVpdGUtdGhlcmUgKHJlbWVtYmVyLCB0RHVyIGlzIHJvdW5kZWQgdG8gNCBkZWNpbWFscyB3aGVyZWFzIGR1ciBpc24ndClcclxuICAgICAgICAgIGl0ZXJhdGlvbiA9IHRoaXMuX3JlcGVhdDtcclxuICAgICAgICAgIHRpbWUgPSBkdXI7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHByZXZJdGVyYXRpb24gPSBfcm91bmRQcmVjaXNlKHRUaW1lIC8gY3ljbGVEdXJhdGlvbik7IC8vIGZ1bGwgZGVjaW1hbCB2ZXJzaW9uIG9mIGl0ZXJhdGlvbnMsIG5vdCB0aGUgcHJldmlvdXMgaXRlcmF0aW9uICh3ZSdyZSByZXVzaW5nIHByZXZJdGVyYXRpb24gdmFyaWFibGUgZm9yIGVmZmljaWVuY3kpXHJcblxyXG4gICAgICAgICAgaXRlcmF0aW9uID0gfn5wcmV2SXRlcmF0aW9uO1xyXG5cclxuICAgICAgICAgIGlmIChpdGVyYXRpb24gJiYgaXRlcmF0aW9uID09PSBwcmV2SXRlcmF0aW9uKSB7XHJcbiAgICAgICAgICAgIHRpbWUgPSBkdXI7XHJcbiAgICAgICAgICAgIGl0ZXJhdGlvbi0tO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aW1lID4gZHVyKSB7XHJcbiAgICAgICAgICAgIHRpbWUgPSBkdXI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpc1lveW8gPSB0aGlzLl95b3lvICYmIGl0ZXJhdGlvbiAmIDE7XHJcblxyXG4gICAgICAgIGlmIChpc1lveW8pIHtcclxuICAgICAgICAgIHlveW9FYXNlID0gdGhpcy5feUVhc2U7XHJcbiAgICAgICAgICB0aW1lID0gZHVyIC0gdGltZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByZXZJdGVyYXRpb24gPSBfYW5pbWF0aW9uQ3ljbGUodGhpcy5fdFRpbWUsIGN5Y2xlRHVyYXRpb24pO1xyXG5cclxuICAgICAgICBpZiAodGltZSA9PT0gcHJldlRpbWUgJiYgIWZvcmNlICYmIHRoaXMuX2luaXR0ZWQgJiYgaXRlcmF0aW9uID09PSBwcmV2SXRlcmF0aW9uKSB7XHJcbiAgICAgICAgICAvL2NvdWxkIGJlIGR1cmluZyB0aGUgcmVwZWF0RGVsYXkgcGFydC4gTm8gbmVlZCB0byByZW5kZXIgYW5kIGZpcmUgY2FsbGJhY2tzLlxyXG4gICAgICAgICAgdGhpcy5fdFRpbWUgPSB0VGltZTtcclxuICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGl0ZXJhdGlvbiAhPT0gcHJldkl0ZXJhdGlvbikge1xyXG4gICAgICAgICAgdGltZWxpbmUgJiYgdGhpcy5feUVhc2UgJiYgX3Byb3BhZ2F0ZVlveW9FYXNlKHRpbWVsaW5lLCBpc1lveW8pOyAvL3JlcGVhdFJlZnJlc2ggZnVuY3Rpb25hbGl0eVxyXG5cclxuICAgICAgICAgIGlmICh0aGlzLnZhcnMucmVwZWF0UmVmcmVzaCAmJiAhaXNZb3lvICYmICF0aGlzLl9sb2NrICYmIHRpbWUgIT09IGN5Y2xlRHVyYXRpb24gJiYgdGhpcy5faW5pdHRlZCkge1xyXG4gICAgICAgICAgICAvLyB0aGlzLl90aW1lIHdpbGwgPT09IGN5Y2xlRHVyYXRpb24gd2hlbiB3ZSByZW5kZXIgYXQgRVhBQ1RMWSB0aGUgZW5kIG9mIGFuIGl0ZXJhdGlvbi4gV2l0aG91dCB0aGlzIGNvbmRpdGlvbiwgaXQnZCBvZnRlbiBkbyB0aGUgcmVwZWF0UmVmcmVzaCByZW5kZXIgVFdJQ0UgKGFnYWluIG9uIHRoZSB2ZXJ5IG5leHQgdGljaykuXHJcbiAgICAgICAgICAgIHRoaXMuX2xvY2sgPSBmb3JjZSA9IDE7IC8vZm9yY2UsIG90aGVyd2lzZSBpZiBsYXp5IGlzIHRydWUsIHRoZSBfYXR0ZW1wdEluaXRUd2VlbigpIHdpbGwgcmV0dXJuIGFuZCB3ZSdsbCBqdW1wIG91dCBhbmQgZ2V0IGNhdWdodCBib3VuY2luZyBvbiBlYWNoIHRpY2suXHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcihfcm91bmRQcmVjaXNlKGN5Y2xlRHVyYXRpb24gKiBpdGVyYXRpb24pLCB0cnVlKS5pbnZhbGlkYXRlKCkuX2xvY2sgPSAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF0aGlzLl9pbml0dGVkKSB7XHJcbiAgICAgICAgaWYgKF9hdHRlbXB0SW5pdFR3ZWVuKHRoaXMsIGlzTmVnYXRpdmUgPyB0b3RhbFRpbWUgOiB0aW1lLCBmb3JjZSwgc3VwcHJlc3NFdmVudHMsIHRUaW1lKSkge1xyXG4gICAgICAgICAgdGhpcy5fdFRpbWUgPSAwOyAvLyBpbiBjb25zdHJ1Y3RvciBpZiBpbW1lZGlhdGVSZW5kZXIgaXMgdHJ1ZSwgd2Ugc2V0IF90VGltZSB0byAtX3RpbnlOdW0gdG8gaGF2ZSB0aGUgcGxheWhlYWQgY3Jvc3MgdGhlIHN0YXJ0aW5nIHBvaW50IGJ1dCB3ZSBjYW4ndCBsZWF2ZSBfdFRpbWUgYXMgYSBuZWdhdGl2ZSBudW1iZXIuXHJcblxyXG4gICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocHJldlRpbWUgIT09IHRoaXMuX3RpbWUgJiYgIShmb3JjZSAmJiB0aGlzLnZhcnMucmVwZWF0UmVmcmVzaCAmJiBpdGVyYXRpb24gIT09IHByZXZJdGVyYXRpb24pKSB7XHJcbiAgICAgICAgICAvLyByYXJlIGVkZ2UgY2FzZSAtIGR1cmluZyBpbml0aWFsaXphdGlvbiwgYW4gb25VcGRhdGUgaW4gdGhlIF9zdGFydEF0ICguZnJvbVRvKCkpIG1pZ2h0IGZvcmNlIHRoaXMgdHdlZW4gdG8gcmVuZGVyIGF0IGEgZGlmZmVyZW50IHNwb3QgaW4gd2hpY2ggY2FzZSB3ZSBzaG91bGQgZGl0Y2ggdGhpcyByZW5kZXIoKSBjYWxsIHNvIHRoYXQgaXQgZG9lc24ndCByZXZlcnQgdGhlIHZhbHVlcy4gQnV0IHdlIGFsc28gZG9uJ3Qgd2FudCB0byBkdW1wIGlmIHdlJ3JlIGRvaW5nIGEgcmVwZWF0UmVmcmVzaCByZW5kZXIhXHJcbiAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkdXIgIT09IHRoaXMuX2R1cikge1xyXG4gICAgICAgICAgLy8gd2hpbGUgaW5pdHRpbmcsIGEgcGx1Z2luIGxpa2UgSW5lcnRpYVBsdWdpbiBtaWdodCBhbHRlciB0aGUgZHVyYXRpb24sIHNvIHJlcnVuIGZyb20gdGhlIHN0YXJ0IHRvIGVuc3VyZSBldmVyeXRoaW5nIHJlbmRlcnMgYXMgaXQgc2hvdWxkLlxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyKHRvdGFsVGltZSwgc3VwcHJlc3NFdmVudHMsIGZvcmNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuX3RUaW1lID0gdFRpbWU7XHJcbiAgICAgIHRoaXMuX3RpbWUgPSB0aW1lO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLl9hY3QgJiYgdGhpcy5fdHMpIHtcclxuICAgICAgICB0aGlzLl9hY3QgPSAxOyAvL2FzIGxvbmcgYXMgaXQncyBub3QgcGF1c2VkLCBmb3JjZSBpdCB0byBiZSBhY3RpdmUgc28gdGhhdCBpZiB0aGUgdXNlciByZW5kZXJzIGluZGVwZW5kZW50IG9mIHRoZSBwYXJlbnQgdGltZWxpbmUsIGl0J2xsIGJlIGZvcmNlZCB0byByZS1yZW5kZXIgb24gdGhlIG5leHQgdGljay5cclxuXHJcbiAgICAgICAgdGhpcy5fbGF6eSA9IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucmF0aW8gPSByYXRpbyA9ICh5b3lvRWFzZSB8fCB0aGlzLl9lYXNlKSh0aW1lIC8gZHVyKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLl9mcm9tKSB7XHJcbiAgICAgICAgdGhpcy5yYXRpbyA9IHJhdGlvID0gMSAtIHJhdGlvO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIXByZXZUaW1lICYmIHRUaW1lICYmICFzdXBwcmVzc0V2ZW50cyAmJiAhcHJldkl0ZXJhdGlvbikge1xyXG4gICAgICAgIF9jYWxsYmFjayh0aGlzLCBcIm9uU3RhcnRcIik7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl90VGltZSAhPT0gdFRpbWUpIHtcclxuICAgICAgICAgIC8vIGluIGNhc2UgdGhlIG9uU3RhcnQgdHJpZ2dlcmVkIGEgcmVuZGVyIGF0IGEgZGlmZmVyZW50IHNwb3QsIGVqZWN0LiBMaWtlIGlmIHNvbWVvbmUgZGlkIGFuaW1hdGlvbi5wYXVzZSgwLjUpIG9yIHNvbWV0aGluZyBpbnNpZGUgdGhlIG9uU3RhcnQuXHJcbiAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHB0ID0gdGhpcy5fcHQ7XHJcblxyXG4gICAgICB3aGlsZSAocHQpIHtcclxuICAgICAgICBwdC5yKHJhdGlvLCBwdC5kKTtcclxuICAgICAgICBwdCA9IHB0Ll9uZXh0O1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aW1lbGluZSAmJiB0aW1lbGluZS5yZW5kZXIodG90YWxUaW1lIDwgMCA/IHRvdGFsVGltZSA6IHRpbWVsaW5lLl9kdXIgKiB0aW1lbGluZS5fZWFzZSh0aW1lIC8gdGhpcy5fZHVyKSwgc3VwcHJlc3NFdmVudHMsIGZvcmNlKSB8fCB0aGlzLl9zdGFydEF0ICYmICh0aGlzLl96VGltZSA9IHRvdGFsVGltZSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5fb25VcGRhdGUgJiYgIXN1cHByZXNzRXZlbnRzKSB7XHJcbiAgICAgICAgaXNOZWdhdGl2ZSAmJiBfcmV3aW5kU3RhcnRBdCh0aGlzLCB0b3RhbFRpbWUsIHN1cHByZXNzRXZlbnRzLCBmb3JjZSk7IC8vbm90ZTogZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHdlIHR1Y2sgdGhpcyBjb25kaXRpb25hbCBsb2dpYyBpbnNpZGUgbGVzcyB0cmF2ZWxlZCBhcmVhcyAobW9zdCB0d2VlbnMgZG9uJ3QgaGF2ZSBhbiBvblVwZGF0ZSkuIFdlJ2QganVzdCBoYXZlIGl0IGF0IHRoZSBlbmQgYmVmb3JlIHRoZSBvbkNvbXBsZXRlLCBidXQgdGhlIHZhbHVlcyBzaG91bGQgYmUgdXBkYXRlZCBiZWZvcmUgYW55IG9uVXBkYXRlIGlzIGNhbGxlZCwgc28gd2UgQUxTTyBwdXQgaXQgaGVyZSBhbmQgdGhlbiBpZiBpdCdzIG5vdCBjYWxsZWQsIHdlIGRvIHNvIGxhdGVyIG5lYXIgdGhlIG9uQ29tcGxldGUuXHJcblxyXG4gICAgICAgIF9jYWxsYmFjayh0aGlzLCBcIm9uVXBkYXRlXCIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLl9yZXBlYXQgJiYgaXRlcmF0aW9uICE9PSBwcmV2SXRlcmF0aW9uICYmIHRoaXMudmFycy5vblJlcGVhdCAmJiAhc3VwcHJlc3NFdmVudHMgJiYgdGhpcy5wYXJlbnQgJiYgX2NhbGxiYWNrKHRoaXMsIFwib25SZXBlYXRcIik7XHJcblxyXG4gICAgICBpZiAoKHRUaW1lID09PSB0aGlzLl90RHVyIHx8ICF0VGltZSkgJiYgdGhpcy5fdFRpbWUgPT09IHRUaW1lKSB7XHJcbiAgICAgICAgaXNOZWdhdGl2ZSAmJiAhdGhpcy5fb25VcGRhdGUgJiYgX3Jld2luZFN0YXJ0QXQodGhpcywgdG90YWxUaW1lLCB0cnVlLCB0cnVlKTtcclxuICAgICAgICAodG90YWxUaW1lIHx8ICFkdXIpICYmICh0VGltZSA9PT0gdGhpcy5fdER1ciAmJiB0aGlzLl90cyA+IDAgfHwgIXRUaW1lICYmIHRoaXMuX3RzIDwgMCkgJiYgX3JlbW92ZUZyb21QYXJlbnQodGhpcywgMSk7IC8vIGRvbid0IHJlbW92ZSBpZiB3ZSdyZSByZW5kZXJpbmcgYXQgZXhhY3RseSBhIHRpbWUgb2YgMCwgYXMgdGhlcmUgY291bGQgYmUgYXV0b1JldmVydCB2YWx1ZXMgdGhhdCBzaG91bGQgZ2V0IHNldCBvbiB0aGUgbmV4dCB0aWNrIChpZiB0aGUgcGxheWhlYWQgZ29lcyBiYWNrd2FyZCBiZXlvbmQgdGhlIHN0YXJ0VGltZSwgbmVnYXRpdmUgdG90YWxUaW1lKS4gRG9uJ3QgcmVtb3ZlIGlmIHRoZSB0aW1lbGluZSBpcyByZXZlcnNlZCBhbmQgdGhlIHBsYXloZWFkIGlzbid0IGF0IDAsIG90aGVyd2lzZSB0bC5wcm9ncmVzcygxKS5yZXZlcnNlKCkgd29uJ3Qgd29yay4gT25seSByZW1vdmUgaWYgdGhlIHBsYXloZWFkIGlzIGF0IHRoZSBlbmQgYW5kIHRpbWVTY2FsZSBpcyBwb3NpdGl2ZSwgb3IgaWYgdGhlIHBsYXloZWFkIGlzIGF0IDAgYW5kIHRoZSB0aW1lU2NhbGUgaXMgbmVnYXRpdmUuXHJcblxyXG4gICAgICAgIGlmICghc3VwcHJlc3NFdmVudHMgJiYgIShpc05lZ2F0aXZlICYmICFwcmV2VGltZSkgJiYgKHRUaW1lIHx8IHByZXZUaW1lIHx8IGlzWW95bykpIHtcclxuICAgICAgICAgIC8vIGlmIHByZXZUaW1lIGFuZCB0VGltZSBhcmUgemVybywgd2Ugc2hvdWxkbid0IGZpcmUgdGhlIG9uUmV2ZXJzZUNvbXBsZXRlLiBUaGlzIGNvdWxkIGhhcHBlbiBpZiB5b3UgZ3NhcC50byguLi4ge3BhdXNlZDp0cnVlfSkucGxheSgpO1xyXG4gICAgICAgICAgX2NhbGxiYWNrKHRoaXMsIHRUaW1lID09PSB0RHVyID8gXCJvbkNvbXBsZXRlXCIgOiBcIm9uUmV2ZXJzZUNvbXBsZXRlXCIsIHRydWUpO1xyXG5cclxuICAgICAgICAgIHRoaXMuX3Byb20gJiYgISh0VGltZSA8IHREdXIgJiYgdGhpcy50aW1lU2NhbGUoKSA+IDApICYmIHRoaXMuX3Byb20oKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9O1xyXG5cclxuICBfcHJvdG8zLnRhcmdldHMgPSBmdW5jdGlvbiB0YXJnZXRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhcmdldHM7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvMy5pbnZhbGlkYXRlID0gZnVuY3Rpb24gaW52YWxpZGF0ZShzb2Z0KSB7XHJcbiAgICAvLyBcInNvZnRcIiBnaXZlcyB1cyBhIHdheSB0byBjbGVhciBvdXQgZXZlcnl0aGluZyBFWENFUFQgdGhlIHJlY29yZGVkIHByZS1cImZyb21cIiBwb3J0aW9uIG9mIGZyb20oKSB0d2VlbnMuIE90aGVyd2lzZSwgZm9yIGV4YW1wbGUsIGlmIHlvdSB0d2Vlbi5wcm9ncmVzcygxKS5yZW5kZXIoMCwgdHJ1ZSB0cnVlKS5pbnZhbGlkYXRlKCksIHRoZSBcImZyb21cIiB2YWx1ZXMgd291bGQgcGVyc2lzdCBhbmQgdGhlbiBvbiB0aGUgbmV4dCByZW5kZXIsIHRoZSBmcm9tKCkgdHdlZW5zIHdvdWxkIGluaXRpYWxpemUgYW5kIHRoZSBjdXJyZW50IHZhbHVlIHdvdWxkIG1hdGNoIHRoZSBcImZyb21cIiB2YWx1ZXMsIHRodXMgYW5pbWF0ZSBmcm9tIHRoZSBzYW1lIHZhbHVlIHRvIHRoZSBzYW1lIHZhbHVlIChubyBhbmltYXRpb24pLiBXZSB0YXAgaW50byB0aGlzIGluIFNjcm9sbFRyaWdnZXIncyByZWZyZXNoKCkgd2hlcmUgd2UgbXVzdCBwdXNoIGEgdHdlZW4gdG8gY29tcGxldGlvbiBhbmQgdGhlbiBiYWNrIGFnYWluIGJ1dCBob25vciBpdHMgaW5pdCBzdGF0ZSBpbiBjYXNlIHRoZSB0d2VlbiBpcyBkZXBlbmRlbnQgb24gYW5vdGhlciB0d2VlbiBmdXJ0aGVyIHVwIG9uIHRoZSBwYWdlLlxyXG4gICAgKCFzb2Z0IHx8ICF0aGlzLnZhcnMucnVuQmFja3dhcmRzKSAmJiAodGhpcy5fc3RhcnRBdCA9IDApO1xyXG4gICAgdGhpcy5fcHQgPSB0aGlzLl9vcCA9IHRoaXMuX29uVXBkYXRlID0gdGhpcy5fbGF6eSA9IHRoaXMucmF0aW8gPSAwO1xyXG4gICAgdGhpcy5fcHRMb29rdXAgPSBbXTtcclxuICAgIHRoaXMudGltZWxpbmUgJiYgdGhpcy50aW1lbGluZS5pbnZhbGlkYXRlKHNvZnQpO1xyXG4gICAgcmV0dXJuIF9BbmltYXRpb24yLnByb3RvdHlwZS5pbnZhbGlkYXRlLmNhbGwodGhpcywgc29mdCk7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvMy5yZXNldFRvID0gZnVuY3Rpb24gcmVzZXRUbyhwcm9wZXJ0eSwgdmFsdWUsIHN0YXJ0LCBzdGFydElzUmVsYXRpdmUsIHNraXBSZWN1cnNpb24pIHtcclxuICAgIF90aWNrZXJBY3RpdmUgfHwgX3RpY2tlci53YWtlKCk7XHJcbiAgICB0aGlzLl90cyB8fCB0aGlzLnBsYXkoKTtcclxuICAgIHZhciB0aW1lID0gTWF0aC5taW4odGhpcy5fZHVyLCAodGhpcy5fZHAuX3RpbWUgLSB0aGlzLl9zdGFydCkgKiB0aGlzLl90cyksXHJcbiAgICAgICAgcmF0aW87XHJcbiAgICB0aGlzLl9pbml0dGVkIHx8IF9pbml0VHdlZW4odGhpcywgdGltZSk7XHJcbiAgICByYXRpbyA9IHRoaXMuX2Vhc2UodGltZSAvIHRoaXMuX2R1cik7IC8vIGRvbid0IGp1c3QgZ2V0IHR3ZWVuLnJhdGlvIGJlY2F1c2UgaXQgbWF5IG5vdCBoYXZlIHJlbmRlcmVkIHlldC5cclxuICAgIC8vIHBvc3NpYmxlIGZ1dHVyZSBhZGRpdGlvbiB0byBhbGxvdyBhbiBvYmplY3Qgd2l0aCBtdWx0aXBsZSB2YWx1ZXMgdG8gdXBkYXRlLCBsaWtlIHR3ZWVuLnJlc2V0VG8oe3g6IDEwMCwgeTogMjAwfSk7IEF0IHRoaXMgcG9pbnQsIGl0IGRvZXNuJ3Qgc2VlbSB3b3J0aCB0aGUgYWRkZWQga2IgZ2l2ZW4gdGhlIGZhY3QgdGhhdCBtb3N0IHVzZXJzIHdpbGwgbGlrZWx5IG9wdCBmb3IgdGhlIGNvbnZlbmllbnQgZ3NhcC5xdWlja1RvKCkgd2F5IG9mIGludGVyYWN0aW5nIHdpdGggdGhpcyBtZXRob2QuXHJcbiAgICAvLyBpZiAoX2lzT2JqZWN0KHByb3BlcnR5KSkgeyAvLyBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25cclxuICAgIC8vIFx0Zm9yIChwIGluIHByb3BlcnR5KSB7XHJcbiAgICAvLyBcdFx0aWYgKF91cGRhdGVQcm9wVHdlZW5zKHRoaXMsIHAsIHByb3BlcnR5W3BdLCB2YWx1ZSA/IHZhbHVlW3BdIDogbnVsbCwgc3RhcnQsIHJhdGlvLCB0aW1lKSkge1xyXG4gICAgLy8gXHRcdFx0cmV0dXJuIHRoaXMucmVzZXRUbyhwcm9wZXJ0eSwgdmFsdWUsIHN0YXJ0LCBzdGFydElzUmVsYXRpdmUpOyAvLyBpZiBhIFByb3BUd2VlbiB3YXNuJ3QgZm91bmQgZm9yIHRoZSBwcm9wZXJ0eSwgaXQnbGwgZ2V0IGZvcmNlZCB3aXRoIGEgcmUtaW5pdGlhbGl6YXRpb24gc28gd2UgbmVlZCB0byBqdW1wIG91dCBhbmQgc3RhcnQgb3ZlciBhZ2Fpbi5cclxuICAgIC8vIFx0XHR9XHJcbiAgICAvLyBcdH1cclxuICAgIC8vIH0gZWxzZSB7XHJcblxyXG4gICAgaWYgKF91cGRhdGVQcm9wVHdlZW5zKHRoaXMsIHByb3BlcnR5LCB2YWx1ZSwgc3RhcnQsIHN0YXJ0SXNSZWxhdGl2ZSwgcmF0aW8sIHRpbWUsIHNraXBSZWN1cnNpb24pKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlc2V0VG8ocHJvcGVydHksIHZhbHVlLCBzdGFydCwgc3RhcnRJc1JlbGF0aXZlLCAxKTsgLy8gaWYgYSBQcm9wVHdlZW4gd2Fzbid0IGZvdW5kIGZvciB0aGUgcHJvcGVydHksIGl0J2xsIGdldCBmb3JjZWQgd2l0aCBhIHJlLWluaXRpYWxpemF0aW9uIHNvIHdlIG5lZWQgdG8ganVtcCBvdXQgYW5kIHN0YXJ0IG92ZXIgYWdhaW4uXHJcbiAgICB9IC8vfVxyXG5cclxuXHJcbiAgICBfYWxpZ25QbGF5aGVhZCh0aGlzLCAwKTtcclxuXHJcbiAgICB0aGlzLnBhcmVudCB8fCBfYWRkTGlua2VkTGlzdEl0ZW0odGhpcy5fZHAsIHRoaXMsIFwiX2ZpcnN0XCIsIFwiX2xhc3RcIiwgdGhpcy5fZHAuX3NvcnQgPyBcIl9zdGFydFwiIDogMCk7XHJcbiAgICByZXR1cm4gdGhpcy5yZW5kZXIoMCk7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvMy5raWxsID0gZnVuY3Rpb24ga2lsbCh0YXJnZXRzLCB2YXJzKSB7XHJcbiAgICBpZiAodmFycyA9PT0gdm9pZCAwKSB7XHJcbiAgICAgIHZhcnMgPSBcImFsbFwiO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGFyZ2V0cyAmJiAoIXZhcnMgfHwgdmFycyA9PT0gXCJhbGxcIikpIHtcclxuICAgICAgdGhpcy5fbGF6eSA9IHRoaXMuX3B0ID0gMDtcclxuICAgICAgdGhpcy5wYXJlbnQgPyBfaW50ZXJydXB0KHRoaXMpIDogdGhpcy5zY3JvbGxUcmlnZ2VyICYmIHRoaXMuc2Nyb2xsVHJpZ2dlci5raWxsKCEhX3JldmVydGluZyk7XHJcbiAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnRpbWVsaW5lKSB7XHJcbiAgICAgIHZhciB0RHVyID0gdGhpcy50aW1lbGluZS50b3RhbER1cmF0aW9uKCk7XHJcbiAgICAgIHRoaXMudGltZWxpbmUua2lsbFR3ZWVuc09mKHRhcmdldHMsIHZhcnMsIF9vdmVyd3JpdGluZ1R3ZWVuICYmIF9vdmVyd3JpdGluZ1R3ZWVuLnZhcnMub3ZlcndyaXRlICE9PSB0cnVlKS5fZmlyc3QgfHwgX2ludGVycnVwdCh0aGlzKTsgLy8gaWYgbm90aGluZyBpcyBsZWZ0IHR3ZWVuaW5nLCBpbnRlcnJ1cHQuXHJcblxyXG4gICAgICB0aGlzLnBhcmVudCAmJiB0RHVyICE9PSB0aGlzLnRpbWVsaW5lLnRvdGFsRHVyYXRpb24oKSAmJiBfc2V0RHVyYXRpb24odGhpcywgdGhpcy5fZHVyICogdGhpcy50aW1lbGluZS5fdER1ciAvIHREdXIsIDAsIDEpOyAvLyBpZiBhIG5lc3RlZCB0d2VlbiBpcyBraWxsZWQgdGhhdCBjaGFuZ2VzIHRoZSBkdXJhdGlvbiwgaXQgc2hvdWxkIGFmZmVjdCB0aGlzIHR3ZWVuJ3MgZHVyYXRpb24uIFdlIG11c3QgdXNlIHRoZSByYXRpbywgdGhvdWdoLCBiZWNhdXNlIHNvbWV0aW1lcyB0aGUgaW50ZXJuYWwgdGltZWxpbmUgaXMgc3RyZXRjaGVkIGxpa2UgZm9yIGtleWZyYW1lcyB3aGVyZSB0aGV5IGRvbid0IGFsbCBhZGQgdXAgdG8gd2hhdGV2ZXIgdGhlIHBhcmVudCB0d2VlbidzIGR1cmF0aW9uIHdhcyBzZXQgdG8uXHJcblxyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB2YXIgcGFyc2VkVGFyZ2V0cyA9IHRoaXMuX3RhcmdldHMsXHJcbiAgICAgICAga2lsbGluZ1RhcmdldHMgPSB0YXJnZXRzID8gdG9BcnJheSh0YXJnZXRzKSA6IHBhcnNlZFRhcmdldHMsXHJcbiAgICAgICAgcHJvcFR3ZWVuTG9va3VwID0gdGhpcy5fcHRMb29rdXAsXHJcbiAgICAgICAgZmlyc3RQVCA9IHRoaXMuX3B0LFxyXG4gICAgICAgIG92ZXJ3cml0dGVuUHJvcHMsXHJcbiAgICAgICAgY3VyTG9va3VwLFxyXG4gICAgICAgIGN1ck92ZXJ3cml0ZVByb3BzLFxyXG4gICAgICAgIHByb3BzLFxyXG4gICAgICAgIHAsXHJcbiAgICAgICAgcHQsXHJcbiAgICAgICAgaTtcclxuXHJcbiAgICBpZiAoKCF2YXJzIHx8IHZhcnMgPT09IFwiYWxsXCIpICYmIF9hcnJheXNNYXRjaChwYXJzZWRUYXJnZXRzLCBraWxsaW5nVGFyZ2V0cykpIHtcclxuICAgICAgdmFycyA9PT0gXCJhbGxcIiAmJiAodGhpcy5fcHQgPSAwKTtcclxuICAgICAgcmV0dXJuIF9pbnRlcnJ1cHQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcndyaXR0ZW5Qcm9wcyA9IHRoaXMuX29wID0gdGhpcy5fb3AgfHwgW107XHJcblxyXG4gICAgaWYgKHZhcnMgIT09IFwiYWxsXCIpIHtcclxuICAgICAgLy9zbyBwZW9wbGUgY2FuIHBhc3MgaW4gYSBjb21tYS1kZWxpbWl0ZWQgbGlzdCBvZiBwcm9wZXJ0eSBuYW1lc1xyXG4gICAgICBpZiAoX2lzU3RyaW5nKHZhcnMpKSB7XHJcbiAgICAgICAgcCA9IHt9O1xyXG5cclxuICAgICAgICBfZm9yRWFjaE5hbWUodmFycywgZnVuY3Rpb24gKG5hbWUpIHtcclxuICAgICAgICAgIHJldHVybiBwW25hbWVdID0gMTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdmFycyA9IHA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHZhcnMgPSBfYWRkQWxpYXNlc1RvVmFycyhwYXJzZWRUYXJnZXRzLCB2YXJzKTtcclxuICAgIH1cclxuXHJcbiAgICBpID0gcGFyc2VkVGFyZ2V0cy5sZW5ndGg7XHJcblxyXG4gICAgd2hpbGUgKGktLSkge1xyXG4gICAgICBpZiAofmtpbGxpbmdUYXJnZXRzLmluZGV4T2YocGFyc2VkVGFyZ2V0c1tpXSkpIHtcclxuICAgICAgICBjdXJMb29rdXAgPSBwcm9wVHdlZW5Mb29rdXBbaV07XHJcblxyXG4gICAgICAgIGlmICh2YXJzID09PSBcImFsbFwiKSB7XHJcbiAgICAgICAgICBvdmVyd3JpdHRlblByb3BzW2ldID0gdmFycztcclxuICAgICAgICAgIHByb3BzID0gY3VyTG9va3VwO1xyXG4gICAgICAgICAgY3VyT3ZlcndyaXRlUHJvcHMgPSB7fTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY3VyT3ZlcndyaXRlUHJvcHMgPSBvdmVyd3JpdHRlblByb3BzW2ldID0gb3ZlcndyaXR0ZW5Qcm9wc1tpXSB8fCB7fTtcclxuICAgICAgICAgIHByb3BzID0gdmFycztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAocCBpbiBwcm9wcykge1xyXG4gICAgICAgICAgcHQgPSBjdXJMb29rdXAgJiYgY3VyTG9va3VwW3BdO1xyXG5cclxuICAgICAgICAgIGlmIChwdCkge1xyXG4gICAgICAgICAgICBpZiAoIShcImtpbGxcIiBpbiBwdC5kKSB8fCBwdC5kLmtpbGwocCkgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICBfcmVtb3ZlTGlua2VkTGlzdEl0ZW0odGhpcywgcHQsIFwiX3B0XCIpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBkZWxldGUgY3VyTG9va3VwW3BdO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChjdXJPdmVyd3JpdGVQcm9wcyAhPT0gXCJhbGxcIikge1xyXG4gICAgICAgICAgICBjdXJPdmVyd3JpdGVQcm9wc1twXSA9IDE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5faW5pdHRlZCAmJiAhdGhpcy5fcHQgJiYgZmlyc3RQVCAmJiBfaW50ZXJydXB0KHRoaXMpOyAvL2lmIGFsbCB0d2VlbmluZyBwcm9wZXJ0aWVzIGFyZSBraWxsZWQsIGtpbGwgdGhlIHR3ZWVuLiBXaXRob3V0IHRoaXMgbGluZSwgaWYgdGhlcmUncyBhIHR3ZWVuIHdpdGggbXVsdGlwbGUgdGFyZ2V0cyBhbmQgdGhlbiB5b3Uga2lsbFR3ZWVuc09mKCkgZWFjaCB0YXJnZXQgaW5kaXZpZHVhbGx5LCB0aGUgdHdlZW4gd291bGQgdGVjaG5pY2FsbHkgc3RpbGwgcmVtYWluIGFjdGl2ZSBhbmQgZmlyZSBpdHMgb25Db21wbGV0ZSBldmVuIHRob3VnaCB0aGVyZSBhcmVuJ3QgYW55IG1vcmUgcHJvcGVydGllcyB0d2VlbmluZy5cclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9O1xyXG5cclxuICBUd2Vlbi50byA9IGZ1bmN0aW9uIHRvKHRhcmdldHMsIHZhcnMpIHtcclxuICAgIHJldHVybiBuZXcgVHdlZW4odGFyZ2V0cywgdmFycywgYXJndW1lbnRzWzJdKTtcclxuICB9O1xyXG5cclxuICBUd2Vlbi5mcm9tID0gZnVuY3Rpb24gZnJvbSh0YXJnZXRzLCB2YXJzKSB7XHJcbiAgICByZXR1cm4gX2NyZWF0ZVR3ZWVuVHlwZSgxLCBhcmd1bWVudHMpO1xyXG4gIH07XHJcblxyXG4gIFR3ZWVuLmRlbGF5ZWRDYWxsID0gZnVuY3Rpb24gZGVsYXllZENhbGwoZGVsYXksIGNhbGxiYWNrLCBwYXJhbXMsIHNjb3BlKSB7XHJcbiAgICByZXR1cm4gbmV3IFR3ZWVuKGNhbGxiYWNrLCAwLCB7XHJcbiAgICAgIGltbWVkaWF0ZVJlbmRlcjogZmFsc2UsXHJcbiAgICAgIGxhenk6IGZhbHNlLFxyXG4gICAgICBvdmVyd3JpdGU6IGZhbHNlLFxyXG4gICAgICBkZWxheTogZGVsYXksXHJcbiAgICAgIG9uQ29tcGxldGU6IGNhbGxiYWNrLFxyXG4gICAgICBvblJldmVyc2VDb21wbGV0ZTogY2FsbGJhY2ssXHJcbiAgICAgIG9uQ29tcGxldGVQYXJhbXM6IHBhcmFtcyxcclxuICAgICAgb25SZXZlcnNlQ29tcGxldGVQYXJhbXM6IHBhcmFtcyxcclxuICAgICAgY2FsbGJhY2tTY29wZTogc2NvcGVcclxuICAgIH0pOyAvLyB3ZSBtdXN0IHVzZSBvblJldmVyc2VDb21wbGV0ZSB0b28gZm9yIHRoaW5ncyBsaWtlIHRpbWVsaW5lLmFkZCgoKSA9PiB7Li4ufSkgd2hpY2ggc2hvdWxkIGJlIHRyaWdnZXJlZCBpbiBCT1RIIGRpcmVjdGlvbnMgKGZvcndhcmQgYW5kIHJldmVyc2UpXHJcbiAgfTtcclxuXHJcbiAgVHdlZW4uZnJvbVRvID0gZnVuY3Rpb24gZnJvbVRvKHRhcmdldHMsIGZyb21WYXJzLCB0b1ZhcnMpIHtcclxuICAgIHJldHVybiBfY3JlYXRlVHdlZW5UeXBlKDIsIGFyZ3VtZW50cyk7XHJcbiAgfTtcclxuXHJcbiAgVHdlZW4uc2V0ID0gZnVuY3Rpb24gc2V0KHRhcmdldHMsIHZhcnMpIHtcclxuICAgIHZhcnMuZHVyYXRpb24gPSAwO1xyXG4gICAgdmFycy5yZXBlYXREZWxheSB8fCAodmFycy5yZXBlYXQgPSAwKTtcclxuICAgIHJldHVybiBuZXcgVHdlZW4odGFyZ2V0cywgdmFycyk7XHJcbiAgfTtcclxuXHJcbiAgVHdlZW4ua2lsbFR3ZWVuc09mID0gZnVuY3Rpb24ga2lsbFR3ZWVuc09mKHRhcmdldHMsIHByb3BzLCBvbmx5QWN0aXZlKSB7XHJcbiAgICByZXR1cm4gX2dsb2JhbFRpbWVsaW5lLmtpbGxUd2VlbnNPZih0YXJnZXRzLCBwcm9wcywgb25seUFjdGl2ZSk7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIFR3ZWVuO1xyXG59KEFuaW1hdGlvbik7XHJcblxyXG5fc2V0RGVmYXVsdHMoVHdlZW4ucHJvdG90eXBlLCB7XHJcbiAgX3RhcmdldHM6IFtdLFxyXG4gIF9sYXp5OiAwLFxyXG4gIF9zdGFydEF0OiAwLFxyXG4gIF9vcDogMCxcclxuICBfb25Jbml0OiAwXHJcbn0pOyAvL2FkZCB0aGUgcGVydGluZW50IHRpbWVsaW5lIG1ldGhvZHMgdG8gVHdlZW4gaW5zdGFuY2VzIHNvIHRoYXQgdXNlcnMgY2FuIGNoYWluIGNvbnZlbmllbnRseSBhbmQgY3JlYXRlIGEgdGltZWxpbmUgYXV0b21hdGljYWxseS4gKHJlbW92ZWQgZHVlIHRvIGNvbmNlcm5zIHRoYXQgaXQnZCB1bHRpbWF0ZWx5IGFkZCB0byBtb3JlIGNvbmZ1c2lvbiBlc3BlY2lhbGx5IGZvciBiZWdpbm5lcnMpXHJcbi8vIF9mb3JFYWNoTmFtZShcInRvLGZyb20sZnJvbVRvLHNldCxjYWxsLGFkZCxhZGRMYWJlbCxhZGRQYXVzZVwiLCBuYW1lID0+IHtcclxuLy8gXHRUd2Vlbi5wcm90b3R5cGVbbmFtZV0gPSBmdW5jdGlvbigpIHtcclxuLy8gXHRcdGxldCB0bCA9IG5ldyBUaW1lbGluZSgpO1xyXG4vLyBcdFx0cmV0dXJuIF9hZGRUb1RpbWVsaW5lKHRsLCB0aGlzKVtuYW1lXS5hcHBseSh0bCwgdG9BcnJheShhcmd1bWVudHMpKTtcclxuLy8gXHR9XHJcbi8vIH0pO1xyXG4vL2ZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBMZXZlcmFnZSB0aGUgdGltZWxpbmUgY2FsbHMuXHJcblxyXG5cclxuX2ZvckVhY2hOYW1lKFwic3RhZ2dlclRvLHN0YWdnZXJGcm9tLHN0YWdnZXJGcm9tVG9cIiwgZnVuY3Rpb24gKG5hbWUpIHtcclxuICBUd2VlbltuYW1lXSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciB0bCA9IG5ldyBUaW1lbGluZSgpLFxyXG4gICAgICAgIHBhcmFtcyA9IF9zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7XHJcblxyXG4gICAgcGFyYW1zLnNwbGljZShuYW1lID09PSBcInN0YWdnZXJGcm9tVG9cIiA/IDUgOiA0LCAwLCAwKTtcclxuICAgIHJldHVybiB0bFtuYW1lXS5hcHBseSh0bCwgcGFyYW1zKTtcclxuICB9O1xyXG59KTtcclxuLypcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICogUFJPUFRXRUVOXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqL1xyXG5cclxuXHJcbnZhciBfc2V0dGVyUGxhaW4gPSBmdW5jdGlvbiBfc2V0dGVyUGxhaW4odGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUpIHtcclxuICByZXR1cm4gdGFyZ2V0W3Byb3BlcnR5XSA9IHZhbHVlO1xyXG59LFxyXG4gICAgX3NldHRlckZ1bmMgPSBmdW5jdGlvbiBfc2V0dGVyRnVuYyh0YXJnZXQsIHByb3BlcnR5LCB2YWx1ZSkge1xyXG4gIHJldHVybiB0YXJnZXRbcHJvcGVydHldKHZhbHVlKTtcclxufSxcclxuICAgIF9zZXR0ZXJGdW5jV2l0aFBhcmFtID0gZnVuY3Rpb24gX3NldHRlckZ1bmNXaXRoUGFyYW0odGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUsIGRhdGEpIHtcclxuICByZXR1cm4gdGFyZ2V0W3Byb3BlcnR5XShkYXRhLmZwLCB2YWx1ZSk7XHJcbn0sXHJcbiAgICBfc2V0dGVyQXR0cmlidXRlID0gZnVuY3Rpb24gX3NldHRlckF0dHJpYnV0ZSh0YXJnZXQsIHByb3BlcnR5LCB2YWx1ZSkge1xyXG4gIHJldHVybiB0YXJnZXQuc2V0QXR0cmlidXRlKHByb3BlcnR5LCB2YWx1ZSk7XHJcbn0sXHJcbiAgICBfZ2V0U2V0dGVyID0gZnVuY3Rpb24gX2dldFNldHRlcih0YXJnZXQsIHByb3BlcnR5KSB7XHJcbiAgcmV0dXJuIF9pc0Z1bmN0aW9uKHRhcmdldFtwcm9wZXJ0eV0pID8gX3NldHRlckZ1bmMgOiBfaXNVbmRlZmluZWQodGFyZ2V0W3Byb3BlcnR5XSkgJiYgdGFyZ2V0LnNldEF0dHJpYnV0ZSA/IF9zZXR0ZXJBdHRyaWJ1dGUgOiBfc2V0dGVyUGxhaW47XHJcbn0sXHJcbiAgICBfcmVuZGVyUGxhaW4gPSBmdW5jdGlvbiBfcmVuZGVyUGxhaW4ocmF0aW8sIGRhdGEpIHtcclxuICByZXR1cm4gZGF0YS5zZXQoZGF0YS50LCBkYXRhLnAsIE1hdGgucm91bmQoKGRhdGEucyArIGRhdGEuYyAqIHJhdGlvKSAqIDEwMDAwMDApIC8gMTAwMDAwMCwgZGF0YSk7XHJcbn0sXHJcbiAgICBfcmVuZGVyQm9vbGVhbiA9IGZ1bmN0aW9uIF9yZW5kZXJCb29sZWFuKHJhdGlvLCBkYXRhKSB7XHJcbiAgcmV0dXJuIGRhdGEuc2V0KGRhdGEudCwgZGF0YS5wLCAhIShkYXRhLnMgKyBkYXRhLmMgKiByYXRpbyksIGRhdGEpO1xyXG59LFxyXG4gICAgX3JlbmRlckNvbXBsZXhTdHJpbmcgPSBmdW5jdGlvbiBfcmVuZGVyQ29tcGxleFN0cmluZyhyYXRpbywgZGF0YSkge1xyXG4gIHZhciBwdCA9IGRhdGEuX3B0LFxyXG4gICAgICBzID0gXCJcIjtcclxuXHJcbiAgaWYgKCFyYXRpbyAmJiBkYXRhLmIpIHtcclxuICAgIC8vYiA9IGJlZ2lubmluZyBzdHJpbmdcclxuICAgIHMgPSBkYXRhLmI7XHJcbiAgfSBlbHNlIGlmIChyYXRpbyA9PT0gMSAmJiBkYXRhLmUpIHtcclxuICAgIC8vZSA9IGVuZGluZyBzdHJpbmdcclxuICAgIHMgPSBkYXRhLmU7XHJcbiAgfSBlbHNlIHtcclxuICAgIHdoaWxlIChwdCkge1xyXG4gICAgICBzID0gcHQucCArIChwdC5tID8gcHQubShwdC5zICsgcHQuYyAqIHJhdGlvKSA6IE1hdGgucm91bmQoKHB0LnMgKyBwdC5jICogcmF0aW8pICogMTAwMDApIC8gMTAwMDApICsgczsgLy93ZSB1c2UgdGhlIFwicFwiIHByb3BlcnR5IGZvciB0aGUgdGV4dCBpbmJldHdlZW4gKGxpa2UgYSBzdWZmaXgpLiBBbmQgaW4gdGhlIGNvbnRleHQgb2YgYSBjb21wbGV4IHN0cmluZywgdGhlIG1vZGlmaWVyIChtKSBpcyB0eXBpY2FsbHkganVzdCBNYXRoLnJvdW5kKCksIGxpa2UgZm9yIFJHQiBjb2xvcnMuXHJcblxyXG4gICAgICBwdCA9IHB0Ll9uZXh0O1xyXG4gICAgfVxyXG5cclxuICAgIHMgKz0gZGF0YS5jOyAvL3dlIHVzZSB0aGUgXCJjXCIgb2YgdGhlIFByb3BUd2VlbiB0byBzdG9yZSB0aGUgZmluYWwgY2h1bmsgb2Ygbm9uLW51bWVyaWMgdGV4dC5cclxuICB9XHJcblxyXG4gIGRhdGEuc2V0KGRhdGEudCwgZGF0YS5wLCBzLCBkYXRhKTtcclxufSxcclxuICAgIF9yZW5kZXJQcm9wVHdlZW5zID0gZnVuY3Rpb24gX3JlbmRlclByb3BUd2VlbnMocmF0aW8sIGRhdGEpIHtcclxuICB2YXIgcHQgPSBkYXRhLl9wdDtcclxuXHJcbiAgd2hpbGUgKHB0KSB7XHJcbiAgICBwdC5yKHJhdGlvLCBwdC5kKTtcclxuICAgIHB0ID0gcHQuX25leHQ7XHJcbiAgfVxyXG59LFxyXG4gICAgX2FkZFBsdWdpbk1vZGlmaWVyID0gZnVuY3Rpb24gX2FkZFBsdWdpbk1vZGlmaWVyKG1vZGlmaWVyLCB0d2VlbiwgdGFyZ2V0LCBwcm9wZXJ0eSkge1xyXG4gIHZhciBwdCA9IHRoaXMuX3B0LFxyXG4gICAgICBuZXh0O1xyXG5cclxuICB3aGlsZSAocHQpIHtcclxuICAgIG5leHQgPSBwdC5fbmV4dDtcclxuICAgIHB0LnAgPT09IHByb3BlcnR5ICYmIHB0Lm1vZGlmaWVyKG1vZGlmaWVyLCB0d2VlbiwgdGFyZ2V0KTtcclxuICAgIHB0ID0gbmV4dDtcclxuICB9XHJcbn0sXHJcbiAgICBfa2lsbFByb3BUd2VlbnNPZiA9IGZ1bmN0aW9uIF9raWxsUHJvcFR3ZWVuc09mKHByb3BlcnR5KSB7XHJcbiAgdmFyIHB0ID0gdGhpcy5fcHQsXHJcbiAgICAgIGhhc05vbkRlcGVuZGVudFJlbWFpbmluZyxcclxuICAgICAgbmV4dDtcclxuXHJcbiAgd2hpbGUgKHB0KSB7XHJcbiAgICBuZXh0ID0gcHQuX25leHQ7XHJcblxyXG4gICAgaWYgKHB0LnAgPT09IHByb3BlcnR5ICYmICFwdC5vcCB8fCBwdC5vcCA9PT0gcHJvcGVydHkpIHtcclxuICAgICAgX3JlbW92ZUxpbmtlZExpc3RJdGVtKHRoaXMsIHB0LCBcIl9wdFwiKTtcclxuICAgIH0gZWxzZSBpZiAoIXB0LmRlcCkge1xyXG4gICAgICBoYXNOb25EZXBlbmRlbnRSZW1haW5pbmcgPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIHB0ID0gbmV4dDtcclxuICB9XHJcblxyXG4gIHJldHVybiAhaGFzTm9uRGVwZW5kZW50UmVtYWluaW5nO1xyXG59LFxyXG4gICAgX3NldHRlcldpdGhNb2RpZmllciA9IGZ1bmN0aW9uIF9zZXR0ZXJXaXRoTW9kaWZpZXIodGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUsIGRhdGEpIHtcclxuICBkYXRhLm1TZXQodGFyZ2V0LCBwcm9wZXJ0eSwgZGF0YS5tLmNhbGwoZGF0YS50d2VlbiwgdmFsdWUsIGRhdGEubXQpLCBkYXRhKTtcclxufSxcclxuICAgIF9zb3J0UHJvcFR3ZWVuc0J5UHJpb3JpdHkgPSBmdW5jdGlvbiBfc29ydFByb3BUd2VlbnNCeVByaW9yaXR5KHBhcmVudCkge1xyXG4gIHZhciBwdCA9IHBhcmVudC5fcHQsXHJcbiAgICAgIG5leHQsXHJcbiAgICAgIHB0MixcclxuICAgICAgZmlyc3QsXHJcbiAgICAgIGxhc3Q7IC8vc29ydHMgdGhlIFByb3BUd2VlbiBsaW5rZWQgbGlzdCBpbiBvcmRlciBvZiBwcmlvcml0eSBiZWNhdXNlIHNvbWUgcGx1Z2lucyBuZWVkIHRvIGRvIHRoZWlyIHdvcmsgYWZ0ZXIgQUxMIG9mIHRoZSBQcm9wVHdlZW5zIHdlcmUgY3JlYXRlZCAobGlrZSBSb3VuZFByb3BzUGx1Z2luIGFuZCBNb2RpZmllcnNQbHVnaW4pXHJcblxyXG4gIHdoaWxlIChwdCkge1xyXG4gICAgbmV4dCA9IHB0Ll9uZXh0O1xyXG4gICAgcHQyID0gZmlyc3Q7XHJcblxyXG4gICAgd2hpbGUgKHB0MiAmJiBwdDIucHIgPiBwdC5wcikge1xyXG4gICAgICBwdDIgPSBwdDIuX25leHQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHB0Ll9wcmV2ID0gcHQyID8gcHQyLl9wcmV2IDogbGFzdCkge1xyXG4gICAgICBwdC5fcHJldi5fbmV4dCA9IHB0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZmlyc3QgPSBwdDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocHQuX25leHQgPSBwdDIpIHtcclxuICAgICAgcHQyLl9wcmV2ID0gcHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsYXN0ID0gcHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHQgPSBuZXh0O1xyXG4gIH1cclxuXHJcbiAgcGFyZW50Ll9wdCA9IGZpcnN0O1xyXG59OyAvL1Byb3BUd2VlbiBrZXk6IHQgPSB0YXJnZXQsIHAgPSBwcm9wLCByID0gcmVuZGVyZXIsIGQgPSBkYXRhLCBzID0gc3RhcnQsIGMgPSBjaGFuZ2UsIG9wID0gb3ZlcndyaXRlUHJvcGVydHkgKE9OTFkgcG9wdWxhdGVkIHdoZW4gaXQncyBkaWZmZXJlbnQgdGhhbiBwKSwgcHIgPSBwcmlvcml0eSwgX25leHQvX3ByZXYgZm9yIHRoZSBsaW5rZWQgbGlzdCBzaWJsaW5ncywgc2V0ID0gc2V0dGVyLCBtID0gbW9kaWZpZXIsIG1TZXQgPSBtb2RpZmllclNldHRlciAodGhlIG9yaWdpbmFsIHNldHRlciwgYmVmb3JlIGEgbW9kaWZpZXIgd2FzIGFkZGVkKVxyXG5cclxuXHJcbmV4cG9ydCB2YXIgUHJvcFR3ZWVuID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHtcclxuICBmdW5jdGlvbiBQcm9wVHdlZW4obmV4dCwgdGFyZ2V0LCBwcm9wLCBzdGFydCwgY2hhbmdlLCByZW5kZXJlciwgZGF0YSwgc2V0dGVyLCBwcmlvcml0eSkge1xyXG4gICAgdGhpcy50ID0gdGFyZ2V0O1xyXG4gICAgdGhpcy5zID0gc3RhcnQ7XHJcbiAgICB0aGlzLmMgPSBjaGFuZ2U7XHJcbiAgICB0aGlzLnAgPSBwcm9wO1xyXG4gICAgdGhpcy5yID0gcmVuZGVyZXIgfHwgX3JlbmRlclBsYWluO1xyXG4gICAgdGhpcy5kID0gZGF0YSB8fCB0aGlzO1xyXG4gICAgdGhpcy5zZXQgPSBzZXR0ZXIgfHwgX3NldHRlclBsYWluO1xyXG4gICAgdGhpcy5wciA9IHByaW9yaXR5IHx8IDA7XHJcbiAgICB0aGlzLl9uZXh0ID0gbmV4dDtcclxuXHJcbiAgICBpZiAobmV4dCkge1xyXG4gICAgICBuZXh0Ll9wcmV2ID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhciBfcHJvdG80ID0gUHJvcFR3ZWVuLnByb3RvdHlwZTtcclxuXHJcbiAgX3Byb3RvNC5tb2RpZmllciA9IGZ1bmN0aW9uIG1vZGlmaWVyKGZ1bmMsIHR3ZWVuLCB0YXJnZXQpIHtcclxuICAgIHRoaXMubVNldCA9IHRoaXMubVNldCB8fCB0aGlzLnNldDsgLy9pbiBjYXNlIGl0IHdhcyBhbHJlYWR5IHNldCAoYSBQcm9wVHdlZW4gY2FuIG9ubHkgaGF2ZSBvbmUgbW9kaWZpZXIpXHJcblxyXG4gICAgdGhpcy5zZXQgPSBfc2V0dGVyV2l0aE1vZGlmaWVyO1xyXG4gICAgdGhpcy5tID0gZnVuYztcclxuICAgIHRoaXMubXQgPSB0YXJnZXQ7IC8vbW9kaWZpZXIgdGFyZ2V0XHJcblxyXG4gICAgdGhpcy50d2VlbiA9IHR3ZWVuO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBQcm9wVHdlZW47XHJcbn0oKTsgLy9Jbml0aWFsaXphdGlvbiB0YXNrc1xyXG5cclxuX2ZvckVhY2hOYW1lKF9jYWxsYmFja05hbWVzICsgXCJwYXJlbnQsZHVyYXRpb24sZWFzZSxkZWxheSxvdmVyd3JpdGUscnVuQmFja3dhcmRzLHN0YXJ0QXQseW95byxpbW1lZGlhdGVSZW5kZXIscmVwZWF0LHJlcGVhdERlbGF5LGRhdGEscGF1c2VkLHJldmVyc2VkLGxhenksY2FsbGJhY2tTY29wZSxzdHJpbmdGaWx0ZXIsaWQseW95b0Vhc2Usc3RhZ2dlcixpbmhlcml0LHJlcGVhdFJlZnJlc2gsa2V5ZnJhbWVzLGF1dG9SZXZlcnQsc2Nyb2xsVHJpZ2dlclwiLCBmdW5jdGlvbiAobmFtZSkge1xyXG4gIHJldHVybiBfcmVzZXJ2ZWRQcm9wc1tuYW1lXSA9IDE7XHJcbn0pO1xyXG5cclxuX2dsb2JhbHMuVHdlZW5NYXggPSBfZ2xvYmFscy5Ud2VlbkxpdGUgPSBUd2VlbjtcclxuX2dsb2JhbHMuVGltZWxpbmVMaXRlID0gX2dsb2JhbHMuVGltZWxpbmVNYXggPSBUaW1lbGluZTtcclxuX2dsb2JhbFRpbWVsaW5lID0gbmV3IFRpbWVsaW5lKHtcclxuICBzb3J0Q2hpbGRyZW46IGZhbHNlLFxyXG4gIGRlZmF1bHRzOiBfZGVmYXVsdHMsXHJcbiAgYXV0b1JlbW92ZUNoaWxkcmVuOiB0cnVlLFxyXG4gIGlkOiBcInJvb3RcIixcclxuICBzbW9vdGhDaGlsZFRpbWluZzogdHJ1ZVxyXG59KTtcclxuX2NvbmZpZy5zdHJpbmdGaWx0ZXIgPSBfY29sb3JTdHJpbmdGaWx0ZXI7XHJcblxyXG52YXIgX21lZGlhID0gW10sXHJcbiAgICBfbGlzdGVuZXJzID0ge30sXHJcbiAgICBfZW1wdHlBcnJheSA9IFtdLFxyXG4gICAgX2xhc3RNZWRpYVRpbWUgPSAwLFxyXG4gICAgX2NvbnRleHRJRCA9IDAsXHJcbiAgICBfZGlzcGF0Y2ggPSBmdW5jdGlvbiBfZGlzcGF0Y2godHlwZSkge1xyXG4gIHJldHVybiAoX2xpc3RlbmVyc1t0eXBlXSB8fCBfZW1wdHlBcnJheSkubWFwKGZ1bmN0aW9uIChmKSB7XHJcbiAgICByZXR1cm4gZigpO1xyXG4gIH0pO1xyXG59LFxyXG4gICAgX29uTWVkaWFDaGFuZ2UgPSBmdW5jdGlvbiBfb25NZWRpYUNoYW5nZSgpIHtcclxuICB2YXIgdGltZSA9IERhdGUubm93KCksXHJcbiAgICAgIG1hdGNoZXMgPSBbXTtcclxuXHJcbiAgaWYgKHRpbWUgLSBfbGFzdE1lZGlhVGltZSA+IDIpIHtcclxuICAgIF9kaXNwYXRjaChcIm1hdGNoTWVkaWFJbml0XCIpO1xyXG5cclxuICAgIF9tZWRpYS5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7XHJcbiAgICAgIHZhciBxdWVyaWVzID0gYy5xdWVyaWVzLFxyXG4gICAgICAgICAgY29uZGl0aW9ucyA9IGMuY29uZGl0aW9ucyxcclxuICAgICAgICAgIG1hdGNoLFxyXG4gICAgICAgICAgcCxcclxuICAgICAgICAgIGFueU1hdGNoLFxyXG4gICAgICAgICAgdG9nZ2xlZDtcclxuXHJcbiAgICAgIGZvciAocCBpbiBxdWVyaWVzKSB7XHJcbiAgICAgICAgbWF0Y2ggPSBfd2luLm1hdGNoTWVkaWEocXVlcmllc1twXSkubWF0Y2hlczsgLy8gRmlyZWZveCBkb2Vzbid0IHVwZGF0ZSB0aGUgXCJtYXRjaGVzXCIgcHJvcGVydHkgb2YgdGhlIE1lZGlhUXVlcnlMaXN0IG9iamVjdCBjb3JyZWN0bHkgLSBpdCBvbmx5IGRvZXMgc28gYXMgaXQgY2FsbHMgaXRzIGNoYW5nZSBoYW5kbGVyIC0gc28gd2UgbXVzdCByZS1jcmVhdGUgYSBtZWRpYSBxdWVyeSBoZXJlIHRvIGVuc3VyZSBpdCdzIGFjY3VyYXRlLlxyXG5cclxuICAgICAgICBtYXRjaCAmJiAoYW55TWF0Y2ggPSAxKTtcclxuXHJcbiAgICAgICAgaWYgKG1hdGNoICE9PSBjb25kaXRpb25zW3BdKSB7XHJcbiAgICAgICAgICBjb25kaXRpb25zW3BdID0gbWF0Y2g7XHJcbiAgICAgICAgICB0b2dnbGVkID0gMTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0b2dnbGVkKSB7XHJcbiAgICAgICAgYy5yZXZlcnQoKTtcclxuICAgICAgICBhbnlNYXRjaCAmJiBtYXRjaGVzLnB1c2goYyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIF9kaXNwYXRjaChcIm1hdGNoTWVkaWFSZXZlcnRcIik7XHJcblxyXG4gICAgbWF0Y2hlcy5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7XHJcbiAgICAgIHJldHVybiBjLm9uTWF0Y2goYywgZnVuY3Rpb24gKGZ1bmMpIHtcclxuICAgICAgICByZXR1cm4gYy5hZGQobnVsbCwgZnVuYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICBfbGFzdE1lZGlhVGltZSA9IHRpbWU7XHJcblxyXG4gICAgX2Rpc3BhdGNoKFwibWF0Y2hNZWRpYVwiKTtcclxuICB9XHJcbn07XHJcblxyXG52YXIgQ29udGV4dCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7XHJcbiAgZnVuY3Rpb24gQ29udGV4dChmdW5jLCBzY29wZSkge1xyXG4gICAgdGhpcy5zZWxlY3RvciA9IHNjb3BlICYmIHNlbGVjdG9yKHNjb3BlKTtcclxuICAgIHRoaXMuZGF0YSA9IFtdO1xyXG4gICAgdGhpcy5fciA9IFtdOyAvLyByZXR1cm5lZC9jbGVhbnVwIGZ1bmN0aW9uc1xyXG5cclxuICAgIHRoaXMuaXNSZXZlcnRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pZCA9IF9jb250ZXh0SUQrKzsgLy8gdG8gd29yayBhcm91bmQgaXNzdWVzIHRoYXQgZnJhbWV3b3JrcyBsaWtlIFZ1ZSBjYXVzZSBieSBtYWtpbmcgdGhpbmdzIGludG8gUHJveGllcyB3aGljaCBtYWtlIGl0IGltcG9zc2libGUgdG8gZG8gc29tZXRoaW5nIGxpa2UgX21lZGlhLmluZGV4T2YodGhpcykgYmVjYXVzZSBcInRoaXNcIiB3b3VsZCBubyBsb25nZXIgcmVmZXIgdG8gdGhlIENvbnRleHQgaW5zdGFuY2UgaXRzZWxmIC0gaXQnZCByZWZlciB0byBhIFByb3h5ISBXZSBuZWVkZWQgYSB3YXkgdG8gaWRlbnRpZnkgdGhlIGNvbnRleHQgdW5pcXVlbHlcclxuXHJcbiAgICBmdW5jICYmIHRoaXMuYWRkKGZ1bmMpO1xyXG4gIH1cclxuXHJcbiAgdmFyIF9wcm90bzUgPSBDb250ZXh0LnByb3RvdHlwZTtcclxuXHJcbiAgX3Byb3RvNS5hZGQgPSBmdW5jdGlvbiBhZGQobmFtZSwgZnVuYywgc2NvcGUpIHtcclxuICAgIC8vIHBvc3NpYmxlIGZ1dHVyZSBhZGRpdGlvbiBpZiB3ZSBuZWVkIHRoZSBhYmlsaXR5IHRvIGFkZCgpIGFuIGFuaW1hdGlvbiB0byBhIGNvbnRleHQgYW5kIGZvciB3aGF0ZXZlciByZWFzb24gY2Fubm90IGNyZWF0ZSB0aGF0IGFuaW1hdGlvbiBpbnNpZGUgb2YgYSBjb250ZXh0LmFkZCgoKSA9PiB7Li4ufSkgZnVuY3Rpb24uXHJcbiAgICAvLyBpZiAobmFtZSAmJiBfaXNGdW5jdGlvbihuYW1lLnJldmVydCkpIHtcclxuICAgIC8vIFx0dGhpcy5kYXRhLnB1c2gobmFtZSk7XHJcbiAgICAvLyBcdHJldHVybiAobmFtZS5fY3R4ID0gdGhpcyk7XHJcbiAgICAvLyB9XHJcbiAgICBpZiAoX2lzRnVuY3Rpb24obmFtZSkpIHtcclxuICAgICAgc2NvcGUgPSBmdW5jO1xyXG4gICAgICBmdW5jID0gbmFtZTtcclxuICAgICAgbmFtZSA9IF9pc0Z1bmN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBzZWxmID0gdGhpcyxcclxuICAgICAgICBmID0gZnVuY3Rpb24gZigpIHtcclxuICAgICAgdmFyIHByZXYgPSBfY29udGV4dCxcclxuICAgICAgICAgIHByZXZTZWxlY3RvciA9IHNlbGYuc2VsZWN0b3IsXHJcbiAgICAgICAgICByZXN1bHQ7XHJcbiAgICAgIHByZXYgJiYgcHJldiAhPT0gc2VsZiAmJiBwcmV2LmRhdGEucHVzaChzZWxmKTtcclxuICAgICAgc2NvcGUgJiYgKHNlbGYuc2VsZWN0b3IgPSBzZWxlY3RvcihzY29wZSkpO1xyXG4gICAgICBfY29udGV4dCA9IHNlbGY7XHJcbiAgICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkoc2VsZiwgYXJndW1lbnRzKTtcclxuICAgICAgX2lzRnVuY3Rpb24ocmVzdWx0KSAmJiBzZWxmLl9yLnB1c2gocmVzdWx0KTtcclxuICAgICAgX2NvbnRleHQgPSBwcmV2O1xyXG4gICAgICBzZWxmLnNlbGVjdG9yID0gcHJldlNlbGVjdG9yO1xyXG4gICAgICBzZWxmLmlzUmV2ZXJ0ZWQgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH07XHJcblxyXG4gICAgc2VsZi5sYXN0ID0gZjtcclxuICAgIHJldHVybiBuYW1lID09PSBfaXNGdW5jdGlvbiA/IGYoc2VsZiwgZnVuY3Rpb24gKGZ1bmMpIHtcclxuICAgICAgcmV0dXJuIHNlbGYuYWRkKG51bGwsIGZ1bmMpO1xyXG4gICAgfSkgOiBuYW1lID8gc2VsZltuYW1lXSA9IGYgOiBmO1xyXG4gIH07XHJcblxyXG4gIF9wcm90bzUuaWdub3JlID0gZnVuY3Rpb24gaWdub3JlKGZ1bmMpIHtcclxuICAgIHZhciBwcmV2ID0gX2NvbnRleHQ7XHJcbiAgICBfY29udGV4dCA9IG51bGw7XHJcbiAgICBmdW5jKHRoaXMpO1xyXG4gICAgX2NvbnRleHQgPSBwcmV2O1xyXG4gIH07XHJcblxyXG4gIF9wcm90bzUuZ2V0VHdlZW5zID0gZnVuY3Rpb24gZ2V0VHdlZW5zKCkge1xyXG4gICAgdmFyIGEgPSBbXTtcclxuICAgIHRoaXMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgQ29udGV4dCA/IGEucHVzaC5hcHBseShhLCBlLmdldFR3ZWVucygpKSA6IGUgaW5zdGFuY2VvZiBUd2VlbiAmJiAhKGUucGFyZW50ICYmIGUucGFyZW50LmRhdGEgPT09IFwibmVzdGVkXCIpICYmIGEucHVzaChlKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGE7XHJcbiAgfTtcclxuXHJcbiAgX3Byb3RvNS5jbGVhciA9IGZ1bmN0aW9uIGNsZWFyKCkge1xyXG4gICAgdGhpcy5fci5sZW5ndGggPSB0aGlzLmRhdGEubGVuZ3RoID0gMDtcclxuICB9O1xyXG5cclxuICBfcHJvdG81LmtpbGwgPSBmdW5jdGlvbiBraWxsKHJldmVydCwgbWF0Y2hNZWRpYSkge1xyXG4gICAgdmFyIF90aGlzNCA9IHRoaXM7XHJcblxyXG4gICAgaWYgKHJldmVydCkge1xyXG4gICAgICAoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciB0d2VlbnMgPSBfdGhpczQuZ2V0VHdlZW5zKCksXHJcbiAgICAgICAgICAgIGkgPSBfdGhpczQuZGF0YS5sZW5ndGgsXHJcbiAgICAgICAgICAgIHQ7XHJcblxyXG4gICAgICAgIHdoaWxlIChpLS0pIHtcclxuICAgICAgICAgIC8vIEZsaXAgcGx1Z2luIHR3ZWVucyBhcmUgdmVyeSBkaWZmZXJlbnQgaW4gdGhhdCB0aGV5IHNob3VsZCBhY3R1YWxseSBiZSBwdXNoZWQgdG8gdGhlaXIgZW5kLiBUaGUgcGx1Z2luIHJlcGxhY2VzIHRoZSB0aW1lbGluZSdzIC5yZXZlcnQoKSBtZXRob2QgdG8gZG8gZXhhY3RseSB0aGF0LiBCdXQgd2UgYWxzbyBuZWVkIHRvIHJlbW92ZSBhbnkgb2YgdGhvc2UgbmVzdGVkIHR3ZWVucyBpbnNpZGUgdGhlIGZsaXAgdGltZWxpbmUgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmRpdmlkdWFsbHkgcmV2ZXJ0ZWQuXHJcbiAgICAgICAgICB0ID0gX3RoaXM0LmRhdGFbaV07XHJcblxyXG4gICAgICAgICAgaWYgKHQuZGF0YSA9PT0gXCJpc0ZsaXBcIikge1xyXG4gICAgICAgICAgICB0LnJldmVydCgpO1xyXG4gICAgICAgICAgICB0LmdldENoaWxkcmVuKHRydWUsIHRydWUsIGZhbHNlKS5mb3JFYWNoKGZ1bmN0aW9uICh0d2Vlbikge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0d2VlbnMuc3BsaWNlKHR3ZWVucy5pbmRleE9mKHR3ZWVuKSwgMSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gLy8gc2F2ZSBhcyBhbiBvYmplY3Qgc28gdGhhdCB3ZSBjYW4gY2FjaGUgdGhlIGdsb2JhbFRpbWUgZm9yIGVhY2ggdHdlZW4gdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UgZHVyaW5nIHRoZSBzb3J0XHJcblxyXG5cclxuICAgICAgICB0d2VlbnMubWFwKGZ1bmN0aW9uICh0KSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBnOiB0Ll9kdXIgfHwgdC5fZGVsYXkgfHwgdC5fc2F0ICYmICF0Ll9zYXQudmFycy5pbW1lZGlhdGVSZW5kZXIgPyB0Lmdsb2JhbFRpbWUoMCkgOiAtSW5maW5pdHksXHJcbiAgICAgICAgICAgIHQ6IHRcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSkuc29ydChmdW5jdGlvbiAoYSwgYikge1xyXG4gICAgICAgICAgcmV0dXJuIGIuZyAtIGEuZyB8fCAtSW5maW5pdHk7XHJcbiAgICAgICAgfSkuZm9yRWFjaChmdW5jdGlvbiAobykge1xyXG4gICAgICAgICAgcmV0dXJuIG8udC5yZXZlcnQocmV2ZXJ0KTtcclxuICAgICAgICB9KTsgLy8gbm90ZTogYWxsIG9mIHRoZSBfc3RhcnRBdCB0d2VlbnMgc2hvdWxkIGJlIHJldmVydGVkIGluIHJldmVyc2Ugb3JkZXIgdGhhdCB0aGV5IHdlcmUgY3JlYXRlZCwgYW5kIHRoZXknbGwgYWxsIGhhdmUgdGhlIHNhbWUgZ2xvYmFsVGltZSAoLTEpIHNvIHRoZSBcIiB8fCAtMVwiIGluIHRoZSBzb3J0IGtlZXBzIHRoZSBvcmRlciBwcm9wZXJseS5cclxuXHJcbiAgICAgICAgaSA9IF90aGlzNC5kYXRhLmxlbmd0aDtcclxuXHJcbiAgICAgICAgd2hpbGUgKGktLSkge1xyXG4gICAgICAgICAgLy8gbWFrZSBzdXJlIHdlIGxvb3AgYmFja3dhcmRzIHNvIHRoYXQsIGZvciBleGFtcGxlLCBTcGxpdFRleHRzIHRoYXQgd2VyZSBjcmVhdGVkIGxhdGVyIG9uIHRoZSBzYW1lIGVsZW1lbnQgZ2V0IHJldmVydGVkIGZpcnN0XHJcbiAgICAgICAgICB0ID0gX3RoaXM0LmRhdGFbaV07XHJcblxyXG4gICAgICAgICAgaWYgKHQgaW5zdGFuY2VvZiBUaW1lbGluZSkge1xyXG4gICAgICAgICAgICBpZiAodC5kYXRhICE9PSBcIm5lc3RlZFwiKSB7XHJcbiAgICAgICAgICAgICAgdC5zY3JvbGxUcmlnZ2VyICYmIHQuc2Nyb2xsVHJpZ2dlci5yZXZlcnQoKTtcclxuICAgICAgICAgICAgICB0LmtpbGwoKTsgLy8gZG9uJ3QgcmV2ZXJ0KCkgdGhlIHRpbWVsaW5lIGJlY2F1c2UgdGhhdCdzIGR1cGxpY2F0aW5nIGVmZm9ydHMgc2luY2Ugd2UgYWxyZWFkeSByZXZlcnRlZCBhbGwgdGhlIHR3ZWVuc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAhKHQgaW5zdGFuY2VvZiBUd2VlbikgJiYgdC5yZXZlcnQgJiYgdC5yZXZlcnQocmV2ZXJ0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIF90aGlzNC5fci5mb3JFYWNoKGZ1bmN0aW9uIChmKSB7XHJcbiAgICAgICAgICByZXR1cm4gZihyZXZlcnQsIF90aGlzNCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIF90aGlzNC5pc1JldmVydGVkID0gdHJ1ZTtcclxuICAgICAgfSkoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgcmV0dXJuIGUua2lsbCAmJiBlLmtpbGwoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jbGVhcigpO1xyXG5cclxuICAgIGlmIChtYXRjaE1lZGlhKSB7XHJcbiAgICAgIHZhciBpID0gX21lZGlhLmxlbmd0aDtcclxuXHJcbiAgICAgIHdoaWxlIChpLS0pIHtcclxuICAgICAgICAvLyBwcmV2aW91c2x5LCB3ZSBjaGVja2VkIF9tZWRpYS5pbmRleE9mKHRoaXMpLCBidXQgc29tZSBmcmFtZXdvcmtzIGxpa2UgVnVlIGVuZm9yY2UgUHJveHkgb2JqZWN0cyB0aGF0IG1ha2UgaXQgaW1wb3NzaWJsZSB0byBnZXQgdGhlIHByb3BlciByZXN1bHQgdGhhdCB3YXksIHNvIHdlIG11c3QgdXNlIGEgdW5pcXVlIElEIG51bWJlciBpbnN0ZWFkLlxyXG4gICAgICAgIF9tZWRpYVtpXS5pZCA9PT0gdGhpcy5pZCAmJiBfbWVkaWEuc3BsaWNlKGksIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSAvLyBraWxsV2l0aENsZWFudXAoKSB7XHJcbiAgLy8gXHR0aGlzLmtpbGwoKTtcclxuICAvLyBcdHRoaXMuX3IuZm9yRWFjaChmID0+IGYoZmFsc2UsIHRoaXMpKTtcclxuICAvLyB9XHJcbiAgO1xyXG5cclxuICBfcHJvdG81LnJldmVydCA9IGZ1bmN0aW9uIHJldmVydChjb25maWcpIHtcclxuICAgIHRoaXMua2lsbChjb25maWcgfHwge30pO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBDb250ZXh0O1xyXG59KCk7XHJcblxyXG52YXIgTWF0Y2hNZWRpYSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7XHJcbiAgZnVuY3Rpb24gTWF0Y2hNZWRpYShzY29wZSkge1xyXG4gICAgdGhpcy5jb250ZXh0cyA9IFtdO1xyXG4gICAgdGhpcy5zY29wZSA9IHNjb3BlO1xyXG4gICAgX2NvbnRleHQgJiYgX2NvbnRleHQuZGF0YS5wdXNoKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgdmFyIF9wcm90bzYgPSBNYXRjaE1lZGlhLnByb3RvdHlwZTtcclxuXHJcbiAgX3Byb3RvNi5hZGQgPSBmdW5jdGlvbiBhZGQoY29uZGl0aW9ucywgZnVuYywgc2NvcGUpIHtcclxuICAgIF9pc09iamVjdChjb25kaXRpb25zKSB8fCAoY29uZGl0aW9ucyA9IHtcclxuICAgICAgbWF0Y2hlczogY29uZGl0aW9uc1xyXG4gICAgfSk7XHJcbiAgICB2YXIgY29udGV4dCA9IG5ldyBDb250ZXh0KDAsIHNjb3BlIHx8IHRoaXMuc2NvcGUpLFxyXG4gICAgICAgIGNvbmQgPSBjb250ZXh0LmNvbmRpdGlvbnMgPSB7fSxcclxuICAgICAgICBtcSxcclxuICAgICAgICBwLFxyXG4gICAgICAgIGFjdGl2ZTtcclxuICAgIF9jb250ZXh0ICYmICFjb250ZXh0LnNlbGVjdG9yICYmIChjb250ZXh0LnNlbGVjdG9yID0gX2NvbnRleHQuc2VsZWN0b3IpOyAvLyBpbiBjYXNlIGEgY29udGV4dCBpcyBjcmVhdGVkIGluc2lkZSBhIGNvbnRleHQuIExpa2UgYSBnc2FwLm1hdGNoTWVkaWEoKSB0aGF0J3MgaW5zaWRlIGEgc2NvcGVkIGdzYXAuY29udGV4dCgpXHJcblxyXG4gICAgdGhpcy5jb250ZXh0cy5wdXNoKGNvbnRleHQpO1xyXG4gICAgZnVuYyA9IGNvbnRleHQuYWRkKFwib25NYXRjaFwiLCBmdW5jKTtcclxuICAgIGNvbnRleHQucXVlcmllcyA9IGNvbmRpdGlvbnM7XHJcblxyXG4gICAgZm9yIChwIGluIGNvbmRpdGlvbnMpIHtcclxuICAgICAgaWYgKHAgPT09IFwiYWxsXCIpIHtcclxuICAgICAgICBhY3RpdmUgPSAxO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1xID0gX3dpbi5tYXRjaE1lZGlhKGNvbmRpdGlvbnNbcF0pO1xyXG5cclxuICAgICAgICBpZiAobXEpIHtcclxuICAgICAgICAgIF9tZWRpYS5pbmRleE9mKGNvbnRleHQpIDwgMCAmJiBfbWVkaWEucHVzaChjb250ZXh0KTtcclxuICAgICAgICAgIChjb25kW3BdID0gbXEubWF0Y2hlcykgJiYgKGFjdGl2ZSA9IDEpO1xyXG4gICAgICAgICAgbXEuYWRkTGlzdGVuZXIgPyBtcS5hZGRMaXN0ZW5lcihfb25NZWRpYUNoYW5nZSkgOiBtcS5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIF9vbk1lZGlhQ2hhbmdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhY3RpdmUgJiYgZnVuYyhjb250ZXh0LCBmdW5jdGlvbiAoZikge1xyXG4gICAgICByZXR1cm4gY29udGV4dC5hZGQobnVsbCwgZik7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH0gLy8gcmVmcmVzaCgpIHtcclxuICAvLyBcdGxldCB0aW1lID0gX2xhc3RNZWRpYVRpbWUsXHJcbiAgLy8gXHRcdG1lZGlhID0gX21lZGlhO1xyXG4gIC8vIFx0X2xhc3RNZWRpYVRpbWUgPSAtMTtcclxuICAvLyBcdF9tZWRpYSA9IHRoaXMuY29udGV4dHM7XHJcbiAgLy8gXHRfb25NZWRpYUNoYW5nZSgpO1xyXG4gIC8vIFx0X2xhc3RNZWRpYVRpbWUgPSB0aW1lO1xyXG4gIC8vIFx0X21lZGlhID0gbWVkaWE7XHJcbiAgLy8gfVxyXG4gIDtcclxuXHJcbiAgX3Byb3RvNi5yZXZlcnQgPSBmdW5jdGlvbiByZXZlcnQoY29uZmlnKSB7XHJcbiAgICB0aGlzLmtpbGwoY29uZmlnIHx8IHt9KTtcclxuICB9O1xyXG5cclxuICBfcHJvdG82LmtpbGwgPSBmdW5jdGlvbiBraWxsKHJldmVydCkge1xyXG4gICAgdGhpcy5jb250ZXh0cy5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7XHJcbiAgICAgIHJldHVybiBjLmtpbGwocmV2ZXJ0LCB0cnVlKTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBNYXRjaE1lZGlhO1xyXG59KCk7XHJcbi8qXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqIEdTQVBcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICovXHJcblxyXG5cclxudmFyIF9nc2FwID0ge1xyXG4gIHJlZ2lzdGVyUGx1Z2luOiBmdW5jdGlvbiByZWdpc3RlclBsdWdpbigpIHtcclxuICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xyXG4gICAgICBhcmdzW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XHJcbiAgICB9XHJcblxyXG4gICAgYXJncy5mb3JFYWNoKGZ1bmN0aW9uIChjb25maWcpIHtcclxuICAgICAgcmV0dXJuIF9jcmVhdGVQbHVnaW4oY29uZmlnKTtcclxuICAgIH0pO1xyXG4gIH0sXHJcbiAgdGltZWxpbmU6IGZ1bmN0aW9uIHRpbWVsaW5lKHZhcnMpIHtcclxuICAgIHJldHVybiBuZXcgVGltZWxpbmUodmFycyk7XHJcbiAgfSxcclxuICBnZXRUd2VlbnNPZjogZnVuY3Rpb24gZ2V0VHdlZW5zT2YodGFyZ2V0cywgb25seUFjdGl2ZSkge1xyXG4gICAgcmV0dXJuIF9nbG9iYWxUaW1lbGluZS5nZXRUd2VlbnNPZih0YXJnZXRzLCBvbmx5QWN0aXZlKTtcclxuICB9LFxyXG4gIGdldFByb3BlcnR5OiBmdW5jdGlvbiBnZXRQcm9wZXJ0eSh0YXJnZXQsIHByb3BlcnR5LCB1bml0LCB1bmNhY2hlKSB7XHJcbiAgICBfaXNTdHJpbmcodGFyZ2V0KSAmJiAodGFyZ2V0ID0gdG9BcnJheSh0YXJnZXQpWzBdKTsgLy9pbiBjYXNlIHNlbGVjdG9yIHRleHQgb3IgYW4gYXJyYXkgaXMgcGFzc2VkIGluXHJcblxyXG4gICAgdmFyIGdldHRlciA9IF9nZXRDYWNoZSh0YXJnZXQgfHwge30pLmdldCxcclxuICAgICAgICBmb3JtYXQgPSB1bml0ID8gX3Bhc3NUaHJvdWdoIDogX251bWVyaWNJZlBvc3NpYmxlO1xyXG5cclxuICAgIHVuaXQgPT09IFwibmF0aXZlXCIgJiYgKHVuaXQgPSBcIlwiKTtcclxuICAgIHJldHVybiAhdGFyZ2V0ID8gdGFyZ2V0IDogIXByb3BlcnR5ID8gZnVuY3Rpb24gKHByb3BlcnR5LCB1bml0LCB1bmNhY2hlKSB7XHJcbiAgICAgIHJldHVybiBmb3JtYXQoKF9wbHVnaW5zW3Byb3BlcnR5XSAmJiBfcGx1Z2luc1twcm9wZXJ0eV0uZ2V0IHx8IGdldHRlcikodGFyZ2V0LCBwcm9wZXJ0eSwgdW5pdCwgdW5jYWNoZSkpO1xyXG4gICAgfSA6IGZvcm1hdCgoX3BsdWdpbnNbcHJvcGVydHldICYmIF9wbHVnaW5zW3Byb3BlcnR5XS5nZXQgfHwgZ2V0dGVyKSh0YXJnZXQsIHByb3BlcnR5LCB1bml0LCB1bmNhY2hlKSk7XHJcbiAgfSxcclxuICBxdWlja1NldHRlcjogZnVuY3Rpb24gcXVpY2tTZXR0ZXIodGFyZ2V0LCBwcm9wZXJ0eSwgdW5pdCkge1xyXG4gICAgdGFyZ2V0ID0gdG9BcnJheSh0YXJnZXQpO1xyXG5cclxuICAgIGlmICh0YXJnZXQubGVuZ3RoID4gMSkge1xyXG4gICAgICB2YXIgc2V0dGVycyA9IHRhcmdldC5tYXAoZnVuY3Rpb24gKHQpIHtcclxuICAgICAgICByZXR1cm4gZ3NhcC5xdWlja1NldHRlcih0LCBwcm9wZXJ0eSwgdW5pdCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICAgICAgbCA9IHNldHRlcnMubGVuZ3RoO1xyXG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICAgICAgdmFyIGkgPSBsO1xyXG5cclxuICAgICAgICB3aGlsZSAoaS0tKSB7XHJcbiAgICAgICAgICBzZXR0ZXJzW2ldKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGFyZ2V0ID0gdGFyZ2V0WzBdIHx8IHt9O1xyXG5cclxuICAgIHZhciBQbHVnaW4gPSBfcGx1Z2luc1twcm9wZXJ0eV0sXHJcbiAgICAgICAgY2FjaGUgPSBfZ2V0Q2FjaGUodGFyZ2V0KSxcclxuICAgICAgICBwID0gY2FjaGUuaGFybmVzcyAmJiAoY2FjaGUuaGFybmVzcy5hbGlhc2VzIHx8IHt9KVtwcm9wZXJ0eV0gfHwgcHJvcGVydHksXHJcbiAgICAgICAgLy8gaW4gY2FzZSBpdCdzIGFuIGFsaWFzLCBsaWtlIFwicm90YXRlXCIgZm9yIFwicm90YXRpb25cIi5cclxuICAgIHNldHRlciA9IFBsdWdpbiA/IGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgICB2YXIgcCA9IG5ldyBQbHVnaW4oKTtcclxuICAgICAgX3F1aWNrVHdlZW4uX3B0ID0gMDtcclxuICAgICAgcC5pbml0KHRhcmdldCwgdW5pdCA/IHZhbHVlICsgdW5pdCA6IHZhbHVlLCBfcXVpY2tUd2VlbiwgMCwgW3RhcmdldF0pO1xyXG4gICAgICBwLnJlbmRlcigxLCBwKTtcclxuICAgICAgX3F1aWNrVHdlZW4uX3B0ICYmIF9yZW5kZXJQcm9wVHdlZW5zKDEsIF9xdWlja1R3ZWVuKTtcclxuICAgIH0gOiBjYWNoZS5zZXQodGFyZ2V0LCBwKTtcclxuXHJcbiAgICByZXR1cm4gUGx1Z2luID8gc2V0dGVyIDogZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBzZXR0ZXIodGFyZ2V0LCBwLCB1bml0ID8gdmFsdWUgKyB1bml0IDogdmFsdWUsIGNhY2hlLCAxKTtcclxuICAgIH07XHJcbiAgfSxcclxuICBxdWlja1RvOiBmdW5jdGlvbiBxdWlja1RvKHRhcmdldCwgcHJvcGVydHksIHZhcnMpIHtcclxuICAgIHZhciBfc2V0RGVmYXVsdHMyO1xyXG5cclxuICAgIHZhciB0d2VlbiA9IGdzYXAudG8odGFyZ2V0LCBfc2V0RGVmYXVsdHMoKF9zZXREZWZhdWx0czIgPSB7fSwgX3NldERlZmF1bHRzMltwcm9wZXJ0eV0gPSBcIis9MC4xXCIsIF9zZXREZWZhdWx0czIucGF1c2VkID0gdHJ1ZSwgX3NldERlZmF1bHRzMi5zdGFnZ2VyID0gMCwgX3NldERlZmF1bHRzMiksIHZhcnMgfHwge30pKSxcclxuICAgICAgICBmdW5jID0gZnVuY3Rpb24gZnVuYyh2YWx1ZSwgc3RhcnQsIHN0YXJ0SXNSZWxhdGl2ZSkge1xyXG4gICAgICByZXR1cm4gdHdlZW4ucmVzZXRUbyhwcm9wZXJ0eSwgdmFsdWUsIHN0YXJ0LCBzdGFydElzUmVsYXRpdmUpO1xyXG4gICAgfTtcclxuXHJcbiAgICBmdW5jLnR3ZWVuID0gdHdlZW47XHJcbiAgICByZXR1cm4gZnVuYztcclxuICB9LFxyXG4gIGlzVHdlZW5pbmc6IGZ1bmN0aW9uIGlzVHdlZW5pbmcodGFyZ2V0cykge1xyXG4gICAgcmV0dXJuIF9nbG9iYWxUaW1lbGluZS5nZXRUd2VlbnNPZih0YXJnZXRzLCB0cnVlKS5sZW5ndGggPiAwO1xyXG4gIH0sXHJcbiAgZGVmYXVsdHM6IGZ1bmN0aW9uIGRlZmF1bHRzKHZhbHVlKSB7XHJcbiAgICB2YWx1ZSAmJiB2YWx1ZS5lYXNlICYmICh2YWx1ZS5lYXNlID0gX3BhcnNlRWFzZSh2YWx1ZS5lYXNlLCBfZGVmYXVsdHMuZWFzZSkpO1xyXG4gICAgcmV0dXJuIF9tZXJnZURlZXAoX2RlZmF1bHRzLCB2YWx1ZSB8fCB7fSk7XHJcbiAgfSxcclxuICBjb25maWc6IGZ1bmN0aW9uIGNvbmZpZyh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIF9tZXJnZURlZXAoX2NvbmZpZywgdmFsdWUgfHwge30pO1xyXG4gIH0sXHJcbiAgcmVnaXN0ZXJFZmZlY3Q6IGZ1bmN0aW9uIHJlZ2lzdGVyRWZmZWN0KF9yZWYzKSB7XHJcbiAgICB2YXIgbmFtZSA9IF9yZWYzLm5hbWUsXHJcbiAgICAgICAgZWZmZWN0ID0gX3JlZjMuZWZmZWN0LFxyXG4gICAgICAgIHBsdWdpbnMgPSBfcmVmMy5wbHVnaW5zLFxyXG4gICAgICAgIGRlZmF1bHRzID0gX3JlZjMuZGVmYXVsdHMsXHJcbiAgICAgICAgZXh0ZW5kVGltZWxpbmUgPSBfcmVmMy5leHRlbmRUaW1lbGluZTtcclxuICAgIChwbHVnaW5zIHx8IFwiXCIpLnNwbGl0KFwiLFwiKS5mb3JFYWNoKGZ1bmN0aW9uIChwbHVnaW5OYW1lKSB7XHJcbiAgICAgIHJldHVybiBwbHVnaW5OYW1lICYmICFfcGx1Z2luc1twbHVnaW5OYW1lXSAmJiAhX2dsb2JhbHNbcGx1Z2luTmFtZV0gJiYgX3dhcm4obmFtZSArIFwiIGVmZmVjdCByZXF1aXJlcyBcIiArIHBsdWdpbk5hbWUgKyBcIiBwbHVnaW4uXCIpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgX2VmZmVjdHNbbmFtZV0gPSBmdW5jdGlvbiAodGFyZ2V0cywgdmFycywgdGwpIHtcclxuICAgICAgcmV0dXJuIGVmZmVjdCh0b0FycmF5KHRhcmdldHMpLCBfc2V0RGVmYXVsdHModmFycyB8fCB7fSwgZGVmYXVsdHMpLCB0bCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChleHRlbmRUaW1lbGluZSkge1xyXG4gICAgICBUaW1lbGluZS5wcm90b3R5cGVbbmFtZV0gPSBmdW5jdGlvbiAodGFyZ2V0cywgdmFycywgcG9zaXRpb24pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hZGQoX2VmZmVjdHNbbmFtZV0odGFyZ2V0cywgX2lzT2JqZWN0KHZhcnMpID8gdmFycyA6IChwb3NpdGlvbiA9IHZhcnMpICYmIHt9LCB0aGlzKSwgcG9zaXRpb24pO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH0sXHJcbiAgcmVnaXN0ZXJFYXNlOiBmdW5jdGlvbiByZWdpc3RlckVhc2UobmFtZSwgZWFzZSkge1xyXG4gICAgX2Vhc2VNYXBbbmFtZV0gPSBfcGFyc2VFYXNlKGVhc2UpO1xyXG4gIH0sXHJcbiAgcGFyc2VFYXNlOiBmdW5jdGlvbiBwYXJzZUVhc2UoZWFzZSwgZGVmYXVsdEVhc2UpIHtcclxuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gX3BhcnNlRWFzZShlYXNlLCBkZWZhdWx0RWFzZSkgOiBfZWFzZU1hcDtcclxuICB9LFxyXG4gIGdldEJ5SWQ6IGZ1bmN0aW9uIGdldEJ5SWQoaWQpIHtcclxuICAgIHJldHVybiBfZ2xvYmFsVGltZWxpbmUuZ2V0QnlJZChpZCk7XHJcbiAgfSxcclxuICBleHBvcnRSb290OiBmdW5jdGlvbiBleHBvcnRSb290KHZhcnMsIGluY2x1ZGVEZWxheWVkQ2FsbHMpIHtcclxuICAgIGlmICh2YXJzID09PSB2b2lkIDApIHtcclxuICAgICAgdmFycyA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIHZhciB0bCA9IG5ldyBUaW1lbGluZSh2YXJzKSxcclxuICAgICAgICBjaGlsZCxcclxuICAgICAgICBuZXh0O1xyXG4gICAgdGwuc21vb3RoQ2hpbGRUaW1pbmcgPSBfaXNOb3RGYWxzZSh2YXJzLnNtb290aENoaWxkVGltaW5nKTtcclxuXHJcbiAgICBfZ2xvYmFsVGltZWxpbmUucmVtb3ZlKHRsKTtcclxuXHJcbiAgICB0bC5fZHAgPSAwOyAvL290aGVyd2lzZSBpdCdsbCBnZXQgcmUtYWN0aXZhdGVkIHdoZW4gYWRkaW5nIGNoaWxkcmVuIGFuZCBiZSByZS1pbnRyb2R1Y2VkIGludG8gX2dsb2JhbFRpbWVsaW5lJ3MgbGlua2VkIGxpc3QgKHRoZW4gYWRkZWQgdG8gaXRzZWxmKS5cclxuXHJcbiAgICB0bC5fdGltZSA9IHRsLl90VGltZSA9IF9nbG9iYWxUaW1lbGluZS5fdGltZTtcclxuICAgIGNoaWxkID0gX2dsb2JhbFRpbWVsaW5lLl9maXJzdDtcclxuXHJcbiAgICB3aGlsZSAoY2hpbGQpIHtcclxuICAgICAgbmV4dCA9IGNoaWxkLl9uZXh0O1xyXG5cclxuICAgICAgaWYgKGluY2x1ZGVEZWxheWVkQ2FsbHMgfHwgISghY2hpbGQuX2R1ciAmJiBjaGlsZCBpbnN0YW5jZW9mIFR3ZWVuICYmIGNoaWxkLnZhcnMub25Db21wbGV0ZSA9PT0gY2hpbGQuX3RhcmdldHNbMF0pKSB7XHJcbiAgICAgICAgX2FkZFRvVGltZWxpbmUodGwsIGNoaWxkLCBjaGlsZC5fc3RhcnQgLSBjaGlsZC5fZGVsYXkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjaGlsZCA9IG5leHQ7XHJcbiAgICB9XHJcblxyXG4gICAgX2FkZFRvVGltZWxpbmUoX2dsb2JhbFRpbWVsaW5lLCB0bCwgMCk7XHJcblxyXG4gICAgcmV0dXJuIHRsO1xyXG4gIH0sXHJcbiAgY29udGV4dDogZnVuY3Rpb24gY29udGV4dChmdW5jLCBzY29wZSkge1xyXG4gICAgcmV0dXJuIGZ1bmMgPyBuZXcgQ29udGV4dChmdW5jLCBzY29wZSkgOiBfY29udGV4dDtcclxuICB9LFxyXG4gIG1hdGNoTWVkaWE6IGZ1bmN0aW9uIG1hdGNoTWVkaWEoc2NvcGUpIHtcclxuICAgIHJldHVybiBuZXcgTWF0Y2hNZWRpYShzY29wZSk7XHJcbiAgfSxcclxuICBtYXRjaE1lZGlhUmVmcmVzaDogZnVuY3Rpb24gbWF0Y2hNZWRpYVJlZnJlc2goKSB7XHJcbiAgICByZXR1cm4gX21lZGlhLmZvckVhY2goZnVuY3Rpb24gKGMpIHtcclxuICAgICAgdmFyIGNvbmQgPSBjLmNvbmRpdGlvbnMsXHJcbiAgICAgICAgICBmb3VuZCxcclxuICAgICAgICAgIHA7XHJcblxyXG4gICAgICBmb3IgKHAgaW4gY29uZCkge1xyXG4gICAgICAgIGlmIChjb25kW3BdKSB7XHJcbiAgICAgICAgICBjb25kW3BdID0gZmFsc2U7XHJcbiAgICAgICAgICBmb3VuZCA9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBmb3VuZCAmJiBjLnJldmVydCgpO1xyXG4gICAgfSkgfHwgX29uTWVkaWFDaGFuZ2UoKTtcclxuICB9LFxyXG4gIGFkZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uIGFkZEV2ZW50TGlzdGVuZXIodHlwZSwgY2FsbGJhY2spIHtcclxuICAgIHZhciBhID0gX2xpc3RlbmVyc1t0eXBlXSB8fCAoX2xpc3RlbmVyc1t0eXBlXSA9IFtdKTtcclxuICAgIH5hLmluZGV4T2YoY2FsbGJhY2spIHx8IGEucHVzaChjYWxsYmFjayk7XHJcbiAgfSxcclxuICByZW1vdmVFdmVudExpc3RlbmVyOiBmdW5jdGlvbiByZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGNhbGxiYWNrKSB7XHJcbiAgICB2YXIgYSA9IF9saXN0ZW5lcnNbdHlwZV0sXHJcbiAgICAgICAgaSA9IGEgJiYgYS5pbmRleE9mKGNhbGxiYWNrKTtcclxuICAgIGkgPj0gMCAmJiBhLnNwbGljZShpLCAxKTtcclxuICB9LFxyXG4gIHV0aWxzOiB7XHJcbiAgICB3cmFwOiB3cmFwLFxyXG4gICAgd3JhcFlveW86IHdyYXBZb3lvLFxyXG4gICAgZGlzdHJpYnV0ZTogZGlzdHJpYnV0ZSxcclxuICAgIHJhbmRvbTogcmFuZG9tLFxyXG4gICAgc25hcDogc25hcCxcclxuICAgIG5vcm1hbGl6ZTogbm9ybWFsaXplLFxyXG4gICAgZ2V0VW5pdDogZ2V0VW5pdCxcclxuICAgIGNsYW1wOiBjbGFtcCxcclxuICAgIHNwbGl0Q29sb3I6IHNwbGl0Q29sb3IsXHJcbiAgICB0b0FycmF5OiB0b0FycmF5LFxyXG4gICAgc2VsZWN0b3I6IHNlbGVjdG9yLFxyXG4gICAgbWFwUmFuZ2U6IG1hcFJhbmdlLFxyXG4gICAgcGlwZTogcGlwZSxcclxuICAgIHVuaXRpemU6IHVuaXRpemUsXHJcbiAgICBpbnRlcnBvbGF0ZTogaW50ZXJwb2xhdGUsXHJcbiAgICBzaHVmZmxlOiBzaHVmZmxlXHJcbiAgfSxcclxuICBpbnN0YWxsOiBfaW5zdGFsbCxcclxuICBlZmZlY3RzOiBfZWZmZWN0cyxcclxuICB0aWNrZXI6IF90aWNrZXIsXHJcbiAgdXBkYXRlUm9vdDogVGltZWxpbmUudXBkYXRlUm9vdCxcclxuICBwbHVnaW5zOiBfcGx1Z2lucyxcclxuICBnbG9iYWxUaW1lbGluZTogX2dsb2JhbFRpbWVsaW5lLFxyXG4gIGNvcmU6IHtcclxuICAgIFByb3BUd2VlbjogUHJvcFR3ZWVuLFxyXG4gICAgZ2xvYmFsczogX2FkZEdsb2JhbCxcclxuICAgIFR3ZWVuOiBUd2VlbixcclxuICAgIFRpbWVsaW5lOiBUaW1lbGluZSxcclxuICAgIEFuaW1hdGlvbjogQW5pbWF0aW9uLFxyXG4gICAgZ2V0Q2FjaGU6IF9nZXRDYWNoZSxcclxuICAgIF9yZW1vdmVMaW5rZWRMaXN0SXRlbTogX3JlbW92ZUxpbmtlZExpc3RJdGVtLFxyXG4gICAgcmV2ZXJ0aW5nOiBmdW5jdGlvbiByZXZlcnRpbmcoKSB7XHJcbiAgICAgIHJldHVybiBfcmV2ZXJ0aW5nO1xyXG4gICAgfSxcclxuICAgIGNvbnRleHQ6IGZ1bmN0aW9uIGNvbnRleHQodG9BZGQpIHtcclxuICAgICAgaWYgKHRvQWRkICYmIF9jb250ZXh0KSB7XHJcbiAgICAgICAgX2NvbnRleHQuZGF0YS5wdXNoKHRvQWRkKTtcclxuXHJcbiAgICAgICAgdG9BZGQuX2N0eCA9IF9jb250ZXh0O1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gX2NvbnRleHQ7XHJcbiAgICB9LFxyXG4gICAgc3VwcHJlc3NPdmVyd3JpdGVzOiBmdW5jdGlvbiBzdXBwcmVzc092ZXJ3cml0ZXModmFsdWUpIHtcclxuICAgICAgcmV0dXJuIF9zdXBwcmVzc092ZXJ3cml0ZXMgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn07XHJcblxyXG5fZm9yRWFjaE5hbWUoXCJ0byxmcm9tLGZyb21UbyxkZWxheWVkQ2FsbCxzZXQsa2lsbFR3ZWVuc09mXCIsIGZ1bmN0aW9uIChuYW1lKSB7XHJcbiAgcmV0dXJuIF9nc2FwW25hbWVdID0gVHdlZW5bbmFtZV07XHJcbn0pO1xyXG5cclxuX3RpY2tlci5hZGQoVGltZWxpbmUudXBkYXRlUm9vdCk7XHJcblxyXG5fcXVpY2tUd2VlbiA9IF9nc2FwLnRvKHt9LCB7XHJcbiAgZHVyYXRpb246IDBcclxufSk7IC8vIC0tLS0gRVhUUkEgUExVR0lOUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxudmFyIF9nZXRQbHVnaW5Qcm9wVHdlZW4gPSBmdW5jdGlvbiBfZ2V0UGx1Z2luUHJvcFR3ZWVuKHBsdWdpbiwgcHJvcCkge1xyXG4gIHZhciBwdCA9IHBsdWdpbi5fcHQ7XHJcblxyXG4gIHdoaWxlIChwdCAmJiBwdC5wICE9PSBwcm9wICYmIHB0Lm9wICE9PSBwcm9wICYmIHB0LmZwICE9PSBwcm9wKSB7XHJcbiAgICBwdCA9IHB0Ll9uZXh0O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHB0O1xyXG59LFxyXG4gICAgX2FkZE1vZGlmaWVycyA9IGZ1bmN0aW9uIF9hZGRNb2RpZmllcnModHdlZW4sIG1vZGlmaWVycykge1xyXG4gIHZhciB0YXJnZXRzID0gdHdlZW4uX3RhcmdldHMsXHJcbiAgICAgIHAsXHJcbiAgICAgIGksXHJcbiAgICAgIHB0O1xyXG5cclxuICBmb3IgKHAgaW4gbW9kaWZpZXJzKSB7XHJcbiAgICBpID0gdGFyZ2V0cy5sZW5ndGg7XHJcblxyXG4gICAgd2hpbGUgKGktLSkge1xyXG4gICAgICBwdCA9IHR3ZWVuLl9wdExvb2t1cFtpXVtwXTtcclxuXHJcbiAgICAgIGlmIChwdCAmJiAocHQgPSBwdC5kKSkge1xyXG4gICAgICAgIGlmIChwdC5fcHQpIHtcclxuICAgICAgICAgIC8vIGlzIGEgcGx1Z2luXHJcbiAgICAgICAgICBwdCA9IF9nZXRQbHVnaW5Qcm9wVHdlZW4ocHQsIHApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHQgJiYgcHQubW9kaWZpZXIgJiYgcHQubW9kaWZpZXIobW9kaWZpZXJzW3BdLCB0d2VlbiwgdGFyZ2V0c1tpXSwgcCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0sXHJcbiAgICBfYnVpbGRNb2RpZmllclBsdWdpbiA9IGZ1bmN0aW9uIF9idWlsZE1vZGlmaWVyUGx1Z2luKG5hbWUsIG1vZGlmaWVyKSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIG5hbWU6IG5hbWUsXHJcbiAgICBoZWFkbGVzczogMSxcclxuICAgIHJhd1ZhcnM6IDEsXHJcbiAgICAvL2Rvbid0IHByZS1wcm9jZXNzIGZ1bmN0aW9uLWJhc2VkIHZhbHVlcyBvciBcInJhbmRvbSgpXCIgc3RyaW5ncy5cclxuICAgIGluaXQ6IGZ1bmN0aW9uIGluaXQodGFyZ2V0LCB2YXJzLCB0d2Vlbikge1xyXG4gICAgICB0d2Vlbi5fb25Jbml0ID0gZnVuY3Rpb24gKHR3ZWVuKSB7XHJcbiAgICAgICAgdmFyIHRlbXAsIHA7XHJcblxyXG4gICAgICAgIGlmIChfaXNTdHJpbmcodmFycykpIHtcclxuICAgICAgICAgIHRlbXAgPSB7fTtcclxuXHJcbiAgICAgICAgICBfZm9yRWFjaE5hbWUodmFycywgZnVuY3Rpb24gKG5hbWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRlbXBbbmFtZV0gPSAxO1xyXG4gICAgICAgICAgfSk7IC8vaWYgdGhlIHVzZXIgcGFzc2VzIGluIGEgY29tbWEtZGVsaW1pdGVkIGxpc3Qgb2YgcHJvcGVydHkgbmFtZXMgdG8gcm91bmRQcm9wcywgbGlrZSBcIngseVwiLCB3ZSByb3VuZCB0byB3aG9sZSBudW1iZXJzLlxyXG5cclxuXHJcbiAgICAgICAgICB2YXJzID0gdGVtcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChtb2RpZmllcikge1xyXG4gICAgICAgICAgdGVtcCA9IHt9O1xyXG5cclxuICAgICAgICAgIGZvciAocCBpbiB2YXJzKSB7XHJcbiAgICAgICAgICAgIHRlbXBbcF0gPSBtb2RpZmllcih2YXJzW3BdKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB2YXJzID0gdGVtcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIF9hZGRNb2RpZmllcnModHdlZW4sIHZhcnMpO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH07XHJcbn07IC8vcmVnaXN0ZXIgY29yZSBwbHVnaW5zXHJcblxyXG5cclxuZXhwb3J0IHZhciBnc2FwID0gX2dzYXAucmVnaXN0ZXJQbHVnaW4oe1xyXG4gIG5hbWU6IFwiYXR0clwiLFxyXG4gIGluaXQ6IGZ1bmN0aW9uIGluaXQodGFyZ2V0LCB2YXJzLCB0d2VlbiwgaW5kZXgsIHRhcmdldHMpIHtcclxuICAgIHZhciBwLCBwdCwgdjtcclxuICAgIHRoaXMudHdlZW4gPSB0d2VlbjtcclxuXHJcbiAgICBmb3IgKHAgaW4gdmFycykge1xyXG4gICAgICB2ID0gdGFyZ2V0LmdldEF0dHJpYnV0ZShwKSB8fCBcIlwiO1xyXG4gICAgICBwdCA9IHRoaXMuYWRkKHRhcmdldCwgXCJzZXRBdHRyaWJ1dGVcIiwgKHYgfHwgMCkgKyBcIlwiLCB2YXJzW3BdLCBpbmRleCwgdGFyZ2V0cywgMCwgMCwgcCk7XHJcbiAgICAgIHB0Lm9wID0gcDtcclxuICAgICAgcHQuYiA9IHY7IC8vIHJlY29yZCB0aGUgYmVnaW5uaW5nIHZhbHVlIHNvIHdlIGNhbiByZXZlcnQoKVxyXG5cclxuICAgICAgdGhpcy5fcHJvcHMucHVzaChwKTtcclxuICAgIH1cclxuICB9LFxyXG4gIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKHJhdGlvLCBkYXRhKSB7XHJcbiAgICB2YXIgcHQgPSBkYXRhLl9wdDtcclxuXHJcbiAgICB3aGlsZSAocHQpIHtcclxuICAgICAgX3JldmVydGluZyA/IHB0LnNldChwdC50LCBwdC5wLCBwdC5iLCBwdCkgOiBwdC5yKHJhdGlvLCBwdC5kKTsgLy8gaWYgcmV2ZXJ0aW5nLCBnbyBiYWNrIHRvIHRoZSBvcmlnaW5hbCAocHQuYilcclxuXHJcbiAgICAgIHB0ID0gcHQuX25leHQ7XHJcbiAgICB9XHJcbiAgfVxyXG59LCB7XHJcbiAgbmFtZTogXCJlbmRBcnJheVwiLFxyXG4gIGhlYWRsZXNzOiAxLFxyXG4gIGluaXQ6IGZ1bmN0aW9uIGluaXQodGFyZ2V0LCB2YWx1ZSkge1xyXG4gICAgdmFyIGkgPSB2YWx1ZS5sZW5ndGg7XHJcblxyXG4gICAgd2hpbGUgKGktLSkge1xyXG4gICAgICB0aGlzLmFkZCh0YXJnZXQsIGksIHRhcmdldFtpXSB8fCAwLCB2YWx1ZVtpXSwgMCwgMCwgMCwgMCwgMCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG59LCBfYnVpbGRNb2RpZmllclBsdWdpbihcInJvdW5kUHJvcHNcIiwgX3JvdW5kTW9kaWZpZXIpLCBfYnVpbGRNb2RpZmllclBsdWdpbihcIm1vZGlmaWVyc1wiKSwgX2J1aWxkTW9kaWZpZXJQbHVnaW4oXCJzbmFwXCIsIHNuYXApKSB8fCBfZ3NhcDsgLy90byBwcmV2ZW50IHRoZSBjb3JlIHBsdWdpbnMgZnJvbSBiZWluZyBkcm9wcGVkIHZpYSBhZ2dyZXNzaXZlIHRyZWUgc2hha2luZywgd2UgbXVzdCBpbmNsdWRlIHRoZW0gaW4gdGhlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGluIHRoaXMgd2F5LlxyXG5cclxuVHdlZW4udmVyc2lvbiA9IFRpbWVsaW5lLnZlcnNpb24gPSBnc2FwLnZlcnNpb24gPSBcIjMuMTMuMFwiO1xyXG5fY29yZVJlYWR5ID0gMTtcclxuX3dpbmRvd0V4aXN0cygpICYmIF93YWtlKCk7XHJcbnZhciBQb3dlcjAgPSBfZWFzZU1hcC5Qb3dlcjAsXHJcbiAgICBQb3dlcjEgPSBfZWFzZU1hcC5Qb3dlcjEsXHJcbiAgICBQb3dlcjIgPSBfZWFzZU1hcC5Qb3dlcjIsXHJcbiAgICBQb3dlcjMgPSBfZWFzZU1hcC5Qb3dlcjMsXHJcbiAgICBQb3dlcjQgPSBfZWFzZU1hcC5Qb3dlcjQsXHJcbiAgICBMaW5lYXIgPSBfZWFzZU1hcC5MaW5lYXIsXHJcbiAgICBRdWFkID0gX2Vhc2VNYXAuUXVhZCxcclxuICAgIEN1YmljID0gX2Vhc2VNYXAuQ3ViaWMsXHJcbiAgICBRdWFydCA9IF9lYXNlTWFwLlF1YXJ0LFxyXG4gICAgUXVpbnQgPSBfZWFzZU1hcC5RdWludCxcclxuICAgIFN0cm9uZyA9IF9lYXNlTWFwLlN0cm9uZyxcclxuICAgIEVsYXN0aWMgPSBfZWFzZU1hcC5FbGFzdGljLFxyXG4gICAgQmFjayA9IF9lYXNlTWFwLkJhY2ssXHJcbiAgICBTdGVwcGVkRWFzZSA9IF9lYXNlTWFwLlN0ZXBwZWRFYXNlLFxyXG4gICAgQm91bmNlID0gX2Vhc2VNYXAuQm91bmNlLFxyXG4gICAgU2luZSA9IF9lYXNlTWFwLlNpbmUsXHJcbiAgICBFeHBvID0gX2Vhc2VNYXAuRXhwbyxcclxuICAgIENpcmMgPSBfZWFzZU1hcC5DaXJjO1xyXG5leHBvcnQgeyBQb3dlcjAsIFBvd2VyMSwgUG93ZXIyLCBQb3dlcjMsIFBvd2VyNCwgTGluZWFyLCBRdWFkLCBDdWJpYywgUXVhcnQsIFF1aW50LCBTdHJvbmcsIEVsYXN0aWMsIEJhY2ssIFN0ZXBwZWRFYXNlLCBCb3VuY2UsIFNpbmUsIEV4cG8sIENpcmMgfTtcclxuZXhwb3J0IHsgVHdlZW4gYXMgVHdlZW5NYXgsIFR3ZWVuIGFzIFR3ZWVuTGl0ZSwgVGltZWxpbmUgYXMgVGltZWxpbmVNYXgsIFRpbWVsaW5lIGFzIFRpbWVsaW5lTGl0ZSwgZ3NhcCBhcyBkZWZhdWx0LCB3cmFwLCB3cmFwWW95bywgZGlzdHJpYnV0ZSwgcmFuZG9tLCBzbmFwLCBub3JtYWxpemUsIGdldFVuaXQsIGNsYW1wLCBzcGxpdENvbG9yLCB0b0FycmF5LCBzZWxlY3RvciwgbWFwUmFuZ2UsIHBpcGUsIHVuaXRpemUsIGludGVycG9sYXRlLCBzaHVmZmxlIH07IC8vZXhwb3J0IHNvbWUgaW50ZXJuYWwgbWV0aG9kcy9vcm9qZWN0cyBmb3IgdXNlIGluIENTU1BsdWdpbiBzbyB0aGF0IHdlIGNhbiBleHRlcm5hbGl6ZSB0aGF0IGZpbGUgYW5kIGFsbG93IGN1c3RvbSBidWlsZHMgdGhhdCBleGNsdWRlIGl0LlxyXG5cclxuZXhwb3J0IHsgX2dldFByb3BlcnR5LCBfbnVtRXhwLCBfbnVtV2l0aFVuaXRFeHAsIF9pc1N0cmluZywgX2lzVW5kZWZpbmVkLCBfcmVuZGVyQ29tcGxleFN0cmluZywgX3JlbEV4cCwgX3NldERlZmF1bHRzLCBfcmVtb3ZlTGlua2VkTGlzdEl0ZW0sIF9mb3JFYWNoTmFtZSwgX3NvcnRQcm9wVHdlZW5zQnlQcmlvcml0eSwgX2NvbG9yU3RyaW5nRmlsdGVyLCBfcmVwbGFjZVJhbmRvbSwgX2NoZWNrUGx1Z2luLCBfcGx1Z2lucywgX3RpY2tlciwgX2NvbmZpZywgX3JvdW5kTW9kaWZpZXIsIF9yb3VuZCwgX21pc3NpbmdQbHVnaW4sIF9nZXRTZXR0ZXIsIF9nZXRDYWNoZSwgX2NvbG9yRXhwLCBfcGFyc2VSZWxhdGl2ZSB9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/gsap/gsap-core.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/gsap/index.js":
|
||
/*!************************************!*\
|
||
!*** ./node_modules/gsap/index.js ***!
|
||
\************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Back: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Back; },\n/* harmony export */ Bounce: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Bounce; },\n/* harmony export */ CSSPlugin: function() { return /* reexport safe */ _CSSPlugin_js__WEBPACK_IMPORTED_MODULE_1__.CSSPlugin; },\n/* harmony export */ Circ: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Circ; },\n/* harmony export */ Cubic: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Cubic; },\n/* harmony export */ Elastic: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Elastic; },\n/* harmony export */ Expo: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Expo; },\n/* harmony export */ Linear: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Linear; },\n/* harmony export */ Power0: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Power0; },\n/* harmony export */ Power1: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Power1; },\n/* harmony export */ Power2: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Power2; },\n/* harmony export */ Power3: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Power3; },\n/* harmony export */ Power4: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Power4; },\n/* harmony export */ Quad: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Quad; },\n/* harmony export */ Quart: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Quart; },\n/* harmony export */ Quint: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Quint; },\n/* harmony export */ Sine: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Sine; },\n/* harmony export */ SteppedEase: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.SteppedEase; },\n/* harmony export */ Strong: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Strong; },\n/* harmony export */ TimelineLite: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.TimelineLite; },\n/* harmony export */ TimelineMax: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.TimelineMax; },\n/* harmony export */ TweenLite: function() { return /* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.TweenLite; },\n/* harmony export */ TweenMax: function() { return /* binding */ TweenMaxWithCSS; },\n/* harmony export */ \"default\": function() { return /* binding */ gsapWithCSS; },\n/* harmony export */ gsap: function() { return /* binding */ gsapWithCSS; }\n/* harmony export */ });\n/* harmony import */ var _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./gsap-core.js */ \"(app-pages-browser)/./node_modules/gsap/gsap-core.js\");\n/* harmony import */ var _CSSPlugin_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CSSPlugin.js */ \"(app-pages-browser)/./node_modules/gsap/CSSPlugin.js\");\n\r\n\r\nvar gsapWithCSS = _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.gsap.registerPlugin(_CSSPlugin_js__WEBPACK_IMPORTED_MODULE_1__.CSSPlugin) || _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.gsap,\r\n // to protect from tree shaking\r\nTweenMaxWithCSS = gsapWithCSS.core.Tween;\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9nc2FwL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFxTjtBQUMxSztBQUMzQyxrQkFBa0IsK0NBQUksZ0JBQWdCLG9EQUFTLEtBQUssK0NBQUk7QUFDeEQ7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZ3NhcC9pbmRleC5qcz8wNmU5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdzYXAsIFBvd2VyMCwgUG93ZXIxLCBQb3dlcjIsIFBvd2VyMywgUG93ZXI0LCBMaW5lYXIsIFF1YWQsIEN1YmljLCBRdWFydCwgUXVpbnQsIFN0cm9uZywgRWxhc3RpYywgQmFjaywgU3RlcHBlZEVhc2UsIEJvdW5jZSwgU2luZSwgRXhwbywgQ2lyYywgVHdlZW5MaXRlLCBUaW1lbGluZUxpdGUsIFRpbWVsaW5lTWF4IH0gZnJvbSBcIi4vZ3NhcC1jb3JlLmpzXCI7XHJcbmltcG9ydCB7IENTU1BsdWdpbiB9IGZyb20gXCIuL0NTU1BsdWdpbi5qc1wiO1xyXG52YXIgZ3NhcFdpdGhDU1MgPSBnc2FwLnJlZ2lzdGVyUGx1Z2luKENTU1BsdWdpbikgfHwgZ3NhcCxcclxuICAgIC8vIHRvIHByb3RlY3QgZnJvbSB0cmVlIHNoYWtpbmdcclxuVHdlZW5NYXhXaXRoQ1NTID0gZ3NhcFdpdGhDU1MuY29yZS5Ud2VlbjtcclxuZXhwb3J0IHsgZ3NhcFdpdGhDU1MgYXMgZ3NhcCwgZ3NhcFdpdGhDU1MgYXMgZGVmYXVsdCwgQ1NTUGx1Z2luLCBUd2Vlbk1heFdpdGhDU1MgYXMgVHdlZW5NYXgsIFR3ZWVuTGl0ZSwgVGltZWxpbmVNYXgsIFRpbWVsaW5lTGl0ZSwgUG93ZXIwLCBQb3dlcjEsIFBvd2VyMiwgUG93ZXIzLCBQb3dlcjQsIExpbmVhciwgUXVhZCwgQ3ViaWMsIFF1YXJ0LCBRdWludCwgU3Ryb25nLCBFbGFzdGljLCBCYWNrLCBTdGVwcGVkRWFzZSwgQm91bmNlLCBTaW5lLCBFeHBvLCBDaXJjIH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/gsap/index.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/Icon.js ***!
|
||
\****************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Icon; }\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/* harmony import */ var _defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultAttributes.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\");\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\n\r\n\r\nconst Icon = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(\r\n ({\r\n color = \"currentColor\",\r\n size = 24,\r\n strokeWidth = 2,\r\n absoluteStrokeWidth,\r\n className = \"\",\r\n children,\r\n iconNode,\r\n ...rest\r\n }, ref) => {\r\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\r\n \"svg\",\r\n {\r\n ref,\r\n ..._defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\r\n width: size,\r\n height: size,\r\n stroke: color,\r\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\r\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide\", className),\r\n ...rest\r\n },\r\n [\r\n ...iconNode.map(([tag, attrs]) => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(tag, attrs)),\r\n ...Array.isArray(children) ? children : [children]\r\n ]\r\n );\r\n }\r\n);\r\n\r\n\r\n//# sourceMappingURL=Icon.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2tEO0FBQ0s7QUFDRjtBQUNyRDtBQUNBLGFBQWEsaURBQVU7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILFdBQVcsb0RBQWE7QUFDeEI7QUFDQTtBQUNBO0FBQ0EsV0FBVyw2REFBaUI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsa0VBQVk7QUFDL0I7QUFDQSxPQUFPO0FBQ1A7QUFDQSwwQ0FBMEMsb0RBQWE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQzJCO0FBQzNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vSWNvbi5qcz9kYjY0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXHJcbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IGZvcndhcmRSZWYsIGNyZWF0ZUVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuL2RlZmF1bHRBdHRyaWJ1dGVzLmpzJztcclxuaW1wb3J0IHsgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnLi9zaGFyZWQvc3JjL3V0aWxzLmpzJztcclxuXHJcbmNvbnN0IEljb24gPSBmb3J3YXJkUmVmKFxyXG4gICh7XHJcbiAgICBjb2xvciA9IFwiY3VycmVudENvbG9yXCIsXHJcbiAgICBzaXplID0gMjQsXHJcbiAgICBzdHJva2VXaWR0aCA9IDIsXHJcbiAgICBhYnNvbHV0ZVN0cm9rZVdpZHRoLFxyXG4gICAgY2xhc3NOYW1lID0gXCJcIixcclxuICAgIGNoaWxkcmVuLFxyXG4gICAgaWNvbk5vZGUsXHJcbiAgICAuLi5yZXN0XHJcbiAgfSwgcmVmKSA9PiB7XHJcbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudChcclxuICAgICAgXCJzdmdcIixcclxuICAgICAge1xyXG4gICAgICAgIHJlZixcclxuICAgICAgICAuLi5kZWZhdWx0QXR0cmlidXRlcyxcclxuICAgICAgICB3aWR0aDogc2l6ZSxcclxuICAgICAgICBoZWlnaHQ6IHNpemUsXHJcbiAgICAgICAgc3Ryb2tlOiBjb2xvcixcclxuICAgICAgICBzdHJva2VXaWR0aDogYWJzb2x1dGVTdHJva2VXaWR0aCA/IE51bWJlcihzdHJva2VXaWR0aCkgKiAyNCAvIE51bWJlcihzaXplKSA6IHN0cm9rZVdpZHRoLFxyXG4gICAgICAgIGNsYXNzTmFtZTogbWVyZ2VDbGFzc2VzKFwibHVjaWRlXCIsIGNsYXNzTmFtZSksXHJcbiAgICAgICAgLi4ucmVzdFxyXG4gICAgICB9LFxyXG4gICAgICBbXHJcbiAgICAgICAgLi4uaWNvbk5vZGUubWFwKChbdGFnLCBhdHRyc10pID0+IGNyZWF0ZUVsZW1lbnQodGFnLCBhdHRycykpLFxyXG4gICAgICAgIC4uLkFycmF5LmlzQXJyYXkoY2hpbGRyZW4pID8gY2hpbGRyZW4gOiBbY2hpbGRyZW5dXHJcbiAgICAgIF1cclxuICAgICk7XHJcbiAgfVxyXG4pO1xyXG5cclxuZXhwb3J0IHsgSWNvbiBhcyBkZWZhdWx0IH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUljb24uanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/createLucideIcon.js ***!
|
||
\****************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ createLucideIcon; }\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/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/* harmony import */ var _Icon_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Icon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\n\r\n\r\nconst createLucideIcon = (iconName, iconNode) => {\r\n const Component = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(\r\n ({ className, ...props }, ref) => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_Icon_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\r\n ref,\r\n iconNode,\r\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(`lucide-${(0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.toKebabCase)(iconName)}`, className),\r\n ...props\r\n })\r\n );\r\n Component.displayName = `${iconName}`;\r\n return Component;\r\n};\r\n\r\n\r\n//# sourceMappingURL=createLucideIcon.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vY3JlYXRlTHVjaWRlSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2tEO0FBQ2dCO0FBQ3JDO0FBQzdCO0FBQ0E7QUFDQSxvQkFBb0IsaURBQVU7QUFDOUIsT0FBTyxxQkFBcUIsVUFBVSxvREFBYSxDQUFDLGdEQUFJO0FBQ3hEO0FBQ0E7QUFDQSxpQkFBaUIsa0VBQVksV0FBVyxpRUFBVyxXQUFXO0FBQzlEO0FBQ0EsS0FBSztBQUNMO0FBQ0EsNkJBQTZCLFNBQVM7QUFDdEM7QUFDQTtBQUNBO0FBQ3VDO0FBQ3ZDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vY3JlYXRlTHVjaWRlSWNvbi5qcz9kNWNlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXHJcbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IGZvcndhcmRSZWYsIGNyZWF0ZUVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IG1lcmdlQ2xhc3NlcywgdG9LZWJhYkNhc2UgfSBmcm9tICcuL3NoYXJlZC9zcmMvdXRpbHMuanMnO1xyXG5pbXBvcnQgSWNvbiBmcm9tICcuL0ljb24uanMnO1xyXG5cclxuY29uc3QgY3JlYXRlTHVjaWRlSWNvbiA9IChpY29uTmFtZSwgaWNvbk5vZGUpID0+IHtcclxuICBjb25zdCBDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxyXG4gICAgKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IGNyZWF0ZUVsZW1lbnQoSWNvbiwge1xyXG4gICAgICByZWYsXHJcbiAgICAgIGljb25Ob2RlLFxyXG4gICAgICBjbGFzc05hbWU6IG1lcmdlQ2xhc3NlcyhgbHVjaWRlLSR7dG9LZWJhYkNhc2UoaWNvbk5hbWUpfWAsIGNsYXNzTmFtZSksXHJcbiAgICAgIC4uLnByb3BzXHJcbiAgICB9KVxyXG4gICk7XHJcbiAgQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gYCR7aWNvbk5hbWV9YDtcclxuICByZXR1cm4gQ29tcG9uZW50O1xyXG59O1xyXG5cclxuZXhwb3J0IHsgY3JlYXRlTHVjaWRlSWNvbiBhcyBkZWZhdWx0IH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyZWF0ZUx1Y2lkZUljb24uanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/defaultAttributes.js ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ defaultAttributes; }\n/* harmony export */ });\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\nvar defaultAttributes = {\r\n xmlns: \"http://www.w3.org/2000/svg\",\r\n width: 24,\r\n height: 24,\r\n viewBox: \"0 0 24 24\",\r\n fill: \"none\",\r\n stroke: \"currentColor\",\r\n strokeWidth: 2,\r\n strokeLinecap: \"round\",\r\n strokeLinejoin: \"round\"\r\n};\r\n\r\n\r\n//# sourceMappingURL=defaultAttributes.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vZGVmYXVsdEF0dHJpYnV0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3dDO0FBQ3hDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vZGVmYXVsdEF0dHJpYnV0ZXMuanM/NjFkYiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQ0Ni4wIC0gSVNDXHJcbiAqXHJcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLlxyXG4gKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cclxuICovXHJcblxyXG52YXIgZGVmYXVsdEF0dHJpYnV0ZXMgPSB7XHJcbiAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcclxuICB3aWR0aDogMjQsXHJcbiAgaGVpZ2h0OiAyNCxcclxuICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxyXG4gIGZpbGw6IFwibm9uZVwiLFxyXG4gIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIixcclxuICBzdHJva2VXaWR0aDogMixcclxuICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXHJcbiAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIlxyXG59O1xyXG5cclxuZXhwb3J0IHsgZGVmYXVsdEF0dHJpYnV0ZXMgYXMgZGVmYXVsdCB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWZhdWx0QXR0cmlidXRlcy5qcy5tYXBcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-left.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/arrow-left.js ***!
|
||
\****************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ ArrowLeft; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst ArrowLeft = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ArrowLeft\", [\r\n [\"path\", { d: \"m12 19-7-7 7-7\", key: \"1l729n\" }],\r\n [\"path\", { d: \"M19 12H5\", key: \"x3x0zl\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=arrow-left.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYXJyb3ctbGVmdC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3NEO0FBQ3REO0FBQ0Esa0JBQWtCLGdFQUFnQjtBQUNsQyxhQUFhLG9DQUFvQztBQUNqRCxhQUFhLDhCQUE4QjtBQUMzQztBQUNBO0FBQ2dDO0FBQ2hDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYXJyb3ctbGVmdC5qcz84YjIyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXHJcbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxyXG4gKi9cclxuXHJcbmltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24uanMnO1xyXG5cclxuY29uc3QgQXJyb3dMZWZ0ID0gY3JlYXRlTHVjaWRlSWNvbihcIkFycm93TGVmdFwiLCBbXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwibTEyIDE5LTctNyA3LTdcIiwga2V5OiBcIjFsNzI5blwiIH1dLFxyXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xOSAxMkg1XCIsIGtleTogXCJ4M3gwemxcIiB9XVxyXG5dKTtcclxuXHJcbmV4cG9ydCB7IEFycm93TGVmdCBhcyBkZWZhdWx0IH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFycm93LWxlZnQuanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-left.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/building.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/building.js ***!
|
||
\**************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Building; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst Building = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Building\", [\r\n [\"rect\", { width: \"16\", height: \"20\", x: \"4\", y: \"2\", rx: \"2\", ry: \"2\", key: \"76otgf\" }],\r\n [\"path\", { d: \"M9 22v-4h6v4\", key: \"r93iot\" }],\r\n [\"path\", { d: \"M8 6h.01\", key: \"1dz90k\" }],\r\n [\"path\", { d: \"M16 6h.01\", key: \"1x0f13\" }],\r\n [\"path\", { d: \"M12 6h.01\", key: \"1vi96p\" }],\r\n [\"path\", { d: \"M12 10h.01\", key: \"1nrarc\" }],\r\n [\"path\", { d: \"M12 14h.01\", key: \"1etili\" }],\r\n [\"path\", { d: \"M16 10h.01\", key: \"1m94wz\" }],\r\n [\"path\", { d: \"M16 14h.01\", key: \"1gbofw\" }],\r\n [\"path\", { d: \"M8 10h.01\", key: \"19clt8\" }],\r\n [\"path\", { d: \"M8 14h.01\", key: \"6423bh\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=building.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYnVpbGRpbmcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNzRDtBQUN0RDtBQUNBLGlCQUFpQixnRUFBZ0I7QUFDakMsYUFBYSw0RUFBNEU7QUFDekYsYUFBYSxrQ0FBa0M7QUFDL0MsYUFBYSw4QkFBOEI7QUFDM0MsYUFBYSwrQkFBK0I7QUFDNUMsYUFBYSwrQkFBK0I7QUFDNUMsYUFBYSxnQ0FBZ0M7QUFDN0MsYUFBYSxnQ0FBZ0M7QUFDN0MsYUFBYSxnQ0FBZ0M7QUFDN0MsYUFBYSxnQ0FBZ0M7QUFDN0MsYUFBYSwrQkFBK0I7QUFDNUMsYUFBYSwrQkFBK0I7QUFDNUM7QUFDQTtBQUMrQjtBQUMvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2J1aWxkaW5nLmpzPzVlYzkiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40NDYuMCAtIElTQ1xyXG4gKlxyXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cclxuICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbi5qcyc7XHJcblxyXG5jb25zdCBCdWlsZGluZyA9IGNyZWF0ZUx1Y2lkZUljb24oXCJCdWlsZGluZ1wiLCBbXHJcbiAgW1wicmVjdFwiLCB7IHdpZHRoOiBcIjE2XCIsIGhlaWdodDogXCIyMFwiLCB4OiBcIjRcIiwgeTogXCIyXCIsIHJ4OiBcIjJcIiwgcnk6IFwiMlwiLCBrZXk6IFwiNzZvdGdmXCIgfV0sXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTkgMjJ2LTRoNnY0XCIsIGtleTogXCJyOTNpb3RcIiB9XSxcclxuICBbXCJwYXRoXCIsIHsgZDogXCJNOCA2aC4wMVwiLCBrZXk6IFwiMWR6OTBrXCIgfV0sXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTE2IDZoLjAxXCIsIGtleTogXCIxeDBmMTNcIiB9XSxcclxuICBbXCJwYXRoXCIsIHsgZDogXCJNMTIgNmguMDFcIiwga2V5OiBcIjF2aTk2cFwiIH1dLFxyXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xMiAxMGguMDFcIiwga2V5OiBcIjFucmFyY1wiIH1dLFxyXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xMiAxNGguMDFcIiwga2V5OiBcIjFldGlsaVwiIH1dLFxyXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xNiAxMGguMDFcIiwga2V5OiBcIjFtOTR3elwiIH1dLFxyXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xNiAxNGguMDFcIiwga2V5OiBcIjFnYm9md1wiIH1dLFxyXG4gIFtcInBhdGhcIiwgeyBkOiBcIk04IDEwaC4wMVwiLCBrZXk6IFwiMTljbHQ4XCIgfV0sXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTggMTRoLjAxXCIsIGtleTogXCI2NDIzYmhcIiB9XVxyXG5dKTtcclxuXHJcbmV4cG9ydCB7IEJ1aWxkaW5nIGFzIGRlZmF1bHQgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVpbGRpbmcuanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/building.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/calculator.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/calculator.js ***!
|
||
\****************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Calculator; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst Calculator = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Calculator\", [\r\n [\"rect\", { width: \"16\", height: \"20\", x: \"4\", y: \"2\", rx: \"2\", key: \"1nb95v\" }],\r\n [\"line\", { x1: \"8\", x2: \"16\", y1: \"6\", y2: \"6\", key: \"x4nwl0\" }],\r\n [\"line\", { x1: \"16\", x2: \"16\", y1: \"14\", y2: \"18\", key: \"wjye3r\" }],\r\n [\"path\", { d: \"M16 10h.01\", key: \"1m94wz\" }],\r\n [\"path\", { d: \"M12 10h.01\", key: \"1nrarc\" }],\r\n [\"path\", { d: \"M8 10h.01\", key: \"19clt8\" }],\r\n [\"path\", { d: \"M12 14h.01\", key: \"1etili\" }],\r\n [\"path\", { d: \"M8 14h.01\", key: \"6423bh\" }],\r\n [\"path\", { d: \"M12 18h.01\", key: \"mhygvu\" }],\r\n [\"path\", { d: \"M8 18h.01\", key: \"lrp35t\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=calculator.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2FsY3VsYXRvci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3NEO0FBQ3REO0FBQ0EsbUJBQW1CLGdFQUFnQjtBQUNuQyxhQUFhLG1FQUFtRTtBQUNoRixhQUFhLG9EQUFvRDtBQUNqRSxhQUFhLHVEQUF1RDtBQUNwRSxhQUFhLGdDQUFnQztBQUM3QyxhQUFhLGdDQUFnQztBQUM3QyxhQUFhLCtCQUErQjtBQUM1QyxhQUFhLGdDQUFnQztBQUM3QyxhQUFhLCtCQUErQjtBQUM1QyxhQUFhLGdDQUFnQztBQUM3QyxhQUFhLCtCQUErQjtBQUM1QztBQUNBO0FBQ2lDO0FBQ2pDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2FsY3VsYXRvci5qcz9iOWFhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXHJcbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxyXG4gKi9cclxuXHJcbmltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24uanMnO1xyXG5cclxuY29uc3QgQ2FsY3VsYXRvciA9IGNyZWF0ZUx1Y2lkZUljb24oXCJDYWxjdWxhdG9yXCIsIFtcclxuICBbXCJyZWN0XCIsIHsgd2lkdGg6IFwiMTZcIiwgaGVpZ2h0OiBcIjIwXCIsIHg6IFwiNFwiLCB5OiBcIjJcIiwgcng6IFwiMlwiLCBrZXk6IFwiMW5iOTV2XCIgfV0sXHJcbiAgW1wibGluZVwiLCB7IHgxOiBcIjhcIiwgeDI6IFwiMTZcIiwgeTE6IFwiNlwiLCB5MjogXCI2XCIsIGtleTogXCJ4NG53bDBcIiB9XSxcclxuICBbXCJsaW5lXCIsIHsgeDE6IFwiMTZcIiwgeDI6IFwiMTZcIiwgeTE6IFwiMTRcIiwgeTI6IFwiMThcIiwga2V5OiBcIndqeWUzclwiIH1dLFxyXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xNiAxMGguMDFcIiwga2V5OiBcIjFtOTR3elwiIH1dLFxyXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xMiAxMGguMDFcIiwga2V5OiBcIjFucmFyY1wiIH1dLFxyXG4gIFtcInBhdGhcIiwgeyBkOiBcIk04IDEwaC4wMVwiLCBrZXk6IFwiMTljbHQ4XCIgfV0sXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTEyIDE0aC4wMVwiLCBrZXk6IFwiMWV0aWxpXCIgfV0sXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTggMTRoLjAxXCIsIGtleTogXCI2NDIzYmhcIiB9XSxcclxuICBbXCJwYXRoXCIsIHsgZDogXCJNMTIgMThoLjAxXCIsIGtleTogXCJtaHlndnVcIiB9XSxcclxuICBbXCJwYXRoXCIsIHsgZDogXCJNOCAxOGguMDFcIiwga2V5OiBcImxycDM1dFwiIH1dXHJcbl0pO1xyXG5cclxuZXhwb3J0IHsgQ2FsY3VsYXRvciBhcyBkZWZhdWx0IH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNhbGN1bGF0b3IuanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/calculator.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/calendar.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/calendar.js ***!
|
||
\**************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Calendar; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst Calendar = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Calendar\", [\r\n [\"path\", { d: \"M8 2v4\", key: \"1cmpym\" }],\r\n [\"path\", { d: \"M16 2v4\", key: \"4m81vk\" }],\r\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"4\", rx: \"2\", key: \"1hopcy\" }],\r\n [\"path\", { d: \"M3 10h18\", key: \"8toen8\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=calendar.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNzRDtBQUN0RDtBQUNBLGlCQUFpQixnRUFBZ0I7QUFDakMsYUFBYSw0QkFBNEI7QUFDekMsYUFBYSw2QkFBNkI7QUFDMUMsYUFBYSxtRUFBbUU7QUFDaEYsYUFBYSw4QkFBOEI7QUFDM0M7QUFDQTtBQUMrQjtBQUMvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLmpzPzdjMDEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40NDYuMCAtIElTQ1xyXG4gKlxyXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cclxuICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbi5qcyc7XHJcblxyXG5jb25zdCBDYWxlbmRhciA9IGNyZWF0ZUx1Y2lkZUljb24oXCJDYWxlbmRhclwiLCBbXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTggMnY0XCIsIGtleTogXCIxY21weW1cIiB9XSxcclxuICBbXCJwYXRoXCIsIHsgZDogXCJNMTYgMnY0XCIsIGtleTogXCI0bTgxdmtcIiB9XSxcclxuICBbXCJyZWN0XCIsIHsgd2lkdGg6IFwiMThcIiwgaGVpZ2h0OiBcIjE4XCIsIHg6IFwiM1wiLCB5OiBcIjRcIiwgcng6IFwiMlwiLCBrZXk6IFwiMWhvcGN5XCIgfV0sXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTMgMTBoMThcIiwga2V5OiBcIjh0b2VuOFwiIH1dXHJcbl0pO1xyXG5cclxuZXhwb3J0IHsgQ2FsZW5kYXIgYXMgZGVmYXVsdCB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jYWxlbmRhci5qcy5tYXBcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/calendar.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/check.js ***!
|
||
\***********************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Check; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst Check = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Check\", [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]]);\r\n\r\n\r\n//# sourceMappingURL=check.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hlY2suanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNzRDtBQUN0RDtBQUNBLGNBQWMsZ0VBQWdCLHNCQUFzQixxQ0FBcUM7QUFDekY7QUFDNEI7QUFDNUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9jaGVjay5qcz8zYzcwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXHJcbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxyXG4gKi9cclxuXHJcbmltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24uanMnO1xyXG5cclxuY29uc3QgQ2hlY2sgPSBjcmVhdGVMdWNpZGVJY29uKFwiQ2hlY2tcIiwgW1tcInBhdGhcIiwgeyBkOiBcIk0yMCA2IDkgMTdsLTUtNVwiLCBrZXk6IFwiMWdtZjJjXCIgfV1dKTtcclxuXHJcbmV4cG9ydCB7IENoZWNrIGFzIGRlZmF1bHQgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2hlY2suanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-down.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/chevron-down.js ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ ChevronDown; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst ChevronDown = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronDown\", [\r\n [\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=chevron-down.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1kb3duLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDc0Q7QUFDdEQ7QUFDQSxvQkFBb0IsZ0VBQWdCO0FBQ3BDLGFBQWEsa0NBQWtDO0FBQy9DO0FBQ0E7QUFDa0M7QUFDbEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9jaGV2cm9uLWRvd24uanM/NTYwNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQ0Ni4wIC0gSVNDXHJcbiAqXHJcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLlxyXG4gKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cclxuICovXHJcblxyXG5pbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uLmpzJztcclxuXHJcbmNvbnN0IENoZXZyb25Eb3duID0gY3JlYXRlTHVjaWRlSWNvbihcIkNoZXZyb25Eb3duXCIsIFtcclxuICBbXCJwYXRoXCIsIHsgZDogXCJtNiA5IDYgNiA2LTZcIiwga2V5OiBcInFydW5zbFwiIH1dXHJcbl0pO1xyXG5cclxuZXhwb3J0IHsgQ2hldnJvbkRvd24gYXMgZGVmYXVsdCB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jaGV2cm9uLWRvd24uanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-down.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-up.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/chevron-up.js ***!
|
||
\****************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ ChevronUp; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst ChevronUp = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronUp\", [[\"path\", { d: \"m18 15-6-6-6 6\", key: \"153udz\" }]]);\r\n\r\n\r\n//# sourceMappingURL=chevron-up.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi11cC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3NEO0FBQ3REO0FBQ0Esa0JBQWtCLGdFQUFnQiwwQkFBMEIsb0NBQW9DO0FBQ2hHO0FBQ2dDO0FBQ2hDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi11cC5qcz9hODJlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXHJcbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxyXG4gKi9cclxuXHJcbmltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24uanMnO1xyXG5cclxuY29uc3QgQ2hldnJvblVwID0gY3JlYXRlTHVjaWRlSWNvbihcIkNoZXZyb25VcFwiLCBbW1wicGF0aFwiLCB7IGQ6IFwibTE4IDE1LTYtNi02IDZcIiwga2V5OiBcIjE1M3VkelwiIH1dXSk7XHJcblxyXG5leHBvcnQgeyBDaGV2cm9uVXAgYXMgZGVmYXVsdCB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jaGV2cm9uLXVwLmpzLm1hcFxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-up.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-check-big.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/circle-check-big.js ***!
|
||
\**********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ CircleCheckBig; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst CircleCheckBig = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"CircleCheckBig\", [\r\n [\"path\", { d: \"M21.801 10A10 10 0 1 1 17 3.335\", key: \"yps3ct\" }],\r\n [\"path\", { d: \"m9 11 3 3L22 4\", key: \"1pflzl\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=circle-check-big.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZWNrLWJpZy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3NEO0FBQ3REO0FBQ0EsdUJBQXVCLGdFQUFnQjtBQUN2QyxhQUFhLHFEQUFxRDtBQUNsRSxhQUFhLG9DQUFvQztBQUNqRDtBQUNBO0FBQ3FDO0FBQ3JDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZWNrLWJpZy5qcz85MWFkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXHJcbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxyXG4gKi9cclxuXHJcbmltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24uanMnO1xyXG5cclxuY29uc3QgQ2lyY2xlQ2hlY2tCaWcgPSBjcmVhdGVMdWNpZGVJY29uKFwiQ2lyY2xlQ2hlY2tCaWdcIiwgW1xyXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0yMS44MDEgMTBBMTAgMTAgMCAxIDEgMTcgMy4zMzVcIiwga2V5OiBcInlwczNjdFwiIH1dLFxyXG4gIFtcInBhdGhcIiwgeyBkOiBcIm05IDExIDMgM0wyMiA0XCIsIGtleTogXCIxcGZsemxcIiB9XVxyXG5dKTtcclxuXHJcbmV4cG9ydCB7IENpcmNsZUNoZWNrQmlnIGFzIGRlZmF1bHQgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2lyY2xlLWNoZWNrLWJpZy5qcy5tYXBcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-check-big.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-help.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/circle-help.js ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ CircleHelp; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst CircleHelp = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"CircleHelp\", [\r\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\r\n [\"path\", { d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\", key: \"1u773s\" }],\r\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=circle-help.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWhlbHAuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNzRDtBQUN0RDtBQUNBLG1CQUFtQixnRUFBZ0I7QUFDbkMsZUFBZSw0Q0FBNEM7QUFDM0QsYUFBYSwwREFBMEQ7QUFDdkUsYUFBYSxnQ0FBZ0M7QUFDN0M7QUFDQTtBQUNpQztBQUNqQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1oZWxwLmpzP2JhYzkiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40NDYuMCAtIElTQ1xyXG4gKlxyXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cclxuICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbi5qcyc7XHJcblxyXG5jb25zdCBDaXJjbGVIZWxwID0gY3JlYXRlTHVjaWRlSWNvbihcIkNpcmNsZUhlbHBcIiwgW1xyXG4gIFtcImNpcmNsZVwiLCB7IGN4OiBcIjEyXCIsIGN5OiBcIjEyXCIsIHI6IFwiMTBcIiwga2V5OiBcIjFtZ2xheVwiIH1dLFxyXG4gIFtcInBhdGhcIiwgeyBkOiBcIk05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgM1wiLCBrZXk6IFwiMXU3NzNzXCIgfV0sXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTEyIDE3aC4wMVwiLCBrZXk6IFwicDMycDA1XCIgfV1cclxuXSk7XHJcblxyXG5leHBvcnQgeyBDaXJjbGVIZWxwIGFzIGRlZmF1bHQgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2lyY2xlLWhlbHAuanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-help.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/clock.js ***!
|
||
\***********************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Clock; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst Clock = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Clock\", [\r\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\r\n [\"polyline\", { points: \"12 6 12 12 16 14\", key: \"68esgv\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=clock.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2xvY2suanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNzRDtBQUN0RDtBQUNBLGNBQWMsZ0VBQWdCO0FBQzlCLGVBQWUsNENBQTRDO0FBQzNELGlCQUFpQiwyQ0FBMkM7QUFDNUQ7QUFDQTtBQUM0QjtBQUM1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2Nsb2NrLmpzPzA3NzciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40NDYuMCAtIElTQ1xyXG4gKlxyXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cclxuICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbi5qcyc7XHJcblxyXG5jb25zdCBDbG9jayA9IGNyZWF0ZUx1Y2lkZUljb24oXCJDbG9ja1wiLCBbXHJcbiAgW1wiY2lyY2xlXCIsIHsgY3g6IFwiMTJcIiwgY3k6IFwiMTJcIiwgcjogXCIxMFwiLCBrZXk6IFwiMW1nbGF5XCIgfV0sXHJcbiAgW1wicG9seWxpbmVcIiwgeyBwb2ludHM6IFwiMTIgNiAxMiAxMiAxNiAxNFwiLCBrZXk6IFwiNjhlc2d2XCIgfV1cclxuXSk7XHJcblxyXG5leHBvcnQgeyBDbG9jayBhcyBkZWZhdWx0IH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsb2NrLmpzLm1hcFxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/cookie.js":
|
||
/*!************************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/cookie.js ***!
|
||
\************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Cookie; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst Cookie = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Cookie\", [\r\n [\"path\", { d: \"M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5\", key: \"laymnq\" }],\r\n [\"path\", { d: \"M8.5 8.5v.01\", key: \"ue8clq\" }],\r\n [\"path\", { d: \"M16 15.5v.01\", key: \"14dtrp\" }],\r\n [\"path\", { d: \"M12 12v.01\", key: \"u5ubse\" }],\r\n [\"path\", { d: \"M11 17v.01\", key: \"1hyl5a\" }],\r\n [\"path\", { d: \"M7 14v.01\", key: \"uct60s\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=cookie.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY29va2llLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDc0Q7QUFDdEQ7QUFDQSxlQUFlLGdFQUFnQjtBQUMvQixhQUFhLHlFQUF5RTtBQUN0RixhQUFhLGtDQUFrQztBQUMvQyxhQUFhLGtDQUFrQztBQUMvQyxhQUFhLGdDQUFnQztBQUM3QyxhQUFhLGdDQUFnQztBQUM3QyxhQUFhLCtCQUErQjtBQUM1QztBQUNBO0FBQzZCO0FBQzdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY29va2llLmpzPzQ1ZDAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40NDYuMCAtIElTQ1xyXG4gKlxyXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cclxuICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbi5qcyc7XHJcblxyXG5jb25zdCBDb29raWUgPSBjcmVhdGVMdWNpZGVJY29uKFwiQ29va2llXCIsIFtcclxuICBbXCJwYXRoXCIsIHsgZDogXCJNMTIgMmExMCAxMCAwIDEgMCAxMCAxMCA0IDQgMCAwIDEtNS01IDQgNCAwIDAgMS01LTVcIiwga2V5OiBcImxheW1ucVwiIH1dLFxyXG4gIFtcInBhdGhcIiwgeyBkOiBcIk04LjUgOC41di4wMVwiLCBrZXk6IFwidWU4Y2xxXCIgfV0sXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTE2IDE1LjV2LjAxXCIsIGtleTogXCIxNGR0cnBcIiB9XSxcclxuICBbXCJwYXRoXCIsIHsgZDogXCJNMTIgMTJ2LjAxXCIsIGtleTogXCJ1NXVic2VcIiB9XSxcclxuICBbXCJwYXRoXCIsIHsgZDogXCJNMTEgMTd2LjAxXCIsIGtleTogXCIxaHlsNWFcIiB9XSxcclxuICBbXCJwYXRoXCIsIHsgZDogXCJNNyAxNHYuMDFcIiwga2V5OiBcInVjdDYwc1wiIH1dXHJcbl0pO1xyXG5cclxuZXhwb3J0IHsgQ29va2llIGFzIGRlZmF1bHQgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29va2llLmpzLm1hcFxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/cookie.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/info.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/info.js ***!
|
||
\**********************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Info; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst Info = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Info\", [\r\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\r\n [\"path\", { d: \"M12 16v-4\", key: \"1dtifu\" }],\r\n [\"path\", { d: \"M12 8h.01\", key: \"e9boi3\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=info.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3NEO0FBQ3REO0FBQ0EsYUFBYSxnRUFBZ0I7QUFDN0IsZUFBZSw0Q0FBNEM7QUFDM0QsYUFBYSwrQkFBK0I7QUFDNUMsYUFBYSwrQkFBK0I7QUFDNUM7QUFDQTtBQUMyQjtBQUMzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2luZm8uanM/Y2JjZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQ0Ni4wIC0gSVNDXHJcbiAqXHJcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLlxyXG4gKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cclxuICovXHJcblxyXG5pbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uLmpzJztcclxuXHJcbmNvbnN0IEluZm8gPSBjcmVhdGVMdWNpZGVJY29uKFwiSW5mb1wiLCBbXHJcbiAgW1wiY2lyY2xlXCIsIHsgY3g6IFwiMTJcIiwgY3k6IFwiMTJcIiwgcjogXCIxMFwiLCBrZXk6IFwiMW1nbGF5XCIgfV0sXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTEyIDE2di00XCIsIGtleTogXCIxZHRpZnVcIiB9XSxcclxuICBbXCJwYXRoXCIsIHsgZDogXCJNMTIgOGguMDFcIiwga2V5OiBcImU5Ym9pM1wiIH1dXHJcbl0pO1xyXG5cclxuZXhwb3J0IHsgSW5mbyBhcyBkZWZhdWx0IH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZm8uanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/info.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-circle.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/loader-circle.js ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ LoaderCircle; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst LoaderCircle = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"LoaderCircle\", [\r\n [\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\", key: \"13zald\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=loader-circle.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbG9hZGVyLWNpcmNsZS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3NEO0FBQ3REO0FBQ0EscUJBQXFCLGdFQUFnQjtBQUNyQyxhQUFhLGlEQUFpRDtBQUM5RDtBQUNBO0FBQ21DO0FBQ25DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbG9hZGVyLWNpcmNsZS5qcz84ZjhjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXHJcbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxyXG4gKi9cclxuXHJcbmltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24uanMnO1xyXG5cclxuY29uc3QgTG9hZGVyQ2lyY2xlID0gY3JlYXRlTHVjaWRlSWNvbihcIkxvYWRlckNpcmNsZVwiLCBbXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTIxIDEyYTkgOSAwIDEgMS02LjIxOS04LjU2XCIsIGtleTogXCIxM3phbGRcIiB9XVxyXG5dKTtcclxuXHJcbmV4cG9ydCB7IExvYWRlckNpcmNsZSBhcyBkZWZhdWx0IH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxvYWRlci1jaXJjbGUuanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-circle.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/mail.js ***!
|
||
\**********************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Mail; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst Mail = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Mail\", [\r\n [\"rect\", { width: \"20\", height: \"16\", x: \"2\", y: \"4\", rx: \"2\", key: \"18n3k1\" }],\r\n [\"path\", { d: \"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\", key: \"1ocrg3\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=mail.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWFpbC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3NEO0FBQ3REO0FBQ0EsYUFBYSxnRUFBZ0I7QUFDN0IsYUFBYSxtRUFBbUU7QUFDaEYsYUFBYSwrREFBK0Q7QUFDNUU7QUFDQTtBQUMyQjtBQUMzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL21haWwuanM/NzIzYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQ0Ni4wIC0gSVNDXHJcbiAqXHJcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLlxyXG4gKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cclxuICovXHJcblxyXG5pbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uLmpzJztcclxuXHJcbmNvbnN0IE1haWwgPSBjcmVhdGVMdWNpZGVJY29uKFwiTWFpbFwiLCBbXHJcbiAgW1wicmVjdFwiLCB7IHdpZHRoOiBcIjIwXCIsIGhlaWdodDogXCIxNlwiLCB4OiBcIjJcIiwgeTogXCI0XCIsIHJ4OiBcIjJcIiwga2V5OiBcIjE4bjNrMVwiIH1dLFxyXG4gIFtcInBhdGhcIiwgeyBkOiBcIm0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3XCIsIGtleTogXCIxb2NyZzNcIiB9XVxyXG5dKTtcclxuXHJcbmV4cG9ydCB7IE1haWwgYXMgZGVmYXVsdCB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tYWlsLmpzLm1hcFxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/message-square.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/message-square.js ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ MessageSquare; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst MessageSquare = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"MessageSquare\", [\r\n [\"path\", { d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\", key: \"1lielz\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=message-square.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNzRDtBQUN0RDtBQUNBLHNCQUFzQixnRUFBZ0I7QUFDdEMsYUFBYSxtRkFBbUY7QUFDaEc7QUFDQTtBQUNvQztBQUNwQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLmpzPzJmODIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40NDYuMCAtIElTQ1xyXG4gKlxyXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cclxuICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbi5qcyc7XHJcblxyXG5jb25zdCBNZXNzYWdlU3F1YXJlID0gY3JlYXRlTHVjaWRlSWNvbihcIk1lc3NhZ2VTcXVhcmVcIiwgW1xyXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0yMSAxNWEyIDIgMCAwIDEtMiAySDdsLTQgNFY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnpcIiwga2V5OiBcIjFsaWVselwiIH1dXHJcbl0pO1xyXG5cclxuZXhwb3J0IHsgTWVzc2FnZVNxdWFyZSBhcyBkZWZhdWx0IH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1lc3NhZ2Utc3F1YXJlLmpzLm1hcFxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/message-square.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/phone.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/phone.js ***!
|
||
\***********************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Phone; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst Phone = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Phone\", [\r\n [\r\n \"path\",\r\n {\r\n d: \"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\",\r\n key: \"foiqr5\"\r\n }\r\n ]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=phone.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcGhvbmUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNzRDtBQUN0RDtBQUNBLGNBQWMsZ0VBQWdCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUM0QjtBQUM1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3Bob25lLmpzPzVhN2EiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40NDYuMCAtIElTQ1xyXG4gKlxyXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cclxuICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbi5qcyc7XHJcblxyXG5jb25zdCBQaG9uZSA9IGNyZWF0ZUx1Y2lkZUljb24oXCJQaG9uZVwiLCBbXHJcbiAgW1xyXG4gICAgXCJwYXRoXCIsXHJcbiAgICB7XHJcbiAgICAgIGQ6IFwiTTIyIDE2LjkydjNhMiAyIDAgMCAxLTIuMTggMiAxOS43OSAxOS43OSAwIDAgMS04LjYzLTMuMDcgMTkuNSAxOS41IDAgMCAxLTYtNiAxOS43OSAxOS43OSAwIDAgMS0zLjA3LTguNjdBMiAyIDAgMCAxIDQuMTEgMmgzYTIgMiAwIDAgMSAyIDEuNzIgMTIuODQgMTIuODQgMCAwIDAgLjcgMi44MSAyIDIgMCAwIDEtLjQ1IDIuMTFMOC4wOSA5LjkxYTE2IDE2IDAgMCAwIDYgNmwxLjI3LTEuMjdhMiAyIDAgMCAxIDIuMTEtLjQ1IDEyLjg0IDEyLjg0IDAgMCAwIDIuODEuN0EyIDIgMCAwIDEgMjIgMTYuOTJ6XCIsXHJcbiAgICAgIGtleTogXCJmb2lxcjVcIlxyXG4gICAgfVxyXG4gIF1cclxuXSk7XHJcblxyXG5leHBvcnQgeyBQaG9uZSBhcyBkZWZhdWx0IH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBob25lLmpzLm1hcFxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/phone.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/user.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/user.js ***!
|
||
\**********************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ User; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst User = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"User\", [\r\n [\"path\", { d: \"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\", key: \"975kel\" }],\r\n [\"circle\", { cx: \"12\", cy: \"7\", r: \"4\", key: \"17ys0d\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=user.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvdXNlci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3NEO0FBQ3REO0FBQ0EsYUFBYSxnRUFBZ0I7QUFDN0IsYUFBYSwrREFBK0Q7QUFDNUUsZUFBZSwwQ0FBMEM7QUFDekQ7QUFDQTtBQUMyQjtBQUMzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3VzZXIuanM/YmY2ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQ0Ni4wIC0gSVNDXHJcbiAqXHJcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLlxyXG4gKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cclxuICovXHJcblxyXG5pbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uLmpzJztcclxuXHJcbmNvbnN0IFVzZXIgPSBjcmVhdGVMdWNpZGVJY29uKFwiVXNlclwiLCBbXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTE5IDIxdi0yYTQgNCAwIDAgMC00LTRIOWE0IDQgMCAwIDAtNCA0djJcIiwga2V5OiBcIjk3NWtlbFwiIH1dLFxyXG4gIFtcImNpcmNsZVwiLCB7IGN4OiBcIjEyXCIsIGN5OiBcIjdcIiwgcjogXCI0XCIsIGtleTogXCIxN3lzMGRcIiB9XVxyXG5dKTtcclxuXHJcbmV4cG9ydCB7IFVzZXIgYXMgZGVmYXVsdCB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VyLmpzLm1hcFxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/user.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/icons/x.js ***!
|
||
\*******************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ X; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nconst X = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"X\", [\r\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\r\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\r\n]);\r\n\r\n\r\n//# sourceMappingURL=x.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMveC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3NEO0FBQ3REO0FBQ0EsVUFBVSxnRUFBZ0I7QUFDMUIsYUFBYSxnQ0FBZ0M7QUFDN0MsYUFBYSxnQ0FBZ0M7QUFDN0M7QUFDQTtBQUN3QjtBQUN4QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3guanM/MWIzYiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQ0Ni4wIC0gSVNDXHJcbiAqXHJcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLlxyXG4gKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cclxuICovXHJcblxyXG5pbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uLmpzJztcclxuXHJcbmNvbnN0IFggPSBjcmVhdGVMdWNpZGVJY29uKFwiWFwiLCBbXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTE4IDYgNiAxOFwiLCBrZXk6IFwiMWJsNWY4XCIgfV0sXHJcbiAgW1wicGF0aFwiLCB7IGQ6IFwibTYgNiAxMiAxMlwiLCBrZXk6IFwiZDhiazZ2XCIgfV1cclxuXSk7XHJcblxyXG5leHBvcnQgeyBYIGFzIGRlZmF1bHQgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9eC5qcy5tYXBcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/lucide-react/dist/esm/shared/src/utils.js ***!
|
||
\****************************************************************/
|
||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mergeClasses: function() { return /* binding */ mergeClasses; },\n/* harmony export */ toKebabCase: function() { return /* binding */ toKebabCase; }\n/* harmony export */ });\n/**\r\n * @license lucide-react v0.446.0 - ISC\r\n *\r\n * This source code is licensed under the ISC license.\r\n * See the LICENSE file in the root directory of this source tree.\r\n */\r\n\r\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\r\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\r\n return Boolean(className) && array.indexOf(className) === index;\r\n}).join(\" \");\r\n\r\n\r\n//# sourceMappingURL=utils.js.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ3FDO0FBQ3JDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy5qcz85OTU1Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXHJcbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxyXG4gKi9cclxuXHJcbmNvbnN0IHRvS2ViYWJDYXNlID0gKHN0cmluZykgPT4gc3RyaW5nLnJlcGxhY2UoLyhbYS16MC05XSkoW0EtWl0pL2csIFwiJDEtJDJcIikudG9Mb3dlckNhc2UoKTtcclxuY29uc3QgbWVyZ2VDbGFzc2VzID0gKC4uLmNsYXNzZXMpID0+IGNsYXNzZXMuZmlsdGVyKChjbGFzc05hbWUsIGluZGV4LCBhcnJheSkgPT4ge1xyXG4gIHJldHVybiBCb29sZWFuKGNsYXNzTmFtZSkgJiYgYXJyYXkuaW5kZXhPZihjbGFzc05hbWUpID09PSBpbmRleDtcclxufSkuam9pbihcIiBcIik7XHJcblxyXG5leHBvcnQgeyBtZXJnZUNsYXNzZXMsIHRvS2ViYWJDYXNlIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcFxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/next/dist/build/polyfills/process.js ***!
|
||
\***********************************************************/
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\r\nvar _global_process, _global_process1;\r\nmodule.exports = ((_global_process = __webpack_require__.g.process) == null ? void 0 : _global_process.env) && typeof ((_global_process1 = __webpack_require__.g.process) == null ? void 0 : _global_process1.env) === \"object\" ? __webpack_require__.g.process : __webpack_require__(/*! ../../compiled/process */ \"(app-pages-browser)/./node_modules/next/dist/compiled/process/browser.js\");\r\n\r\n//# sourceMappingURL=process.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvcG9seWZpbGxzL3Byb2Nlc3MuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLHFDQUFxQyxxQkFBTSxpRkFBaUYscUJBQU0sa0VBQWtFLHFCQUFNLFdBQVcsbUJBQU8sQ0FBQyx3R0FBd0I7QUFDclA7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3BvbHlmaWxscy9wcm9jZXNzLmpzPzE2MjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbnZhciBfZ2xvYmFsX3Byb2Nlc3MsIF9nbG9iYWxfcHJvY2VzczE7XHJcbm1vZHVsZS5leHBvcnRzID0gKChfZ2xvYmFsX3Byb2Nlc3MgPSBnbG9iYWwucHJvY2VzcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9nbG9iYWxfcHJvY2Vzcy5lbnYpICYmIHR5cGVvZiAoKF9nbG9iYWxfcHJvY2VzczEgPSBnbG9iYWwucHJvY2VzcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9nbG9iYWxfcHJvY2VzczEuZW52KSA9PT0gXCJvYmplY3RcIiA/IGdsb2JhbC5wcm9jZXNzIDogcmVxdWlyZShcIi4uLy4uL2NvbXBpbGVkL3Byb2Nlc3NcIik7XHJcblxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wcm9jZXNzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=C%3A%5CUsers%5Candre%5CDocuments%5CGitHub%5CWebklar.com%5Capp%5Cpage.tsx&server=false!":
|
||
/*!****************************************************************************************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=C%3A%5CUsers%5Candre%5CDocuments%5CGitHub%5CWebklar.com%5Capp%5Cpage.tsx&server=false! ***!
|
||
\****************************************************************************************************************************************************************************************/
|
||
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
eval(__webpack_require__.ts("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/page.tsx */ \"(app-pages-browser)/./app/page.tsx\"))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWNsaWVudC1lbnRyeS1sb2FkZXIuanM/bW9kdWxlcz1DJTNBJTVDVXNlcnMlNUNhbmRyZSU1Q0RvY3VtZW50cyU1Q0dpdEh1YiU1Q1dlYmtsYXIuY29tJTVDYXBwJTVDcGFnZS50c3gmc2VydmVyPWZhbHNlISIsIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvPzVhMTEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJDOlxcXFxVc2Vyc1xcXFxhbmRyZVxcXFxEb2N1bWVudHNcXFxcR2l0SHViXFxcXFdlYmtsYXIuY29tXFxcXGFwcFxcXFxwYWdlLnRzeFwiKSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=C%3A%5CUsers%5Candre%5CDocuments%5CGitHub%5CWebklar.com%5Capp%5Cpage.tsx&server=false!\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/GlassSurface.css":
|
||
/*!*************************************!*\
|
||
!*** ./components/GlassSurface.css ***!
|
||
\*************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"59a2502fb3b1\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvR2xhc3NTdXJmYWNlLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy9HbGFzc1N1cmZhY2UuY3NzPzUwODUiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI1OWEyNTAyZmIzYjFcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/GlassSurface.css\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/LogoLoop.css":
|
||
/*!*********************************!*\
|
||
!*** ./components/LogoLoop.css ***!
|
||
\*********************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"2483d3b8c821\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvTG9nb0xvb3AuY3NzIiwibWFwcGluZ3MiOiI7QUFBQSwrREFBZSxjQUFjO0FBQzdCLElBQUksSUFBVSxJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9jb21wb25lbnRzL0xvZ29Mb29wLmNzcz83NDNjIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiMjQ4M2QzYjhjODIxXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/LogoLoop.css\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/PillNav.css":
|
||
/*!********************************!*\
|
||
!*** ./components/PillNav.css ***!
|
||
\********************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"2ba557b5124e\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvUGlsbE5hdi5jc3MiLCJtYXBwaW5ncyI6IjtBQUFBLCtEQUFlLGNBQWM7QUFDN0IsSUFBSSxJQUFVLElBQUksaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2NvbXBvbmVudHMvUGlsbE5hdi5jc3M/YWI4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcIjJiYTU1N2I1MTI0ZVwiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/PillNav.css\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./app/page.tsx":
|
||
/*!**********************!*\
|
||
!*** ./app/page.tsx ***!
|
||
\**********************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ AboutServicePage; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Cookie_lucide_react__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Cookie!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/cookie.js\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Cookie_lucide_react__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Cookie!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/calendar.js\");\n/* harmony import */ var _lib_colors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/colors */ \"(app-pages-browser)/./lib/colors.ts\");\n/* harmony import */ var _components_ProtectedAppointmentBooking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ProtectedAppointmentBooking */ \"(app-pages-browser)/./components/ProtectedAppointmentBooking.tsx\");\n/* harmony import */ var _components_AppointmentStatus__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/AppointmentStatus */ \"(app-pages-browser)/./components/AppointmentStatus.tsx\");\n/* harmony import */ var _components_PriceCalculator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/PriceCalculator */ \"(app-pages-browser)/./components/PriceCalculator.tsx\");\n/* harmony import */ var _components_SpinningNumbers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/SpinningNumbers */ \"(app-pages-browser)/./components/SpinningNumbers.tsx\");\n/* harmony import */ var _components_GlassSurface__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/components/GlassSurface */ \"(app-pages-browser)/./components/GlassSurface.tsx\");\n/* harmony import */ var _components_LogoLoop__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/components/LogoLoop */ \"(app-pages-browser)/./components/LogoLoop.tsx\");\n/* harmony import */ var _components_PillNav__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/components/PillNav */ \"(app-pages-browser)/./components/PillNav.tsx\");\n/* harmony import */ var _components_ui_timeline_demo__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/components/ui/timeline-demo */ \"(app-pages-browser)/./components/ui/timeline-demo.tsx\");\n/* harmony import */ var _components_ui_card_hover_effect__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/components/ui/card-hover-effect */ \"(app-pages-browser)/./components/ui/card-hover-effect.tsx\");\n/* harmony import */ var _components_ui_container_scroll_animation_demo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/components/ui/container-scroll-animation-demo */ \"(app-pages-browser)/./components/ui/container-scroll-animation-demo.tsx\");\n/* harmony import */ var _components_ui_background_beams__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/components/ui/background-beams */ \"(app-pages-browser)/./components/ui/background-beams.tsx\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! next/link */ \"(app-pages-browser)/./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_15__);\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Scroll animation hook\nconst useScrollAnimation = ()=>{\n _s();\n const [scrollY, setScrollY] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const handleScroll = ()=>setScrollY(window.scrollY);\n window.addEventListener(\"scroll\", handleScroll);\n return ()=>window.removeEventListener(\"scroll\", handleScroll);\n }, []);\n return scrollY;\n};\n_s(useScrollAnimation, \"eTR5W6wH45bVtWbD0ho0jkNrbDM=\");\n// Intersection Observer hook for fade-in animations\nconst useInView = function() {\n let threshold = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0.1;\n _s1();\n const [isInView, setIsInView] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const ref = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const observer = new IntersectionObserver((param)=>{\n let [entry] = param;\n if (entry.isIntersecting) {\n setIsInView(true);\n }\n }, {\n threshold\n });\n if (ref.current) {\n observer.observe(ref.current);\n }\n return ()=>observer.disconnect();\n }, [\n threshold\n ]);\n return [\n ref,\n isInView\n ];\n};\n_s1(useInView, \"jDhkbTO/bmAMmPJ/m2kggqex+PM=\");\n// Cookie Button Component\nconst CookieButton = ()=>{\n _s2();\n const [showBanner, setShowBanner] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const handleAccept = ()=>{\n setShowBanner(false);\n // Add cookie acceptance logic here\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowBanner(true),\n className: \"fixed bottom-6 left-6 z-50 w-14 h-14 rounded-full flex items-center justify-center shadow-lg transition-all duration-300 hover:scale-110\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Cookie_lucide_react__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n className: \"w-6 h-6 text-white\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 75,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 70,\n columnNumber: 7\n }, undefined),\n showBanner && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed inset-0 bg-black/50 backdrop-blur-sm z-50 flex items-center justify-center p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-md w-full p-6 rounded-3xl shadow-2xl\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-3 mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Cookie_lucide_react__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n className: \"w-6 h-6\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 86,\n columnNumber: 15\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: \"Cookie-Einstellungen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 87,\n columnNumber: 15\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 85,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mb-6 text-sm\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: \"Wir verwenden Cookies, um Ihre Erfahrung zu verbessern. Durch die Nutzung unserer Website stimmen Sie unserer Datenschutzrichtlinie zu.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 91,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex space-x-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: handleAccept,\n className: \"flex-1 rounded-full font-medium\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n },\n children: \"Akzeptieren\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 95,\n columnNumber: 15\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: ()=>setShowBanner(false),\n variant: \"outline\",\n className: \"flex-1 rounded-full\",\n style: {\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: \"Ablehnen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 105,\n columnNumber: 15\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 94,\n columnNumber: 13\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 81,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 80,\n columnNumber: 9\n }, undefined)\n ]\n }, void 0, true);\n};\n_s2(CookieButton, \"EN9W71IQ6xIaJdu8pSen4afephI=\");\n_c = CookieButton;\nfunction AboutServicePage() {\n _s3();\n const scrollY = useScrollAnimation();\n const [heroRef, heroInView] = useInView();\n const [servicesRef, servicesInView] = useInView();\n const [processRef, processInView] = useInView();\n const [pricingRef, pricingInView] = useInView();\n const [aboutRef, aboutInView] = useInView();\n const [contactRef, contactInView] = useInView();\n const navWrapperRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const navInnerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const [navOffset, setNavOffset] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n const navOffsetRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(0);\n const navExpandedRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);\n const animationFrameRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n navOffsetRef.current = navOffset;\n }, [\n navOffset\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n return ()=>{\n if (animationFrameRef.current) {\n cancelAnimationFrame(animationFrameRef.current);\n }\n };\n }, []);\n const animateOffset = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((target)=>{\n if (!Number.isFinite(target)) return;\n if (animationFrameRef.current) {\n cancelAnimationFrame(animationFrameRef.current);\n animationFrameRef.current = null;\n }\n const startValue = navOffsetRef.current;\n const delta = target - startValue;\n if (Math.abs(delta) < 0.5) {\n navOffsetRef.current = target;\n setNavOffset(target);\n return;\n }\n const duration = 520;\n const startTime = performance.now();\n const easeOutCubic = (t)=>1 - Math.pow(1 - t, 3);\n const step = (now)=>{\n const elapsed = now - startTime;\n const progress = Math.min(elapsed / duration, 1);\n const eased = easeOutCubic(progress);\n const value = startValue + delta * eased;\n navOffsetRef.current = value;\n setNavOffset(value);\n if (progress < 1) {\n animationFrameRef.current = requestAnimationFrame(step);\n } else {\n animationFrameRef.current = null;\n }\n };\n animationFrameRef.current = requestAnimationFrame(step);\n }, []);\n const calculateNavOffset = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function() {\n let mode = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : \"animate\", expandedOverride = arguments.length > 1 ? arguments[1] : void 0;\n if (!navWrapperRef.current || !navInnerRef.current) return;\n const expanded = expandedOverride !== null && expandedOverride !== void 0 ? expandedOverride : navExpandedRef.current;\n const wrapperWidth = navWrapperRef.current.clientWidth;\n const navWidth = navInnerRef.current.offsetWidth;\n const offset = expanded ? Math.max(0, (wrapperWidth - navWidth) / 2) : 0;\n if (!Number.isFinite(offset)) return;\n if (mode === \"immediate\") {\n navOffsetRef.current = offset;\n setNavOffset(offset);\n } else {\n animateOffset(offset);\n }\n }, [\n animateOffset\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n calculateNavOffset(\"immediate\", navExpandedRef.current);\n const handleResize = ()=>calculateNavOffset(\"immediate\", navExpandedRef.current);\n window.addEventListener(\"resize\", handleResize);\n return ()=>window.removeEventListener(\"resize\", handleResize);\n }, [\n calculateNavOffset\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (!navInnerRef.current || typeof ResizeObserver === \"undefined\") return;\n const observer = new ResizeObserver(()=>{\n calculateNavOffset(\"immediate\", navExpandedRef.current);\n });\n observer.observe(navInnerRef.current);\n return ()=>observer.disconnect();\n }, [\n calculateNavOffset\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const wrapper = navWrapperRef.current;\n if (!wrapper) return;\n const handleTransitionEnd = (event)=>{\n if (event.propertyName === \"max-width\" || event.propertyName === \"width\" || event.propertyName === \"transform\") {\n calculateNavOffset(navExpandedRef.current ? \"animate\" : \"immediate\", navExpandedRef.current);\n }\n };\n wrapper.addEventListener(\"transitionend\", handleTransitionEnd);\n return ()=>wrapper.removeEventListener(\"transitionend\", handleTransitionEnd);\n }, [\n calculateNavOffset\n ]);\n // Partner Logos für LogoLoop\n const partnerLogos = [\n {\n node: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"8px\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n viewBox: \"0 0 48 48\",\n fill: \"none\",\n width: 96,\n height: 96,\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: \"16\",\n cy: \"16\",\n r: \"4\",\n fill: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 242,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: \"24\",\n cy: \"24\",\n r: \"4\",\n fill: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 243,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: \"32\",\n cy: \"32\",\n r: \"4\",\n fill: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 244,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M16 16L24 24M24 24L32 32\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"2\",\n strokeLinecap: \"round\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 245,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M12 24L24 12L36 24\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"2\",\n opacity: \"0.5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 246,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 240,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n fontSize: \"14px\",\n fontWeight: \"600\",\n whiteSpace: \"nowrap\"\n },\n children: \"Traefik\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 248,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 239,\n columnNumber: 9\n }, this),\n title: \"Traefik\",\n href: \"https://traefik.io\"\n },\n {\n node: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"8px\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n viewBox: \"0 0 48 48\",\n fill: \"none\",\n width: 96,\n height: 96,\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: \"24\",\n cy: \"24\",\n r: \"16\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"3\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 259,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M8 24C8 18 12 14 24 14C36 14 40 18 40 24C40 30 36 34 24 34C12 34 8 30 8 24Z\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"2\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 260,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M24 8C24 8 18 14 18 20C18 26 24 32 24 32\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"2\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 261,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 257,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n fontSize: \"14px\",\n fontWeight: \"600\",\n whiteSpace: \"nowrap\"\n },\n children: \"Porkbun\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 263,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 256,\n columnNumber: 9\n }, this),\n title: \"Porkbun\",\n href: \"https://porkbun.com\"\n },\n {\n node: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"8px\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n viewBox: \"0 0 48 48\",\n fill: \"none\",\n width: 96,\n height: 96,\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: \"16\",\n cy: \"16\",\n r: \"5\",\n fill: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 274,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: \"32\",\n cy: \"16\",\n r: \"5\",\n fill: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 275,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: \"16\",\n cy: \"32\",\n r: \"5\",\n fill: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 276,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: \"32\",\n cy: \"32\",\n r: \"5\",\n fill: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 277,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M21 16L27 16M16 21L16 27M21 32L27 32\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"2\",\n strokeLinecap: \"round\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 278,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 272,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n fontSize: \"14px\",\n fontWeight: \"600\",\n whiteSpace: \"nowrap\"\n },\n children: \"n8n\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 280,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 271,\n columnNumber: 9\n }, this),\n title: \"n8n\",\n href: \"https://n8n.io\"\n },\n {\n node: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"8px\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n viewBox: \"0 0 48 48\",\n fill: \"none\",\n width: 96,\n height: 96,\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M8 24Q16 16 24 24T40 24\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"3\",\n strokeLinecap: \"round\",\n fill: \"none\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 291,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M10 28Q18 20 26 28T42 28\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"3\",\n strokeLinecap: \"round\",\n fill: \"none\",\n opacity: \"0.7\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 292,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: \"24\",\n cy: \"24\",\n r: \"2\",\n fill: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n opacity: \"0.5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 293,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 289,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n fontSize: \"14px\",\n fontWeight: \"600\",\n whiteSpace: \"nowrap\"\n },\n children: \"Mistral AI\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 295,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 288,\n columnNumber: 9\n }, this),\n title: \"Mistral AI\",\n href: \"https://mistral.ai\"\n },\n {\n node: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"8px\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n viewBox: \"0 0 48 48\",\n fill: \"none\",\n width: 96,\n height: 96,\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"rect\", {\n x: \"12\",\n y: \"14\",\n width: \"24\",\n height: \"20\",\n rx: \"2\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"3\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 306,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M16 20H32M16 24H32M16 28H28\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"2\",\n strokeLinecap: \"round\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 307,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: \"36\",\n cy: \"18\",\n r: \"3\",\n fill: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 308,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 304,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n fontSize: \"14px\",\n fontWeight: \"600\",\n whiteSpace: \"nowrap\"\n },\n children: \"Hetzner\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 310,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 303,\n columnNumber: 9\n }, this),\n title: \"Hetzner\",\n href: \"https://www.hetzner.com\"\n },\n {\n node: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"8px\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n viewBox: \"0 0 48 48\",\n fill: \"none\",\n width: 96,\n height: 96,\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"rect\", {\n x: \"12\",\n y: \"12\",\n width: \"24\",\n height: \"24\",\n rx: \"4\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"3\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 321,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M18 20L24 24L18 28\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 322,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M28 20L30 24L28 28\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"2\",\n strokeLinecap: \"round\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 323,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 319,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n fontSize: \"14px\",\n fontWeight: \"600\",\n whiteSpace: \"nowrap\"\n },\n children: \"Cursor\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 325,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 318,\n columnNumber: 9\n }, this),\n title: \"Cursor AI\",\n href: \"https://cursor.sh\"\n },\n {\n node: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"8px\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n viewBox: \"0 0 48 48\",\n fill: \"none\",\n width: 96,\n height: 96,\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"rect\", {\n x: \"14\",\n y: \"10\",\n width: \"20\",\n height: \"28\",\n rx: \"2\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"3\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 336,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M14 18H34M14 24H34M14 30H28\",\n stroke: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n strokeWidth: \"2\",\n strokeLinecap: \"round\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 337,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: \"32\",\n cy: \"14\",\n r: \"2\",\n fill: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 338,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 334,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n fontSize: \"14px\",\n fontWeight: \"600\",\n whiteSpace: \"nowrap\"\n },\n children: \"Appwrite\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 340,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 333,\n columnNumber: 9\n }, this),\n title: \"Appwrite\",\n href: \"https://appwrite.io\"\n }\n ];\n const valueProps = [\n {\n title: \"Zeitersparnis\",\n description: \"Wir \\xfcbernehmen den digitalen Teil, Sie konzentrieren sich aufs Gesch\\xe4ft\",\n link: \"#zeitersparnis\"\n },\n {\n title: \"Kompetenz & Erfahrung\",\n description: \"Technisch stark, klar in der Umsetzung\",\n link: \"#kompetenz-erfahrung\"\n },\n {\n title: \"Ma\\xdfgeschneiderte L\\xf6sungen\",\n description: \"Keine Templates, sondern individuelle Umsetzung\",\n link: \"#massgeschneiderte-loesungen\"\n },\n {\n title: \"Stressfreies Webmanagement\",\n description: \"Ein Ansprechpartner f\\xfcr alles\",\n link: \"#stressfreies-webmanagement\"\n }\n ];\n const navIsExpanded = scrollY > 40;\n const previousNavState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(navIsExpanded);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const previous = previousNavState.current;\n previousNavState.current = navIsExpanded;\n navExpandedRef.current = navIsExpanded;\n let raf1 = null;\n let raf2 = null;\n let timeoutId = null;\n if (navIsExpanded) {\n if (previous === false) {\n raf1 = requestAnimationFrame(()=>{\n calculateNavOffset(\"animate\", true);\n });\n raf2 = requestAnimationFrame(()=>{\n calculateNavOffset(\"animate\", true);\n });\n timeoutId = window.setTimeout(()=>{\n calculateNavOffset(\"animate\", true);\n }, 320);\n } else {\n calculateNavOffset(\"immediate\", true);\n }\n } else {\n animateOffset(0);\n }\n return ()=>{\n if (raf1 !== null) cancelAnimationFrame(raf1);\n if (raf2 !== null) cancelAnimationFrame(raf2);\n if (timeoutId !== null) window.clearTimeout(timeoutId);\n };\n }, [\n navIsExpanded,\n calculateNavOffset,\n animateOffset\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-h-screen overflow-hidden\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed left-0 right-0 z-40 px-4 top-4 transition-all duration-500\",\n style: {\n transitionTimingFunction: \"cubic-bezier(0.22, 1, 0.36, 1)\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full mx-auto transition-all duration-500 ease-out\",\n style: {\n maxWidth: navIsExpanded ? \"72rem\" : \"38rem\",\n width: navIsExpanded ? \"100%\" : \"96%\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_GlassSurface__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n width: \"100%\",\n height: \"auto\",\n borderRadius: 9999,\n displace: 2.0,\n backgroundOpacity: 0.3,\n className: \"w-full transition-all duration-500 ease-out\",\n style: {\n minHeight: \"70px\",\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary, \"66\"),\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: \"0.5rem 1.5rem\",\n transition: \"backdrop-filter 0.45s ease\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: navWrapperRef,\n className: \"relative w-full flex items-center justify-center transition-all duration-500\",\n style: {\n transitionTimingFunction: \"cubic-bezier(0.22, 1, 0.36, 1)\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: navInnerRef,\n className: \"inline-flex transition-all duration-500\",\n style: {\n transform: navIsExpanded ? \"translateX(-\".concat(navOffset, \"px)\") : \"translateX(0)\",\n transitionTimingFunction: \"cubic-bezier(0.22, 1, 0.36, 1)\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_PillNav__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n logo: \"/WebKlarLogo.png\",\n logoAlt: \"Webklar Logo\",\n items: [\n {\n label: \"\\xdcber uns\",\n href: \"#about\"\n },\n {\n label: \"Leistungen\",\n href: \"#services\"\n },\n {\n label: \"Unsere Abl\\xe4ufe\",\n href: \"#process\"\n }\n ],\n activeHref: \"#\",\n baseColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary,\n pillColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n hoveredPillTextColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n pillTextColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary,\n className: \"pill-nav-custom\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 459,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 451,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"hidden md:block absolute right-0 transition-all duration-500 overflow-hidden\",\n style: {\n opacity: navIsExpanded ? 1 : 0,\n maxWidth: navIsExpanded ? \"200px\" : \"0px\",\n pointerEvents: navIsExpanded ? \"auto\" : \"none\",\n transform: navIsExpanded ? \"translateX(0)\" : \"translateX(16px)\",\n transitionTimingFunction: \"cubic-bezier(0.22, 1, 0.36, 1)\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_15___default()), {\n href: \"/kontakte\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n className: \"rounded-full text-sm font-semibold px-3 sm:px-5 py-1.5 shadow-lg hover:shadow-xl transition-all duration-300 hover:scale-105 btn-enhanced pulse-glow\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n },\n children: \"Kontakt\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 487,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 486,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 476,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 443,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 426,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 419,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 413,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n id: \"hero\",\n className: \"relative h-screen flex items-center justify-center overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 z-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"video\", {\n autoPlay: true,\n muted: true,\n loop: true,\n playsInline: true,\n className: \"w-full h-full object-cover\",\n style: {\n filter: \"blur(8px)\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"source\", {\n src: \"/path/to/your/background-video.mp4\",\n type: \"video/mp4\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 509,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 501,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 backdrop-blur-sm\",\n style: {\n background: \"linear-gradient(135deg, \".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary, \"CC, \").concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary, \"CC)\")\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 511,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 500,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: heroRef,\n className: \"relative z-20 px-4 sm:px-8 pt-24 sm:pt-28 pb-20 sm:pb-24 max-w-7xl mx-auto text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-4xl sm:text-6xl md:text-8xl font-bold mb-6 sm:mb-8 transition-all duration-1000 \".concat(heroInView ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-10\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n },\n children: \"webklar – das Web ma\\xdfgeschneidert auf Ihr Unternehmen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 525,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 522,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap justify-center gap-2 sm:gap-4 mb-8 sm:mb-12 text-xs sm:text-sm mt-6 transition-all duration-1000 delay-300 \".concat(heroInView ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-10\"),\n children: [\n \"Strategieberatung\",\n \"UX/UI Design\",\n \"Entwicklung\",\n \"SEO & Support\"\n ].map((item)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"px-3 sm:px-4 py-2 rounded-full backdrop-blur-sm border\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"80\"),\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.tertiary,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: item\n }, item, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 534,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 530,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col sm:flex-row items-center justify-center gap-4 sm:gap-6 transition-all duration-1000 delay-500 \".concat(heroInView ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-10\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: ()=>{\n var _document_getElementById;\n return (_document_getElementById = document.getElementById(\"contact\")) === null || _document_getElementById === void 0 ? void 0 : _document_getElementById.scrollIntoView({\n behavior: \"smooth\"\n });\n },\n className: \"w-full sm:w-auto px-6 sm:px-8 py-3 sm:py-4 rounded-full flex items-center justify-center space-x-3 text-base sm:text-lg font-semibold shadow-2xl hover:shadow-3xl transition-all duration-300 hover:scale-105 btn-enhanced hover-lift\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Cookie_lucide_react__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n className: \"w-5 sm:w-6 h-5 sm:h-6\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 559,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"Kostenlosen Termin buchen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 560,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 551,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 548,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-8 sm:mt-12 px-4 sm:px-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n position: \"relative\",\n overflow: \"visible\",\n maxWidth: \"100%\"\n },\n className: \"logo-loop-container\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n height: \"180px\",\n position: \"relative\",\n width: \"100%\",\n paddingBottom: \"30px\",\n overflow: \"hidden\"\n },\n className: \"logo-loop-inner\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_LogoLoop__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n logos: partnerLogos,\n speed: 60,\n direction: \"left\",\n logoHeight: 140,\n gap: 100,\n pauseOnHover: true,\n scaleOnHover: true,\n ariaLabel: \"Technology partners\",\n style: {\n width: \"100%\"\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 568,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 567,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 566,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 565,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 521,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 498,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n id: \"about\",\n ref: aboutRef,\n className: \"relative px-4 sm:px-8 py-12 sm:py-20 rounded-t-[2rem] sm:rounded-t-[3rem] rounded-b-[2rem] sm:rounded-b-[3rem] mx-2 sm:mx-4 backdrop-blur-sm\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"F0\"),\n position: \"relative\",\n zIndex: 10\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-7xl mx-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid lg:grid-cols-2 gap-8 sm:gap-16 items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative order-2 lg:order-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_SpinningNumbers__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 596,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 595,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"order-1 lg:order-2 transition-all duration-1000 w-full flex flex-col justify-center \".concat(aboutInView ? \"opacity-100 translate-x-0\" : \"opacity-0 translate-x-10\"),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl sm:text-5xl md:text-6xl font-bold mb-6 sm:mb-8 leading-tight whitespace-nowrap\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"inline-block\",\n children: \"Worauf wir\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 604,\n columnNumber: 19\n }, this),\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"inline-block\",\n children: \"Wert\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 605,\n columnNumber: 19\n }, this),\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"inline-block\",\n children: \"legen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 606,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 603,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xl sm:text-2xl md:text-3xl leading-relaxed\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary,\n width: \"100%\",\n maxWidth: \"100%\",\n columnCount: 1,\n columnGap: \"3rem\",\n columnFill: \"balance\",\n textAlign: \"justify\"\n },\n children: \"Sicherheit ist f\\xfcr uns keine Nebensache, sondern die Grundlage jeder Website. Wir setzen auf moderne Technologien, zertifizierte Partner und h\\xf6chste Datenschutzstandards. Unsere Systeme sind darauf ausgelegt, Ausf\\xe4lle zu vermeiden und langfristig stabile Ergebnisse zu liefern – damit Ihre Online-Pr\\xe4senz so zuverl\\xe4ssig ist wie Ihr Unternehmen selbst.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 609,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 600,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 593,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 592,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 586,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n id: \"services\",\n ref: servicesRef,\n className: \"relative overflow-hidden px-4 sm:px-8 py-12 sm:py-20 rounded-t-[2rem] sm:rounded-t-[3rem] rounded-b-[2rem] sm:rounded-b-[3rem] mx-2 sm:mx-4 backdrop-blur-sm\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_background_beams__WEBPACK_IMPORTED_MODULE_14__.BackgroundBeams, {\n className: \"opacity-70 mix-blend-screen pointer-events-none\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 635,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pointer-events-none absolute inset-0 bg-gradient-to-b from-black/30 via-transparent to-black/70\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 636,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative z-10 max-w-7xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center mb-12 sm:mb-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl sm:text-5xl md:text-6xl font-bold mb-4 sm:mb-6 transition-all duration-1000 bg-clip-text text-transparent bg-gradient-to-b from-neutral-50/90 via-neutral-200/80 to-neutral-400/70 \".concat(servicesInView ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-10\"),\n children: \"Unsere Leistungen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 640,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-lg sm:text-xl transition-all duration-1000 delay-200 text-neutral-100/80 \".concat(servicesInView ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-10\"),\n children: \"Alles aus einer Hand f\\xfcr Ihren digitalen Erfolg\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 645,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 639,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative z-10 transition-all duration-1000 \".concat(servicesInView ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-10\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_container_scroll_animation_demo__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 657,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 652,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 638,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 629,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n id: \"process\",\n ref: processRef,\n className: \"relative px-4 sm:px-8 py-12 sm:py-20 rounded-t-[2rem] sm:rounded-t-[3rem] rounded-b-[2rem] sm:rounded-b-[3rem] mx-2 sm:mx-4 backdrop-blur-sm\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"F0\")\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-6xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center mb-12 sm:mb-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl sm:text-5xl md:text-6xl font-bold mb-4 sm:mb-6 transition-all duration-1000 \".concat(processInView ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-10\"),\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: \"Unser Ablauf\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 672,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-lg sm:text-xl transition-all duration-1000 delay-200 \".concat(processInView ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-10\"),\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: \"So l\\xe4uft die Zusammenarbeit ab\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 677,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 671,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-[32px] px-2 py-10 sm:px-6 sm:py-16 transition-all duration-700\",\n style: {\n background: \"linear-gradient(135deg, \".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"F2, \").concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"E8)\")\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_timeline_demo__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 690,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 684,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 670,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 664,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n id: \"references\",\n ref: pricingRef,\n className: \"relative px-4 sm:px-8 py-12 sm:py-20 rounded-t-[2rem] sm:rounded-t-[3rem] rounded-b-[2rem] sm:rounded-b-[3rem] mx-2 sm:mx-4 backdrop-blur-sm\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary, \"F0\")\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-4xl mx-auto text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-12 sm:mb-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl sm:text-5xl md:text-6xl font-bold mb-4 sm:mb-6 transition-all duration-1000 \".concat(pricingInView ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-10\"),\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.tertiary\n },\n children: \"Faire Preise\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 704,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-lg sm:text-xl transition-all duration-1000 delay-200 \".concat(pricingInView ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-10\"),\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n },\n children: \"Transparent und flexibel\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 709,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 703,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-8 sm:p-12 rounded-3xl shadow-2xl backdrop-blur-sm transition-all duration-1000 delay-300 \".concat(pricingInView ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-10\"),\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"F0\")\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-2xl sm:text-3xl font-bold mb-6\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: \"Individuelle L\\xf6sungen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 719,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-lg sm:text-xl mb-8 leading-relaxed\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: \"Unsere Preise richten sich nach dem Projektumfang und Ihren Anforderungen. Gemeinsam finden wir eine L\\xf6sung, die zu Ihrem Budget passt – transparent, fair und flexibel.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 722,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_PriceCalculator__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 726,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 716,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 702,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 696,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"relative px-4 sm:px-8 py-12 sm:py-20 rounded-t-[2rem] sm:rounded-t-[3rem] rounded-b-[2rem] sm:rounded-b-[3rem] mx-2 sm:mx-4 backdrop-blur-sm\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"F0\")\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-7xl mx-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid lg:grid-cols-2 gap-12 sm:gap-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-2xl sm:text-4xl font-bold mb-6 sm:mb-8\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: \"F\\xfcr wen wir arbeiten\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 740,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-lg sm:text-xl leading-relaxed\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: \"Wir arbeiten mit Unternehmen, die ihre veraltete Website modernisieren oder ihre Zeit nicht mehr mit Technik und Support verschwenden wollen.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 743,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 739,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-2xl sm:text-4xl font-bold mb-6 sm:mb-8\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: \"Warum wir das tun\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 750,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-3xl border shadow-sm\",\n style: {\n background: \"linear-gradient(135deg, \".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"F5, \").concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.tertiary, \"1A)\"),\n borderColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary, \"55\")\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 sm:p-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_card_hover_effect__WEBPACK_IMPORTED_MODULE_12__.HoverEffect, {\n items: valueProps,\n className: \"py-2\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 761,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 760,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 753,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 749,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 737,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 736,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 732,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n ref: contactRef,\n id: \"contact\",\n className: \"relative px-4 sm:px-8 py-12 sm:py-20 rounded-t-[2rem] sm:rounded-t-[3rem] rounded-b-[2rem] sm:rounded-b-[3rem] mx-2 sm:mx-4 backdrop-blur-sm\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-4xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center mb-12 sm:mb-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl sm:text-5xl md:text-6xl font-bold mb-4 sm:mb-6\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n },\n children: \"Lassen Sie uns sprechen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 781,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-lg sm:text-xl opacity-90\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n },\n children: \"Erz\\xe4hlen Sie uns von Ihrem Projekt\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 787,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 780,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"transition-all duration-1000 \".concat(contactInView ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-10\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ProtectedAppointmentBooking__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 798,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 795,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 779,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 773,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"footer\", {\n className: \"relative py-8 sm:py-12 border-t rounded-t-[2rem] sm:rounded-t-[3rem] mx-2 sm:mx-4 backdrop-blur-sm\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary, \"F0\"),\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-7xl mx-auto px-4 sm:px-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-4 gap-6 sm:gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"col-span-1 sm:col-span-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl sm:text-3xl font-bold mb-4 relative\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.tertiary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"relative z-10\",\n children: \"Webklar\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 818,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute -inset-2 rounded-xl blur-sm opacity-20\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 819,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 814,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mb-6 leading-relaxed text-sm sm:text-base\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n },\n children: \"Ihr Partner f\\xfcr Web & Support. Moderne Websites. Klare Kommunikation. Pers\\xf6nlicher Support.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 824,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 813,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-base sm:text-lg font-semibold mb-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.tertiary\n },\n children: \"Services\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 832,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2 text-sm sm:text-base\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n },\n children: [\n \"Webdesign\",\n \"E-Commerce\",\n \"SEO\",\n \"Hosting\"\n ].map((item)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"#\",\n className: \"hover:opacity-80 transition-opacity\",\n children: item\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 838,\n columnNumber: 23\n }, this)\n }, item, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 837,\n columnNumber: 21\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 835,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 831,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-base sm:text-lg font-semibold mb-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.tertiary\n },\n children: \"Kontakt\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 844,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2 text-sm sm:text-base\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_15___default()), {\n href: \"/impressum\",\n className: \"hover:opacity-80 transition-opacity\",\n children: \"Impressum\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 848,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 848,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_15___default()), {\n href: \"/datenschutz\",\n className: \"hover:opacity-80 transition-opacity\",\n children: \"Datenschutz\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 849,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 849,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_15___default()), {\n href: \"/agb\",\n className: \"hover:opacity-80 transition-opacity\",\n children: \"AGB\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 850,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 850,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_15___default()), {\n href: \"/kontakte\",\n className: \"hover:opacity-80 transition-opacity\",\n children: \"Kontakte\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 851,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 851,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 847,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 843,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 812,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-t mt-6 sm:mt-8 pt-6 sm:pt-8 text-center text-sm\",\n style: {\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"\\xa9 2025 Webklar. Alle Rechte vorbehalten.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 862,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 855,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 811,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 804,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(CookieButton, {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 871,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_AppointmentStatus__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 874,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\app\\\\page.tsx\",\n lineNumber: 411,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_s3(AboutServicePage, \"dzWvMuFlD+ZFOxOI3OpsjwbSnsE=\", false, function() {\n return [\n useScrollAnimation,\n useInView,\n useInView,\n useInView,\n useInView,\n useInView,\n useInView\n ];\n});\n_c1 = AboutServicePage;\nvar _c, _c1;\n$RefreshReg$(_c, \"CookieButton\");\n$RefreshReg$(_c1, \"AboutServicePage\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Ozs7Ozs7Ozs7a0VBQzVFLDhEQUFDNks7a0VBQUcsNEVBQUN2TSxtREFBSUE7NERBQUM0SCxNQUFLOzREQUFlbEcsV0FBVTtzRUFBc0M7Ozs7Ozs7Ozs7O2tFQUM5RSw4REFBQzZLO2tFQUFHLDRFQUFDdk0sbURBQUlBOzREQUFDNEgsTUFBSzs0REFBT2xHLFdBQVU7c0VBQXNDOzs7Ozs7Ozs7OztrRUFDdEUsOERBQUM2SztrRUFBRyw0RUFBQ3ZNLG1EQUFJQTs0REFBQzRILE1BQUs7NERBQVlsRyxXQUFVO3NFQUFzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MENBSWpGLDhEQUFDSTtnQ0FDQ0osV0FBVTtnQ0FDVkMsT0FBTztvQ0FDTFUsYUFBYWpELCtDQUFNQSxDQUFDeUMsU0FBUztvQ0FDN0JHLE9BQU81QywrQ0FBTUEsQ0FBQzJDLFVBQVU7Z0NBQzFCOzBDQUVBLDRFQUFDSTs4Q0FBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFTVCw4REFBQ2Y7Ozs7OzhCQUdELDhEQUFDOUIscUVBQWlCQTs7Ozs7Ozs7Ozs7O0FBSTFCO0lBbHZCd0JnRDs7UUFDTnJDO1FBQ2NPO1FBQ1FBO1FBQ0ZBO1FBQ0FBO1FBQ0pBO1FBQ0lBOzs7TUFQZDhCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2FwcC9wYWdlLnRzeD83NjAzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5cclxuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBDYWxlbmRhciwgQ29va2llIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xyXG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tIFwiQC9saWIvY29sb3JzXCI7XHJcbmltcG9ydCBQcm90ZWN0ZWRBcHBvaW50bWVudEJvb2tpbmcgZnJvbSBcIkAvY29tcG9uZW50cy9Qcm90ZWN0ZWRBcHBvaW50bWVudEJvb2tpbmdcIjtcclxuaW1wb3J0IEFwcG9pbnRtZW50U3RhdHVzIGZyb20gXCJAL2NvbXBvbmVudHMvQXBwb2ludG1lbnRTdGF0dXNcIjtcclxuaW1wb3J0IFByaWNlQ2FsY3VsYXRvciBmcm9tIFwiQC9jb21wb25lbnRzL1ByaWNlQ2FsY3VsYXRvclwiO1xyXG5pbXBvcnQgU3Bpbm5pbmdOdW1iZXJzIGZyb20gXCJAL2NvbXBvbmVudHMvU3Bpbm5pbmdOdW1iZXJzXCI7XHJcbmltcG9ydCBHbGFzc1N1cmZhY2UgZnJvbSBcIkAvY29tcG9uZW50cy9HbGFzc1N1cmZhY2VcIjtcclxuaW1wb3J0IExvZ29Mb29wIGZyb20gXCJAL2NvbXBvbmVudHMvTG9nb0xvb3BcIjtcclxuaW1wb3J0IFBpbGxOYXYgZnJvbSBcIkAvY29tcG9uZW50cy9QaWxsTmF2XCI7XHJcbmltcG9ydCBUaW1lbGluZURlbW8gZnJvbSBcIkAvY29tcG9uZW50cy91aS90aW1lbGluZS1kZW1vXCI7XHJcbmltcG9ydCB7IEhvdmVyRWZmZWN0IH0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9jYXJkLWhvdmVyLWVmZmVjdFwiO1xyXG5pbXBvcnQgSGVyb1Njcm9sbERlbW8gZnJvbSBcIkAvY29tcG9uZW50cy91aS9jb250YWluZXItc2Nyb2xsLWFuaW1hdGlvbi1kZW1vXCI7XHJcbmltcG9ydCB7IEJhY2tncm91bmRCZWFtcyB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvYmFja2dyb3VuZC1iZWFtc1wiO1xyXG5pbXBvcnQgTGluayBmcm9tICduZXh0L2xpbmsnO1xyXG5cclxuLy8gU2Nyb2xsIGFuaW1hdGlvbiBob29rXHJcbmNvbnN0IHVzZVNjcm9sbEFuaW1hdGlvbiA9ICgpID0+IHtcclxuICBjb25zdCBbc2Nyb2xsWSwgc2V0U2Nyb2xsWV0gPSB1c2VTdGF0ZSgwKTtcclxuICBcclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4gc2V0U2Nyb2xsWSh3aW5kb3cuc2Nyb2xsWSk7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcclxuICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcclxuICB9LCBbXSk7XHJcbiAgXHJcbiAgcmV0dXJuIHNjcm9sbFk7XHJcbn07XHJcblxyXG4vLyBJbnRlcnNlY3Rpb24gT2JzZXJ2ZXIgaG9vayBmb3IgZmFkZS1pbiBhbmltYXRpb25zXHJcbmNvbnN0IHVzZUluVmlldyA9ICh0aHJlc2hvbGQgPSAwLjEpID0+IHtcclxuICBjb25zdCBbaXNJblZpZXcsIHNldElzSW5WaWV3XSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXHJcbiAgICAgIChbZW50cnldKSA9PiB7XHJcbiAgICAgICAgaWYgKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XHJcbiAgICAgICAgICBzZXRJc0luVmlldyh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHsgdGhyZXNob2xkIH1cclxuICAgICk7XHJcblxyXG4gICAgaWYgKHJlZi5jdXJyZW50KSB7XHJcbiAgICAgIG9ic2VydmVyLm9ic2VydmUocmVmLmN1cnJlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgfSwgW3RocmVzaG9sZF0pO1xyXG5cclxuICByZXR1cm4gW3JlZiwgaXNJblZpZXddIGFzIGNvbnN0O1xyXG59O1xyXG5cclxuLy8gQ29va2llIEJ1dHRvbiBDb21wb25lbnRcclxuY29uc3QgQ29va2llQnV0dG9uID0gKCkgPT4ge1xyXG4gIGNvbnN0IFtzaG93QmFubmVyLCBzZXRTaG93QmFubmVyXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlQWNjZXB0ID0gKCkgPT4ge1xyXG4gICAgc2V0U2hvd0Jhbm5lcihmYWxzZSk7XHJcbiAgICAvLyBBZGQgY29va2llIGFjY2VwdGFuY2UgbG9naWMgaGVyZVxyXG4gIH07XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICB7LyogQ29va2llIEJ1dHRvbiAqL31cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNob3dCYW5uZXIodHJ1ZSl9XHJcbiAgICAgICAgY2xhc3NOYW1lPVwiZml4ZWQgYm90dG9tLTYgbGVmdC02IHotNTAgdy0xNCBoLTE0IHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBzaGFkb3ctbGcgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIGhvdmVyOnNjYWxlLTExMFwiXHJcbiAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19XHJcbiAgICAgID5cclxuICAgICAgICA8Q29va2llIGNsYXNzTmFtZT1cInctNiBoLTYgdGV4dC13aGl0ZVwiIC8+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgey8qIENvb2tpZSBCYW5uZXIgKi99XHJcbiAgICAgIHtzaG93QmFubmVyICYmIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpeGVkIGluc2V0LTAgYmctYmxhY2svNTAgYmFja2Ryb3AtYmx1ci1zbSB6LTUwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHAtNFwiPlxyXG4gICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibWF4LXctbWQgdy1mdWxsIHAtNiByb3VuZGVkLTN4bCBzaGFkb3ctMnhsXCJcclxuICAgICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMuYmFja2dyb3VuZCB9fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMyBtYi00XCI+XHJcbiAgICAgICAgICAgICAgPENvb2tpZSBjbGFzc05hbWU9XCJ3LTYgaC02XCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19IC8+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fT5cclxuICAgICAgICAgICAgICAgIENvb2tpZS1FaW5zdGVsbHVuZ2VuXHJcbiAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm1iLTYgdGV4dC1zbVwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19PlxyXG4gICAgICAgICAgICAgIFdpciB2ZXJ3ZW5kZW4gQ29va2llcywgdW0gSWhyZSBFcmZhaHJ1bmcgenUgdmVyYmVzc2Vybi4gRHVyY2ggZGllIE51dHp1bmcgdW5zZXJlciBXZWJzaXRlIHN0aW1tZW4gU2llIHVuc2VyZXIgRGF0ZW5zY2h1dHpyaWNodGxpbmllIHp1LlxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBzcGFjZS14LTNcIj5cclxuICAgICAgICAgICAgICA8QnV0dG9uIFxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQWNjZXB0fVxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleC0xIHJvdW5kZWQtZnVsbCBmb250LW1lZGl1bVwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMucHJpbWFyeSxcclxuICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIEFremVwdGllcmVuXHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgPEJ1dHRvbiBcclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNob3dCYW5uZXIoZmFsc2UpfVxyXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSByb3VuZGVkLWZ1bGxcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgXHJcbiAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5LFxyXG4gICAgICAgICAgICAgICAgICBjb2xvcjogY29sb3JzLnNlY29uZGFyeVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBBYmxlaG5lblxyXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApfVxyXG4gICAgPC8+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEFib3V0U2VydmljZVBhZ2UoKSB7XHJcbiAgY29uc3Qgc2Nyb2xsWSA9IHVzZVNjcm9sbEFuaW1hdGlvbigpO1xyXG4gIGNvbnN0IFtoZXJvUmVmLCBoZXJvSW5WaWV3XSA9IHVzZUluVmlldygpO1xyXG4gIGNvbnN0IFtzZXJ2aWNlc1JlZiwgc2VydmljZXNJblZpZXddID0gdXNlSW5WaWV3KCk7XHJcbiAgY29uc3QgW3Byb2Nlc3NSZWYsIHByb2Nlc3NJblZpZXddID0gdXNlSW5WaWV3KCk7XHJcbiAgY29uc3QgW3ByaWNpbmdSZWYsIHByaWNpbmdJblZpZXddID0gdXNlSW5WaWV3KCk7XHJcbiAgY29uc3QgW2Fib3V0UmVmLCBhYm91dEluVmlld10gPSB1c2VJblZpZXcoKTtcclxuICBjb25zdCBbY29udGFjdFJlZiwgY29udGFjdEluVmlld10gPSB1c2VJblZpZXcoKTtcclxuICBjb25zdCBuYXZXcmFwcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcclxuICBjb25zdCBuYXZJbm5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XHJcbiAgY29uc3QgW25hdk9mZnNldCwgc2V0TmF2T2Zmc2V0XSA9IHVzZVN0YXRlKDApO1xyXG4gIGNvbnN0IG5hdk9mZnNldFJlZiA9IHVzZVJlZigwKTtcclxuICBjb25zdCBuYXZFeHBhbmRlZFJlZiA9IHVzZVJlZihmYWxzZSk7XHJcbiAgY29uc3QgYW5pbWF0aW9uRnJhbWVSZWYgPSB1c2VSZWY8bnVtYmVyIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBuYXZPZmZzZXRSZWYuY3VycmVudCA9IG5hdk9mZnNldDtcclxuICB9LCBbbmF2T2Zmc2V0XSk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICBpZiAoYW5pbWF0aW9uRnJhbWVSZWYuY3VycmVudCkge1xyXG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGFuaW1hdGlvbkZyYW1lUmVmLmN1cnJlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgY29uc3QgYW5pbWF0ZU9mZnNldCA9IHVzZUNhbGxiYWNrKCh0YXJnZXQ6IG51bWJlcikgPT4ge1xyXG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodGFyZ2V0KSkgcmV0dXJuO1xyXG4gICAgaWYgKGFuaW1hdGlvbkZyYW1lUmVmLmN1cnJlbnQpIHtcclxuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoYW5pbWF0aW9uRnJhbWVSZWYuY3VycmVudCk7XHJcbiAgICAgIGFuaW1hdGlvbkZyYW1lUmVmLmN1cnJlbnQgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHN0YXJ0VmFsdWUgPSBuYXZPZmZzZXRSZWYuY3VycmVudDtcclxuICAgIGNvbnN0IGRlbHRhID0gdGFyZ2V0IC0gc3RhcnRWYWx1ZTtcclxuICAgIGlmIChNYXRoLmFicyhkZWx0YSkgPCAwLjUpIHtcclxuICAgICAgbmF2T2Zmc2V0UmVmLmN1cnJlbnQgPSB0YXJnZXQ7XHJcbiAgICAgIHNldE5hdk9mZnNldCh0YXJnZXQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZHVyYXRpb24gPSA1MjA7XHJcbiAgICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuXHJcbiAgICBjb25zdCBlYXNlT3V0Q3ViaWMgPSAodDogbnVtYmVyKSA9PiAxIC0gTWF0aC5wb3coMSAtIHQsIDMpO1xyXG5cclxuICAgIGNvbnN0IHN0ZXAgPSAobm93OiBudW1iZXIpID0+IHtcclxuICAgICAgY29uc3QgZWxhcHNlZCA9IG5vdyAtIHN0YXJ0VGltZTtcclxuICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBNYXRoLm1pbihlbGFwc2VkIC8gZHVyYXRpb24sIDEpO1xyXG4gICAgICBjb25zdCBlYXNlZCA9IGVhc2VPdXRDdWJpYyhwcm9ncmVzcyk7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gc3RhcnRWYWx1ZSArIGRlbHRhICogZWFzZWQ7XHJcbiAgICAgIG5hdk9mZnNldFJlZi5jdXJyZW50ID0gdmFsdWU7XHJcbiAgICAgIHNldE5hdk9mZnNldCh2YWx1ZSk7XHJcblxyXG4gICAgICBpZiAocHJvZ3Jlc3MgPCAxKSB7XHJcbiAgICAgICAgYW5pbWF0aW9uRnJhbWVSZWYuY3VycmVudCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVwKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBhbmltYXRpb25GcmFtZVJlZi5jdXJyZW50ID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBhbmltYXRpb25GcmFtZVJlZi5jdXJyZW50ID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHN0ZXApO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgY29uc3QgY2FsY3VsYXRlTmF2T2Zmc2V0ID0gdXNlQ2FsbGJhY2soXHJcbiAgICAobW9kZTogXCJhbmltYXRlXCIgfCBcImltbWVkaWF0ZVwiID0gXCJhbmltYXRlXCIsIGV4cGFuZGVkT3ZlcnJpZGU/OiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGlmICghbmF2V3JhcHBlclJlZi5jdXJyZW50IHx8ICFuYXZJbm5lclJlZi5jdXJyZW50KSByZXR1cm47XHJcbiAgICAgIGNvbnN0IGV4cGFuZGVkID0gZXhwYW5kZWRPdmVycmlkZSA/PyBuYXZFeHBhbmRlZFJlZi5jdXJyZW50O1xyXG4gICAgICBjb25zdCB3cmFwcGVyV2lkdGggPSBuYXZXcmFwcGVyUmVmLmN1cnJlbnQuY2xpZW50V2lkdGg7XHJcbiAgICAgIGNvbnN0IG5hdldpZHRoID0gbmF2SW5uZXJSZWYuY3VycmVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgY29uc3Qgb2Zmc2V0ID0gZXhwYW5kZWQgPyBNYXRoLm1heCgwLCAod3JhcHBlcldpZHRoIC0gbmF2V2lkdGgpIC8gMikgOiAwO1xyXG4gICAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShvZmZzZXQpKSByZXR1cm47XHJcbiAgICAgIGlmIChtb2RlID09PSBcImltbWVkaWF0ZVwiKSB7XHJcbiAgICAgICAgbmF2T2Zmc2V0UmVmLmN1cnJlbnQgPSBvZmZzZXQ7XHJcbiAgICAgICAgc2V0TmF2T2Zmc2V0KG9mZnNldCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYW5pbWF0ZU9mZnNldChvZmZzZXQpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgW2FuaW1hdGVPZmZzZXRdXHJcbiAgKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNhbGN1bGF0ZU5hdk9mZnNldChcImltbWVkaWF0ZVwiLCBuYXZFeHBhbmRlZFJlZi5jdXJyZW50KTtcclxuICAgIGNvbnN0IGhhbmRsZVJlc2l6ZSA9ICgpID0+IGNhbGN1bGF0ZU5hdk9mZnNldChcImltbWVkaWF0ZVwiLCBuYXZFeHBhbmRlZFJlZi5jdXJyZW50KTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGhhbmRsZVJlc2l6ZSk7XHJcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgaGFuZGxlUmVzaXplKTtcclxuICB9LCBbY2FsY3VsYXRlTmF2T2Zmc2V0XSk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAoIW5hdklubmVyUmVmLmN1cnJlbnQgfHwgdHlwZW9mIFJlc2l6ZU9ic2VydmVyID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XHJcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XHJcbiAgICAgIGNhbGN1bGF0ZU5hdk9mZnNldChcImltbWVkaWF0ZVwiLCBuYXZFeHBhbmRlZFJlZi5jdXJyZW50KTtcclxuICAgIH0pO1xyXG4gICAgb2JzZXJ2ZXIub2JzZXJ2ZShuYXZJbm5lclJlZi5jdXJyZW50KTtcclxuICAgIHJldHVybiAoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgfSwgW2NhbGN1bGF0ZU5hdk9mZnNldF0pO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3Qgd3JhcHBlciA9IG5hdldyYXBwZXJSZWYuY3VycmVudDtcclxuICAgIGlmICghd3JhcHBlcikgcmV0dXJuO1xyXG4gICAgY29uc3QgaGFuZGxlVHJhbnNpdGlvbkVuZCA9IChldmVudDogVHJhbnNpdGlvbkV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChldmVudC5wcm9wZXJ0eU5hbWUgPT09IFwibWF4LXdpZHRoXCIgfHwgZXZlbnQucHJvcGVydHlOYW1lID09PSBcIndpZHRoXCIgfHwgZXZlbnQucHJvcGVydHlOYW1lID09PSBcInRyYW5zZm9ybVwiKSB7XHJcbiAgICAgICAgY2FsY3VsYXRlTmF2T2Zmc2V0KG5hdkV4cGFuZGVkUmVmLmN1cnJlbnQgPyBcImFuaW1hdGVcIiA6IFwiaW1tZWRpYXRlXCIsIG5hdkV4cGFuZGVkUmVmLmN1cnJlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgd3JhcHBlci5hZGRFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmVuZFwiLCBoYW5kbGVUcmFuc2l0aW9uRW5kKTtcclxuICAgIHJldHVybiAoKSA9PiB3cmFwcGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsIGhhbmRsZVRyYW5zaXRpb25FbmQpO1xyXG4gIH0sIFtjYWxjdWxhdGVOYXZPZmZzZXRdKTtcclxuXHJcbiAgLy8gUGFydG5lciBMb2dvcyBmw7xyIExvZ29Mb29wXHJcbiAgY29uc3QgcGFydG5lckxvZ29zID0gW1xyXG4gICAge1xyXG4gICAgICBub2RlOiAoXHJcbiAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZ2FwOiAnOHB4JyB9fT5cclxuICAgICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCA0OCA0OFwiIGZpbGw9XCJub25lXCIgd2lkdGg9ezk2fSBoZWlnaHQ9ezk2fSB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIHsvKiBUcmFlZmlrIC0gUmV2ZXJzZSBQcm94eSBtaXQgZHJlaSBQdW5rdGVuICovfVxyXG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTZcIiBjeT1cIjE2XCIgcj1cIjRcIiBmaWxsPXtjb2xvcnMuYmFja2dyb3VuZH0vPlxyXG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMjRcIiBjeT1cIjI0XCIgcj1cIjRcIiBmaWxsPXtjb2xvcnMuYmFja2dyb3VuZH0vPlxyXG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMzJcIiBjeT1cIjMyXCIgcj1cIjRcIiBmaWxsPXtjb2xvcnMuYmFja2dyb3VuZH0vPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE2IDE2TDI0IDI0TTI0IDI0TDMyIDMyXCIgc3Ryb2tlPXtjb2xvcnMuYmFja2dyb3VuZH0gc3Ryb2tlV2lkdGg9XCIyXCIgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTEyIDI0TDI0IDEyTDM2IDI0XCIgc3Ryb2tlPXtjb2xvcnMuYmFja2dyb3VuZH0gc3Ryb2tlV2lkdGg9XCIyXCIgb3BhY2l0eT1cIjAuNVwiLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kLCBmb250U2l6ZTogJzE0cHgnLCBmb250V2VpZ2h0OiAnNjAwJywgd2hpdGVTcGFjZTogJ25vd3JhcCcgfX0+VHJhZWZpazwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKSxcclxuICAgICAgdGl0bGU6IFwiVHJhZWZpa1wiLFxyXG4gICAgICBocmVmOiBcImh0dHBzOi8vdHJhZWZpay5pb1wiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBub2RlOiAoXHJcbiAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZ2FwOiAnOHB4JyB9fT5cclxuICAgICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCA0OCA0OFwiIGZpbGw9XCJub25lXCIgd2lkdGg9ezk2fSBoZWlnaHQ9ezk2fSB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIHsvKiBQb3JrYnVuIC0gRG9tYWluL0dsb2JlICovfVxyXG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMjRcIiBjeT1cIjI0XCIgcj1cIjE2XCIgc3Ryb2tlPXtjb2xvcnMuYmFja2dyb3VuZH0gc3Ryb2tlV2lkdGg9XCIzXCIvPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTggMjRDOCAxOCAxMiAxNCAyNCAxNEMzNiAxNCA0MCAxOCA0MCAyNEM0MCAzMCAzNiAzNCAyNCAzNEMxMiAzNCA4IDMwIDggMjRaXCIgc3Ryb2tlPXtjb2xvcnMuYmFja2dyb3VuZH0gc3Ryb2tlV2lkdGg9XCIyXCIvPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTI0IDhDMjQgOCAxOCAxNCAxOCAyMEMxOCAyNiAyNCAzMiAyNCAzMlwiIHN0cm9rZT17Y29sb3JzLmJhY2tncm91bmR9IHN0cm9rZVdpZHRoPVwiMlwiLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kLCBmb250U2l6ZTogJzE0cHgnLCBmb250V2VpZ2h0OiAnNjAwJywgd2hpdGVTcGFjZTogJ25vd3JhcCcgfX0+UG9ya2J1bjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKSxcclxuICAgICAgdGl0bGU6IFwiUG9ya2J1blwiLFxyXG4gICAgICBocmVmOiBcImh0dHBzOi8vcG9ya2J1bi5jb21cIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbm9kZTogKFxyXG4gICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogJzhweCcgfX0+XHJcbiAgICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgNDggNDhcIiBmaWxsPVwibm9uZVwiIHdpZHRoPXs5Nn0gaGVpZ2h0PXs5Nn0geG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICB7LyogbjhuIC0gV29ya2Zsb3cgTm9kZXMgKi99XHJcbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNlwiIGN5PVwiMTZcIiByPVwiNVwiIGZpbGw9e2NvbG9ycy5iYWNrZ3JvdW5kfS8+XHJcbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIzMlwiIGN5PVwiMTZcIiByPVwiNVwiIGZpbGw9e2NvbG9ycy5iYWNrZ3JvdW5kfS8+XHJcbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNlwiIGN5PVwiMzJcIiByPVwiNVwiIGZpbGw9e2NvbG9ycy5iYWNrZ3JvdW5kfS8+XHJcbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIzMlwiIGN5PVwiMzJcIiByPVwiNVwiIGZpbGw9e2NvbG9ycy5iYWNrZ3JvdW5kfS8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjEgMTZMMjcgMTZNMTYgMjFMMTYgMjdNMjEgMzJMMjcgMzJcIiBzdHJva2U9e2NvbG9ycy5iYWNrZ3JvdW5kfSBzdHJva2VXaWR0aD1cIjJcIiBzdHJva2VMaW5lY2FwPVwicm91bmRcIi8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuYmFja2dyb3VuZCwgZm9udFNpemU6ICcxNHB4JywgZm9udFdlaWdodDogJzYwMCcsIHdoaXRlU3BhY2U6ICdub3dyYXAnIH19Pm44bjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKSxcclxuICAgICAgdGl0bGU6IFwibjhuXCIsXHJcbiAgICAgIGhyZWY6IFwiaHR0cHM6Ly9uOG4uaW9cIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbm9kZTogKFxyXG4gICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogJzhweCcgfX0+XHJcbiAgICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgNDggNDhcIiBmaWxsPVwibm9uZVwiIHdpZHRoPXs5Nn0gaGVpZ2h0PXs5Nn0geG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICB7LyogTWlzdHJhbCBBSSAtIFdpbmQvV2F2ZSAqL31cclxuICAgICAgICAgICAgPHBhdGggZD1cIk04IDI0UTE2IDE2IDI0IDI0VDQwIDI0XCIgc3Ryb2tlPXtjb2xvcnMuYmFja2dyb3VuZH0gc3Ryb2tlV2lkdGg9XCIzXCIgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgZmlsbD1cIm5vbmVcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgMjhRMTggMjAgMjYgMjhUNDIgMjhcIiBzdHJva2U9e2NvbG9ycy5iYWNrZ3JvdW5kfSBzdHJva2VXaWR0aD1cIjNcIiBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBmaWxsPVwibm9uZVwiIG9wYWNpdHk9XCIwLjdcIi8+XHJcbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIyNFwiIGN5PVwiMjRcIiByPVwiMlwiIGZpbGw9e2NvbG9ycy5iYWNrZ3JvdW5kfSBvcGFjaXR5PVwiMC41XCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT17eyBjb2xvcjogY29sb3JzLmJhY2tncm91bmQsIGZvbnRTaXplOiAnMTRweCcsIGZvbnRXZWlnaHQ6ICc2MDAnLCB3aGl0ZVNwYWNlOiAnbm93cmFwJyB9fT5NaXN0cmFsIEFJPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApLFxyXG4gICAgICB0aXRsZTogXCJNaXN0cmFsIEFJXCIsXHJcbiAgICAgIGhyZWY6IFwiaHR0cHM6Ly9taXN0cmFsLmFpXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5vZGU6IChcclxuICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6ICc4cHgnIH19PlxyXG4gICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDQ4IDQ4XCIgZmlsbD1cIm5vbmVcIiB3aWR0aD17OTZ9IGhlaWdodD17OTZ9IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgey8qIEhldHpuZXIgLSBTZXJ2ZXIvQ2xvdWQgKi99XHJcbiAgICAgICAgICAgIDxyZWN0IHg9XCIxMlwiIHk9XCIxNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiMlwiIHN0cm9rZT17Y29sb3JzLmJhY2tncm91bmR9IHN0cm9rZVdpZHRoPVwiM1wiLz5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0xNiAyMEgzMk0xNiAyNEgzMk0xNiAyOEgyOFwiIHN0cm9rZT17Y29sb3JzLmJhY2tncm91bmR9IHN0cm9rZVdpZHRoPVwiMlwiIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjM2XCIgY3k9XCIxOFwiIHI9XCIzXCIgZmlsbD17Y29sb3JzLmJhY2tncm91bmR9Lz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kLCBmb250U2l6ZTogJzE0cHgnLCBmb250V2VpZ2h0OiAnNjAwJywgd2hpdGVTcGFjZTogJ25vd3JhcCcgfX0+SGV0em5lcjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKSxcclxuICAgICAgdGl0bGU6IFwiSGV0em5lclwiLFxyXG4gICAgICBocmVmOiBcImh0dHBzOi8vd3d3LmhldHpuZXIuY29tXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5vZGU6IChcclxuICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6ICc4cHgnIH19PlxyXG4gICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDQ4IDQ4XCIgZmlsbD1cIm5vbmVcIiB3aWR0aD17OTZ9IGhlaWdodD17OTZ9IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgey8qIEN1cnNvciAtIENvZGUgRWRpdG9yICovfVxyXG4gICAgICAgICAgICA8cmVjdCB4PVwiMTJcIiB5PVwiMTJcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiByeD1cIjRcIiBzdHJva2U9e2NvbG9ycy5iYWNrZ3JvdW5kfSBzdHJva2VXaWR0aD1cIjNcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTggMjBMMjQgMjRMMTggMjhcIiBzdHJva2U9e2NvbG9ycy5iYWNrZ3JvdW5kfSBzdHJva2VXaWR0aD1cIjJcIiBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTI4IDIwTDMwIDI0TDI4IDI4XCIgc3Ryb2tlPXtjb2xvcnMuYmFja2dyb3VuZH0gc3Ryb2tlV2lkdGg9XCIyXCIgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT17eyBjb2xvcjogY29sb3JzLmJhY2tncm91bmQsIGZvbnRTaXplOiAnMTRweCcsIGZvbnRXZWlnaHQ6ICc2MDAnLCB3aGl0ZVNwYWNlOiAnbm93cmFwJyB9fT5DdXJzb3I8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICksXHJcbiAgICAgIHRpdGxlOiBcIkN1cnNvciBBSVwiLFxyXG4gICAgICBocmVmOiBcImh0dHBzOi8vY3Vyc29yLnNoXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5vZGU6IChcclxuICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6ICc4cHgnIH19PlxyXG4gICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDQ4IDQ4XCIgZmlsbD1cIm5vbmVcIiB3aWR0aD17OTZ9IGhlaWdodD17OTZ9IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgey8qIEFwcHdyaXRlIC0gRGF0YWJhc2UvQmFja2VuZCAqL31cclxuICAgICAgICAgICAgPHJlY3QgeD1cIjE0XCIgeT1cIjEwXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjI4XCIgcng9XCIyXCIgc3Ryb2tlPXtjb2xvcnMuYmFja2dyb3VuZH0gc3Ryb2tlV2lkdGg9XCIzXCIvPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE0IDE4SDM0TTE0IDI0SDM0TTE0IDMwSDI4XCIgc3Ryb2tlPXtjb2xvcnMuYmFja2dyb3VuZH0gc3Ryb2tlV2lkdGg9XCIyXCIgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMzJcIiBjeT1cIjE0XCIgcj1cIjJcIiBmaWxsPXtjb2xvcnMuYmFja2dyb3VuZH0vPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT17eyBjb2xvcjogY29sb3JzLmJhY2tncm91bmQsIGZvbnRTaXplOiAnMTRweCcsIGZvbnRXZWlnaHQ6ICc2MDAnLCB3aGl0ZVNwYWNlOiAnbm93cmFwJyB9fT5BcHB3cml0ZTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKSxcclxuICAgICAgdGl0bGU6IFwiQXBwd3JpdGVcIixcclxuICAgICAgaHJlZjogXCJodHRwczovL2FwcHdyaXRlLmlvXCJcclxuICAgIH1cclxuICBdO1xyXG5cclxuICBjb25zdCB2YWx1ZVByb3BzID0gW1xyXG4gICAge1xyXG4gICAgICB0aXRsZTogXCJaZWl0ZXJzcGFybmlzXCIsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBcIldpciDDvGJlcm5laG1lbiBkZW4gZGlnaXRhbGVuIFRlaWwsIFNpZSBrb256ZW50cmllcmVuIHNpY2ggYXVmcyBHZXNjaMOkZnRcIixcclxuICAgICAgbGluazogXCIjemVpdGVyc3Bhcm5pc1wiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0aXRsZTogXCJLb21wZXRlbnogJiBFcmZhaHJ1bmdcIixcclxuICAgICAgZGVzY3JpcHRpb246IFwiVGVjaG5pc2NoIHN0YXJrLCBrbGFyIGluIGRlciBVbXNldHp1bmdcIixcclxuICAgICAgbGluazogXCIja29tcGV0ZW56LWVyZmFocnVuZ1wiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0aXRsZTogXCJNYcOfZ2VzY2huZWlkZXJ0ZSBMw7ZzdW5nZW5cIixcclxuICAgICAgZGVzY3JpcHRpb246IFwiS2VpbmUgVGVtcGxhdGVzLCBzb25kZXJuIGluZGl2aWR1ZWxsZSBVbXNldHp1bmdcIixcclxuICAgICAgbGluazogXCIjbWFzc2dlc2NobmVpZGVydGUtbG9lc3VuZ2VuXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRpdGxlOiBcIlN0cmVzc2ZyZWllcyBXZWJtYW5hZ2VtZW50XCIsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkVpbiBBbnNwcmVjaHBhcnRuZXIgZsO8ciBhbGxlc1wiLFxyXG4gICAgICBsaW5rOiBcIiNzdHJlc3NmcmVpZXMtd2VibWFuYWdlbWVudFwiXHJcbiAgICB9XHJcbiAgXTtcclxuXHJcbiAgY29uc3QgbmF2SXNFeHBhbmRlZCA9IHNjcm9sbFkgPiA0MDtcclxuXHJcbiAgY29uc3QgcHJldmlvdXNOYXZTdGF0ZSA9IHVzZVJlZihuYXZJc0V4cGFuZGVkKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IHByZXZpb3VzID0gcHJldmlvdXNOYXZTdGF0ZS5jdXJyZW50O1xyXG4gICAgcHJldmlvdXNOYXZTdGF0ZS5jdXJyZW50ID0gbmF2SXNFeHBhbmRlZDtcclxuICAgIG5hdkV4cGFuZGVkUmVmLmN1cnJlbnQgPSBuYXZJc0V4cGFuZGVkO1xyXG5cclxuICAgIGxldCByYWYxOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAgIGxldCByYWYyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAgIGxldCB0aW1lb3V0SWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGlmIChuYXZJc0V4cGFuZGVkKSB7XHJcbiAgICAgIGlmIChwcmV2aW91cyA9PT0gZmFsc2UpIHtcclxuICAgICAgICByYWYxID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgICAgIGNhbGN1bGF0ZU5hdk9mZnNldChcImFuaW1hdGVcIiwgdHJ1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmFmMiA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgICAgICBjYWxjdWxhdGVOYXZPZmZzZXQoXCJhbmltYXRlXCIsIHRydWUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIGNhbGN1bGF0ZU5hdk9mZnNldChcImFuaW1hdGVcIiwgdHJ1ZSk7XHJcbiAgICAgICAgfSwgMzIwKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjYWxjdWxhdGVOYXZPZmZzZXQoXCJpbW1lZGlhdGVcIiwgdHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGFuaW1hdGVPZmZzZXQoMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgaWYgKHJhZjEgIT09IG51bGwpIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZjEpO1xyXG4gICAgICBpZiAocmFmMiAhPT0gbnVsbCkgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmMik7XHJcbiAgICAgIGlmICh0aW1lb3V0SWQgIT09IG51bGwpIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dElkKTtcclxuICAgIH07XHJcbiAgfSwgW25hdklzRXhwYW5kZWQsIGNhbGN1bGF0ZU5hdk9mZnNldCwgYW5pbWF0ZU9mZnNldF0pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gb3ZlcmZsb3ctaGlkZGVuXCIgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMuYmFja2dyb3VuZCB9fT5cclxuICAgICAgICB7LyogRml4ZWQgTmF2aWdhdGlvbiBtaXQgUGlsbE5hdiAqL31cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZCBsZWZ0LTAgcmlnaHQtMCB6LTQwIHB4LTQgdG9wLTQgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tNTAwXCJcclxuICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjogXCJjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSlcIlxyXG4gICAgICAgICAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBteC1hdXRvIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTUwMCBlYXNlLW91dFwiXHJcbiAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgbWF4V2lkdGg6IG5hdklzRXhwYW5kZWQgPyBcIjcycmVtXCIgOiBcIjM4cmVtXCIsXHJcbiAgICAgICAgICAgICAgd2lkdGg6IG5hdklzRXhwYW5kZWQgPyBcIjEwMCVcIiA6IFwiOTYlXCJcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPEdsYXNzU3VyZmFjZVxyXG4gICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXHJcbiAgICAgICAgICAgICAgaGVpZ2h0PVwiYXV0b1wiXHJcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXs5OTk5fVxyXG4gICAgICAgICAgICAgIGRpc3BsYWNlPXsyLjB9XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZE9wYWNpdHk9ezAuM31cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tNTAwIGVhc2Utb3V0XCJcclxuICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgIG1pbkhlaWdodDogJzcwcHgnLFxyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBgJHtjb2xvcnMuc2Vjb25kYXJ5fTY2YCxcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcclxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogJzAuNXJlbSAxLjVyZW0nLFxyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogJ2JhY2tkcm9wLWZpbHRlciAwLjQ1cyBlYXNlJ1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICByZWY9e25hdldyYXBwZXJSZWZ9XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZSB3LWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tNTAwXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjogXCJjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSlcIlxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7LyogUGlsbE5hdiBtaXQgZGVuIE5hdi1MaW5rcyAqL31cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgcmVmPXtuYXZJbm5lclJlZn1cclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW5saW5lLWZsZXggdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tNTAwXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5hdklzRXhwYW5kZWQgPyBgdHJhbnNsYXRlWCgtJHtuYXZPZmZzZXR9cHgpYCA6IFwidHJhbnNsYXRlWCgwKVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjogXCJjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSlcIlxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8UGlsbE5hdlxyXG4gICAgICAgICAgICAgICAgICAgIGxvZ289XCIvV2ViS2xhckxvZ28ucG5nXCJcclxuICAgICAgICAgICAgICAgICAgICBsb2dvQWx0PVwiV2Via2xhciBMb2dvXCJcclxuICAgICAgICAgICAgICAgICAgICBpdGVtcz17W1xyXG4gICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ8OcYmVyIHVucycsIGhyZWY6ICcjYWJvdXQnIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnTGVpc3R1bmdlbicsIGhyZWY6ICcjc2VydmljZXMnIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnVW5zZXJlIEFibMOkdWZlJywgaHJlZjogJyNwcm9jZXNzJyB9XHJcbiAgICAgICAgICAgICAgICAgICAgXX1cclxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVIcmVmPVwiI1wiXHJcbiAgICAgICAgICAgICAgICAgICAgYmFzZUNvbG9yPXtjb2xvcnMuc2Vjb25kYXJ5fVxyXG4gICAgICAgICAgICAgICAgICAgIHBpbGxDb2xvcj17Y29sb3JzLmJhY2tncm91bmR9XHJcbiAgICAgICAgICAgICAgICAgICAgaG92ZXJlZFBpbGxUZXh0Q29sb3I9e2NvbG9ycy5iYWNrZ3JvdW5kfVxyXG4gICAgICAgICAgICAgICAgICAgIHBpbGxUZXh0Q29sb3I9e2NvbG9ycy5wcmltYXJ5fVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInBpbGwtbmF2LWN1c3RvbVwiXHJcbiAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiBLb250YWt0LUJ1dHRvbiByZWNodHMgKi99XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhpZGRlbiBtZDpibG9jayBhYnNvbHV0ZSByaWdodC0wIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTUwMCBvdmVyZmxvdy1oaWRkZW5cIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IG5hdklzRXhwYW5kZWQgPyAxIDogMCxcclxuICAgICAgICAgICAgICAgICAgICBtYXhXaWR0aDogbmF2SXNFeHBhbmRlZCA/IFwiMjAwcHhcIiA6IFwiMHB4XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRlckV2ZW50czogbmF2SXNFeHBhbmRlZCA/IFwiYXV0b1wiIDogXCJub25lXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBuYXZJc0V4cGFuZGVkID8gXCJ0cmFuc2xhdGVYKDApXCIgOiBcInRyYW5zbGF0ZVgoMTZweClcIixcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246IFwiY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpXCJcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9rb250YWt0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b24gY2xhc3NOYW1lPVwicm91bmRlZC1mdWxsIHRleHQtc20gZm9udC1zZW1pYm9sZCBweC0zIHNtOnB4LTUgcHktMS41IHNoYWRvdy1sZyBob3ZlcjpzaGFkb3cteGwgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIGhvdmVyOnNjYWxlLTEwNSBidG4tZW5oYW5jZWQgcHVsc2UtZ2xvd1wiIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogY29sb3JzLnByaW1hcnksIGNvbG9yOiBjb2xvcnMuYmFja2dyb3VuZCB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgIEtvbnRha3RcclxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvR2xhc3NTdXJmYWNlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIHsvKiBCYWNrZ3JvdW5kIFZpZGVvIEhlcm8gU2VjdGlvbiAqL31cclxuICAgICAgICA8c2VjdGlvbiBpZD1cImhlcm9cIiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBoLXNjcmVlbiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgIHsvKiBWaWRlbyBCYWNrZ3JvdW5kICovfVxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIHotMFwiPlxyXG4gICAgICAgICAgICA8dmlkZW8gXHJcbiAgICAgICAgICAgICAgYXV0b1BsYXkgXHJcbiAgICAgICAgICAgICAgbXV0ZWQgXHJcbiAgICAgICAgICAgICAgbG9vcCBcclxuICAgICAgICAgICAgICBwbGF5c0lubGluZVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBoLWZ1bGwgb2JqZWN0LWNvdmVyXCJcclxuICAgICAgICAgICAgICBzdHlsZT17eyBmaWx0ZXI6ICdibHVyKDhweCknIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8c291cmNlIHNyYz1cIi9wYXRoL3RvL3lvdXIvYmFja2dyb3VuZC12aWRlby5tcDRcIiB0eXBlPVwidmlkZW8vbXA0XCIgLz5cclxuICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGJhY2tkcm9wLWJsdXItc21cIlxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IFxyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogYGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICR7Y29sb3JzLnByaW1hcnl9Q0MsICR7Y29sb3JzLnNlY29uZGFyeX1DQylgXHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgICAgICAgICA8ZGl2IHJlZj17aGVyb1JlZn0gY2xhc3NOYW1lPVwicmVsYXRpdmUgei0yMCBweC00IHNtOnB4LTggcHQtMjQgc206cHQtMjggcGItMjAgc206cGItMjQgbWF4LXctN3hsIG14LWF1dG8gdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT17YHRleHQtNHhsIHNtOnRleHQtNnhsIG1kOnRleHQtOHhsIGZvbnQtYm9sZCBtYi02IHNtOm1iLTggdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMTAwMCAke1xyXG4gICAgICAgICAgICAgIGhlcm9JblZpZXcgPyAnb3BhY2l0eS0xMDAgdHJhbnNsYXRlLXktMCcgOiAnb3BhY2l0eS0wIHRyYW5zbGF0ZS15LTEwJ1xyXG4gICAgICAgICAgICB9YH0+XHJcbiAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kIH19PlxyXG4gICAgICAgICAgICAgICAgd2Via2xhciDigJMgZGFzIFdlYiBtYcOfZ2VzY2huZWlkZXJ0IGF1ZiBJaHIgVW50ZXJuZWhtZW5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvaDE+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YGZsZXggZmxleC13cmFwIGp1c3RpZnktY2VudGVyIGdhcC0yIHNtOmdhcC00IG1iLTggc206bWItMTIgdGV4dC14cyBzbTp0ZXh0LXNtIG10LTYgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMTAwMCBkZWxheS0zMDAgJHtcclxuICAgICAgICAgICAgICBoZXJvSW5WaWV3ID8gJ29wYWNpdHktMTAwIHRyYW5zbGF0ZS15LTAnIDogJ29wYWNpdHktMCB0cmFuc2xhdGUteS0xMCdcclxuICAgICAgICAgICAgfWB9PlxyXG4gICAgICAgICAgICAgIHtbJ1N0cmF0ZWdpZWJlcmF0dW5nJywgJ1VYL1VJIERlc2lnbicsICdFbnR3aWNrbHVuZycsICdTRU8gJiBTdXBwb3J0J10ubWFwKChpdGVtKSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBcclxuICAgICAgICAgICAgICAgICAga2V5PXtpdGVtfVxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJweC0zIHNtOnB4LTQgcHktMiByb3VuZGVkLWZ1bGwgYmFja2Ryb3AtYmx1ci1zbSBib3JkZXJcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGAke2NvbG9ycy5iYWNrZ3JvdW5kfTgwYCxcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogY29sb3JzLnRlcnRpYXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcnMucHJpbWFyeVxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7aXRlbX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YGZsZXggZmxleC1jb2wgc206ZmxleC1yb3cgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC00IHNtOmdhcC02IHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTEwMDAgZGVsYXktNTAwICR7XHJcbiAgICAgICAgICAgICAgaGVyb0luVmlldyA/ICdvcGFjaXR5LTEwMCB0cmFuc2xhdGUteS0wJyA6ICdvcGFjaXR5LTAgdHJhbnNsYXRlLXktMTAnXHJcbiAgICAgICAgICAgIH1gfT5cclxuICAgICAgICAgICAgICA8QnV0dG9uIFxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhY3QnKT8uc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSl9XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgc206dy1hdXRvIHB4LTYgc206cHgtOCBweS0zIHNtOnB5LTQgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHNwYWNlLXgtMyB0ZXh0LWJhc2Ugc206dGV4dC1sZyBmb250LXNlbWlib2xkIHNoYWRvdy0yeGwgaG92ZXI6c2hhZG93LTN4bCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgaG92ZXI6c2NhbGUtMTA1IGJ0bi1lbmhhbmNlZCBob3Zlci1saWZ0XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IFxyXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kLFxyXG4gICAgICAgICAgICAgICAgICBjb2xvcjogY29sb3JzLnByaW1hcnlcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPENhbGVuZGFyIGNsYXNzTmFtZT1cInctNSBzbTp3LTYgaC01IHNtOmgtNlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5Lb3N0ZW5sb3NlbiBUZXJtaW4gYnVjaGVuPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIHsvKiBQYXJ0bmVyIFRvb2xzICovfVxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTggc206bXQtMTIgcHgtNCBzbTpweC04XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBwb3NpdGlvbjogJ3JlbGF0aXZlJywgb3ZlcmZsb3c6ICd2aXNpYmxlJywgbWF4V2lkdGg6ICcxMDAlJyB9fSBjbGFzc05hbWU9XCJsb2dvLWxvb3AtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGhlaWdodDogJzE4MHB4JywgcG9zaXRpb246ICdyZWxhdGl2ZScsIHdpZHRoOiAnMTAwJScsIHBhZGRpbmdCb3R0b206ICczMHB4Jywgb3ZlcmZsb3c6ICdoaWRkZW4nIH19IGNsYXNzTmFtZT1cImxvZ28tbG9vcC1pbm5lclwiPlxyXG4gICAgICAgICAgICAgICAgICA8TG9nb0xvb3BcclxuICAgICAgICAgICAgICAgICAgICBsb2dvcz17cGFydG5lckxvZ29zfVxyXG4gICAgICAgICAgICAgICAgICAgIHNwZWVkPXs2MH1cclxuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJsZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgICBsb2dvSGVpZ2h0PXsxNDB9XHJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxMDB9XHJcbiAgICAgICAgICAgICAgICAgICAgcGF1c2VPbkhvdmVyXHJcbiAgICAgICAgICAgICAgICAgICAgc2NhbGVPbkhvdmVyXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiVGVjaG5vbG9neSBwYXJ0bmVyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6ICcxMDAlJyB9fVxyXG4gICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICB7LyogQWJvdXQgU2VjdGlvbiAqL31cclxuICAgICAgICA8c2VjdGlvbiBcclxuICAgICAgICAgIGlkPVwiYWJvdXRcIlxyXG4gICAgICAgICAgcmVmPXthYm91dFJlZn0gXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZSBweC00IHNtOnB4LTggcHktMTIgc206cHktMjAgcm91bmRlZC10LVsycmVtXSBzbTpyb3VuZGVkLXQtWzNyZW1dIHJvdW5kZWQtYi1bMnJlbV0gc206cm91bmRlZC1iLVszcmVtXSBteC0yIHNtOm14LTQgYmFja2Ryb3AtYmx1ci1zbVwiXHJcbiAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6IGAke2NvbG9ycy5iYWNrZ3JvdW5kfUYwYCwgcG9zaXRpb246ICdyZWxhdGl2ZScsIHpJbmRleDogMTAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LTd4bCBteC1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBsZzpncmlkLWNvbHMtMiBnYXAtOCBzbTpnYXAtMTYgaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgey8qIExpbmtzOiBTcGlubmluZyBOdW1iZXJzICovfVxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgb3JkZXItMiBsZzpvcmRlci0xXCI+XHJcbiAgICAgICAgICAgICAgICA8U3Bpbm5pbmdOdW1iZXJzIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgey8qIFJlY2h0czogVGV4dCBpbSBaZWl0dW5nc3N0aWwgKG1laHJzcGFsdGlnKSAqL31cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YG9yZGVyLTEgbGc6b3JkZXItMiB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0xMDAwIHctZnVsbCBmbGV4IGZsZXgtY29sIGp1c3RpZnktY2VudGVyICR7XHJcbiAgICAgICAgICAgICAgICBhYm91dEluVmlldyA/ICdvcGFjaXR5LTEwMCB0cmFuc2xhdGUteC0wJyA6ICdvcGFjaXR5LTAgdHJhbnNsYXRlLXgtMTAnXHJcbiAgICAgICAgICAgICAgfWB9PlxyXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtM3hsIHNtOnRleHQtNXhsIG1kOnRleHQtNnhsIGZvbnQtYm9sZCBtYi02IHNtOm1iLTggbGVhZGluZy10aWdodCB3aGl0ZXNwYWNlLW5vd3JhcFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW5saW5lLWJsb2NrXCI+V29yYXVmIHdpcjwvc3Bhbj57XCIgXCJ9XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImlubGluZS1ibG9ja1wiPldlcnQ8L3NwYW4+e1wiIFwifVxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpbmxpbmUtYmxvY2tcIj5sZWdlbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQteGwgc206dGV4dC0yeGwgbWQ6dGV4dC0zeGwgbGVhZGluZy1yZWxheGVkXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy5zZWNvbmRhcnksXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICAgICAgICAgICAgICBtYXhXaWR0aDogJzEwMCUnLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbkNvdW50OiAxLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbkdhcDogJzNyZW0nLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbkZpbGw6ICdiYWxhbmNlJyxcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0QWxpZ246ICdqdXN0aWZ5J1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICBTaWNoZXJoZWl0IGlzdCBmw7xyIHVucyBrZWluZSBOZWJlbnNhY2hlLCBzb25kZXJuIGRpZSBHcnVuZGxhZ2UgamVkZXIgV2Vic2l0ZS4gV2lyIHNldHplbiBhdWYgbW9kZXJuZSBUZWNobm9sb2dpZW4sIHplcnRpZml6aWVydGUgUGFydG5lciB1bmQgaMO2Y2hzdGUgRGF0ZW5zY2h1dHpzdGFuZGFyZHMuIFVuc2VyZSBTeXN0ZW1lIHNpbmQgZGFyYXVmIGF1c2dlbGVndCwgQXVzZsOkbGxlIHp1IHZlcm1laWRlbiB1bmQgbGFuZ2ZyaXN0aWcgc3RhYmlsZSBFcmdlYm5pc3NlIHp1IGxpZWZlcm4g4oCTIGRhbWl0IElocmUgT25saW5lLVByw6RzZW56IHNvIHp1dmVybMOkc3NpZyBpc3Qgd2llIElociBVbnRlcm5laG1lbiBzZWxic3QuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIHsvKiBTZXJ2aWNlcyBHcmlkICovfVxyXG4gICAgICAgIDxzZWN0aW9uIFxyXG4gICAgICAgICAgaWQ9XCJzZXJ2aWNlc1wiXHJcbiAgICAgICAgICByZWY9e3NlcnZpY2VzUmVmfSBcclxuICAgICAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIG92ZXJmbG93LWhpZGRlbiBweC00IHNtOnB4LTggcHktMTIgc206cHktMjAgcm91bmRlZC10LVsycmVtXSBzbTpyb3VuZGVkLXQtWzNyZW1dIHJvdW5kZWQtYi1bMnJlbV0gc206cm91bmRlZC1iLVszcmVtXSBteC0yIHNtOm14LTQgYmFja2Ryb3AtYmx1ci1zbVwiXHJcbiAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9ycy5wcmltYXJ5IH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPEJhY2tncm91bmRCZWFtcyBjbGFzc05hbWU9XCJvcGFjaXR5LTcwIG1peC1ibGVuZC1zY3JlZW4gcG9pbnRlci1ldmVudHMtbm9uZVwiIC8+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgaW5zZXQtMCBiZy1ncmFkaWVudC10by1iIGZyb20tYmxhY2svMzAgdmlhLXRyYW5zcGFyZW50IHRvLWJsYWNrLzcwXCIgLz5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSB6LTEwIG1heC13LTd4bCBteC1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgbWItMTIgc206bWItMTZcIj5cclxuICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPXtgdGV4dC0zeGwgc206dGV4dC01eGwgbWQ6dGV4dC02eGwgZm9udC1ib2xkIG1iLTQgc206bWItNiB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0xMDAwIGJnLWNsaXAtdGV4dCB0ZXh0LXRyYW5zcGFyZW50IGJnLWdyYWRpZW50LXRvLWIgZnJvbS1uZXV0cmFsLTUwLzkwIHZpYS1uZXV0cmFsLTIwMC84MCB0by1uZXV0cmFsLTQwMC83MCAke1xyXG4gICAgICAgICAgICAgICAgc2VydmljZXNJblZpZXcgPyAnb3BhY2l0eS0xMDAgdHJhbnNsYXRlLXktMCcgOiAnb3BhY2l0eS0wIHRyYW5zbGF0ZS15LTEwJ1xyXG4gICAgICAgICAgICAgIH1gfT5cclxuICAgICAgICAgICAgICAgIFVuc2VyZSBMZWlzdHVuZ2VuXHJcbiAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9e2B0ZXh0LWxnIHNtOnRleHQteGwgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMTAwMCBkZWxheS0yMDAgdGV4dC1uZXV0cmFsLTEwMC84MCAke1xyXG4gICAgICAgICAgICAgICAgc2VydmljZXNJblZpZXcgPyAnb3BhY2l0eS0xMDAgdHJhbnNsYXRlLXktMCcgOiAnb3BhY2l0eS0wIHRyYW5zbGF0ZS15LTEwJ1xyXG4gICAgICAgICAgICAgIH1gfT5cclxuICAgICAgICAgICAgICAgIEFsbGVzIGF1cyBlaW5lciBIYW5kIGbDvHIgSWhyZW4gZGlnaXRhbGVuIEVyZm9sZ1xyXG4gICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcmVsYXRpdmUgei0xMCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0xMDAwICR7XHJcbiAgICAgICAgICAgICAgICBzZXJ2aWNlc0luVmlldyA/IFwib3BhY2l0eS0xMDAgdHJhbnNsYXRlLXktMFwiIDogXCJvcGFjaXR5LTAgdHJhbnNsYXRlLXktMTBcIlxyXG4gICAgICAgICAgICAgIH1gfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPEhlcm9TY3JvbGxEZW1vIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgey8qIFByb2Nlc3MgU2VjdGlvbiAqL31cclxuICAgICAgICA8c2VjdGlvbiBcclxuICAgICAgICAgIGlkPVwicHJvY2Vzc1wiXHJcbiAgICAgICAgICByZWY9e3Byb2Nlc3NSZWZ9IFxyXG4gICAgICAgICAgY2xhc3NOYW1lPVwicmVsYXRpdmUgcHgtNCBzbTpweC04IHB5LTEyIHNtOnB5LTIwIHJvdW5kZWQtdC1bMnJlbV0gc206cm91bmRlZC10LVszcmVtXSByb3VuZGVkLWItWzJyZW1dIHNtOnJvdW5kZWQtYi1bM3JlbV0gbXgtMiBzbTpteC00IGJhY2tkcm9wLWJsdXItc21cIlxyXG4gICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBgJHtjb2xvcnMuYmFja2dyb3VuZH1GMGAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LTZ4bCBteC1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgbWItMTIgc206bWItMTZcIj5cclxuICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPXtgdGV4dC0zeGwgc206dGV4dC01eGwgbWQ6dGV4dC02eGwgZm9udC1ib2xkIG1iLTQgc206bWItNiB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0xMDAwICR7XHJcbiAgICAgICAgICAgICAgICBwcm9jZXNzSW5WaWV3ID8gJ29wYWNpdHktMTAwIHRyYW5zbGF0ZS15LTAnIDogJ29wYWNpdHktMCB0cmFuc2xhdGUteS0xMCdcclxuICAgICAgICAgICAgICB9YH0gc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19PlxyXG4gICAgICAgICAgICAgICAgVW5zZXIgQWJsYXVmXHJcbiAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9e2B0ZXh0LWxnIHNtOnRleHQteGwgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMTAwMCBkZWxheS0yMDAgJHtcclxuICAgICAgICAgICAgICAgIHByb2Nlc3NJblZpZXcgPyAnb3BhY2l0eS0xMDAgdHJhbnNsYXRlLXktMCcgOiAnb3BhY2l0eS0wIHRyYW5zbGF0ZS15LTEwJ1xyXG4gICAgICAgICAgICAgIH1gfSBzdHlsZT17eyBjb2xvcjogY29sb3JzLnNlY29uZGFyeSB9fT5cclxuICAgICAgICAgICAgICAgIFNvIGzDpHVmdCBkaWUgWnVzYW1tZW5hcmJlaXQgYWJcclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyb3VuZGVkLVszMnB4XSBweC0yIHB5LTEwIHNtOnB4LTYgc206cHktMTYgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tNzAwXCJcclxuICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogYGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICR7Y29sb3JzLmJhY2tncm91bmR9RjIsICR7Y29sb3JzLmJhY2tncm91bmR9RTgpYFxyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8VGltZWxpbmVEZW1vIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICB7LyogUHJpY2luZyBTZWN0aW9uICovfVxyXG4gICAgICAgIDxzZWN0aW9uIFxyXG4gICAgICAgICAgaWQ9XCJyZWZlcmVuY2VzXCJcclxuICAgICAgICAgIHJlZj17cHJpY2luZ1JlZn0gXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZSBweC00IHNtOnB4LTggcHktMTIgc206cHktMjAgcm91bmRlZC10LVsycmVtXSBzbTpyb3VuZGVkLXQtWzNyZW1dIHJvdW5kZWQtYi1bMnJlbV0gc206cm91bmRlZC1iLVszcmVtXSBteC0yIHNtOm14LTQgYmFja2Ryb3AtYmx1ci1zbVwiXHJcbiAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6IGAke2NvbG9ycy5wcmltYXJ5fUYwYCB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWF4LXctNHhsIG14LWF1dG8gdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi0xMiBzbTptYi0xNlwiPlxyXG4gICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9e2B0ZXh0LTN4bCBzbTp0ZXh0LTV4bCBtZDp0ZXh0LTZ4bCBmb250LWJvbGQgbWItNCBzbTptYi02IHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTEwMDAgJHtcclxuICAgICAgICAgICAgICAgIHByaWNpbmdJblZpZXcgPyAnb3BhY2l0eS0xMDAgdHJhbnNsYXRlLXktMCcgOiAnb3BhY2l0eS0wIHRyYW5zbGF0ZS15LTEwJ1xyXG4gICAgICAgICAgICAgIH1gfSBzdHlsZT17eyBjb2xvcjogY29sb3JzLnRlcnRpYXJ5IH19PlxyXG4gICAgICAgICAgICAgICAgRmFpcmUgUHJlaXNlXHJcbiAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9e2B0ZXh0LWxnIHNtOnRleHQteGwgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMTAwMCBkZWxheS0yMDAgJHtcclxuICAgICAgICAgICAgICAgIHByaWNpbmdJblZpZXcgPyAnb3BhY2l0eS0xMDAgdHJhbnNsYXRlLXktMCcgOiAnb3BhY2l0eS0wIHRyYW5zbGF0ZS15LTEwJ1xyXG4gICAgICAgICAgICAgIH1gfSBzdHlsZT17eyBjb2xvcjogY29sb3JzLmJhY2tncm91bmQgfX0+XHJcbiAgICAgICAgICAgICAgICBUcmFuc3BhcmVudCB1bmQgZmxleGliZWxcclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2BwLTggc206cC0xMiByb3VuZGVkLTN4bCBzaGFkb3ctMnhsIGJhY2tkcm9wLWJsdXItc20gdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMTAwMCBkZWxheS0zMDAgJHtcclxuICAgICAgICAgICAgICBwcmljaW5nSW5WaWV3ID8gJ29wYWNpdHktMTAwIHRyYW5zbGF0ZS15LTAnIDogJ29wYWNpdHktMCB0cmFuc2xhdGUteS0xMCdcclxuICAgICAgICAgICAgfWB9IHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3JzLmJhY2tncm91bmR9RjBgIH19PlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBzbTp0ZXh0LTN4bCBmb250LWJvbGQgbWItNlwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fT5cclxuICAgICAgICAgICAgICAgIEluZGl2aWR1ZWxsZSBMw7ZzdW5nZW5cclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtbGcgc206dGV4dC14bCBtYi04IGxlYWRpbmctcmVsYXhlZFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19PlxyXG4gICAgICAgICAgICAgICAgVW5zZXJlIFByZWlzZSByaWNodGVuIHNpY2ggbmFjaCBkZW0gUHJvamVrdHVtZmFuZyB1bmQgSWhyZW4gQW5mb3JkZXJ1bmdlbi4gXHJcbiAgICAgICAgICAgICAgICBHZW1laW5zYW0gZmluZGVuIHdpciBlaW5lIEzDtnN1bmcsIGRpZSB6dSBJaHJlbSBCdWRnZXQgcGFzc3Qg4oCTIHRyYW5zcGFyZW50LCBmYWlyIHVuZCBmbGV4aWJlbC5cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPFByaWNlQ2FsY3VsYXRvciAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgey8qIFRhcmdldCBHcm91cHMgJiBWYWx1ZSBQcm9wcyAqL31cclxuICAgICAgICA8c2VjdGlvbiBcclxuICAgICAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIHB4LTQgc206cHgtOCBweS0xMiBzbTpweS0yMCByb3VuZGVkLXQtWzJyZW1dIHNtOnJvdW5kZWQtdC1bM3JlbV0gcm91bmRlZC1iLVsycmVtXSBzbTpyb3VuZGVkLWItWzNyZW1dIG14LTIgc206bXgtNCBiYWNrZHJvcC1ibHVyLXNtXCJcclxuICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3JzLmJhY2tncm91bmR9RjBgIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy03eGwgbXgtYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgbGc6Z3JpZC1jb2xzLTIgZ2FwLTEyIHNtOmdhcC0xNlwiPlxyXG4gICAgICAgICAgICAgIHsvKiBUYXJnZXQgR3JvdXBzICovfVxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC0yeGwgc206dGV4dC00eGwgZm9udC1ib2xkIG1iLTYgc206bWItOFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fT5cclxuICAgICAgICAgICAgICAgICAgRsO8ciB3ZW4gd2lyIGFyYmVpdGVuXHJcbiAgICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1sZyBzbTp0ZXh0LXhsIGxlYWRpbmctcmVsYXhlZFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19PlxyXG4gICAgICAgICAgICAgICAgICBXaXIgYXJiZWl0ZW4gbWl0IFVudGVybmVobWVuLCBkaWUgaWhyZSB2ZXJhbHRldGUgV2Vic2l0ZSBtb2Rlcm5pc2llcmVuIG9kZXIgaWhyZSBaZWl0IG5pY2h0IG1laHIgbWl0IFRlY2huaWsgdW5kIFN1cHBvcnQgdmVyc2Nod2VuZGVuIHdvbGxlbi5cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgey8qIFZhbHVlIFByb3BzICovfVxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC0yeGwgc206dGV4dC00eGwgZm9udC1ib2xkIG1iLTYgc206bWItOFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fT5cclxuICAgICAgICAgICAgICAgICAgV2FydW0gd2lyIGRhcyB0dW5cclxuICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJvdW5kZWQtM3hsIGJvcmRlciBzaGFkb3ctc21cIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAke2NvbG9ycy5iYWNrZ3JvdW5kfUY1LCAke2NvbG9ycy50ZXJ0aWFyeX0xQSlgLFxyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBgJHtjb2xvcnMuc2Vjb25kYXJ5fTU1YFxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNCBzbTpwLThcIj5cclxuICAgICAgICAgICAgICAgICAgICA8SG92ZXJFZmZlY3RcclxuICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zPXt2YWx1ZVByb3BzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicHktMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIHsvKiBDb250YWN0IFNlY3Rpb24gKi99XHJcbiAgICAgICAgPHNlY3Rpb24gXHJcbiAgICAgICAgICByZWY9e2NvbnRhY3RSZWZ9XHJcbiAgICAgICAgICBpZD1cImNvbnRhY3RcIlxyXG4gICAgICAgICAgY2xhc3NOYW1lPVwicmVsYXRpdmUgcHgtNCBzbTpweC04IHB5LTEyIHNtOnB5LTIwIHJvdW5kZWQtdC1bMnJlbV0gc206cm91bmRlZC10LVszcmVtXSByb3VuZGVkLWItWzJyZW1dIHNtOnJvdW5kZWQtYi1bM3JlbV0gbXgtMiBzbTpteC00IGJhY2tkcm9wLWJsdXItc21cIlxyXG4gICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy00eGwgbXgtYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIG1iLTEyIHNtOm1iLTE2XCI+XHJcbiAgICAgICAgICAgICAgPGgyIFxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC0zeGwgc206dGV4dC01eGwgbWQ6dGV4dC02eGwgZm9udC1ib2xkIG1iLTQgc206bWItNlwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogY29sb3JzLmJhY2tncm91bmQgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBMYXNzZW4gU2llIHVucyBzcHJlY2hlblxyXG4gICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgPHAgXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWxnIHNtOnRleHQteGwgb3BhY2l0eS05MFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogY29sb3JzLmJhY2tncm91bmQgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBFcnrDpGhsZW4gU2llIHVucyB2b24gSWhyZW0gUHJvamVrdFxyXG4gICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTEwMDAgJHtcclxuICAgICAgICAgICAgICBjb250YWN0SW5WaWV3ID8gJ29wYWNpdHktMTAwIHRyYW5zbGF0ZS15LTAnIDogJ29wYWNpdHktMCB0cmFuc2xhdGUteS0xMCdcclxuICAgICAgICAgICAgfWB9PlxyXG4gICAgICAgICAgICAgIDxQcm90ZWN0ZWRBcHBvaW50bWVudEJvb2tpbmcgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIHsvKiBGb290ZXIgKi99XHJcbiAgICAgICAgPGZvb3RlciBcclxuICAgICAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIHB5LTggc206cHktMTIgYm9yZGVyLXQgcm91bmRlZC10LVsycmVtXSBzbTpyb3VuZGVkLXQtWzNyZW1dIG14LTIgc206bXgtNCBiYWNrZHJvcC1ibHVyLXNtXCJcclxuICAgICAgICAgIHN0eWxlPXt7IFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGAke2NvbG9ycy5wcmltYXJ5fUYwYCxcclxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGNvbG9ycy5zZWNvbmRhcnlcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy03eGwgbXgtYXV0byBweC00IHNtOnB4LThcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIHNtOmdyaWQtY29scy0yIG1kOmdyaWQtY29scy00IGdhcC02IHNtOmdhcC04XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtc3Bhbi0xIHNtOmNvbC1zcGFuLTJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtMnhsIHNtOnRleHQtM3hsIGZvbnQtYm9sZCBtYi00IHJlbGF0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy50ZXJ0aWFyeSB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJyZWxhdGl2ZSB6LTEwXCI+V2Via2xhcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSAtaW5zZXQtMiByb3VuZGVkLXhsIGJsdXItc20gb3BhY2l0eS0yMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19XHJcbiAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAgXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1iLTYgbGVhZGluZy1yZWxheGVkIHRleHQtc20gc206dGV4dC1iYXNlXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kIH19XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIElociBQYXJ0bmVyIGbDvHIgV2ViICYgU3VwcG9ydC4gTW9kZXJuZSBXZWJzaXRlcy4gS2xhcmUgS29tbXVuaWthdGlvbi4gUGVyc8O2bmxpY2hlciBTdXBwb3J0LlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGV4dC1iYXNlIHNtOnRleHQtbGcgZm9udC1zZW1pYm9sZCBtYi00XCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy50ZXJ0aWFyeSB9fT5cclxuICAgICAgICAgICAgICAgICAgU2VydmljZXNcclxuICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic3BhY2UteS0yIHRleHQtc20gc206dGV4dC1iYXNlXCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kIH19PlxyXG4gICAgICAgICAgICAgICAgICB7WydXZWJkZXNpZ24nLCAnRS1Db21tZXJjZScsICdTRU8nLCAnSG9zdGluZyddLm1hcCgoaXRlbSkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e2l0ZW19PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzc05hbWU9XCJob3ZlcjpvcGFjaXR5LTgwIHRyYW5zaXRpb24tb3BhY2l0eVwiPntpdGVtfTwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LWJhc2Ugc206dGV4dC1sZyBmb250LXNlbWlib2xkIG1iLTRcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnRlcnRpYXJ5IH19PlxyXG4gICAgICAgICAgICAgICAgICBLb250YWt0XHJcbiAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cInNwYWNlLXktMiB0ZXh0LXNtIHNtOnRleHQtYmFzZVwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuYmFja2dyb3VuZCB9fT5cclxuICAgICAgICAgICAgICAgICAgPGxpPjxMaW5rIGhyZWY9XCIvaW1wcmVzc3VtXCIgY2xhc3NOYW1lPVwiaG92ZXI6b3BhY2l0eS04MCB0cmFuc2l0aW9uLW9wYWNpdHlcIj5JbXByZXNzdW08L0xpbms+PC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPjxMaW5rIGhyZWY9XCIvZGF0ZW5zY2h1dHpcIiBjbGFzc05hbWU9XCJob3ZlcjpvcGFjaXR5LTgwIHRyYW5zaXRpb24tb3BhY2l0eVwiPkRhdGVuc2NodXR6PC9MaW5rPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT48TGluayBocmVmPVwiL2FnYlwiIGNsYXNzTmFtZT1cImhvdmVyOm9wYWNpdHktODAgdHJhbnNpdGlvbi1vcGFjaXR5XCI+QUdCPC9MaW5rPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT48TGluayBocmVmPVwiL2tvbnRha3RlXCIgY2xhc3NOYW1lPVwiaG92ZXI6b3BhY2l0eS04MCB0cmFuc2l0aW9uLW9wYWNpdHlcIj5Lb250YWt0ZTwvTGluaz48L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgXHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYm9yZGVyLXQgbXQtNiBzbTptdC04IHB0LTYgc206cHQtOCB0ZXh0LWNlbnRlciB0ZXh0LXNtXCJcclxuICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5LFxyXG4gICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kXHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxwPiZjb3B5OyAyMDI1IFdlYmtsYXIuIEFsbGUgUmVjaHRlIHZvcmJlaGFsdGVuLjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Zvb3Rlcj5cclxuXHJcbiAgICAgICAgey8qIEZpbG0gR3JhaW4gRWZmZWN0ICovfVxyXG5cclxuXHJcbiAgICAgICAgey8qIENvb2tpZSBCdXR0b24gKi99XHJcbiAgICAgICAgPENvb2tpZUJ1dHRvbiAvPlxyXG4gICAgICAgIFxyXG4gICAgICAgIHsvKiBBcHBvaW50bWVudCBTdGF0dXMgKi99XHJcbiAgICAgICAgPEFwcG9pbnRtZW50U3RhdHVzIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC8+XHJcbiAgKTtcclxufVxyXG4iXSwibmFtZXMiOlsidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkJ1dHRvbiIsIkNhbGVuZGFyIiwiQ29va2llIiwiY29sb3JzIiwiUHJvdGVjdGVkQXBwb2ludG1lbnRCb29raW5nIiwiQXBwb2ludG1lbnRTdGF0dXMiLCJQcmljZUNhbGN1bGF0b3IiLCJTcGlubmluZ051bWJlcnMiLCJHbGFzc1N1cmZhY2UiLCJMb2dvTG9vcCIsIlBpbGxOYXYiLCJUaW1lbGluZURlbW8iLCJIb3ZlckVmZmVjdCIsIkhlcm9TY3JvbGxEZW1vIiwiQmFja2dyb3VuZEJlYW1zIiwiTGluayIsInVzZVNjcm9sbEFuaW1hdGlvbiIsInNjcm9sbFkiLCJzZXRTY3JvbGxZIiwiaGFuZGxlU2Nyb2xsIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJ1c2VJblZpZXciLCJ0aHJlc2hvbGQiLCJpc0luVmlldyIsInNldElzSW5WaWV3IiwicmVmIiwib2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsImVudHJ5IiwiaXNJbnRlcnNlY3RpbmciLCJjdXJyZW50Iiwib2JzZXJ2ZSIsImRpc2Nvbm5lY3QiLCJDb29raWVCdXR0b24iLCJzaG93QmFubmVyIiwic2V0U2hvd0Jhbm5lciIsImhhbmRsZUFjY2VwdCIsImJ1dHRvbiIsIm9uQ2xpY2siLCJjbGFzc05hbWUiLCJzdHlsZSIsImJhY2tncm91bmRDb2xvciIsInNlY29uZGFyeSIsImRpdiIsImJhY2tncm91bmQiLCJjb2xvciIsInByaW1hcnkiLCJoMyIsInAiLCJ2YXJpYW50IiwiYm9yZGVyQ29sb3IiLCJBYm91dFNlcnZpY2VQYWdlIiwiaGVyb1JlZiIsImhlcm9JblZpZXciLCJzZXJ2aWNlc1JlZiIsInNlcnZpY2VzSW5WaWV3IiwicHJvY2Vzc1JlZiIsInByb2Nlc3NJblZpZXciLCJwcmljaW5nUmVmIiwicHJpY2luZ0luVmlldyIsImFib3V0UmVmIiwiYWJvdXRJblZpZXciLCJjb250YWN0UmVmIiwiY29udGFjdEluVmlldyIsIm5hdldyYXBwZXJSZWYiLCJuYXZJbm5lclJlZiIsIm5hdk9mZnNldCIsInNldE5hdk9mZnNldCIsIm5hdk9mZnNldFJlZiIsIm5hdkV4cGFuZGVkUmVmIiwiYW5pbWF0aW9uRnJhbWVSZWYiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsImFuaW1hdGVPZmZzZXQiLCJ0YXJnZXQiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsInN0YXJ0VmFsdWUiLCJkZWx0YSIsIk1hdGgiLCJhYnMiLCJkdXJhdGlvbiIsInN0YXJ0VGltZSIsInBlcmZvcm1hbmNlIiwibm93IiwiZWFzZU91dEN1YmljIiwidCIsInBvdyIsInN0ZXAiLCJlbGFwc2VkIiwicHJvZ3Jlc3MiLCJtaW4iLCJlYXNlZCIsInZhbHVlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY2FsY3VsYXRlTmF2T2Zmc2V0IiwibW9kZSIsImV4cGFuZGVkT3ZlcnJpZGUiLCJleHBhbmRlZCIsIndyYXBwZXJXaWR0aCIsImNsaWVudFdpZHRoIiwibmF2V2lkdGgiLCJvZmZzZXRXaWR0aCIsIm9mZnNldCIsIm1heCIsImhhbmRsZVJlc2l6ZSIsIlJlc2l6ZU9ic2VydmVyIiwid3JhcHBlciIsImhhbmRsZVRyYW5zaXRpb25FbmQiLCJldmVudCIsInByb3BlcnR5TmFtZSIsInBhcnRuZXJMb2dvcyIsIm5vZGUiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJnYXAiLCJzdmciLCJ2aWV3Qm94IiwiZmlsbCIsIndpZHRoIiwiaGVpZ2h0IiwieG1sbnMiLCJjaXJjbGUiLCJjeCIsImN5IiwiciIsInBhdGgiLCJkIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJzdHJva2VMaW5lY2FwIiwib3BhY2l0eSIsInNwYW4iLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJ3aGl0ZVNwYWNlIiwidGl0bGUiLCJocmVmIiwicmVjdCIsIngiLCJ5IiwicngiLCJzdHJva2VMaW5lam9pbiIsInZhbHVlUHJvcHMiLCJkZXNjcmlwdGlvbiIsImxpbmsiLCJuYXZJc0V4cGFuZGVkIiwicHJldmlvdXNOYXZTdGF0ZSIsInByZXZpb3VzIiwicmFmMSIsInJhZjIiLCJ0aW1lb3V0SWQiLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwidHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIiwibWF4V2lkdGgiLCJib3JkZXJSYWRpdXMiLCJkaXNwbGFjZSIsImJhY2tncm91bmRPcGFjaXR5IiwibWluSGVpZ2h0IiwianVzdGlmeUNvbnRlbnQiLCJwYWRkaW5nIiwidHJhbnNpdGlvbiIsInRyYW5zZm9ybSIsImxvZ28iLCJsb2dvQWx0IiwiaXRlbXMiLCJsYWJlbCIsImFjdGl2ZUhyZWYiLCJiYXNlQ29sb3IiLCJwaWxsQ29sb3IiLCJob3ZlcmVkUGlsbFRleHRDb2xvciIsInBpbGxUZXh0Q29sb3IiLCJwb2ludGVyRXZlbnRzIiwic2VjdGlvbiIsImlkIiwidmlkZW8iLCJhdXRvUGxheSIsIm11dGVkIiwibG9vcCIsInBsYXlzSW5saW5lIiwiZmlsdGVyIiwic291cmNlIiwic3JjIiwidHlwZSIsImgxIiwibWFwIiwiaXRlbSIsInRlcnRpYXJ5IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInNjcm9sbEludG9WaWV3IiwiYmVoYXZpb3IiLCJwb3NpdGlvbiIsIm92ZXJmbG93IiwicGFkZGluZ0JvdHRvbSIsImxvZ29zIiwic3BlZWQiLCJkaXJlY3Rpb24iLCJsb2dvSGVpZ2h0IiwicGF1c2VPbkhvdmVyIiwic2NhbGVPbkhvdmVyIiwiYXJpYUxhYmVsIiwiekluZGV4IiwiaDIiLCJjb2x1bW5Db3VudCIsImNvbHVtbkdhcCIsImNvbHVtbkZpbGwiLCJ0ZXh0QWxpZ24iLCJmb290ZXIiLCJoNCIsInVsIiwibGkiLCJhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/page.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/AppointmentBooking.tsx":
|
||
/*!*******************************************!*\
|
||
!*** ./components/AppointmentBooking.tsx ***!
|
||
\*******************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ AppointmentBooking; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Calendar_Mail_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Calendar,Mail!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/calendar.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Calendar_Mail_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Calendar,Mail!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Calendar_Mail_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Calendar,Mail!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-check-big.js\");\n/* harmony import */ var _lib_supabase__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/supabase */ \"(app-pages-browser)/./lib/supabase.ts\");\n/* harmony import */ var _lib_colors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/lib/colors */ \"(app-pages-browser)/./lib/colors.ts\");\n/* harmony import */ var _AppointmentForm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AppointmentForm */ \"(app-pages-browser)/./components/AppointmentForm.tsx\");\n/* harmony import */ var _EmailVerification__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./EmailVerification */ \"(app-pages-browser)/./components/EmailVerification.tsx\");\n/* harmony import */ var _hooks_useAuth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/hooks/useAuth */ \"(app-pages-browser)/./hooks/useAuth.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n\nfunction AppointmentBooking() {\n _s();\n const { user } = (0,_hooks_useAuth__WEBPACK_IMPORTED_MODULE_7__.useAuth)();\n const [currentStep, setCurrentStep] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"form\");\n const [appointmentData, setAppointmentData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [testMode, setTestMode] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false); // Production mode - no test indicators\n const [tableStructure, setTableStructure] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [productionMode, setProductionMode] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false); // Enable email verification\n const [customerAction, setCustomerAction] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const handleFormSubmit = async (data)=>{\n setAppointmentData(data);\n // Always go to email verification step\n setCurrentStep(\"verification\");\n };\n const handleVerificationComplete = async ()=>{\n if (!appointmentData) return;\n // Prüfe Authentifizierung nach E-Mail-Bestätigung\n if (!user) {\n setError(\"Bitte best\\xe4tige zuerst deine E-Mail-Adresse, um den Termin zu speichern.\");\n return;\n }\n setLoading(true);\n setError(null);\n try {\n // Create the appointment datetime by combining date and time\n console.log(\"=== DATE PROCESSING DEBUG ===\");\n console.log(\"Input termin_datum:\", appointmentData.termin_datum);\n console.log(\"Input termin_time:\", appointmentData.termin_time);\n console.log(\"Input termin_datum type:\", typeof appointmentData.termin_datum);\n console.log(\"Input termin_datum instanceof Date:\", appointmentData.termin_datum instanceof Date);\n // Check if termin_datum is actually a Date object\n if (!(appointmentData.termin_datum instanceof Date)) {\n console.error(\"❌ termin_datum is not a Date object!\");\n setError(\"Fehler: Ung\\xfcltiges Datum. Bitte w\\xe4hlen Sie einen Termin aus.\");\n return;\n }\n const appointmentDateTime = new Date(appointmentData.termin_datum);\n console.log(\"Created appointmentDateTime:\", appointmentDateTime);\n console.log(\"appointmentDateTime.toISOString():\", appointmentDateTime.toISOString());\n const [hours] = appointmentData.termin_time.split(\":\").map(Number);\n console.log(\"Extracted hours:\", hours);\n // Create the appointment datetime in local time to avoid timezone issues\n const year = appointmentDateTime.getFullYear();\n const month = appointmentDateTime.getMonth();\n const day = appointmentDateTime.getDate();\n console.log(\"Date components:\", {\n year,\n month,\n day,\n hours\n });\n // Create the final appointment datetime in local time\n const finalAppointmentDateTime = new Date(year, month, day, hours, 0, 0, 0);\n console.log(\"Final appointmentDateTime (local):\", finalAppointmentDateTime);\n console.log(\"Final appointmentDateTime.toISOString():\", finalAppointmentDateTime.toISOString());\n console.log(\"Final appointmentDateTime.getTime():\", finalAppointmentDateTime.getTime());\n console.log(\"Final appointmentDateTime local string:\", finalAppointmentDateTime.toLocaleString(\"de-DE\"));\n // Store the appointment time in local time format\n const localTimeString = \"\".concat(year, \"-\").concat((month + 1).toString().padStart(2, \"0\"), \"-\").concat(day.toString().padStart(2, \"0\"), \"T\").concat(hours.toString().padStart(2, \"0\"), \":00:00\");\n console.log(\"Local time string to save:\", localTimeString);\n // Check if customer already exists (by email)\n console.log(\"=== CUSTOMER CHECK DEBUG ===\");\n console.log(\"Input email:\", appointmentData.email);\n console.log(\"Input email type:\", typeof appointmentData.email);\n console.log(\"Input email length:\", appointmentData.email.length);\n console.log(\"Input email trimmed:\", appointmentData.email.trim());\n console.log(\"Input email lowercase:\", appointmentData.email.trim().toLowerCase());\n // First, let's check what's in the database for this email\n await checkSpecificEmail(appointmentData.email);\n // Try multiple email variations to find existing customer\n const emailVariations = [\n appointmentData.email.trim(),\n appointmentData.email.trim().toLowerCase(),\n appointmentData.email.trim().toUpperCase()\n ];\n console.log(\"Checking email variations:\", emailVariations);\n let existingCustomers = [];\n let checkError = null;\n // Try each email variation\n for (const emailVariation of emailVariations){\n const { data, error } = await _lib_supabase__WEBPACK_IMPORTED_MODULE_3__.supabase.from(\"kunden_projekte\").select(\"*\").eq(\"email\", emailVariation).order(\"erstellt_am\", {\n ascending: false\n });\n if (error) {\n console.error('Error checking email variation \"'.concat(emailVariation, '\":'), error);\n checkError = error;\n continue;\n }\n if (data && data.length > 0) {\n console.log(\"Found \".concat(data.length, ' customers with email \"').concat(emailVariation, '\"'));\n existingCustomers = data;\n break;\n }\n }\n console.log(\"Database query result:\", {\n existingCustomers,\n checkError\n });\n console.log(\"Number of existing customers found:\", (existingCustomers === null || existingCustomers === void 0 ? void 0 : existingCustomers.length) || 0);\n if (existingCustomers && existingCustomers.length > 0) {\n console.log(\"All found customers with this email:\");\n existingCustomers.forEach((customer, index)=>{\n console.log(\"\".concat(index + 1, \". ID: \").concat(customer.id, ', Email: \"').concat(customer.email, '\", Created: ').concat(customer.erstellt_am, \", Termin: \").concat(customer.termin_datum));\n });\n }\n if (checkError) {\n console.error(\"Error checking existing customer:\", checkError);\n setError(\"Fehler beim \\xdcberpr\\xfcfen der Kundendaten. Bitte versuchen Sie es erneut.\");\n return;\n }\n const existingCustomer = existingCustomers && existingCustomers.length > 0 ? existingCustomers[0] : null;\n if (existingCustomer) {\n console.log(\"✅ Existing customer found:\", existingCustomer);\n console.log(\"Will UPDATE existing customer with ID:\", existingCustomer.id);\n // Warn if there are multiple entries with the same email\n if (existingCustomers.length > 1) {\n console.warn(\"⚠️ Found \".concat(existingCustomers.length, \" entries with email \").concat(appointmentData.email, \". Using the most recent one.\"));\n }\n } else {\n console.log(\"❌ No existing customer found - will CREATE new\");\n }\n const appointmentDataToSave = {\n email: appointmentData.email,\n beschreibung: \"\".concat(appointmentData.beschreibung, \"\\n\\nTermin: \").concat(formatAppointmentDate(appointmentData.termin_datum, appointmentData.termin_time), \"\\n\\nKontakt: \").concat(appointmentData.name, \" (\").concat(appointmentData.telefon, \")\\nFirma: \").concat(appointmentData.firma),\n termin_datum: localTimeString,\n ansprechpartner_name: appointmentData.name,\n telefon: appointmentData.telefon,\n firma: appointmentData.firma,\n berater: \"Webklar Team\",\n zielgruppe: \"Terminanfrage\"\n };\n let result;\n if (existingCustomer) {\n // Use upsert to ensure we update the existing customer\n console.log(\"\\uD83D\\uDD04 Starting UPSERT operation for customer ID:\", existingCustomer.id);\n const newDescription = \"\".concat(existingCustomer.beschreibung || \"\", \"\\n\\n--- NEUER TERMIN ---\\n\").concat(appointmentDataToSave.beschreibung);\n console.log(\"New description:\", newDescription);\n // Use upsert with the existing ID to force update\n const { data: upsertData, error: upsertError } = await _lib_supabase__WEBPACK_IMPORTED_MODULE_3__.supabase.from(\"kunden_projekte\").upsert({\n id: existingCustomer.id,\n ...appointmentDataToSave,\n beschreibung: newDescription,\n erstellt_am: new Date().toISOString()\n }, {\n onConflict: \"id\" // Update on ID conflict\n }).select(\"*\");\n if (upsertError) {\n console.error(\"❌ Error upserting customer:\", upsertError);\n setError(\"Fehler beim Aktualisieren der Kundendaten. Bitte versuchen Sie es erneut.\");\n return;\n }\n if (!upsertData || upsertData.length === 0) {\n console.error(\"❌ Upsert operation returned no data\");\n setError(\"Fehler beim Aktualisieren der Kundendaten. Bitte versuchen Sie es erneut.\");\n return;\n }\n result = upsertData[0];\n console.log(\"✅ Customer updated via upsert:\", result);\n // Verify the update by fetching the customer again\n const { data: verifyData, error: verifyError } = await _lib_supabase__WEBPACK_IMPORTED_MODULE_3__.supabase.from(\"kunden_projekte\").select(\"*\").eq(\"id\", existingCustomer.id).single();\n if (verifyError) {\n console.warn(\"⚠️ Could not verify update:\", verifyError);\n } else {\n console.log(\"✅ Update verified - customer data:\", verifyData);\n }\n setCustomerAction(\"updated\");\n } else {\n // Create new customer record ONLY if no existing customer found\n console.log(\"\\uD83C\\uDD95 Starting CREATE operation for new customer\");\n console.log(\"Create data:\", appointmentDataToSave);\n const { data, error } = await _lib_supabase__WEBPACK_IMPORTED_MODULE_3__.supabase.from(\"kunden_projekte\").insert(appointmentDataToSave).select(\"*\");\n if (error) {\n console.error(\"❌ Error creating customer:\", error);\n setError(\"Fehler beim Erstellen der Kundendaten. Bitte versuchen Sie es erneut.\");\n return;\n }\n if (!data || data.length === 0) {\n console.error(\"❌ Create operation returned no data\");\n setError(\"Fehler beim Erstellen der Kundendaten. Bitte versuchen Sie es erneut.\");\n return;\n }\n result = data[0]; // Get the first (and only) created record\n console.log(\"✅ Customer created successfully:\", result);\n setCustomerAction(\"created\");\n }\n setCurrentStep(\"success\");\n } catch (err) {\n console.error(\"Unexpected error saving appointment:\", err);\n setError(\"Ein unerwarteter Fehler ist aufgetreten. Bitte versuchen Sie es erneut.\");\n } finally{\n setLoading(false);\n }\n };\n const handleBack = ()=>{\n setCurrentStep(\"form\");\n setError(null);\n };\n const handleReset = ()=>{\n setCurrentStep(\"form\");\n setAppointmentData(null);\n setError(null);\n setLoading(false);\n setCustomerAction(null);\n };\n const testDatabaseConnection = async ()=>{\n setLoading(true);\n setError(null);\n try {\n // Test basic connection and get table structure\n const { data, error } = await _lib_supabase__WEBPACK_IMPORTED_MODULE_3__.supabase.from(\"kunden_projekte\").select(\"*\").limit(1);\n if (error) {\n console.error(\"Database connection test failed:\", error);\n setError(\"Datenbank-Verbindung fehlgeschlagen: \".concat(error.message));\n return;\n }\n console.log(\"Database connection successful:\", data);\n const columns = Object.keys(data[0] || {});\n console.log(\"Table structure:\", columns);\n setTableStructure(columns);\n // Analyze which columns we can use\n const availableColumns = {\n email: columns.includes(\"email\"),\n description: columns.includes(\"description\") || columns.includes(\"beschreibung\"),\n termin_datum: columns.includes(\"termin_datum\"),\n name: columns.includes(\"name\") || columns.includes(\"ansprechpartn\"),\n phone: columns.includes(\"phone\") || columns.includes(\"telefon\"),\n company: columns.includes(\"company\") || columns.includes(\"firma\")\n };\n console.log(\"Available columns for appointment:\", availableColumns);\n let statusMessage = \"✅ Datenbank-Verbindung erfolgreich!\\n\\n\";\n statusMessage += \"\\uD83D\\uDCCB Verf\\xfcgbare Spalten:\\n\";\n Object.entries(availableColumns).forEach((param)=>{\n let [key, available] = param;\n statusMessage += \"\".concat(available ? \"✅\" : \"❌\", \" \").concat(key, \"\\n\");\n });\n setError(statusMessage);\n } catch (err) {\n console.error(\"Connection test error:\", err);\n setError(\"❌ Datenbank-Verbindung fehlgeschlagen\");\n } finally{\n setLoading(false);\n }\n };\n const cleanupDuplicateCustomers = async ()=>{\n setLoading(true);\n setError(null);\n try {\n // Find all customers with duplicate emails\n const { data: allCustomers, error } = await _lib_supabase__WEBPACK_IMPORTED_MODULE_3__.supabase.from(\"kunden_projekte\").select(\"*\").order(\"erstellt_am\", {\n ascending: true\n });\n if (error) {\n console.error(\"Error fetching customers:\", error);\n setError(\"Fehler beim Laden der Kundendaten.\");\n return;\n }\n // Group by email\n const emailGroups = {};\n allCustomers === null || allCustomers === void 0 ? void 0 : allCustomers.forEach((customer)=>{\n if (!emailGroups[customer.email]) {\n emailGroups[customer.email] = [];\n }\n emailGroups[customer.email].push(customer);\n });\n // Find duplicates\n const duplicates = Object.entries(emailGroups).filter((param)=>{\n let [email, customers] = param;\n return customers.length > 1;\n }).map((param)=>{\n let [email, customers] = param;\n return {\n email,\n customers\n };\n });\n console.log(\"Found duplicate customers:\", duplicates);\n if (duplicates.length === 0) {\n setError(\"✅ Keine Duplikate gefunden!\");\n return;\n }\n let statusMessage = \"\\uD83D\\uDD0D \".concat(duplicates.length, \" E-Mail-Adressen mit Duplikaten gefunden:\\n\\n\");\n duplicates.forEach((param)=>{\n let { email, customers } = param;\n statusMessage += \"\\uD83D\\uDCE7 \".concat(email, \": \").concat(customers.length, \" Eintr\\xe4ge\\n\");\n customers.forEach((customer, index)=>{\n statusMessage += \" \".concat(index + 1, \". ID: \").concat(customer.id, \" (\").concat(customer.erstellt_am, \")\\n\");\n });\n statusMessage += \"\\n\";\n });\n statusMessage += \"\\uD83D\\uDCA1 Tipp: Der neueste Eintrag wird f\\xfcr neue Termine verwendet.\";\n setError(statusMessage);\n } catch (err) {\n console.error(\"Cleanup error:\", err);\n setError(\"Fehler beim Bereinigen der Duplikate.\");\n } finally{\n setLoading(false);\n }\n };\n const checkSpecificEmail = async (email)=>{\n console.log(\"\\uD83D\\uDD0D Checking specific email:\", email);\n const { data, error } = await _lib_supabase__WEBPACK_IMPORTED_MODULE_3__.supabase.from(\"kunden_projekte\").select(\"*\").eq(\"email\", email).order(\"erstellt_am\", {\n ascending: false\n });\n if (error) {\n console.error(\"Error checking email:\", error);\n return;\n }\n console.log(\"Found \".concat((data === null || data === void 0 ? void 0 : data.length) || 0, ' entries for email \"').concat(email, '\":'));\n data === null || data === void 0 ? void 0 : data.forEach((entry, index)=>{\n console.log(\"\".concat(index + 1, \". ID: \").concat(entry.id, ', Email: \"').concat(entry.email, '\", Created: ').concat(entry.erstellt_am));\n });\n return data;\n };\n const formatAppointmentDate = (date, time)=>{\n return new Intl.DateTimeFormat(\"de-DE\", {\n weekday: \"long\",\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\"\n }).format(date) + \" um \".concat(time, \" Uhr\");\n };\n const cleanupIncorrectDates = async ()=>{\n setLoading(true);\n setError(null);\n try {\n console.log(\"\\uD83E\\uDDF9 Cleaning up incorrect appointment dates...\");\n // Find all entries with the incorrect date \"2025-07-21 07:00:00\"\n const { data: incorrectEntries, error: findError } = await _lib_supabase__WEBPACK_IMPORTED_MODULE_3__.supabase.from(\"kunden_projekte\").select(\"*\").eq(\"termin_datum\", \"2025-07-21T07:00:00.000Z\");\n if (findError) {\n console.error(\"Error finding incorrect entries:\", findError);\n setError(\"Fehler beim Finden der fehlerhaften Eintr\\xe4ge.\");\n return;\n }\n console.log(\"Found \".concat((incorrectEntries === null || incorrectEntries === void 0 ? void 0 : incorrectEntries.length) || 0, \" entries with incorrect date\"));\n if (incorrectEntries && incorrectEntries.length > 0) {\n // Update all incorrect entries to remove the termin_datum\n const { error: updateError } = await _lib_supabase__WEBPACK_IMPORTED_MODULE_3__.supabase.from(\"kunden_projekte\").update({\n termin_datum: null\n }).eq(\"termin_datum\", \"2025-07-21T07:00:00.000Z\");\n if (updateError) {\n console.error(\"Error updating incorrect entries:\", updateError);\n setError(\"Fehler beim Bereinigen der fehlerhaften Eintr\\xe4ge.\");\n return;\n }\n console.log(\"✅ Successfully cleaned up incorrect appointment dates\");\n alert(\"✅ \".concat(incorrectEntries.length, \" fehlerhafte Termine wurden bereinigt!\"));\n } else {\n console.log(\"No incorrect entries found\");\n alert(\"✅ Keine fehlerhaften Termine gefunden!\");\n }\n } catch (err) {\n console.error(\"Unexpected error cleaning up dates:\", err);\n setError(\"Ein unerwarteter Fehler ist aufgetreten.\");\n } finally{\n setLoading(false);\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full max-w-4xl mx-auto\",\n children: [\n productionMode && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4 p-3 rounded-xl border-2 border-green-500 bg-green-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-green-700\",\n children: [\n \"✅ \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \"Terminbuchung aktiv:\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 476,\n columnNumber: 15\n }, this),\n \" Ihre Termine werden direkt in unserem System gespeichert.\"\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 475,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-2 flex space-x-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: testDatabaseConnection,\n disabled: loading,\n className: \"text-xs\",\n variant: \"outline\",\n size: \"sm\",\n children: loading ? \"Teste...\" : \"\\uD83D\\uDD0D DB-Verbindung testen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 479,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: cleanupDuplicateCustomers,\n disabled: loading,\n className: \"text-xs\",\n variant: \"outline\",\n size: \"sm\",\n children: loading ? \"Pr\\xfcfe...\" : \"\\uD83D\\uDD0D Duplikate pr\\xfcfen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 488,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: cleanupIncorrectDates,\n disabled: loading,\n className: \"text-xs\",\n variant: \"outline\",\n size: \"sm\",\n children: loading ? \"Bereinige...\" : \"\\uD83E\\uDDF9 Fehlerhafte Termine bereinigen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 497,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 478,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 474,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center space-x-2 sm:space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center space-y-2 \".concat(currentStep === \"form\" ? \"text-primary\" : currentStep === \"verification\" || currentStep === \"success\" ? \"text-primary\" : \"text-gray-400\"),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-10 h-10 rounded-full flex items-center justify-center transition-all duration-300 \".concat(currentStep === \"form\" ? \"bg-primary text-white shadow-lg scale-110\" : currentStep === \"verification\" || currentStep === \"success\" ? \"bg-primary text-white shadow-lg\" : \"bg-gray-200 text-gray-500\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Calendar_Mail_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 525,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 518,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs sm:text-sm font-medium text-center\",\n children: \"Termin ausw\\xe4hlen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 527,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 514,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-8 sm:w-12 h-1 rounded-full transition-all duration-300 \".concat(currentStep === \"verification\" || currentStep === \"success\" ? \"bg-primary\" : \"bg-gray-200\")\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 531,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center space-y-2 \".concat(currentStep === \"verification\" || currentStep === \"success\" ? \"text-primary\" : \"text-gray-400\"),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-10 h-10 rounded-full flex items-center justify-center transition-all duration-300 \".concat(currentStep === \"verification\" ? \"bg-primary text-white shadow-lg scale-110\" : currentStep === \"success\" ? \"bg-primary text-white shadow-lg\" : \"bg-gray-200 text-gray-500\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Calendar_Mail_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 550,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 543,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs sm:text-sm font-medium text-center\",\n children: \"E-Mail best\\xe4tigen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 552,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 538,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 512,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 511,\n columnNumber: 7\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6 p-4 rounded-xl border-2 border-red-500 bg-red-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"pre\", {\n className: \"text-red-600 text-sm whitespace-pre-wrap\",\n children: error\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 560,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 559,\n columnNumber: 9\n }, this),\n currentStep === \"form\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_AppointmentForm__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n onSubmit: handleFormSubmit,\n loading: loading\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 566,\n columnNumber: 9\n }, this),\n currentStep === \"verification\" && appointmentData && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_EmailVerification__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n email: appointmentData.email,\n onVerificationComplete: handleVerificationComplete,\n onBack: handleBack\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 573,\n columnNumber: 9\n }, this),\n currentStep === \"success\" && appointmentData && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full max-w-md mx-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-6 sm:p-8 rounded-3xl shadow-lg backdrop-blur-sm text-center\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.background, \"F0\")\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-6\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.primary, \"20\")\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Calendar_Mail_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"w-8 h-8\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.primary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 588,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 586,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-2xl font-bold mb-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.primary\n },\n children: \"Termin best\\xe4tigt!\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 591,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4 mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.secondary\n },\n children: customerAction === \"created\" ? \"Vielen Dank f\\xfcr Ihre erste Terminanfrage! Ihr Kundenprofil wurde erstellt.\" : \"Vielen Dank f\\xfcr Ihre weitere Terminanfrage! Ihr bestehendes Kundenprofil wurde aktualisiert.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 596,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 rounded-xl border-2\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.primary, \"10\"),\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.primary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"font-semibold mb-2\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.primary\n },\n children: \"Ihr Termin:\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 608,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.secondary\n },\n children: formatAppointmentDate(appointmentData.termin_datum, appointmentData.termin_time)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 611,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 603,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 rounded-xl border-2\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.primary, \"10\"),\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.primary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"font-semibold mb-2\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.primary\n },\n children: \"Kontaktdaten:\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 621,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.secondary\n },\n children: [\n appointmentData.name,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 625,\n columnNumber: 41\n }, this),\n appointmentData.firma,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 626,\n columnNumber: 42\n }, this),\n appointmentData.email\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 624,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 616,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 595,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs mb-6\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.secondary\n },\n children: \"Vielen Dank f\\xfcr Ihre Terminanfrage! Wir werden uns in K\\xfcrze bei Ihnen melden, um den Termin zu best\\xe4tigen.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 632,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: handleReset,\n className: \"w-full rounded-xl\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.primary,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_4__.colors.background\n },\n children: \"Neuen Termin buchen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 636,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 582,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 581,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentBooking.tsx\",\n lineNumber: 471,\n columnNumber: 5\n }, this);\n}\n_s(AppointmentBooking, \"w/v2Q61Af7tiOF6aAc3nN6MmSmQ=\", false, function() {\n return [\n _hooks_useAuth__WEBPACK_IMPORTED_MODULE_7__.useAuth\n ];\n});\n_c = AppointmentBooking;\nvar _c;\n$RefreshReg$(_c, \"AppointmentBooking\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvQXBwb2ludG1lbnRCb29raW5nLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFd0M7QUFDUTtBQUNzQjtBQUM1QjtBQUNKO0FBQ1U7QUFDSTtBQUNWO0FBYzNCLFNBQVNXOztJQUN0QixNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHRix1REFBT0E7SUFDeEIsTUFBTSxDQUFDRyxhQUFhQyxlQUFlLEdBQUdiLCtDQUFRQSxDQUFjO0lBQzVELE1BQU0sQ0FBQ2MsaUJBQWlCQyxtQkFBbUIsR0FBR2YsK0NBQVFBLENBQXlCO0lBQy9FLE1BQU0sQ0FBQ2dCLFNBQVNDLFdBQVcsR0FBR2pCLCtDQUFRQSxDQUFDO0lBQ3ZDLE1BQU0sQ0FBQ2tCLE9BQU9DLFNBQVMsR0FBR25CLCtDQUFRQSxDQUFnQjtJQUNsRCxNQUFNLENBQUNvQixVQUFVQyxZQUFZLEdBQUdyQiwrQ0FBUUEsQ0FBQyxRQUFRLHVDQUF1QztJQUN4RixNQUFNLENBQUNzQixnQkFBZ0JDLGtCQUFrQixHQUFHdkIsK0NBQVFBLENBQVcsRUFBRTtJQUNqRSxNQUFNLENBQUN3QixnQkFBZ0JDLGtCQUFrQixHQUFHekIsK0NBQVFBLENBQUMsUUFBUSw0QkFBNEI7SUFDekYsTUFBTSxDQUFDMEIsZ0JBQWdCQyxrQkFBa0IsR0FBRzNCLCtDQUFRQSxDQUErQjtJQUVuRixNQUFNNEIsbUJBQW1CLE9BQU9DO1FBQzlCZCxtQkFBbUJjO1FBRW5CLHVDQUF1QztRQUN2Q2hCLGVBQWU7SUFDakI7SUFFQSxNQUFNaUIsNkJBQTZCO1FBQ2pDLElBQUksQ0FBQ2hCLGlCQUFpQjtRQUV0QixrREFBa0Q7UUFDbEQsSUFBSSxDQUFDSCxNQUFNO1lBQ1RRLFNBQVM7WUFDVDtRQUNGO1FBRUFGLFdBQVc7UUFDWEUsU0FBUztRQUVULElBQUk7WUFDRiw2REFBNkQ7WUFDN0RZLFFBQVFDLEdBQUcsQ0FBQztZQUNaRCxRQUFRQyxHQUFHLENBQUMsdUJBQXVCbEIsZ0JBQWdCbUIsWUFBWTtZQUMvREYsUUFBUUMsR0FBRyxDQUFDLHNCQUFzQmxCLGdCQUFnQm9CLFdBQVc7WUFDN0RILFFBQVFDLEdBQUcsQ0FBQyw0QkFBNEIsT0FBT2xCLGdCQUFnQm1CLFlBQVk7WUFDM0VGLFFBQVFDLEdBQUcsQ0FBQyx1Q0FBdUNsQixnQkFBZ0JtQixZQUFZLFlBQVlFO1lBRTNGLGtEQUFrRDtZQUNsRCxJQUFJLENBQUVyQixDQUFBQSxnQkFBZ0JtQixZQUFZLFlBQVlFLElBQUcsR0FBSTtnQkFDbkRKLFFBQVFiLEtBQUssQ0FBQztnQkFDZEMsU0FBUztnQkFDVDtZQUNGO1lBRUEsTUFBTWlCLHNCQUFzQixJQUFJRCxLQUFLckIsZ0JBQWdCbUIsWUFBWTtZQUNqRUYsUUFBUUMsR0FBRyxDQUFDLGdDQUFnQ0k7WUFDNUNMLFFBQVFDLEdBQUcsQ0FBQyxzQ0FBc0NJLG9CQUFvQkMsV0FBVztZQUVqRixNQUFNLENBQUNDLE1BQU0sR0FBR3hCLGdCQUFnQm9CLFdBQVcsQ0FBRUssS0FBSyxDQUFDLEtBQUtDLEdBQUcsQ0FBQ0M7WUFDNURWLFFBQVFDLEdBQUcsQ0FBQyxvQkFBb0JNO1lBRWhDLHlFQUF5RTtZQUN6RSxNQUFNSSxPQUFPTixvQkFBb0JPLFdBQVc7WUFDNUMsTUFBTUMsUUFBUVIsb0JBQW9CUyxRQUFRO1lBQzFDLE1BQU1DLE1BQU1WLG9CQUFvQlcsT0FBTztZQUV2Q2hCLFFBQVFDLEdBQUcsQ0FBQyxvQkFBb0I7Z0JBQUVVO2dCQUFNRTtnQkFBT0U7Z0JBQUtSO1lBQU07WUFFMUQsc0RBQXNEO1lBQ3RELE1BQU1VLDJCQUEyQixJQUFJYixLQUFLTyxNQUFNRSxPQUFPRSxLQUFLUixPQUFPLEdBQUcsR0FBRztZQUN6RVAsUUFBUUMsR0FBRyxDQUFDLHNDQUFzQ2dCO1lBQ2xEakIsUUFBUUMsR0FBRyxDQUFDLDRDQUE0Q2dCLHlCQUF5QlgsV0FBVztZQUM1Rk4sUUFBUUMsR0FBRyxDQUFDLHdDQUF3Q2dCLHlCQUF5QkMsT0FBTztZQUNwRmxCLFFBQVFDLEdBQUcsQ0FBQywyQ0FBMkNnQix5QkFBeUJFLGNBQWMsQ0FBQztZQUUvRixrREFBa0Q7WUFDbEQsTUFBTUMsa0JBQWtCLEdBQVcsT0FBUlQsTUFBSyxLQUE4Q0ksT0FBM0MsQ0FBQ0YsUUFBUSxHQUFHUSxRQUFRLEdBQUdDLFFBQVEsQ0FBQyxHQUFHLE1BQUssS0FBc0NmLE9BQW5DUSxJQUFJTSxRQUFRLEdBQUdDLFFBQVEsQ0FBQyxHQUFHLE1BQUssS0FBcUMsT0FBbENmLE1BQU1jLFFBQVEsR0FBR0MsUUFBUSxDQUFDLEdBQUcsTUFBSztZQUNuSnRCLFFBQVFDLEdBQUcsQ0FBQyw4QkFBOEJtQjtZQUUxQyw4Q0FBOEM7WUFDOUNwQixRQUFRQyxHQUFHLENBQUM7WUFDWkQsUUFBUUMsR0FBRyxDQUFDLGdCQUFnQmxCLGdCQUFnQndDLEtBQUs7WUFDakR2QixRQUFRQyxHQUFHLENBQUMscUJBQXFCLE9BQU9sQixnQkFBZ0J3QyxLQUFLO1lBQzdEdkIsUUFBUUMsR0FBRyxDQUFDLHVCQUF1QmxCLGdCQUFnQndDLEtBQUssQ0FBQ0MsTUFBTTtZQUMvRHhCLFFBQVFDLEdBQUcsQ0FBQyx3QkFBd0JsQixnQkFBZ0J3QyxLQUFLLENBQUNFLElBQUk7WUFDOUR6QixRQUFRQyxHQUFHLENBQUMsMEJBQTBCbEIsZ0JBQWdCd0MsS0FBSyxDQUFDRSxJQUFJLEdBQUdDLFdBQVc7WUFFOUUsMkRBQTJEO1lBQzNELE1BQU1DLG1CQUFtQjVDLGdCQUFnQndDLEtBQUs7WUFFOUMsMERBQTBEO1lBQzFELE1BQU1LLGtCQUFrQjtnQkFDdEI3QyxnQkFBZ0J3QyxLQUFLLENBQUNFLElBQUk7Z0JBQzFCMUMsZ0JBQWdCd0MsS0FBSyxDQUFDRSxJQUFJLEdBQUdDLFdBQVc7Z0JBQ3hDM0MsZ0JBQWdCd0MsS0FBSyxDQUFDRSxJQUFJLEdBQUdJLFdBQVc7YUFDekM7WUFFRDdCLFFBQVFDLEdBQUcsQ0FBQyw4QkFBOEIyQjtZQUUxQyxJQUFJRSxvQkFBMkIsRUFBRTtZQUNqQyxJQUFJQyxhQUFrQjtZQUV0QiwyQkFBMkI7WUFDM0IsS0FBSyxNQUFNQyxrQkFBa0JKLGdCQUFpQjtnQkFDNUMsTUFBTSxFQUFFOUIsSUFBSSxFQUFFWCxLQUFLLEVBQUUsR0FBRyxNQUFNYixtREFBUUEsQ0FDbkMyRCxJQUFJLENBQUMsbUJBQ0xDLE1BQU0sQ0FBQyxLQUNQQyxFQUFFLENBQUMsU0FBU0gsZ0JBQ1pJLEtBQUssQ0FBQyxlQUFlO29CQUFFQyxXQUFXO2dCQUFNO2dCQUUzQyxJQUFJbEQsT0FBTztvQkFDVGEsUUFBUWIsS0FBSyxDQUFDLG1DQUFrRCxPQUFmNkMsZ0JBQWUsT0FBSzdDO29CQUNyRTRDLGFBQWE1QztvQkFDYjtnQkFDRjtnQkFFQSxJQUFJVyxRQUFRQSxLQUFLMEIsTUFBTSxHQUFHLEdBQUc7b0JBQzNCeEIsUUFBUUMsR0FBRyxDQUFDLFNBQThDK0IsT0FBckNsQyxLQUFLMEIsTUFBTSxFQUFDLDJCQUF3QyxPQUFmUSxnQkFBZTtvQkFDekVGLG9CQUFvQmhDO29CQUNwQjtnQkFDRjtZQUNGO1lBRUFFLFFBQVFDLEdBQUcsQ0FBQywwQkFBMEI7Z0JBQUU2QjtnQkFBbUJDO1lBQVc7WUFDdEUvQixRQUFRQyxHQUFHLENBQUMsdUNBQXVDNkIsQ0FBQUEsOEJBQUFBLHdDQUFBQSxrQkFBbUJOLE1BQU0sS0FBSTtZQUVoRixJQUFJTSxxQkFBcUJBLGtCQUFrQk4sTUFBTSxHQUFHLEdBQUc7Z0JBQ3JEeEIsUUFBUUMsR0FBRyxDQUFDO2dCQUNaNkIsa0JBQWtCUSxPQUFPLENBQUMsQ0FBQ0MsVUFBVUM7b0JBQ25DeEMsUUFBUUMsR0FBRyxDQUFDLEdBQXFCc0MsT0FBbEJDLFFBQVEsR0FBRSxVQUFnQ0QsT0FBeEJBLFNBQVNFLEVBQUUsRUFBQyxjQUF5Q0YsT0FBN0JBLFNBQVNoQixLQUFLLEVBQUMsZ0JBQStDZ0IsT0FBakNBLFNBQVNHLFdBQVcsRUFBQyxjQUFrQyxPQUF0QkgsU0FBU3JDLFlBQVk7Z0JBQzlJO1lBQ0Y7WUFFQSxJQUFJNkIsWUFBWTtnQkFDZC9CLFFBQVFiLEtBQUssQ0FBQyxxQ0FBcUM0QztnQkFDbkQzQyxTQUFTO2dCQUNUO1lBQ0Y7WUFFQSxNQUFNdUQsbUJBQW1CYixxQkFBcUJBLGtCQUFrQk4sTUFBTSxHQUFHLElBQUlNLGlCQUFpQixDQUFDLEVBQUUsR0FBRztZQUVwRyxJQUFJYSxrQkFBa0I7Z0JBQ3BCM0MsUUFBUUMsR0FBRyxDQUFDLDhCQUE4QjBDO2dCQUMxQzNDLFFBQVFDLEdBQUcsQ0FBQywwQ0FBMEMwQyxpQkFBaUJGLEVBQUU7Z0JBRXpFLHlEQUF5RDtnQkFDekQsSUFBSVgsa0JBQWtCTixNQUFNLEdBQUcsR0FBRztvQkFDaEN4QixRQUFRNEMsSUFBSSxDQUFDLFlBQTJEN0QsT0FBL0MrQyxrQkFBa0JOLE1BQU0sRUFBQyx3QkFBNEMsT0FBdEJ6QyxnQkFBZ0J3QyxLQUFLLEVBQUM7Z0JBQ2hHO1lBQ0YsT0FBTztnQkFDTHZCLFFBQVFDLEdBQUcsQ0FBQztZQUNkO1lBRUEsTUFBTTRDLHdCQUF3QjtnQkFDNUJ0QixPQUFPeEMsZ0JBQWdCd0MsS0FBSztnQkFDNUJ1QixjQUFjLEdBQThDQyxPQUEzQ2hFLGdCQUFnQitELFlBQVksRUFBQyxnQkFBZ0gvRCxPQUFsR2dFLHNCQUFzQmhFLGdCQUFnQm1CLFlBQVksRUFBR25CLGdCQUFnQm9CLFdBQVcsR0FBRyxpQkFBd0NwQixPQUF6QkEsZ0JBQWdCaUUsSUFBSSxFQUFDLE1BQXdDakUsT0FBcENBLGdCQUFnQmtFLE9BQU8sRUFBQyxjQUFrQyxPQUF0QmxFLGdCQUFnQm1FLEtBQUs7Z0JBQ2hQaEQsY0FBY2tCO2dCQUNkK0Isc0JBQXNCcEUsZ0JBQWdCaUUsSUFBSTtnQkFDMUNDLFNBQVNsRSxnQkFBZ0JrRSxPQUFPO2dCQUNoQ0MsT0FBT25FLGdCQUFnQm1FLEtBQUs7Z0JBQzVCRSxTQUFTO2dCQUNUQyxZQUFZO1lBQ2Q7WUFFQSxJQUFJQztZQUVKLElBQUlYLGtCQUFrQjtnQkFDcEIsdURBQXVEO2dCQUN2RDNDLFFBQVFDLEdBQUcsQ0FBQywyREFBaUQwQyxpQkFBaUJGLEVBQUU7Z0JBRWhGLE1BQU1jLGlCQUFpQixHQUFtRVYsT0FBaEVGLGlCQUFpQkcsWUFBWSxJQUFJLElBQUcsOEJBQStELE9BQW5DRCxzQkFBc0JDLFlBQVk7Z0JBRTVIOUMsUUFBUUMsR0FBRyxDQUFDLG9CQUFvQnNEO2dCQUVoQyxrREFBa0Q7Z0JBQ2xELE1BQU0sRUFBRXpELE1BQU0wRCxVQUFVLEVBQUVyRSxPQUFPc0UsV0FBVyxFQUFFLEdBQUcsTUFBTW5GLG1EQUFRQSxDQUM1RDJELElBQUksQ0FBQyxtQkFDTHlCLE1BQU0sQ0FBQztvQkFDTmpCLElBQUlFLGlCQUFpQkYsRUFBRTtvQkFDdkIsR0FBR0kscUJBQXFCO29CQUN4QkMsY0FBY1M7b0JBQ2RiLGFBQWEsSUFBSXRDLE9BQU9FLFdBQVc7Z0JBQ3JDLEdBQUc7b0JBQ0RxRCxZQUFZLEtBQUssd0JBQXdCO2dCQUMzQyxHQUNDekIsTUFBTSxDQUFDO2dCQUVWLElBQUl1QixhQUFhO29CQUNmekQsUUFBUWIsS0FBSyxDQUFDLCtCQUErQnNFO29CQUM3Q3JFLFNBQVM7b0JBQ1Q7Z0JBQ0Y7Z0JBRUEsSUFBSSxDQUFDb0UsY0FBY0EsV0FBV2hDLE1BQU0sS0FBSyxHQUFHO29CQUMxQ3hCLFFBQVFiLEtBQUssQ0FBQztvQkFDZEMsU0FBUztvQkFDVDtnQkFDRjtnQkFFQWtFLFNBQVNFLFVBQVUsQ0FBQyxFQUFFO2dCQUN0QnhELFFBQVFDLEdBQUcsQ0FBQyxrQ0FBa0NxRDtnQkFFOUMsbURBQW1EO2dCQUNuRCxNQUFNLEVBQUV4RCxNQUFNOEQsVUFBVSxFQUFFekUsT0FBTzBFLFdBQVcsRUFBRSxHQUFHLE1BQU12RixtREFBUUEsQ0FDNUQyRCxJQUFJLENBQUMsbUJBQ0xDLE1BQU0sQ0FBQyxLQUNQQyxFQUFFLENBQUMsTUFBTVEsaUJBQWlCRixFQUFFLEVBQzVCcUIsTUFBTTtnQkFFVCxJQUFJRCxhQUFhO29CQUNmN0QsUUFBUTRDLElBQUksQ0FBQywrQkFBK0JpQjtnQkFDOUMsT0FBTztvQkFDTDdELFFBQVFDLEdBQUcsQ0FBQyxzQ0FBc0MyRDtnQkFDcEQ7Z0JBRUFoRSxrQkFBa0I7WUFDcEIsT0FBTztnQkFDTCxnRUFBZ0U7Z0JBQ2hFSSxRQUFRQyxHQUFHLENBQUM7Z0JBQ1pELFFBQVFDLEdBQUcsQ0FBQyxnQkFBZ0I0QztnQkFFNUIsTUFBTSxFQUFFL0MsSUFBSSxFQUFFWCxLQUFLLEVBQUUsR0FBRyxNQUFNYixtREFBUUEsQ0FDbkMyRCxJQUFJLENBQUMsbUJBQ0w4QixNQUFNLENBQUNsQix1QkFDUFgsTUFBTSxDQUFDO2dCQUVWLElBQUkvQyxPQUFPO29CQUNUYSxRQUFRYixLQUFLLENBQUMsOEJBQThCQTtvQkFDNUNDLFNBQVM7b0JBQ1Q7Z0JBQ0Y7Z0JBRUEsSUFBSSxDQUFDVSxRQUFRQSxLQUFLMEIsTUFBTSxLQUFLLEdBQUc7b0JBQzlCeEIsUUFBUWIsS0FBSyxDQUFDO29CQUNkQyxTQUFTO29CQUNUO2dCQUNGO2dCQUVBa0UsU0FBU3hELElBQUksQ0FBQyxFQUFFLEVBQUUsMENBQTBDO2dCQUM1REUsUUFBUUMsR0FBRyxDQUFDLG9DQUFvQ3FEO2dCQUNoRDFELGtCQUFrQjtZQUNwQjtZQUVBZCxlQUFlO1FBQ2pCLEVBQUUsT0FBT2tGLEtBQUs7WUFDWmhFLFFBQVFiLEtBQUssQ0FBQyx3Q0FBd0M2RTtZQUN0RDVFLFNBQVM7UUFDWCxTQUFVO1lBQ1JGLFdBQVc7UUFDYjtJQUNGO0lBRUEsTUFBTStFLGFBQWE7UUFDakJuRixlQUFlO1FBQ2ZNLFNBQVM7SUFDWDtJQUVBLE1BQU04RSxjQUFjO1FBQ2xCcEYsZUFBZTtRQUNmRSxtQkFBbUI7UUFDbkJJLFNBQVM7UUFDVEYsV0FBVztRQUNYVSxrQkFBa0I7SUFDcEI7SUFFQSxNQUFNdUUseUJBQXlCO1FBQzdCakYsV0FBVztRQUNYRSxTQUFTO1FBRVQsSUFBSTtZQUNGLGdEQUFnRDtZQUNoRCxNQUFNLEVBQUVVLElBQUksRUFBRVgsS0FBSyxFQUFFLEdBQUcsTUFBTWIsbURBQVFBLENBQ25DMkQsSUFBSSxDQUFDLG1CQUNMQyxNQUFNLENBQUMsS0FDUGtDLEtBQUssQ0FBQztZQUVULElBQUlqRixPQUFPO2dCQUNUYSxRQUFRYixLQUFLLENBQUMsb0NBQW9DQTtnQkFDbERDLFNBQVMsd0NBQXNELE9BQWRELE1BQU1rRixPQUFPO2dCQUM5RDtZQUNGO1lBRUFyRSxRQUFRQyxHQUFHLENBQUMsbUNBQW1DSDtZQUMvQyxNQUFNd0UsVUFBVUMsT0FBT0MsSUFBSSxDQUFDMUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDO1lBQ3hDRSxRQUFRQyxHQUFHLENBQUMsb0JBQW9CcUU7WUFDaEM5RSxrQkFBa0I4RTtZQUVsQixtQ0FBbUM7WUFDbkMsTUFBTUcsbUJBQW1CO2dCQUN2QmxELE9BQU8rQyxRQUFRSSxRQUFRLENBQUM7Z0JBQ3hCQyxhQUFhTCxRQUFRSSxRQUFRLENBQUMsa0JBQWtCSixRQUFRSSxRQUFRLENBQUM7Z0JBQ2pFeEUsY0FBY29FLFFBQVFJLFFBQVEsQ0FBQztnQkFDL0IxQixNQUFNc0IsUUFBUUksUUFBUSxDQUFDLFdBQVdKLFFBQVFJLFFBQVEsQ0FBQztnQkFDbkRFLE9BQU9OLFFBQVFJLFFBQVEsQ0FBQyxZQUFZSixRQUFRSSxRQUFRLENBQUM7Z0JBQ3JERyxTQUFTUCxRQUFRSSxRQUFRLENBQUMsY0FBY0osUUFBUUksUUFBUSxDQUFDO1lBQzNEO1lBRUExRSxRQUFRQyxHQUFHLENBQUMsc0NBQXNDd0U7WUFFbEQsSUFBSUssZ0JBQWdCO1lBQ3BCQSxpQkFBaUI7WUFDakJQLE9BQU9RLE9BQU8sQ0FBQ04sa0JBQWtCbkMsT0FBTyxDQUFDO29CQUFDLENBQUMwQyxLQUFLQyxVQUFVO2dCQUN4REgsaUJBQWlCLEdBQTRCRSxPQUF6QkMsWUFBWSxNQUFNLEtBQUksS0FBTyxPQUFKRCxLQUFJO1lBQ25EO1lBRUE1RixTQUFTMEY7UUFFWCxFQUFFLE9BQU9kLEtBQUs7WUFDWmhFLFFBQVFiLEtBQUssQ0FBQywwQkFBMEI2RTtZQUN4QzVFLFNBQVM7UUFDWCxTQUFVO1lBQ1JGLFdBQVc7UUFDYjtJQUNGO0lBRUEsTUFBTWdHLDRCQUE0QjtRQUNoQ2hHLFdBQVc7UUFDWEUsU0FBUztRQUVULElBQUk7WUFDRiwyQ0FBMkM7WUFDM0MsTUFBTSxFQUFFVSxNQUFNcUYsWUFBWSxFQUFFaEcsS0FBSyxFQUFFLEdBQUcsTUFBTWIsbURBQVFBLENBQ2pEMkQsSUFBSSxDQUFDLG1CQUNMQyxNQUFNLENBQUMsS0FDUEUsS0FBSyxDQUFDLGVBQWU7Z0JBQUVDLFdBQVc7WUFBSztZQUUxQyxJQUFJbEQsT0FBTztnQkFDVGEsUUFBUWIsS0FBSyxDQUFDLDZCQUE2QkE7Z0JBQzNDQyxTQUFTO2dCQUNUO1lBQ0Y7WUFFQSxpQkFBaUI7WUFDakIsTUFBTWdHLGNBQTBDLENBQUM7WUFDakRELHlCQUFBQSxtQ0FBQUEsYUFBYzdDLE9BQU8sQ0FBQ0MsQ0FBQUE7Z0JBQ3BCLElBQUksQ0FBQzZDLFdBQVcsQ0FBQzdDLFNBQVNoQixLQUFLLENBQUMsRUFBRTtvQkFDaEM2RCxXQUFXLENBQUM3QyxTQUFTaEIsS0FBSyxDQUFDLEdBQUcsRUFBRTtnQkFDbEM7Z0JBQ0E2RCxXQUFXLENBQUM3QyxTQUFTaEIsS0FBSyxDQUFDLENBQUM4RCxJQUFJLENBQUM5QztZQUNuQztZQUVBLGtCQUFrQjtZQUNsQixNQUFNK0MsYUFBYWYsT0FBT1EsT0FBTyxDQUFDSyxhQUMvQkcsTUFBTSxDQUFDO29CQUFDLENBQUNoRSxPQUFPaUUsVUFBVTt1QkFBS0EsVUFBVWhFLE1BQU0sR0FBRztZQUFBLEdBQ2xEZixHQUFHLENBQUM7b0JBQUMsQ0FBQ2MsT0FBT2lFLFVBQVU7dUJBQU07b0JBQUVqRTtvQkFBT2lFO2dCQUFVO1lBQUE7WUFFbkR4RixRQUFRQyxHQUFHLENBQUMsOEJBQThCcUY7WUFFMUMsSUFBSUEsV0FBVzlELE1BQU0sS0FBSyxHQUFHO2dCQUMzQnBDLFNBQVM7Z0JBQ1Q7WUFDRjtZQUVBLElBQUkwRixnQkFBZ0IsZ0JBQXdCLE9BQWxCUSxXQUFXOUQsTUFBTSxFQUFDO1lBRTVDOEQsV0FBV2hELE9BQU8sQ0FBQztvQkFBQyxFQUFFZixLQUFLLEVBQUVpRSxTQUFTLEVBQUU7Z0JBQ3RDVixpQkFBaUIsZ0JBQWdCVSxPQUFWakUsT0FBTSxNQUFxQixPQUFqQmlFLFVBQVVoRSxNQUFNLEVBQUM7Z0JBQ2xEZ0UsVUFBVWxELE9BQU8sQ0FBQyxDQUFDQyxVQUFVQztvQkFDM0JzQyxpQkFBaUIsS0FBdUJ2QyxPQUFsQkMsUUFBUSxHQUFFLFVBQXdCRCxPQUFoQkEsU0FBU0UsRUFBRSxFQUFDLE1BQXlCLE9BQXJCRixTQUFTRyxXQUFXLEVBQUM7Z0JBQy9FO2dCQUNBb0MsaUJBQWlCO1lBQ25CO1lBRUFBLGlCQUFpQjtZQUVqQjFGLFNBQVMwRjtRQUVYLEVBQUUsT0FBT2QsS0FBSztZQUNaaEUsUUFBUWIsS0FBSyxDQUFDLGtCQUFrQjZFO1lBQ2hDNUUsU0FBUztRQUNYLFNBQVU7WUFDUkYsV0FBVztRQUNiO0lBQ0Y7SUFFQSxNQUFNeUMscUJBQXFCLE9BQU9KO1FBQ2hDdkIsUUFBUUMsR0FBRyxDQUFDLHlDQUErQnNCO1FBRTNDLE1BQU0sRUFBRXpCLElBQUksRUFBRVgsS0FBSyxFQUFFLEdBQUcsTUFBTWIsbURBQVFBLENBQ25DMkQsSUFBSSxDQUFDLG1CQUNMQyxNQUFNLENBQUMsS0FDUEMsRUFBRSxDQUFDLFNBQVNaLE9BQ1phLEtBQUssQ0FBQyxlQUFlO1lBQUVDLFdBQVc7UUFBTTtRQUUzQyxJQUFJbEQsT0FBTztZQUNUYSxRQUFRYixLQUFLLENBQUMseUJBQXlCQTtZQUN2QztRQUNGO1FBRUFhLFFBQVFDLEdBQUcsQ0FBQyxTQUFpRHNCLE9BQXhDekIsQ0FBQUEsaUJBQUFBLDJCQUFBQSxLQUFNMEIsTUFBTSxLQUFJLEdBQUUsd0JBQTRCLE9BQU5ELE9BQU07UUFDbkV6QixpQkFBQUEsMkJBQUFBLEtBQU13QyxPQUFPLENBQUMsQ0FBQ21ELE9BQU9qRDtZQUNwQnhDLFFBQVFDLEdBQUcsQ0FBQyxHQUFxQndGLE9BQWxCakQsUUFBUSxHQUFFLFVBQTZCaUQsT0FBckJBLE1BQU1oRCxFQUFFLEVBQUMsY0FBc0NnRCxPQUExQkEsTUFBTWxFLEtBQUssRUFBQyxnQkFBZ0MsT0FBbEJrRSxNQUFNL0MsV0FBVztRQUNuRztRQUVBLE9BQU81QztJQUNUO0lBRUEsTUFBTWlELHdCQUF3QixDQUFDMkMsTUFBWUM7UUFDekMsT0FBTyxJQUFJQyxLQUFLQyxjQUFjLENBQUMsU0FBUztZQUN0Q0MsU0FBUztZQUNUL0UsS0FBSztZQUNMRixPQUFPO1lBQ1BGLE1BQU07UUFDUixHQUFHb0YsTUFBTSxDQUFDTCxRQUFRLE9BQVksT0FBTEMsTUFBSztJQUNoQztJQUVBLE1BQU1LLHdCQUF3QjtRQUM1QjlHLFdBQVc7UUFDWEUsU0FBUztRQUVULElBQUk7WUFDRlksUUFBUUMsR0FBRyxDQUFDO1lBRVosaUVBQWlFO1lBQ2pFLE1BQU0sRUFBRUgsTUFBTW1HLGdCQUFnQixFQUFFOUcsT0FBTytHLFNBQVMsRUFBRSxHQUFHLE1BQU01SCxtREFBUUEsQ0FDaEUyRCxJQUFJLENBQUMsbUJBQ0xDLE1BQU0sQ0FBQyxLQUNQQyxFQUFFLENBQUMsZ0JBQWdCO1lBRXRCLElBQUkrRCxXQUFXO2dCQUNibEcsUUFBUWIsS0FBSyxDQUFDLG9DQUFvQytHO2dCQUNsRDlHLFNBQVM7Z0JBQ1Q7WUFDRjtZQUVBWSxRQUFRQyxHQUFHLENBQUMsU0FBdUMsT0FBOUJnRyxDQUFBQSw2QkFBQUEsdUNBQUFBLGlCQUFrQnpFLE1BQU0sS0FBSSxHQUFFO1lBRW5ELElBQUl5RSxvQkFBb0JBLGlCQUFpQnpFLE1BQU0sR0FBRyxHQUFHO2dCQUNuRCwwREFBMEQ7Z0JBQzFELE1BQU0sRUFBRXJDLE9BQU9nSCxXQUFXLEVBQUUsR0FBRyxNQUFNN0gsbURBQVFBLENBQzFDMkQsSUFBSSxDQUFDLG1CQUNMbUUsTUFBTSxDQUFDO29CQUFFbEcsY0FBYztnQkFBSyxHQUM1QmlDLEVBQUUsQ0FBQyxnQkFBZ0I7Z0JBRXRCLElBQUlnRSxhQUFhO29CQUNmbkcsUUFBUWIsS0FBSyxDQUFDLHFDQUFxQ2dIO29CQUNuRC9HLFNBQVM7b0JBQ1Q7Z0JBQ0Y7Z0JBRUFZLFFBQVFDLEdBQUcsQ0FBQztnQkFDWm9HLE1BQU0sS0FBNkIsT0FBeEJKLGlCQUFpQnpFLE1BQU0sRUFBQztZQUNyQyxPQUFPO2dCQUNMeEIsUUFBUUMsR0FBRyxDQUFDO2dCQUNab0csTUFBTTtZQUNSO1FBRUYsRUFBRSxPQUFPckMsS0FBSztZQUNaaEUsUUFBUWIsS0FBSyxDQUFDLHVDQUF1QzZFO1lBQ3JENUUsU0FBUztRQUNYLFNBQVU7WUFDUkYsV0FBVztRQUNiO0lBQ0Y7SUFFQSxxQkFDRSw4REFBQ29IO1FBQUlDLFdBQVU7O1lBRVo5RyxnQ0FDQyw4REFBQzZHO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ0M7d0JBQUVELFdBQVU7OzRCQUF5QjswQ0FDbEMsOERBQUNFOzBDQUFPOzs7Ozs7NEJBQTZCOzs7Ozs7O2tDQUV6Qyw4REFBQ0g7d0JBQUlDLFdBQVU7OzBDQUNiLDhEQUFDckkseURBQU1BO2dDQUNMd0ksU0FBU3ZDO2dDQUNUd0MsVUFBVTFIO2dDQUNWc0gsV0FBVTtnQ0FDVkssU0FBUTtnQ0FDUkMsTUFBSzswQ0FFSjVILFVBQVUsYUFBYTs7Ozs7OzBDQUUxQiw4REFBQ2YseURBQU1BO2dDQUNMd0ksU0FBU3hCO2dDQUNUeUIsVUFBVTFIO2dDQUNWc0gsV0FBVTtnQ0FDVkssU0FBUTtnQ0FDUkMsTUFBSzswQ0FFSjVILFVBQVUsZ0JBQWE7Ozs7OzswQ0FFMUIsOERBQUNmLHlEQUFNQTtnQ0FDTHdJLFNBQVNWO2dDQUNUVyxVQUFVMUg7Z0NBQ1ZzSCxXQUFVO2dDQUNWSyxTQUFRO2dDQUNSQyxNQUFLOzBDQUVKNUgsVUFBVSxpQkFBaUI7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQkFPcEMsOERBQUNxSDtnQkFBSUMsV0FBVTswQkFDYiw0RUFBQ0Q7b0JBQUlDLFdBQVU7O3NDQUViLDhEQUFDRDs0QkFBSUMsV0FBVyx3Q0FHZixPQUZDMUgsZ0JBQWdCLFNBQVMsaUJBQ3pCQSxnQkFBZ0Isa0JBQWtCQSxnQkFBZ0IsWUFBWSxpQkFBaUI7OzhDQUUvRSw4REFBQ3lIO29DQUFJQyxXQUFXLHVGQU1mLE9BTEMxSCxnQkFBZ0IsU0FDWiw4Q0FDQUEsZ0JBQWdCLGtCQUFrQkEsZ0JBQWdCLFlBQ2hELG9DQUNBOzhDQUVOLDRFQUFDVCxxR0FBUUE7d0NBQUNtSSxXQUFVOzs7Ozs7Ozs7Ozs4Q0FFdEIsOERBQUNPO29DQUFLUCxXQUFVOzhDQUE2Qzs7Ozs7Ozs7Ozs7O3NDQUkvRCw4REFBQ0Q7NEJBQUlDLFdBQVcsNERBSWYsT0FIQzFILGdCQUFnQixrQkFBa0JBLGdCQUFnQixZQUM5QyxlQUNBOzs7Ozs7c0NBSU4sOERBQUN5SDs0QkFBSUMsV0FBVyx3Q0FJZixPQUhDMUgsZ0JBQWdCLGtCQUFrQkEsZ0JBQWdCLFlBQzlDLGlCQUNBOzs4Q0FFSiw4REFBQ3lIO29DQUFJQyxXQUFXLHVGQU1mLE9BTEMxSCxnQkFBZ0IsaUJBQ1osOENBQ0FBLGdCQUFnQixZQUNkLG9DQUNBOzhDQUVOLDRFQUFDUixxR0FBSUE7d0NBQUNrSSxXQUFVOzs7Ozs7Ozs7Ozs4Q0FFbEIsOERBQUNPO29DQUFLUCxXQUFVOzhDQUE2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WUFNbEVwSCx1QkFDQyw4REFBQ21IO2dCQUFJQyxXQUFVOzBCQUNiLDRFQUFDUTtvQkFBSVIsV0FBVTs4QkFBNENwSDs7Ozs7Ozs7Ozs7WUFLOUROLGdCQUFnQix3QkFDZiw4REFBQ0wsd0RBQWVBO2dCQUNkd0ksVUFBVW5IO2dCQUNWWixTQUFTQTs7Ozs7O1lBSVpKLGdCQUFnQixrQkFBa0JFLGlDQUNqQyw4REFBQ04sMERBQWlCQTtnQkFDaEI4QyxPQUFPeEMsZ0JBQWdCd0MsS0FBSztnQkFDNUIwRix3QkFBd0JsSDtnQkFDeEJtSCxRQUFRakQ7Ozs7OztZQUlYcEYsZ0JBQWdCLGFBQWFFLGlDQUM1Qiw4REFBQ3VIO2dCQUFJQyxXQUFVOzBCQUNiLDRFQUFDRDtvQkFDQ0MsV0FBVTtvQkFDVlksT0FBTzt3QkFBRUMsaUJBQWlCLEdBQXFCLE9BQWxCN0ksK0NBQU1BLENBQUM4SSxVQUFVLEVBQUM7b0JBQUk7O3NDQUVuRCw4REFBQ2Y7NEJBQUlDLFdBQVU7NEJBQ1ZZLE9BQU87Z0NBQUVDLGlCQUFpQixHQUFrQixPQUFmN0ksK0NBQU1BLENBQUMrSSxPQUFPLEVBQUM7NEJBQUk7c0NBQ25ELDRFQUFDbkosc0dBQVdBO2dDQUFDb0ksV0FBVTtnQ0FBVVksT0FBTztvQ0FBRUksT0FBT2hKLCtDQUFNQSxDQUFDK0ksT0FBTztnQ0FBQzs7Ozs7Ozs7Ozs7c0NBR2xFLDhEQUFDRTs0QkFBR2pCLFdBQVU7NEJBQTBCWSxPQUFPO2dDQUFFSSxPQUFPaEosK0NBQU1BLENBQUMrSSxPQUFPOzRCQUFDO3NDQUFHOzs7Ozs7c0NBSTFFLDhEQUFDaEI7NEJBQUlDLFdBQVU7OzhDQUNiLDhEQUFDQztvQ0FBRUQsV0FBVTtvQ0FBVVksT0FBTzt3Q0FBRUksT0FBT2hKLCtDQUFNQSxDQUFDa0osU0FBUztvQ0FBQzs4Q0FDckQ5SCxtQkFBbUIsWUFDaEIsa0ZBQ0E7Ozs7Ozs4Q0FJTiw4REFBQzJHO29DQUFJQyxXQUFVO29DQUNWWSxPQUFPO3dDQUNMQyxpQkFBaUIsR0FBa0IsT0FBZjdJLCtDQUFNQSxDQUFDK0ksT0FBTyxFQUFDO3dDQUNuQ0ksYUFBYW5KLCtDQUFNQSxDQUFDK0ksT0FBTztvQ0FDN0I7O3NEQUNILDhEQUFDZDs0Q0FBRUQsV0FBVTs0Q0FBcUJZLE9BQU87Z0RBQUVJLE9BQU9oSiwrQ0FBTUEsQ0FBQytJLE9BQU87NENBQUM7c0RBQUc7Ozs7OztzREFHcEUsOERBQUNkOzRDQUFFRCxXQUFVOzRDQUFVWSxPQUFPO2dEQUFFSSxPQUFPaEosK0NBQU1BLENBQUNrSixTQUFTOzRDQUFDO3NEQUNyRDFFLHNCQUFzQmhFLGdCQUFnQm1CLFlBQVksRUFBR25CLGdCQUFnQm9CLFdBQVc7Ozs7Ozs7Ozs7Ozs4Q0FJckYsOERBQUNtRztvQ0FBSUMsV0FBVTtvQ0FDVlksT0FBTzt3Q0FDTEMsaUJBQWlCLEdBQWtCLE9BQWY3SSwrQ0FBTUEsQ0FBQytJLE9BQU8sRUFBQzt3Q0FDbkNJLGFBQWFuSiwrQ0FBTUEsQ0FBQytJLE9BQU87b0NBQzdCOztzREFDSCw4REFBQ2Q7NENBQUVELFdBQVU7NENBQXFCWSxPQUFPO2dEQUFFSSxPQUFPaEosK0NBQU1BLENBQUMrSSxPQUFPOzRDQUFDO3NEQUFHOzs7Ozs7c0RBR3BFLDhEQUFDZDs0Q0FBRUQsV0FBVTs0Q0FBVVksT0FBTztnREFBRUksT0FBT2hKLCtDQUFNQSxDQUFDa0osU0FBUzs0Q0FBQzs7Z0RBQ3JEMUksZ0JBQWdCaUUsSUFBSTs4REFBQyw4REFBQzJFOzs7OztnREFDdEI1SSxnQkFBZ0JtRSxLQUFLOzhEQUFDLDhEQUFDeUU7Ozs7O2dEQUN2QjVJLGdCQUFnQndDLEtBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0NBSzVCLDhEQUFDaUY7NEJBQUVELFdBQVU7NEJBQWVZLE9BQU87Z0NBQUVJLE9BQU9oSiwrQ0FBTUEsQ0FBQ2tKLFNBQVM7NEJBQUM7c0NBQUc7Ozs7OztzQ0FJaEUsOERBQUN2Six5REFBTUE7NEJBQ0x3SSxTQUFTeEM7NEJBQ1RxQyxXQUFVOzRCQUNWWSxPQUFPO2dDQUNMQyxpQkFBaUI3SSwrQ0FBTUEsQ0FBQytJLE9BQU87Z0NBQy9CQyxPQUFPaEosK0NBQU1BLENBQUM4SSxVQUFVOzRCQUMxQjtzQ0FDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRYjtHQW5uQndCMUk7O1FBQ0xELG1EQUFPQTs7O0tBREZDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2NvbXBvbmVudHMvQXBwb2ludG1lbnRCb29raW5nLnRzeD80NzA3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5cclxuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBDaGVja0NpcmNsZSwgQ2FsZW5kYXIsIE1haWwsIEFycm93TGVmdCB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIjtcclxuaW1wb3J0IHsgc3VwYWJhc2UgfSBmcm9tICdAL2xpYi9zdXBhYmFzZSc7XHJcbmltcG9ydCB7IGNvbG9ycyB9IGZyb20gJ0AvbGliL2NvbG9ycyc7XHJcbmltcG9ydCBBcHBvaW50bWVudEZvcm0gZnJvbSAnLi9BcHBvaW50bWVudEZvcm0nO1xyXG5pbXBvcnQgRW1haWxWZXJpZmljYXRpb24gZnJvbSAnLi9FbWFpbFZlcmlmaWNhdGlvbic7XHJcbmltcG9ydCB7IHVzZUF1dGggfSBmcm9tICdAL2hvb2tzL3VzZUF1dGgnO1xyXG5cclxudHlwZSBCb29raW5nU3RlcCA9ICdmb3JtJyB8ICd2ZXJpZmljYXRpb24nIHwgJ3N1Y2Nlc3MnO1xyXG5cclxuaW50ZXJmYWNlIEFwcG9pbnRtZW50RGF0YSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRlbGVmb246IHN0cmluZztcclxuICBmaXJtYTogc3RyaW5nO1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgYmVzY2hyZWlidW5nOiBzdHJpbmc7XHJcbiAgdGVybWluX2RhdHVtPzogRGF0ZTtcclxuICB0ZXJtaW5fdGltZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQXBwb2ludG1lbnRCb29raW5nKCkge1xyXG4gIGNvbnN0IHsgdXNlciB9ID0gdXNlQXV0aCgpO1xyXG4gIGNvbnN0IFtjdXJyZW50U3RlcCwgc2V0Q3VycmVudFN0ZXBdID0gdXNlU3RhdGU8Qm9va2luZ1N0ZXA+KCdmb3JtJyk7XHJcbiAgY29uc3QgW2FwcG9pbnRtZW50RGF0YSwgc2V0QXBwb2ludG1lbnREYXRhXSA9IHVzZVN0YXRlPEFwcG9pbnRtZW50RGF0YSB8IG51bGw+KG51bGwpO1xyXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xyXG4gIGNvbnN0IFt0ZXN0TW9kZSwgc2V0VGVzdE1vZGVdID0gdXNlU3RhdGUoZmFsc2UpOyAvLyBQcm9kdWN0aW9uIG1vZGUgLSBubyB0ZXN0IGluZGljYXRvcnNcclxuICBjb25zdCBbdGFibGVTdHJ1Y3R1cmUsIHNldFRhYmxlU3RydWN0dXJlXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihbXSk7XHJcbiAgY29uc3QgW3Byb2R1Y3Rpb25Nb2RlLCBzZXRQcm9kdWN0aW9uTW9kZV0gPSB1c2VTdGF0ZShmYWxzZSk7IC8vIEVuYWJsZSBlbWFpbCB2ZXJpZmljYXRpb25cclxuICBjb25zdCBbY3VzdG9tZXJBY3Rpb24sIHNldEN1c3RvbWVyQWN0aW9uXSA9IHVzZVN0YXRlPCdjcmVhdGVkJyB8ICd1cGRhdGVkJyB8IG51bGw+KG51bGwpO1xyXG5cclxuICBjb25zdCBoYW5kbGVGb3JtU3VibWl0ID0gYXN5bmMgKGRhdGE6IEFwcG9pbnRtZW50RGF0YSkgPT4ge1xyXG4gICAgc2V0QXBwb2ludG1lbnREYXRhKGRhdGEpO1xyXG4gICAgXHJcbiAgICAvLyBBbHdheXMgZ28gdG8gZW1haWwgdmVyaWZpY2F0aW9uIHN0ZXBcclxuICAgIHNldEN1cnJlbnRTdGVwKCd2ZXJpZmljYXRpb24nKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVWZXJpZmljYXRpb25Db21wbGV0ZSA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYXBwb2ludG1lbnREYXRhKSByZXR1cm47XHJcblxyXG4gICAgLy8gUHLDvGZlIEF1dGhlbnRpZml6aWVydW5nIG5hY2ggRS1NYWlsLUJlc3TDpHRpZ3VuZ1xyXG4gICAgaWYgKCF1c2VyKSB7XHJcbiAgICAgIHNldEVycm9yKCdCaXR0ZSBiZXN0w6R0aWdlIHp1ZXJzdCBkZWluZSBFLU1haWwtQWRyZXNzZSwgdW0gZGVuIFRlcm1pbiB6dSBzcGVpY2hlcm4uJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzZXRMb2FkaW5nKHRydWUpO1xyXG4gICAgc2V0RXJyb3IobnVsbCk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgLy8gQ3JlYXRlIHRoZSBhcHBvaW50bWVudCBkYXRldGltZSBieSBjb21iaW5pbmcgZGF0ZSBhbmQgdGltZVxyXG4gICAgICBjb25zb2xlLmxvZygnPT09IERBVEUgUFJPQ0VTU0lORyBERUJVRyA9PT0nKTtcclxuICAgICAgY29uc29sZS5sb2coJ0lucHV0IHRlcm1pbl9kYXR1bTonLCBhcHBvaW50bWVudERhdGEudGVybWluX2RhdHVtKTtcclxuICAgICAgY29uc29sZS5sb2coJ0lucHV0IHRlcm1pbl90aW1lOicsIGFwcG9pbnRtZW50RGF0YS50ZXJtaW5fdGltZSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdJbnB1dCB0ZXJtaW5fZGF0dW0gdHlwZTonLCB0eXBlb2YgYXBwb2ludG1lbnREYXRhLnRlcm1pbl9kYXR1bSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdJbnB1dCB0ZXJtaW5fZGF0dW0gaW5zdGFuY2VvZiBEYXRlOicsIGFwcG9pbnRtZW50RGF0YS50ZXJtaW5fZGF0dW0gaW5zdGFuY2VvZiBEYXRlKTtcclxuICAgICAgXHJcbiAgICAgIC8vIENoZWNrIGlmIHRlcm1pbl9kYXR1bSBpcyBhY3R1YWxseSBhIERhdGUgb2JqZWN0XHJcbiAgICAgIGlmICghKGFwcG9pbnRtZW50RGF0YS50ZXJtaW5fZGF0dW0gaW5zdGFuY2VvZiBEYXRlKSkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ+KdjCB0ZXJtaW5fZGF0dW0gaXMgbm90IGEgRGF0ZSBvYmplY3QhJyk7XHJcbiAgICAgICAgc2V0RXJyb3IoJ0ZlaGxlcjogVW5nw7xsdGlnZXMgRGF0dW0uIEJpdHRlIHfDpGhsZW4gU2llIGVpbmVuIFRlcm1pbiBhdXMuJyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBhcHBvaW50bWVudERhdGVUaW1lID0gbmV3IERhdGUoYXBwb2ludG1lbnREYXRhLnRlcm1pbl9kYXR1bSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdDcmVhdGVkIGFwcG9pbnRtZW50RGF0ZVRpbWU6JywgYXBwb2ludG1lbnREYXRlVGltZSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdhcHBvaW50bWVudERhdGVUaW1lLnRvSVNPU3RyaW5nKCk6JywgYXBwb2ludG1lbnREYXRlVGltZS50b0lTT1N0cmluZygpKTtcclxuICAgICAgXHJcbiAgICAgIGNvbnN0IFtob3Vyc10gPSBhcHBvaW50bWVudERhdGEudGVybWluX3RpbWUhLnNwbGl0KCc6JykubWFwKE51bWJlcik7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdFeHRyYWN0ZWQgaG91cnM6JywgaG91cnMpO1xyXG4gICAgICBcclxuICAgICAgLy8gQ3JlYXRlIHRoZSBhcHBvaW50bWVudCBkYXRldGltZSBpbiBsb2NhbCB0aW1lIHRvIGF2b2lkIHRpbWV6b25lIGlzc3Vlc1xyXG4gICAgICBjb25zdCB5ZWFyID0gYXBwb2ludG1lbnREYXRlVGltZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICBjb25zdCBtb250aCA9IGFwcG9pbnRtZW50RGF0ZVRpbWUuZ2V0TW9udGgoKTtcclxuICAgICAgY29uc3QgZGF5ID0gYXBwb2ludG1lbnREYXRlVGltZS5nZXREYXRlKCk7XHJcbiAgICAgIFxyXG4gICAgICBjb25zb2xlLmxvZygnRGF0ZSBjb21wb25lbnRzOicsIHsgeWVhciwgbW9udGgsIGRheSwgaG91cnMgfSk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBDcmVhdGUgdGhlIGZpbmFsIGFwcG9pbnRtZW50IGRhdGV0aW1lIGluIGxvY2FsIHRpbWVcclxuICAgICAgY29uc3QgZmluYWxBcHBvaW50bWVudERhdGVUaW1lID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRheSwgaG91cnMsIDAsIDAsIDApO1xyXG4gICAgICBjb25zb2xlLmxvZygnRmluYWwgYXBwb2ludG1lbnREYXRlVGltZSAobG9jYWwpOicsIGZpbmFsQXBwb2ludG1lbnREYXRlVGltZSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdGaW5hbCBhcHBvaW50bWVudERhdGVUaW1lLnRvSVNPU3RyaW5nKCk6JywgZmluYWxBcHBvaW50bWVudERhdGVUaW1lLnRvSVNPU3RyaW5nKCkpO1xyXG4gICAgICBjb25zb2xlLmxvZygnRmluYWwgYXBwb2ludG1lbnREYXRlVGltZS5nZXRUaW1lKCk6JywgZmluYWxBcHBvaW50bWVudERhdGVUaW1lLmdldFRpbWUoKSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdGaW5hbCBhcHBvaW50bWVudERhdGVUaW1lIGxvY2FsIHN0cmluZzonLCBmaW5hbEFwcG9pbnRtZW50RGF0ZVRpbWUudG9Mb2NhbGVTdHJpbmcoJ2RlLURFJykpO1xyXG4gICAgICBcclxuICAgICAgLy8gU3RvcmUgdGhlIGFwcG9pbnRtZW50IHRpbWUgaW4gbG9jYWwgdGltZSBmb3JtYXRcclxuICAgICAgY29uc3QgbG9jYWxUaW1lU3RyaW5nID0gYCR7eWVhcn0tJHsobW9udGggKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LSR7ZGF5LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1UJHtob3Vycy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OjAwOjAwYDtcclxuICAgICAgY29uc29sZS5sb2coJ0xvY2FsIHRpbWUgc3RyaW5nIHRvIHNhdmU6JywgbG9jYWxUaW1lU3RyaW5nKTtcclxuXHJcbiAgICAgIC8vIENoZWNrIGlmIGN1c3RvbWVyIGFscmVhZHkgZXhpc3RzIChieSBlbWFpbClcclxuICAgICAgY29uc29sZS5sb2coJz09PSBDVVNUT01FUiBDSEVDSyBERUJVRyA9PT0nKTtcclxuICAgICAgY29uc29sZS5sb2coJ0lucHV0IGVtYWlsOicsIGFwcG9pbnRtZW50RGF0YS5lbWFpbCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdJbnB1dCBlbWFpbCB0eXBlOicsIHR5cGVvZiBhcHBvaW50bWVudERhdGEuZW1haWwpO1xyXG4gICAgICBjb25zb2xlLmxvZygnSW5wdXQgZW1haWwgbGVuZ3RoOicsIGFwcG9pbnRtZW50RGF0YS5lbWFpbC5sZW5ndGgpO1xyXG4gICAgICBjb25zb2xlLmxvZygnSW5wdXQgZW1haWwgdHJpbW1lZDonLCBhcHBvaW50bWVudERhdGEuZW1haWwudHJpbSgpKTtcclxuICAgICAgY29uc29sZS5sb2coJ0lucHV0IGVtYWlsIGxvd2VyY2FzZTonLCBhcHBvaW50bWVudERhdGEuZW1haWwudHJpbSgpLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICBcclxuICAgICAgLy8gRmlyc3QsIGxldCdzIGNoZWNrIHdoYXQncyBpbiB0aGUgZGF0YWJhc2UgZm9yIHRoaXMgZW1haWxcclxuICAgICAgYXdhaXQgY2hlY2tTcGVjaWZpY0VtYWlsKGFwcG9pbnRtZW50RGF0YS5lbWFpbCk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBUcnkgbXVsdGlwbGUgZW1haWwgdmFyaWF0aW9ucyB0byBmaW5kIGV4aXN0aW5nIGN1c3RvbWVyXHJcbiAgICAgIGNvbnN0IGVtYWlsVmFyaWF0aW9ucyA9IFtcclxuICAgICAgICBhcHBvaW50bWVudERhdGEuZW1haWwudHJpbSgpLFxyXG4gICAgICAgIGFwcG9pbnRtZW50RGF0YS5lbWFpbC50cmltKCkudG9Mb3dlckNhc2UoKSxcclxuICAgICAgICBhcHBvaW50bWVudERhdGEuZW1haWwudHJpbSgpLnRvVXBwZXJDYXNlKClcclxuICAgICAgXTtcclxuICAgICAgXHJcbiAgICAgIGNvbnNvbGUubG9nKCdDaGVja2luZyBlbWFpbCB2YXJpYXRpb25zOicsIGVtYWlsVmFyaWF0aW9ucyk7XHJcbiAgICAgIFxyXG4gICAgICBsZXQgZXhpc3RpbmdDdXN0b21lcnM6IGFueVtdID0gW107XHJcbiAgICAgIGxldCBjaGVja0Vycm9yOiBhbnkgPSBudWxsO1xyXG4gICAgICBcclxuICAgICAgLy8gVHJ5IGVhY2ggZW1haWwgdmFyaWF0aW9uXHJcbiAgICAgIGZvciAoY29uc3QgZW1haWxWYXJpYXRpb24gb2YgZW1haWxWYXJpYXRpb25zKSB7XHJcbiAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgc3VwYWJhc2VcclxuICAgICAgICAgIC5mcm9tKCdrdW5kZW5fcHJvamVrdGUnKVxyXG4gICAgICAgICAgLnNlbGVjdCgnKicpXHJcbiAgICAgICAgICAuZXEoJ2VtYWlsJywgZW1haWxWYXJpYXRpb24pXHJcbiAgICAgICAgICAub3JkZXIoJ2Vyc3RlbGx0X2FtJywgeyBhc2NlbmRpbmc6IGZhbHNlIH0pO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChlcnJvcikge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgY2hlY2tpbmcgZW1haWwgdmFyaWF0aW9uIFwiJHtlbWFpbFZhcmlhdGlvbn1cIjpgLCBlcnJvcik7XHJcbiAgICAgICAgICBjaGVja0Vycm9yID0gZXJyb3I7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhgRm91bmQgJHtkYXRhLmxlbmd0aH0gY3VzdG9tZXJzIHdpdGggZW1haWwgXCIke2VtYWlsVmFyaWF0aW9ufVwiYCk7XHJcbiAgICAgICAgICBleGlzdGluZ0N1c3RvbWVycyA9IGRhdGE7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKCdEYXRhYmFzZSBxdWVyeSByZXN1bHQ6JywgeyBleGlzdGluZ0N1c3RvbWVycywgY2hlY2tFcnJvciB9KTtcclxuICAgICAgY29uc29sZS5sb2coJ051bWJlciBvZiBleGlzdGluZyBjdXN0b21lcnMgZm91bmQ6JywgZXhpc3RpbmdDdXN0b21lcnM/Lmxlbmd0aCB8fCAwKTtcclxuICAgICAgXHJcbiAgICAgIGlmIChleGlzdGluZ0N1c3RvbWVycyAmJiBleGlzdGluZ0N1c3RvbWVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FsbCBmb3VuZCBjdXN0b21lcnMgd2l0aCB0aGlzIGVtYWlsOicpO1xyXG4gICAgICAgIGV4aXN0aW5nQ3VzdG9tZXJzLmZvckVhY2goKGN1c3RvbWVyLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coYCR7aW5kZXggKyAxfS4gSUQ6ICR7Y3VzdG9tZXIuaWR9LCBFbWFpbDogXCIke2N1c3RvbWVyLmVtYWlsfVwiLCBDcmVhdGVkOiAke2N1c3RvbWVyLmVyc3RlbGx0X2FtfSwgVGVybWluOiAke2N1c3RvbWVyLnRlcm1pbl9kYXR1bX1gKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNoZWNrRXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjaGVja2luZyBleGlzdGluZyBjdXN0b21lcjonLCBjaGVja0Vycm9yKTtcclxuICAgICAgICBzZXRFcnJvcignRmVobGVyIGJlaW0gw5xiZXJwcsO8ZmVuIGRlciBLdW5kZW5kYXRlbi4gQml0dGUgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuJyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBleGlzdGluZ0N1c3RvbWVyID0gZXhpc3RpbmdDdXN0b21lcnMgJiYgZXhpc3RpbmdDdXN0b21lcnMubGVuZ3RoID4gMCA/IGV4aXN0aW5nQ3VzdG9tZXJzWzBdIDogbnVsbDtcclxuXHJcbiAgICAgIGlmIChleGlzdGluZ0N1c3RvbWVyKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ+KchSBFeGlzdGluZyBjdXN0b21lciBmb3VuZDonLCBleGlzdGluZ0N1c3RvbWVyKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnV2lsbCBVUERBVEUgZXhpc3RpbmcgY3VzdG9tZXIgd2l0aCBJRDonLCBleGlzdGluZ0N1c3RvbWVyLmlkKTtcclxuICAgICAgICBcclxuICAgICAgICAvLyBXYXJuIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBlbnRyaWVzIHdpdGggdGhlIHNhbWUgZW1haWxcclxuICAgICAgICBpZiAoZXhpc3RpbmdDdXN0b21lcnMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKGDimqDvuI8gRm91bmQgJHtleGlzdGluZ0N1c3RvbWVycy5sZW5ndGh9IGVudHJpZXMgd2l0aCBlbWFpbCAke2FwcG9pbnRtZW50RGF0YS5lbWFpbH0uIFVzaW5nIHRoZSBtb3N0IHJlY2VudCBvbmUuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCfinYwgTm8gZXhpc3RpbmcgY3VzdG9tZXIgZm91bmQgLSB3aWxsIENSRUFURSBuZXcnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgYXBwb2ludG1lbnREYXRhVG9TYXZlID0ge1xyXG4gICAgICAgIGVtYWlsOiBhcHBvaW50bWVudERhdGEuZW1haWwsXHJcbiAgICAgICAgYmVzY2hyZWlidW5nOiBgJHthcHBvaW50bWVudERhdGEuYmVzY2hyZWlidW5nfVxcblxcblRlcm1pbjogJHtmb3JtYXRBcHBvaW50bWVudERhdGUoYXBwb2ludG1lbnREYXRhLnRlcm1pbl9kYXR1bSEsIGFwcG9pbnRtZW50RGF0YS50ZXJtaW5fdGltZSEpfVxcblxcbktvbnRha3Q6ICR7YXBwb2ludG1lbnREYXRhLm5hbWV9ICgke2FwcG9pbnRtZW50RGF0YS50ZWxlZm9ufSlcXG5GaXJtYTogJHthcHBvaW50bWVudERhdGEuZmlybWF9YCxcclxuICAgICAgICB0ZXJtaW5fZGF0dW06IGxvY2FsVGltZVN0cmluZywgLy8gU3RvcmUgaW4gbG9jYWwgdGltZSBmb3JtYXRcclxuICAgICAgICBhbnNwcmVjaHBhcnRuZXJfbmFtZTogYXBwb2ludG1lbnREYXRhLm5hbWUsXHJcbiAgICAgICAgdGVsZWZvbjogYXBwb2ludG1lbnREYXRhLnRlbGVmb24sXHJcbiAgICAgICAgZmlybWE6IGFwcG9pbnRtZW50RGF0YS5maXJtYSxcclxuICAgICAgICBiZXJhdGVyOiAnV2Via2xhciBUZWFtJyxcclxuICAgICAgICB6aWVsZ3J1cHBlOiAnVGVybWluYW5mcmFnZSdcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGxldCByZXN1bHQ7XHJcblxyXG4gICAgICBpZiAoZXhpc3RpbmdDdXN0b21lcikge1xyXG4gICAgICAgIC8vIFVzZSB1cHNlcnQgdG8gZW5zdXJlIHdlIHVwZGF0ZSB0aGUgZXhpc3RpbmcgY3VzdG9tZXJcclxuICAgICAgICBjb25zb2xlLmxvZygn8J+UhCBTdGFydGluZyBVUFNFUlQgb3BlcmF0aW9uIGZvciBjdXN0b21lciBJRDonLCBleGlzdGluZ0N1c3RvbWVyLmlkKTtcclxuICAgICAgICBcclxuICAgICAgICBjb25zdCBuZXdEZXNjcmlwdGlvbiA9IGAke2V4aXN0aW5nQ3VzdG9tZXIuYmVzY2hyZWlidW5nIHx8ICcnfVxcblxcbi0tLSBORVVFUiBURVJNSU4gLS0tXFxuJHthcHBvaW50bWVudERhdGFUb1NhdmUuYmVzY2hyZWlidW5nfWA7XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc29sZS5sb2coJ05ldyBkZXNjcmlwdGlvbjonLCBuZXdEZXNjcmlwdGlvbik7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gVXNlIHVwc2VydCB3aXRoIHRoZSBleGlzdGluZyBJRCB0byBmb3JjZSB1cGRhdGVcclxuICAgICAgICBjb25zdCB7IGRhdGE6IHVwc2VydERhdGEsIGVycm9yOiB1cHNlcnRFcnJvciB9ID0gYXdhaXQgc3VwYWJhc2VcclxuICAgICAgICAgIC5mcm9tKCdrdW5kZW5fcHJvamVrdGUnKVxyXG4gICAgICAgICAgLnVwc2VydCh7XHJcbiAgICAgICAgICAgIGlkOiBleGlzdGluZ0N1c3RvbWVyLmlkLCAvLyBVc2UgZXhpc3RpbmcgSUQgdG8gZm9yY2UgdXBkYXRlXHJcbiAgICAgICAgICAgIC4uLmFwcG9pbnRtZW50RGF0YVRvU2F2ZSxcclxuICAgICAgICAgICAgYmVzY2hyZWlidW5nOiBuZXdEZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgZXJzdGVsbHRfYW06IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxyXG4gICAgICAgICAgfSwge1xyXG4gICAgICAgICAgICBvbkNvbmZsaWN0OiAnaWQnIC8vIFVwZGF0ZSBvbiBJRCBjb25mbGljdFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5zZWxlY3QoJyonKTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodXBzZXJ0RXJyb3IpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+KdjCBFcnJvciB1cHNlcnRpbmcgY3VzdG9tZXI6JywgdXBzZXJ0RXJyb3IpO1xyXG4gICAgICAgICAgc2V0RXJyb3IoJ0ZlaGxlciBiZWltIEFrdHVhbGlzaWVyZW4gZGVyIEt1bmRlbmRhdGVuLiBCaXR0ZSB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dC4nKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKCF1cHNlcnREYXRhIHx8IHVwc2VydERhdGEubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCfinYwgVXBzZXJ0IG9wZXJhdGlvbiByZXR1cm5lZCBubyBkYXRhJyk7XHJcbiAgICAgICAgICBzZXRFcnJvcignRmVobGVyIGJlaW0gQWt0dWFsaXNpZXJlbiBkZXIgS3VuZGVuZGF0ZW4uIEJpdHRlIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LicpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICByZXN1bHQgPSB1cHNlcnREYXRhWzBdO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCfinIUgQ3VzdG9tZXIgdXBkYXRlZCB2aWEgdXBzZXJ0OicsIHJlc3VsdCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gVmVyaWZ5IHRoZSB1cGRhdGUgYnkgZmV0Y2hpbmcgdGhlIGN1c3RvbWVyIGFnYWluXHJcbiAgICAgICAgY29uc3QgeyBkYXRhOiB2ZXJpZnlEYXRhLCBlcnJvcjogdmVyaWZ5RXJyb3IgfSA9IGF3YWl0IHN1cGFiYXNlXHJcbiAgICAgICAgICAuZnJvbSgna3VuZGVuX3Byb2pla3RlJylcclxuICAgICAgICAgIC5zZWxlY3QoJyonKVxyXG4gICAgICAgICAgLmVxKCdpZCcsIGV4aXN0aW5nQ3VzdG9tZXIuaWQpXHJcbiAgICAgICAgICAuc2luZ2xlKCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHZlcmlmeUVycm9yKSB7XHJcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ+KaoO+4jyBDb3VsZCBub3QgdmVyaWZ5IHVwZGF0ZTonLCB2ZXJpZnlFcnJvcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCfinIUgVXBkYXRlIHZlcmlmaWVkIC0gY3VzdG9tZXIgZGF0YTonLCB2ZXJpZnlEYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgc2V0Q3VzdG9tZXJBY3Rpb24oJ3VwZGF0ZWQnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBDcmVhdGUgbmV3IGN1c3RvbWVyIHJlY29yZCBPTkxZIGlmIG5vIGV4aXN0aW5nIGN1c3RvbWVyIGZvdW5kXHJcbiAgICAgICAgY29uc29sZS5sb2coJ/CfhpUgU3RhcnRpbmcgQ1JFQVRFIG9wZXJhdGlvbiBmb3IgbmV3IGN1c3RvbWVyJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0NyZWF0ZSBkYXRhOicsIGFwcG9pbnRtZW50RGF0YVRvU2F2ZSk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgc3VwYWJhc2VcclxuICAgICAgICAgIC5mcm9tKCdrdW5kZW5fcHJvamVrdGUnKVxyXG4gICAgICAgICAgLmluc2VydChhcHBvaW50bWVudERhdGFUb1NhdmUpXHJcbiAgICAgICAgICAuc2VsZWN0KCcqJyk7XHJcblxyXG4gICAgICAgIGlmIChlcnJvcikge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcign4p2MIEVycm9yIGNyZWF0aW5nIGN1c3RvbWVyOicsIGVycm9yKTtcclxuICAgICAgICAgIHNldEVycm9yKCdGZWhsZXIgYmVpbSBFcnN0ZWxsZW4gZGVyIEt1bmRlbmRhdGVuLiBCaXR0ZSB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dC4nKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcign4p2MIENyZWF0ZSBvcGVyYXRpb24gcmV0dXJuZWQgbm8gZGF0YScpO1xyXG4gICAgICAgICAgc2V0RXJyb3IoJ0ZlaGxlciBiZWltIEVyc3RlbGxlbiBkZXIgS3VuZGVuZGF0ZW4uIEJpdHRlIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LicpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmVzdWx0ID0gZGF0YVswXTsgLy8gR2V0IHRoZSBmaXJzdCAoYW5kIG9ubHkpIGNyZWF0ZWQgcmVjb3JkXHJcbiAgICAgICAgY29uc29sZS5sb2coJ+KchSBDdXN0b21lciBjcmVhdGVkIHN1Y2Nlc3NmdWxseTonLCByZXN1bHQpO1xyXG4gICAgICAgIHNldEN1c3RvbWVyQWN0aW9uKCdjcmVhdGVkJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHNldEN1cnJlbnRTdGVwKCdzdWNjZXNzJyk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignVW5leHBlY3RlZCBlcnJvciBzYXZpbmcgYXBwb2ludG1lbnQ6JywgZXJyKTtcclxuICAgICAgc2V0RXJyb3IoJ0VpbiB1bmVyd2FydGV0ZXIgRmVobGVyIGlzdCBhdWZnZXRyZXRlbi4gQml0dGUgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuJyk7XHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVCYWNrID0gKCkgPT4ge1xyXG4gICAgc2V0Q3VycmVudFN0ZXAoJ2Zvcm0nKTtcclxuICAgIHNldEVycm9yKG51bGwpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xyXG4gICAgc2V0Q3VycmVudFN0ZXAoJ2Zvcm0nKTtcclxuICAgIHNldEFwcG9pbnRtZW50RGF0YShudWxsKTtcclxuICAgIHNldEVycm9yKG51bGwpO1xyXG4gICAgc2V0TG9hZGluZyhmYWxzZSk7XHJcbiAgICBzZXRDdXN0b21lckFjdGlvbihudWxsKTtcclxuICB9O1xyXG5cclxuICBjb25zdCB0ZXN0RGF0YWJhc2VDb25uZWN0aW9uID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgc2V0TG9hZGluZyh0cnVlKTtcclxuICAgIHNldEVycm9yKG51bGwpO1xyXG4gICAgXHJcbiAgICB0cnkge1xyXG4gICAgICAvLyBUZXN0IGJhc2ljIGNvbm5lY3Rpb24gYW5kIGdldCB0YWJsZSBzdHJ1Y3R1cmVcclxuICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgc3VwYWJhc2VcclxuICAgICAgICAuZnJvbSgna3VuZGVuX3Byb2pla3RlJylcclxuICAgICAgICAuc2VsZWN0KCcqJylcclxuICAgICAgICAubGltaXQoMSk7XHJcbiAgICAgIFxyXG4gICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdEYXRhYmFzZSBjb25uZWN0aW9uIHRlc3QgZmFpbGVkOicsIGVycm9yKTtcclxuICAgICAgICBzZXRFcnJvcihgRGF0ZW5iYW5rLVZlcmJpbmR1bmcgZmVobGdlc2NobGFnZW46ICR7ZXJyb3IubWVzc2FnZX1gKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIGNvbnNvbGUubG9nKCdEYXRhYmFzZSBjb25uZWN0aW9uIHN1Y2Nlc3NmdWw6JywgZGF0YSk7XHJcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSBPYmplY3Qua2V5cyhkYXRhWzBdIHx8IHt9KTtcclxuICAgICAgY29uc29sZS5sb2coJ1RhYmxlIHN0cnVjdHVyZTonLCBjb2x1bW5zKTtcclxuICAgICAgc2V0VGFibGVTdHJ1Y3R1cmUoY29sdW1ucyk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBBbmFseXplIHdoaWNoIGNvbHVtbnMgd2UgY2FuIHVzZVxyXG4gICAgICBjb25zdCBhdmFpbGFibGVDb2x1bW5zID0ge1xyXG4gICAgICAgIGVtYWlsOiBjb2x1bW5zLmluY2x1ZGVzKCdlbWFpbCcpLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBjb2x1bW5zLmluY2x1ZGVzKCdkZXNjcmlwdGlvbicpIHx8IGNvbHVtbnMuaW5jbHVkZXMoJ2Jlc2NocmVpYnVuZycpLFxyXG4gICAgICAgIHRlcm1pbl9kYXR1bTogY29sdW1ucy5pbmNsdWRlcygndGVybWluX2RhdHVtJyksXHJcbiAgICAgICAgbmFtZTogY29sdW1ucy5pbmNsdWRlcygnbmFtZScpIHx8IGNvbHVtbnMuaW5jbHVkZXMoJ2Fuc3ByZWNocGFydG4nKSxcclxuICAgICAgICBwaG9uZTogY29sdW1ucy5pbmNsdWRlcygncGhvbmUnKSB8fCBjb2x1bW5zLmluY2x1ZGVzKCd0ZWxlZm9uJyksXHJcbiAgICAgICAgY29tcGFueTogY29sdW1ucy5pbmNsdWRlcygnY29tcGFueScpIHx8IGNvbHVtbnMuaW5jbHVkZXMoJ2Zpcm1hJylcclxuICAgICAgfTtcclxuICAgICAgXHJcbiAgICAgIGNvbnNvbGUubG9nKCdBdmFpbGFibGUgY29sdW1ucyBmb3IgYXBwb2ludG1lbnQ6JywgYXZhaWxhYmxlQ29sdW1ucyk7XHJcbiAgICAgIFxyXG4gICAgICBsZXQgc3RhdHVzTWVzc2FnZSA9ICfinIUgRGF0ZW5iYW5rLVZlcmJpbmR1bmcgZXJmb2xncmVpY2ghXFxuXFxuJztcclxuICAgICAgc3RhdHVzTWVzc2FnZSArPSAn8J+TiyBWZXJmw7xnYmFyZSBTcGFsdGVuOlxcbic7XHJcbiAgICAgIE9iamVjdC5lbnRyaWVzKGF2YWlsYWJsZUNvbHVtbnMpLmZvckVhY2goKFtrZXksIGF2YWlsYWJsZV0pID0+IHtcclxuICAgICAgICBzdGF0dXNNZXNzYWdlICs9IGAke2F2YWlsYWJsZSA/ICfinIUnIDogJ+KdjCd9ICR7a2V5fVxcbmA7XHJcbiAgICAgIH0pO1xyXG4gICAgICBcclxuICAgICAgc2V0RXJyb3Ioc3RhdHVzTWVzc2FnZSk7XHJcbiAgICAgIFxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Nvbm5lY3Rpb24gdGVzdCBlcnJvcjonLCBlcnIpO1xyXG4gICAgICBzZXRFcnJvcign4p2MIERhdGVuYmFuay1WZXJiaW5kdW5nIGZlaGxnZXNjaGxhZ2VuJyk7XHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb25zdCBjbGVhbnVwRHVwbGljYXRlQ3VzdG9tZXJzID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgc2V0TG9hZGluZyh0cnVlKTtcclxuICAgIHNldEVycm9yKG51bGwpO1xyXG4gICAgXHJcbiAgICB0cnkge1xyXG4gICAgICAvLyBGaW5kIGFsbCBjdXN0b21lcnMgd2l0aCBkdXBsaWNhdGUgZW1haWxzXHJcbiAgICAgIGNvbnN0IHsgZGF0YTogYWxsQ3VzdG9tZXJzLCBlcnJvciB9ID0gYXdhaXQgc3VwYWJhc2VcclxuICAgICAgICAuZnJvbSgna3VuZGVuX3Byb2pla3RlJylcclxuICAgICAgICAuc2VsZWN0KCcqJylcclxuICAgICAgICAub3JkZXIoJ2Vyc3RlbGx0X2FtJywgeyBhc2NlbmRpbmc6IHRydWUgfSk7XHJcbiAgICAgIFxyXG4gICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBjdXN0b21lcnM6JywgZXJyb3IpO1xyXG4gICAgICAgIHNldEVycm9yKCdGZWhsZXIgYmVpbSBMYWRlbiBkZXIgS3VuZGVuZGF0ZW4uJyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICAvLyBHcm91cCBieSBlbWFpbFxyXG4gICAgICBjb25zdCBlbWFpbEdyb3VwczogeyBbZW1haWw6IHN0cmluZ106IGFueVtdIH0gPSB7fTtcclxuICAgICAgYWxsQ3VzdG9tZXJzPy5mb3JFYWNoKGN1c3RvbWVyID0+IHtcclxuICAgICAgICBpZiAoIWVtYWlsR3JvdXBzW2N1c3RvbWVyLmVtYWlsXSkge1xyXG4gICAgICAgICAgZW1haWxHcm91cHNbY3VzdG9tZXIuZW1haWxdID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVtYWlsR3JvdXBzW2N1c3RvbWVyLmVtYWlsXS5wdXNoKGN1c3RvbWVyKTtcclxuICAgICAgfSk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBGaW5kIGR1cGxpY2F0ZXNcclxuICAgICAgY29uc3QgZHVwbGljYXRlcyA9IE9iamVjdC5lbnRyaWVzKGVtYWlsR3JvdXBzKVxyXG4gICAgICAgIC5maWx0ZXIoKFtlbWFpbCwgY3VzdG9tZXJzXSkgPT4gY3VzdG9tZXJzLmxlbmd0aCA+IDEpXHJcbiAgICAgICAgLm1hcCgoW2VtYWlsLCBjdXN0b21lcnNdKSA9PiAoeyBlbWFpbCwgY3VzdG9tZXJzIH0pKTtcclxuICAgICAgXHJcbiAgICAgIGNvbnNvbGUubG9nKCdGb3VuZCBkdXBsaWNhdGUgY3VzdG9tZXJzOicsIGR1cGxpY2F0ZXMpO1xyXG4gICAgICBcclxuICAgICAgaWYgKGR1cGxpY2F0ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgc2V0RXJyb3IoJ+KchSBLZWluZSBEdXBsaWthdGUgZ2VmdW5kZW4hJyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICBsZXQgc3RhdHVzTWVzc2FnZSA9IGDwn5SNICR7ZHVwbGljYXRlcy5sZW5ndGh9IEUtTWFpbC1BZHJlc3NlbiBtaXQgRHVwbGlrYXRlbiBnZWZ1bmRlbjpcXG5cXG5gO1xyXG4gICAgICBcclxuICAgICAgZHVwbGljYXRlcy5mb3JFYWNoKCh7IGVtYWlsLCBjdXN0b21lcnMgfSkgPT4ge1xyXG4gICAgICAgIHN0YXR1c01lc3NhZ2UgKz0gYPCfk6cgJHtlbWFpbH06ICR7Y3VzdG9tZXJzLmxlbmd0aH0gRWludHLDpGdlXFxuYDtcclxuICAgICAgICBjdXN0b21lcnMuZm9yRWFjaCgoY3VzdG9tZXIsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICBzdGF0dXNNZXNzYWdlICs9IGAgICR7aW5kZXggKyAxfS4gSUQ6ICR7Y3VzdG9tZXIuaWR9ICgke2N1c3RvbWVyLmVyc3RlbGx0X2FtfSlcXG5gO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHN0YXR1c01lc3NhZ2UgKz0gJ1xcbic7XHJcbiAgICAgIH0pO1xyXG4gICAgICBcclxuICAgICAgc3RhdHVzTWVzc2FnZSArPSAn8J+SoSBUaXBwOiBEZXIgbmV1ZXN0ZSBFaW50cmFnIHdpcmQgZsO8ciBuZXVlIFRlcm1pbmUgdmVyd2VuZGV0Lic7XHJcbiAgICAgIFxyXG4gICAgICBzZXRFcnJvcihzdGF0dXNNZXNzYWdlKTtcclxuICAgICAgXHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignQ2xlYW51cCBlcnJvcjonLCBlcnIpO1xyXG4gICAgICBzZXRFcnJvcignRmVobGVyIGJlaW0gQmVyZWluaWdlbiBkZXIgRHVwbGlrYXRlLicpO1xyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgY2hlY2tTcGVjaWZpY0VtYWlsID0gYXN5bmMgKGVtYWlsOiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnNvbGUubG9nKCfwn5SNIENoZWNraW5nIHNwZWNpZmljIGVtYWlsOicsIGVtYWlsKTtcclxuICAgIFxyXG4gICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgc3VwYWJhc2VcclxuICAgICAgLmZyb20oJ2t1bmRlbl9wcm9qZWt0ZScpXHJcbiAgICAgIC5zZWxlY3QoJyonKVxyXG4gICAgICAuZXEoJ2VtYWlsJywgZW1haWwpXHJcbiAgICAgIC5vcmRlcignZXJzdGVsbHRfYW0nLCB7IGFzY2VuZGluZzogZmFsc2UgfSk7XHJcbiAgICBcclxuICAgIGlmIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjaGVja2luZyBlbWFpbDonLCBlcnJvcik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29uc29sZS5sb2coYEZvdW5kICR7ZGF0YT8ubGVuZ3RoIHx8IDB9IGVudHJpZXMgZm9yIGVtYWlsIFwiJHtlbWFpbH1cIjpgKTtcclxuICAgIGRhdGE/LmZvckVhY2goKGVudHJ5LCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhgJHtpbmRleCArIDF9LiBJRDogJHtlbnRyeS5pZH0sIEVtYWlsOiBcIiR7ZW50cnkuZW1haWx9XCIsIENyZWF0ZWQ6ICR7ZW50cnkuZXJzdGVsbHRfYW19YCk7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZm9ybWF0QXBwb2ludG1lbnREYXRlID0gKGRhdGU6IERhdGUsIHRpbWU6IHN0cmluZykgPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdkZS1ERScsIHtcclxuICAgICAgd2Vla2RheTogJ2xvbmcnLFxyXG4gICAgICBkYXk6ICcyLWRpZ2l0JyxcclxuICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcclxuICAgICAgeWVhcjogJ251bWVyaWMnXHJcbiAgICB9KS5mb3JtYXQoZGF0ZSkgKyBgIHVtICR7dGltZX0gVWhyYDtcclxuICB9O1xyXG5cclxuICBjb25zdCBjbGVhbnVwSW5jb3JyZWN0RGF0ZXMgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBzZXRMb2FkaW5nKHRydWUpO1xyXG4gICAgc2V0RXJyb3IobnVsbCk7XHJcbiAgICBcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCfwn6e5IENsZWFuaW5nIHVwIGluY29ycmVjdCBhcHBvaW50bWVudCBkYXRlcy4uLicpO1xyXG4gICAgICBcclxuICAgICAgLy8gRmluZCBhbGwgZW50cmllcyB3aXRoIHRoZSBpbmNvcnJlY3QgZGF0ZSBcIjIwMjUtMDctMjEgMDc6MDA6MDBcIlxyXG4gICAgICBjb25zdCB7IGRhdGE6IGluY29ycmVjdEVudHJpZXMsIGVycm9yOiBmaW5kRXJyb3IgfSA9IGF3YWl0IHN1cGFiYXNlXHJcbiAgICAgICAgLmZyb20oJ2t1bmRlbl9wcm9qZWt0ZScpXHJcbiAgICAgICAgLnNlbGVjdCgnKicpXHJcbiAgICAgICAgLmVxKCd0ZXJtaW5fZGF0dW0nLCAnMjAyNS0wNy0yMVQwNzowMDowMC4wMDBaJyk7XHJcbiAgICAgIFxyXG4gICAgICBpZiAoZmluZEVycm9yKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmluZGluZyBpbmNvcnJlY3QgZW50cmllczonLCBmaW5kRXJyb3IpO1xyXG4gICAgICAgIHNldEVycm9yKCdGZWhsZXIgYmVpbSBGaW5kZW4gZGVyIGZlaGxlcmhhZnRlbiBFaW50csOkZ2UuJyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICBjb25zb2xlLmxvZyhgRm91bmQgJHtpbmNvcnJlY3RFbnRyaWVzPy5sZW5ndGggfHwgMH0gZW50cmllcyB3aXRoIGluY29ycmVjdCBkYXRlYCk7XHJcbiAgICAgIFxyXG4gICAgICBpZiAoaW5jb3JyZWN0RW50cmllcyAmJiBpbmNvcnJlY3RFbnRyaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAvLyBVcGRhdGUgYWxsIGluY29ycmVjdCBlbnRyaWVzIHRvIHJlbW92ZSB0aGUgdGVybWluX2RhdHVtXHJcbiAgICAgICAgY29uc3QgeyBlcnJvcjogdXBkYXRlRXJyb3IgfSA9IGF3YWl0IHN1cGFiYXNlXHJcbiAgICAgICAgICAuZnJvbSgna3VuZGVuX3Byb2pla3RlJylcclxuICAgICAgICAgIC51cGRhdGUoeyB0ZXJtaW5fZGF0dW06IG51bGwgfSlcclxuICAgICAgICAgIC5lcSgndGVybWluX2RhdHVtJywgJzIwMjUtMDctMjFUMDc6MDA6MDAuMDAwWicpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh1cGRhdGVFcnJvcikge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgdXBkYXRpbmcgaW5jb3JyZWN0IGVudHJpZXM6JywgdXBkYXRlRXJyb3IpO1xyXG4gICAgICAgICAgc2V0RXJyb3IoJ0ZlaGxlciBiZWltIEJlcmVpbmlnZW4gZGVyIGZlaGxlcmhhZnRlbiBFaW50csOkZ2UuJyk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIGNvbnNvbGUubG9nKCfinIUgU3VjY2Vzc2Z1bGx5IGNsZWFuZWQgdXAgaW5jb3JyZWN0IGFwcG9pbnRtZW50IGRhdGVzJyk7XHJcbiAgICAgICAgYWxlcnQoYOKchSAke2luY29ycmVjdEVudHJpZXMubGVuZ3RofSBmZWhsZXJoYWZ0ZSBUZXJtaW5lIHd1cmRlbiBiZXJlaW5pZ3QhYCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ05vIGluY29ycmVjdCBlbnRyaWVzIGZvdW5kJyk7XHJcbiAgICAgICAgYWxlcnQoJ+KchSBLZWluZSBmZWhsZXJoYWZ0ZW4gVGVybWluZSBnZWZ1bmRlbiEnKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdVbmV4cGVjdGVkIGVycm9yIGNsZWFuaW5nIHVwIGRhdGVzOicsIGVycik7XHJcbiAgICAgIHNldEVycm9yKCdFaW4gdW5lcndhcnRldGVyIEZlaGxlciBpc3QgYXVmZ2V0cmV0ZW4uJyk7XHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgbWF4LXctNHhsIG14LWF1dG9cIj5cclxuICAgICAgey8qIFByb2R1Y3Rpb24gTW9kZSBJbmRpY2F0b3IgKi99XHJcbiAgICAgIHtwcm9kdWN0aW9uTW9kZSAmJiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00IHAtMyByb3VuZGVkLXhsIGJvcmRlci0yIGJvcmRlci1ncmVlbi01MDAgYmctZ3JlZW4tNTBcIj5cclxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmVlbi03MDBcIj5cclxuICAgICAgICAgICAg4pyFIDxzdHJvbmc+VGVybWluYnVjaHVuZyBha3Rpdjo8L3N0cm9uZz4gSWhyZSBUZXJtaW5lIHdlcmRlbiBkaXJla3QgaW4gdW5zZXJlbSBTeXN0ZW0gZ2VzcGVpY2hlcnQuXHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTIgZmxleCBzcGFjZS14LTJcIj5cclxuICAgICAgICAgICAgPEJ1dHRvbiBcclxuICAgICAgICAgICAgICBvbkNsaWNrPXt0ZXN0RGF0YWJhc2VDb25uZWN0aW9ufVxyXG4gICAgICAgICAgICAgIGRpc2FibGVkPXtsb2FkaW5nfVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQteHNcIlxyXG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcclxuICAgICAgICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge2xvYWRpbmcgPyAnVGVzdGUuLi4nIDogJ/CflI0gREItVmVyYmluZHVuZyB0ZXN0ZW4nfVxyXG4gICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgPEJ1dHRvbiBcclxuICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhbnVwRHVwbGljYXRlQ3VzdG9tZXJzfVxyXG4gICAgICAgICAgICAgIGRpc2FibGVkPXtsb2FkaW5nfVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQteHNcIlxyXG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcclxuICAgICAgICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge2xvYWRpbmcgPyAnUHLDvGZlLi4uJyA6ICfwn5SNIER1cGxpa2F0ZSBwcsO8ZmVuJ31cclxuICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgIDxCdXR0b24gXHJcbiAgICAgICAgICAgICAgb25DbGljaz17Y2xlYW51cEluY29ycmVjdERhdGVzfVxyXG4gICAgICAgICAgICAgIGRpc2FibGVkPXtsb2FkaW5nfVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQteHNcIlxyXG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcclxuICAgICAgICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge2xvYWRpbmcgPyAnQmVyZWluaWdlLi4uJyA6ICfwn6e5IEZlaGxlcmhhZnRlIFRlcm1pbmUgYmVyZWluaWdlbid9XHJcbiAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICl9XHJcblxyXG4gICAgICB7LyogRW5oYW5jZWQgU3RlcCBJbmRpY2F0b3IgKi99XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItOFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgc3BhY2UteC0yIHNtOnNwYWNlLXgtNFwiPlxyXG4gICAgICAgICAgey8qIFN0ZXAgMSAqL31cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgc3BhY2UteS0yICR7XHJcbiAgICAgICAgICAgIGN1cnJlbnRTdGVwID09PSAnZm9ybScgPyAndGV4dC1wcmltYXJ5JyA6IFxyXG4gICAgICAgICAgICBjdXJyZW50U3RlcCA9PT0gJ3ZlcmlmaWNhdGlvbicgfHwgY3VycmVudFN0ZXAgPT09ICdzdWNjZXNzJyA/ICd0ZXh0LXByaW1hcnknIDogJ3RleHQtZ3JheS00MDAnXHJcbiAgICAgICAgICB9YH0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgdy0xMCBoLTEwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgJHtcclxuICAgICAgICAgICAgICBjdXJyZW50U3RlcCA9PT0gJ2Zvcm0nIFxyXG4gICAgICAgICAgICAgICAgPyAnYmctcHJpbWFyeSB0ZXh0LXdoaXRlIHNoYWRvdy1sZyBzY2FsZS0xMTAnIFxyXG4gICAgICAgICAgICAgICAgOiBjdXJyZW50U3RlcCA9PT0gJ3ZlcmlmaWNhdGlvbicgfHwgY3VycmVudFN0ZXAgPT09ICdzdWNjZXNzJ1xyXG4gICAgICAgICAgICAgICAgICA/ICdiZy1wcmltYXJ5IHRleHQtd2hpdGUgc2hhZG93LWxnJ1xyXG4gICAgICAgICAgICAgICAgICA6ICdiZy1ncmF5LTIwMCB0ZXh0LWdyYXktNTAwJ1xyXG4gICAgICAgICAgICB9YH0+XHJcbiAgICAgICAgICAgICAgPENhbGVuZGFyIGNsYXNzTmFtZT1cInctNSBoLTVcIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC14cyBzbTp0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtY2VudGVyXCI+VGVybWluIGF1c3fDpGhsZW48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgey8qIENvbm5lY3RvciAxICovfVxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2B3LTggc206dy0xMiBoLTEgcm91bmRlZC1mdWxsIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCAke1xyXG4gICAgICAgICAgICBjdXJyZW50U3RlcCA9PT0gJ3ZlcmlmaWNhdGlvbicgfHwgY3VycmVudFN0ZXAgPT09ICdzdWNjZXNzJyBcclxuICAgICAgICAgICAgICA/ICdiZy1wcmltYXJ5JyBcclxuICAgICAgICAgICAgICA6ICdiZy1ncmF5LTIwMCdcclxuICAgICAgICAgIH1gfT48L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgey8qIFN0ZXAgMiAqL31cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgc3BhY2UteS0yICR7XHJcbiAgICAgICAgICAgIGN1cnJlbnRTdGVwID09PSAndmVyaWZpY2F0aW9uJyB8fCBjdXJyZW50U3RlcCA9PT0gJ3N1Y2Nlc3MnIFxyXG4gICAgICAgICAgICAgID8gJ3RleHQtcHJpbWFyeScgXHJcbiAgICAgICAgICAgICAgOiAndGV4dC1ncmF5LTQwMCdcclxuICAgICAgICAgIH1gfT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2B3LTEwIGgtMTAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCAke1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRTdGVwID09PSAndmVyaWZpY2F0aW9uJyBcclxuICAgICAgICAgICAgICAgID8gJ2JnLXByaW1hcnkgdGV4dC13aGl0ZSBzaGFkb3ctbGcgc2NhbGUtMTEwJyBcclxuICAgICAgICAgICAgICAgIDogY3VycmVudFN0ZXAgPT09ICdzdWNjZXNzJ1xyXG4gICAgICAgICAgICAgICAgICA/ICdiZy1wcmltYXJ5IHRleHQtd2hpdGUgc2hhZG93LWxnJ1xyXG4gICAgICAgICAgICAgICAgICA6ICdiZy1ncmF5LTIwMCB0ZXh0LWdyYXktNTAwJ1xyXG4gICAgICAgICAgICB9YH0+XHJcbiAgICAgICAgICAgICAgPE1haWwgY2xhc3NOYW1lPVwidy01IGgtNVwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHNtOnRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1jZW50ZXJcIj5FLU1haWwgYmVzdMOkdGlnZW48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICB7LyogRXJyb3IgRGlzcGxheSAqL31cclxuICAgICAge2Vycm9yICYmIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTYgcC00IHJvdW5kZWQteGwgYm9yZGVyLTIgYm9yZGVyLXJlZC01MDAgYmctcmVkLTUwXCI+XHJcbiAgICAgICAgICA8cHJlIGNsYXNzTmFtZT1cInRleHQtcmVkLTYwMCB0ZXh0LXNtIHdoaXRlc3BhY2UtcHJlLXdyYXBcIj57ZXJyb3J9PC9wcmU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICl9XHJcblxyXG4gICAgICB7LyogU3RlcCBDb250ZW50ICovfVxyXG4gICAgICB7Y3VycmVudFN0ZXAgPT09ICdmb3JtJyAmJiAoXHJcbiAgICAgICAgPEFwcG9pbnRtZW50Rm9ybSBcclxuICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVGb3JtU3VibWl0fVxyXG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cclxuICAgICAgICAvPlxyXG4gICAgICApfVxyXG5cclxuICAgICAge2N1cnJlbnRTdGVwID09PSAndmVyaWZpY2F0aW9uJyAmJiBhcHBvaW50bWVudERhdGEgJiYgKFxyXG4gICAgICAgIDxFbWFpbFZlcmlmaWNhdGlvbiBcclxuICAgICAgICAgIGVtYWlsPXthcHBvaW50bWVudERhdGEuZW1haWx9XHJcbiAgICAgICAgICBvblZlcmlmaWNhdGlvbkNvbXBsZXRlPXtoYW5kbGVWZXJpZmljYXRpb25Db21wbGV0ZX1cclxuICAgICAgICAgIG9uQmFjaz17aGFuZGxlQmFja31cclxuICAgICAgICAvPlxyXG4gICAgICApfVxyXG5cclxuICAgICAge2N1cnJlbnRTdGVwID09PSAnc3VjY2VzcycgJiYgYXBwb2ludG1lbnREYXRhICYmIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbCBtYXgtdy1tZCBteC1hdXRvXCI+XHJcbiAgICAgICAgICA8ZGl2IFxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJwLTYgc206cC04IHJvdW5kZWQtM3hsIHNoYWRvdy1sZyBiYWNrZHJvcC1ibHVyLXNtIHRleHQtY2VudGVyXCJcclxuICAgICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBgJHtjb2xvcnMuYmFja2dyb3VuZH1GMGAgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTE2IGgtMTYgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8gbWItNlwiXHJcbiAgICAgICAgICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBgJHtjb2xvcnMucHJpbWFyeX0yMGAgfX0+XHJcbiAgICAgICAgICAgICAgPENoZWNrQ2lyY2xlIGNsYXNzTmFtZT1cInctOCBoLThcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX0gLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ib2xkIG1iLTRcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX0+XHJcbiAgICAgICAgICAgICAgVGVybWluIGJlc3TDpHRpZ3QhXHJcbiAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNCBtYi02XCI+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbVwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19PlxyXG4gICAgICAgICAgICAgICAge2N1c3RvbWVyQWN0aW9uID09PSAnY3JlYXRlZCcgXHJcbiAgICAgICAgICAgICAgICAgID8gJ1ZpZWxlbiBEYW5rIGbDvHIgSWhyZSBlcnN0ZSBUZXJtaW5hbmZyYWdlISBJaHIgS3VuZGVucHJvZmlsIHd1cmRlIGVyc3RlbGx0LidcclxuICAgICAgICAgICAgICAgICAgOiAnVmllbGVuIERhbmsgZsO8ciBJaHJlIHdlaXRlcmUgVGVybWluYW5mcmFnZSEgSWhyIGJlc3RlaGVuZGVzIEt1bmRlbnByb2ZpbCB3dXJkZSBha3R1YWxpc2llcnQuJ1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNCByb3VuZGVkLXhsIGJvcmRlci0yXCIgXHJcbiAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBgJHtjb2xvcnMucHJpbWFyeX0xMGAsXHJcbiAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBjb2xvcnMucHJpbWFyeSBcclxuICAgICAgICAgICAgICAgICAgIH19PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZCBtYi0yXCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19PlxyXG4gICAgICAgICAgICAgICAgICBJaHIgVGVybWluOlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbVwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19PlxyXG4gICAgICAgICAgICAgICAgICB7Zm9ybWF0QXBwb2ludG1lbnREYXRlKGFwcG9pbnRtZW50RGF0YS50ZXJtaW5fZGF0dW0hLCBhcHBvaW50bWVudERhdGEudGVybWluX3RpbWUhKX1cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNCByb3VuZGVkLXhsIGJvcmRlci0yXCIgXHJcbiAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBgJHtjb2xvcnMucHJpbWFyeX0xMGAsXHJcbiAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBjb2xvcnMucHJpbWFyeSBcclxuICAgICAgICAgICAgICAgICAgIH19PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZCBtYi0yXCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19PlxyXG4gICAgICAgICAgICAgICAgICBLb250YWt0ZGF0ZW46XHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtXCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5zZWNvbmRhcnkgfX0+XHJcbiAgICAgICAgICAgICAgICAgIHthcHBvaW50bWVudERhdGEubmFtZX08YnIgLz5cclxuICAgICAgICAgICAgICAgICAge2FwcG9pbnRtZW50RGF0YS5maXJtYX08YnIgLz5cclxuICAgICAgICAgICAgICAgICAge2FwcG9pbnRtZW50RGF0YS5lbWFpbH1cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIG1iLTZcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnNlY29uZGFyeSB9fT5cclxuICAgICAgICAgICAgICBWaWVsZW4gRGFuayBmw7xyIElocmUgVGVybWluYW5mcmFnZSEgV2lyIHdlcmRlbiB1bnMgaW4gS8O8cnplIGJlaSBJaG5lbiBtZWxkZW4sIHVtIGRlbiBUZXJtaW4genUgYmVzdMOkdGlnZW4uXHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxCdXR0b24gXHJcbiAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlUmVzZXR9XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHJvdW5kZWQteGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IFxyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMucHJpbWFyeSxcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcnMuYmFja2dyb3VuZFxyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICBOZXVlbiBUZXJtaW4gYnVjaGVuXHJcbiAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICl9XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59ICJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwiQnV0dG9uIiwiQ2hlY2tDaXJjbGUiLCJDYWxlbmRhciIsIk1haWwiLCJzdXBhYmFzZSIsImNvbG9ycyIsIkFwcG9pbnRtZW50Rm9ybSIsIkVtYWlsVmVyaWZpY2F0aW9uIiwidXNlQXV0aCIsIkFwcG9pbnRtZW50Qm9va2luZyIsInVzZXIiLCJjdXJyZW50U3RlcCIsInNldEN1cnJlbnRTdGVwIiwiYXBwb2ludG1lbnREYXRhIiwic2V0QXBwb2ludG1lbnREYXRhIiwibG9hZGluZyIsInNldExvYWRpbmciLCJlcnJvciIsInNldEVycm9yIiwidGVzdE1vZGUiLCJzZXRUZXN0TW9kZSIsInRhYmxlU3RydWN0dXJlIiwic2V0VGFibGVTdHJ1Y3R1cmUiLCJwcm9kdWN0aW9uTW9kZSIsInNldFByb2R1Y3Rpb25Nb2RlIiwiY3VzdG9tZXJBY3Rpb24iLCJzZXRDdXN0b21lckFjdGlvbiIsImhhbmRsZUZvcm1TdWJtaXQiLCJkYXRhIiwiaGFuZGxlVmVyaWZpY2F0aW9uQ29tcGxldGUiLCJjb25zb2xlIiwibG9nIiwidGVybWluX2RhdHVtIiwidGVybWluX3RpbWUiLCJEYXRlIiwiYXBwb2ludG1lbnREYXRlVGltZSIsInRvSVNPU3RyaW5nIiwiaG91cnMiLCJzcGxpdCIsIm1hcCIsIk51bWJlciIsInllYXIiLCJnZXRGdWxsWWVhciIsIm1vbnRoIiwiZ2V0TW9udGgiLCJkYXkiLCJnZXREYXRlIiwiZmluYWxBcHBvaW50bWVudERhdGVUaW1lIiwiZ2V0VGltZSIsInRvTG9jYWxlU3RyaW5nIiwibG9jYWxUaW1lU3RyaW5nIiwidG9TdHJpbmciLCJwYWRTdGFydCIsImVtYWlsIiwibGVuZ3RoIiwidHJpbSIsInRvTG93ZXJDYXNlIiwiY2hlY2tTcGVjaWZpY0VtYWlsIiwiZW1haWxWYXJpYXRpb25zIiwidG9VcHBlckNhc2UiLCJleGlzdGluZ0N1c3RvbWVycyIsImNoZWNrRXJyb3IiLCJlbWFpbFZhcmlhdGlvbiIsImZyb20iLCJzZWxlY3QiLCJlcSIsIm9yZGVyIiwiYXNjZW5kaW5nIiwiZm9yRWFjaCIsImN1c3RvbWVyIiwiaW5kZXgiLCJpZCIsImVyc3RlbGx0X2FtIiwiZXhpc3RpbmdDdXN0b21lciIsIndhcm4iLCJhcHBvaW50bWVudERhdGFUb1NhdmUiLCJiZXNjaHJlaWJ1bmciLCJmb3JtYXRBcHBvaW50bWVudERhdGUiLCJuYW1lIiwidGVsZWZvbiIsImZpcm1hIiwiYW5zcHJlY2hwYXJ0bmVyX25hbWUiLCJiZXJhdGVyIiwiemllbGdydXBwZSIsInJlc3VsdCIsIm5ld0Rlc2NyaXB0aW9uIiwidXBzZXJ0RGF0YSIsInVwc2VydEVycm9yIiwidXBzZXJ0Iiwib25Db25mbGljdCIsInZlcmlmeURhdGEiLCJ2ZXJpZnlFcnJvciIsInNpbmdsZSIsImluc2VydCIsImVyciIsImhhbmRsZUJhY2siLCJoYW5kbGVSZXNldCIsInRlc3REYXRhYmFzZUNvbm5lY3Rpb24iLCJsaW1pdCIsIm1lc3NhZ2UiLCJjb2x1bW5zIiwiT2JqZWN0Iiwia2V5cyIsImF2YWlsYWJsZUNvbHVtbnMiLCJpbmNsdWRlcyIsImRlc2NyaXB0aW9uIiwicGhvbmUiLCJjb21wYW55Iiwic3RhdHVzTWVzc2FnZSIsImVudHJpZXMiLCJrZXkiLCJhdmFpbGFibGUiLCJjbGVhbnVwRHVwbGljYXRlQ3VzdG9tZXJzIiwiYWxsQ3VzdG9tZXJzIiwiZW1haWxHcm91cHMiLCJwdXNoIiwiZHVwbGljYXRlcyIsImZpbHRlciIsImN1c3RvbWVycyIsImVudHJ5IiwiZGF0ZSIsInRpbWUiLCJJbnRsIiwiRGF0ZVRpbWVGb3JtYXQiLCJ3ZWVrZGF5IiwiZm9ybWF0IiwiY2xlYW51cEluY29ycmVjdERhdGVzIiwiaW5jb3JyZWN0RW50cmllcyIsImZpbmRFcnJvciIsInVwZGF0ZUVycm9yIiwidXBkYXRlIiwiYWxlcnQiLCJkaXYiLCJjbGFzc05hbWUiLCJwIiwic3Ryb25nIiwib25DbGljayIsImRpc2FibGVkIiwidmFyaWFudCIsInNpemUiLCJzcGFuIiwicHJlIiwib25TdWJtaXQiLCJvblZlcmlmaWNhdGlvbkNvbXBsZXRlIiwib25CYWNrIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwicHJpbWFyeSIsImNvbG9yIiwiaDMiLCJzZWNvbmRhcnkiLCJib3JkZXJDb2xvciIsImJyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/AppointmentBooking.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/AppointmentCalendar.tsx":
|
||
/*!********************************************!*\
|
||
!*** ./components/AppointmentCalendar.tsx ***!
|
||
\********************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ AppointmentCalendar; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Clock_CheckCircle_X_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Clock,CheckCircle,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/calendar.js\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Clock_CheckCircle_X_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Clock,CheckCircle,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Clock_CheckCircle_X_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Clock,CheckCircle,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-check-big.js\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Clock_CheckCircle_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Clock,CheckCircle,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js\");\n/* harmony import */ var _lib_colors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/colors */ \"(app-pages-browser)/./lib/colors.ts\");\n/* harmony import */ var _lib_supabaseClient__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/lib/supabaseClient */ \"(app-pages-browser)/./lib/supabaseClient.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\nfunction AppointmentCalendar(param) {\n let { onSlotSelect, selectedSlot } = param;\n _s();\n const [availableSlots, setAvailableSlots] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // Generate available time slots (2-hour slots, Mo-Fr 9-17 Uhr)\n const generateTimeSlots = ()=>{\n const slots = [];\n for(let hour = 9; hour <= 15; hour += 2){\n slots.push(\"\".concat(hour.toString().padStart(2, \"0\"), \":00\"));\n }\n return slots;\n };\n // Generate available dates for the next 4 weeks\n const generateAvailableDates = ()=>{\n const dates = [];\n const today = new Date();\n let currentDate = new Date(today);\n // Start from next Monday if today is weekend\n const dayOfWeek = currentDate.getDay();\n if (dayOfWeek === 0) {\n currentDate.setDate(currentDate.getDate() + 1);\n } else if (dayOfWeek === 6) {\n currentDate.setDate(currentDate.getDate() + 2);\n }\n for(let i = 0; i < 28; i++){\n const date = new Date(currentDate);\n date.setDate(date.getDate() + i);\n // Only include weekdays (Monday = 1, Friday = 5)\n if (date.getDay() >= 1 && date.getDay() <= 5) {\n dates.push(date);\n }\n }\n return dates;\n };\n // Generate available slots (with Supabase integration)\n const generateAvailableSlots = async ()=>{\n const dates = generateAvailableDates();\n const timeSlots = generateTimeSlots();\n const slots = [];\n try {\n // Get booked appointments from Supabase - look for termin_datum column\n const { data: bookedAppointments, error } = await _lib_supabaseClient__WEBPACK_IMPORTED_MODULE_4__.supabase.from(\"kunden_projekte\").select(\"termin_datum\").not(\"termin_datum\", \"is\", null);\n if (error) {\n console.error(\"Error fetching booked appointments:\", error);\n console.log(\"Falling back to all available slots\");\n // Fallback to all available\n dates.forEach((date)=>{\n timeSlots.forEach((time)=>{\n slots.push({\n date: new Date(date),\n time,\n available: true,\n booked: false\n });\n });\n });\n } else {\n console.log(\"Found booked appointments:\", bookedAppointments);\n console.log(\"Number of booked appointments:\", (bookedAppointments === null || bookedAppointments === void 0 ? void 0 : bookedAppointments.length) || 0);\n // Create a set of booked times for quick lookup\n const bookedTimes = new Set();\n bookedAppointments === null || bookedAppointments === void 0 ? void 0 : bookedAppointments.forEach((appointment)=>{\n if (appointment.termin_datum) {\n const appointmentDate = new Date(appointment.termin_datum);\n console.log(\"Processing booked appointment:\", appointment.termin_datum);\n console.log(\"Appointment date object:\", appointmentDate);\n console.log(\"Appointment hours:\", appointmentDate.getHours());\n console.log(\"Appointment local time:\", appointmentDate.toLocaleString(\"de-DE\"));\n // Use local time consistently - don't convert to UTC\n const year = appointmentDate.getFullYear();\n const month = appointmentDate.getMonth();\n const day = appointmentDate.getDate();\n const hours = appointmentDate.getHours();\n // Create time string using local time components\n const dateString = \"\".concat(year, \"-\").concat((month + 1).toString().padStart(2, \"0\"), \"-\").concat(day.toString().padStart(2, \"0\"));\n const hourString = hours.toString().padStart(2, \"0\") + \":00\";\n const timeString = \"\".concat(dateString, \"T\").concat(hourString, \":00:00\");\n bookedTimes.add(timeString);\n console.log(\"Booked appointment found (local time):\", timeString);\n }\n });\n console.log(\"All booked time strings:\", Array.from(bookedTimes));\n // Generate slots with availability check\n dates.forEach((date)=>{\n timeSlots.forEach((time)=>{\n const [hours] = time.split(\":\").map(Number);\n // Create slot datetime in local time\n const slotDateTime = new Date(date.getFullYear(), date.getMonth(), date.getDate(), hours, 0, 0, 0);\n // Create time string using local time components (same as booked appointments)\n const year = slotDateTime.getFullYear();\n const month = slotDateTime.getMonth();\n const day = slotDateTime.getDate();\n const slotHours = slotDateTime.getHours();\n const dateString = \"\".concat(year, \"-\").concat((month + 1).toString().padStart(2, \"0\"), \"-\").concat(day.toString().padStart(2, \"0\"));\n const hourString = slotHours.toString().padStart(2, \"0\") + \":00\";\n const timeString = \"\".concat(dateString, \"T\").concat(hourString, \":00:00\");\n const isBooked = bookedTimes.has(timeString);\n console.log(\"Slot \".concat(dateString, \" \").concat(time, \":\"), {\n slotDateTime: slotDateTime.toISOString(),\n timeString,\n isBooked,\n bookedTimes: Array.from(bookedTimes)\n });\n if (isBooked) {\n console.log(\"Slot is booked:\", timeString);\n }\n slots.push({\n date: new Date(date),\n time,\n available: !isBooked,\n booked: isBooked\n });\n });\n });\n }\n } catch (err) {\n console.error(\"Error checking availability:\", err);\n // Fallback to all available\n dates.forEach((date)=>{\n timeSlots.forEach((time)=>{\n slots.push({\n date: new Date(date),\n time,\n available: true,\n booked: false\n });\n });\n });\n }\n setAvailableSlots(slots);\n };\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n setLoading(true);\n // Simulate loading time\n setTimeout(()=>{\n generateAvailableSlots();\n setLoading(false);\n }, 500);\n }, []);\n // Group slots by date\n const groupedSlots = availableSlots.reduce((groups, slot)=>{\n const dateKey = slot.date.toISOString().split(\"T\")[0];\n if (!groups[dateKey]) {\n groups[dateKey] = [];\n }\n groups[dateKey].push(slot);\n return groups;\n }, {});\n const formatDate = (date)=>{\n return new Intl.DateTimeFormat(\"de-DE\", {\n weekday: \"short\",\n day: \"2-digit\",\n month: \"2-digit\"\n }).format(date);\n };\n const isSlotSelected = (slot)=>{\n if (!selectedSlot) return false;\n return selectedSlot.date.toISOString().split(\"T\")[0] === slot.date.toISOString().split(\"T\")[0] && selectedSlot.time === slot.time;\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full max-w-md mx-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-6 rounded-2xl shadow-lg backdrop-blur-sm\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"F0\")\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-3 mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Clock_CheckCircle_X_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"w-6 h-6\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 215,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-bold\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: \"Termin ausw\\xe4hlen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 216,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 214,\n columnNumber: 9\n }, this),\n loading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center py-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-8 w-8 border-b-2 mx-auto mb-4\",\n style: {\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 223,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: \"Lade verf\\xfcgbare Termine...\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 225,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 222,\n columnNumber: 11\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: Object.entries(groupedSlots).slice(0, 3).map((param)=>{\n let [dateKey, slots] = param;\n const date = new Date(dateKey);\n // Show all slots, not just available ones\n const allSlotsForDate = slots;\n if (allSlotsForDate.length === 0) return null;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border rounded-xl p-4\",\n style: {\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.tertiary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"font-semibold mb-3\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: formatDate(date)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 239,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-2 gap-2\",\n children: allSlotsForDate.map((slot, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: isSlotSelected(slot) ? \"default\" : \"outline\",\n size: \"sm\",\n className: \"flex items-center space-x-2\",\n onClick: ()=>onSlotSelect(slot.date, slot.time),\n disabled: slot.booked || !slot.available,\n style: {\n backgroundColor: isSlotSelected(slot) ? _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary : slot.booked ? \"#f3f4f6\" : \"transparent\",\n color: isSlotSelected(slot) ? _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background : slot.booked ? \"#9ca3af\" : _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary,\n borderColor: slot.booked ? \"#d1d5db\" : _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.tertiary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Clock_CheckCircle_X_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 259,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: slot.time\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 260,\n columnNumber: 25\n }, this),\n isSlotSelected(slot) && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Clock_CheckCircle_X_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 261,\n columnNumber: 50\n }, this),\n slot.booked && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs\",\n children: \"(Gebucht)\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 262,\n columnNumber: 41\n }, this)\n ]\n }, index, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 244,\n columnNumber: 23\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 242,\n columnNumber: 19\n }, this)\n ]\n }, dateKey, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 237,\n columnNumber: 17\n }, this);\n })\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 228,\n columnNumber: 11\n }, this),\n selectedSlot && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-6 p-4 rounded-xl border-2\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary, \"20\"),\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"font-semibold\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: \"Ausgew\\xe4hlter Termin:\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 280,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: [\n formatDate(selectedSlot.date),\n \" um \",\n selectedSlot.time,\n \" Uhr\"\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 283,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 279,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n size: \"sm\",\n onClick: ()=>onSlotSelect(new Date(), \"\"),\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Clock_CheckCircle_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 293,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 287,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 278,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 273,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 text-xs text-center\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"• Termine sind 1 Stunden lang\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 300,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"• Mo-Fr 9:00-17:00 Uhr\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 301,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"• Nur verf\\xfcgbare Termine werden angezeigt\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 302,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 299,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 210,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentCalendar.tsx\",\n lineNumber: 209,\n columnNumber: 5\n }, this);\n}\n_s(AppointmentCalendar, \"5WBwkel7xHXccacmfraPKr8jXos=\");\n_c = AppointmentCalendar;\nvar _c;\n$RefreshReg$(_c, \"AppointmentCalendar\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvQXBwb2ludG1lbnRDYWxlbmRhci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUVtRDtBQUNIO0FBQ2U7QUFDekI7QUFDVTtBQWNqQyxTQUFTVSxvQkFBb0IsS0FBd0Q7UUFBeEQsRUFBRUMsWUFBWSxFQUFFQyxZQUFZLEVBQTRCLEdBQXhEOztJQUMxQyxNQUFNLENBQUNDLGdCQUFnQkMsa0JBQWtCLEdBQUdiLCtDQUFRQSxDQUFvQixFQUFFO0lBQzFFLE1BQU0sQ0FBQ2MsU0FBU0MsV0FBVyxHQUFHZiwrQ0FBUUEsQ0FBQztJQUV2QywrREFBK0Q7SUFDL0QsTUFBTWdCLG9CQUFvQjtRQUN4QixNQUFNQyxRQUFRLEVBQUU7UUFDaEIsSUFBSyxJQUFJQyxPQUFPLEdBQUdBLFFBQVEsSUFBSUEsUUFBUSxFQUFHO1lBQ3hDRCxNQUFNRSxJQUFJLENBQUMsR0FBb0MsT0FBakNELEtBQUtFLFFBQVEsR0FBR0MsUUFBUSxDQUFDLEdBQUcsTUFBSztRQUNqRDtRQUNBLE9BQU9KO0lBQ1Q7SUFFQSxnREFBZ0Q7SUFDaEQsTUFBTUsseUJBQXlCO1FBQzdCLE1BQU1DLFFBQVEsRUFBRTtRQUNoQixNQUFNQyxRQUFRLElBQUlDO1FBQ2xCLElBQUlDLGNBQWMsSUFBSUQsS0FBS0Q7UUFFM0IsNkNBQTZDO1FBQzdDLE1BQU1HLFlBQVlELFlBQVlFLE1BQU07UUFDcEMsSUFBSUQsY0FBYyxHQUFHO1lBQ25CRCxZQUFZRyxPQUFPLENBQUNILFlBQVlJLE9BQU8sS0FBSztRQUM5QyxPQUFPLElBQUlILGNBQWMsR0FBRztZQUMxQkQsWUFBWUcsT0FBTyxDQUFDSCxZQUFZSSxPQUFPLEtBQUs7UUFDOUM7UUFFQSxJQUFLLElBQUlDLElBQUksR0FBR0EsSUFBSSxJQUFJQSxJQUFLO1lBQzNCLE1BQU1DLE9BQU8sSUFBSVAsS0FBS0M7WUFDdEJNLEtBQUtILE9BQU8sQ0FBQ0csS0FBS0YsT0FBTyxLQUFLQztZQUU5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Tjt3QkFBSUMsV0FBVTs7MENBQ2IsOERBQUNEOztrREFDQyw4REFBQ1M7d0NBQUVSLFdBQVU7d0NBQWdCQyxPQUFPOzRDQUFFRyxPQUFPckYsK0NBQU1BLENBQUNzRixPQUFPO3dDQUFDO2tEQUFHOzs7Ozs7a0RBRy9ELDhEQUFDRzt3Q0FBRVIsV0FBVTt3Q0FBVUMsT0FBTzs0Q0FBRUcsT0FBT3JGLCtDQUFNQSxDQUFDMEYsU0FBUzt3Q0FBQzs7NENBQ3JEaEIsV0FBV3RFLGFBQWFxQixJQUFJOzRDQUFFOzRDQUFLckIsYUFBYWlDLElBQUk7NENBQUM7Ozs7Ozs7Ozs7Ozs7MENBRzFELDhEQUFDMUMseURBQU1BO2dDQUNMdUcsU0FBUTtnQ0FDUkMsTUFBSztnQ0FDTEMsU0FBUyxJQUFNakcsYUFBYSxJQUFJZSxRQUFRO2dDQUN4Q2dFLE9BQU87b0NBQUVHLE9BQU9yRiwrQ0FBTUEsQ0FBQ3NGLE9BQU87Z0NBQUM7MENBRS9CLDRFQUFDdkYsd0dBQUNBO29DQUFDa0YsV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFNckIsOERBQUNEO29CQUFJQyxXQUFVO29CQUEyQkMsT0FBTzt3QkFBRUcsT0FBT3JGLCtDQUFNQSxDQUFDMEYsU0FBUztvQkFBQzs7c0NBQ3pFLDhEQUFDRDtzQ0FBRTs7Ozs7O3NDQUNILDhEQUFDQTtzQ0FBRTs7Ozs7O3NDQUNILDhEQUFDQTtzQ0FBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLYjtHQTlSd0J2RjtLQUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9jb21wb25lbnRzL0FwcG9pbnRtZW50Q2FsZW5kYXIudHN4PzU2ZjQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcblxyXG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9idXR0b25cIjtcclxuaW1wb3J0IHsgQ2FsZW5kYXIsIENsb2NrLCBDaGVja0NpcmNsZSwgWCB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIjtcclxuaW1wb3J0IHsgY29sb3JzIH0gZnJvbSAnQC9saWIvY29sb3JzJztcclxuaW1wb3J0IHsgc3VwYWJhc2UgfSBmcm9tICdAL2xpYi9zdXBhYmFzZUNsaWVudCc7XHJcblxyXG5pbnRlcmZhY2UgQXBwb2ludG1lbnRTbG90IHtcclxuICBkYXRlOiBEYXRlO1xyXG4gIHRpbWU6IHN0cmluZztcclxuICBhdmFpbGFibGU6IGJvb2xlYW47XHJcbiAgYm9va2VkOiBib29sZWFuO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQXBwb2ludG1lbnRDYWxlbmRhclByb3BzIHtcclxuICBvblNsb3RTZWxlY3Q6IChkYXRlOiBEYXRlLCB0aW1lOiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgc2VsZWN0ZWRTbG90PzogeyBkYXRlOiBEYXRlOyB0aW1lOiBzdHJpbmcgfSB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEFwcG9pbnRtZW50Q2FsZW5kYXIoeyBvblNsb3RTZWxlY3QsIHNlbGVjdGVkU2xvdCB9OiBBcHBvaW50bWVudENhbGVuZGFyUHJvcHMpIHtcclxuICBjb25zdCBbYXZhaWxhYmxlU2xvdHMsIHNldEF2YWlsYWJsZVNsb3RzXSA9IHVzZVN0YXRlPEFwcG9pbnRtZW50U2xvdFtdPihbXSk7XHJcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xyXG5cclxuICAvLyBHZW5lcmF0ZSBhdmFpbGFibGUgdGltZSBzbG90cyAoMi1ob3VyIHNsb3RzLCBNby1GciA5LTE3IFVocilcclxuICBjb25zdCBnZW5lcmF0ZVRpbWVTbG90cyA9ICgpID0+IHtcclxuICAgIGNvbnN0IHNsb3RzID0gW107XHJcbiAgICBmb3IgKGxldCBob3VyID0gOTsgaG91ciA8PSAxNTsgaG91ciArPSAyKSB7XHJcbiAgICAgIHNsb3RzLnB1c2goYCR7aG91ci50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OjAwYCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc2xvdHM7XHJcbiAgfTtcclxuXHJcbiAgLy8gR2VuZXJhdGUgYXZhaWxhYmxlIGRhdGVzIGZvciB0aGUgbmV4dCA0IHdlZWtzXHJcbiAgY29uc3QgZ2VuZXJhdGVBdmFpbGFibGVEYXRlcyA9ICgpID0+IHtcclxuICAgIGNvbnN0IGRhdGVzID0gW107XHJcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICBsZXQgY3VycmVudERhdGUgPSBuZXcgRGF0ZSh0b2RheSk7XHJcbiAgICBcclxuICAgIC8vIFN0YXJ0IGZyb20gbmV4dCBNb25kYXkgaWYgdG9kYXkgaXMgd2Vla2VuZFxyXG4gICAgY29uc3QgZGF5T2ZXZWVrID0gY3VycmVudERhdGUuZ2V0RGF5KCk7XHJcbiAgICBpZiAoZGF5T2ZXZWVrID09PSAwKSB7IC8vIFN1bmRheVxyXG4gICAgICBjdXJyZW50RGF0ZS5zZXREYXRlKGN1cnJlbnREYXRlLmdldERhdGUoKSArIDEpO1xyXG4gICAgfSBlbHNlIGlmIChkYXlPZldlZWsgPT09IDYpIHsgLy8gU2F0dXJkYXlcclxuICAgICAgY3VycmVudERhdGUuc2V0RGF0ZShjdXJyZW50RGF0ZS5nZXREYXRlKCkgKyAyKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDI4OyBpKyspIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGN1cnJlbnREYXRlKTtcclxuICAgICAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgaSk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBPbmx5IGluY2x1ZGUgd2Vla2RheXMgKE1vbmRheSA9IDEsIEZyaWRheSA9IDUpXHJcbiAgICAgIGlmIChkYXRlLmdldERheSgpID49IDEgJiYgZGF0ZS5nZXREYXkoKSA8PSA1KSB7XHJcbiAgICAgICAgZGF0ZXMucHVzaChkYXRlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGVzO1xyXG4gIH07XHJcblxyXG4gIC8vIEdlbmVyYXRlIGF2YWlsYWJsZSBzbG90cyAod2l0aCBTdXBhYmFzZSBpbnRlZ3JhdGlvbilcclxuICBjb25zdCBnZW5lcmF0ZUF2YWlsYWJsZVNsb3RzID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgZGF0ZXMgPSBnZW5lcmF0ZUF2YWlsYWJsZURhdGVzKCk7XHJcbiAgICBjb25zdCB0aW1lU2xvdHMgPSBnZW5lcmF0ZVRpbWVTbG90cygpO1xyXG4gICAgY29uc3Qgc2xvdHM6IEFwcG9pbnRtZW50U2xvdFtdID0gW107XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgLy8gR2V0IGJvb2tlZCBhcHBvaW50bWVudHMgZnJvbSBTdXBhYmFzZSAtIGxvb2sgZm9yIHRlcm1pbl9kYXR1bSBjb2x1bW5cclxuICAgICAgY29uc3QgeyBkYXRhOiBib29rZWRBcHBvaW50bWVudHMsIGVycm9yIH0gPSBhd2FpdCBzdXBhYmFzZVxyXG4gICAgICAgIC5mcm9tKCdrdW5kZW5fcHJvamVrdGUnKVxyXG4gICAgICAgIC5zZWxlY3QoJ3Rlcm1pbl9kYXR1bScpXHJcbiAgICAgICAgLm5vdCgndGVybWluX2RhdHVtJywgJ2lzJywgbnVsbCk7XHJcblxyXG4gICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBib29rZWQgYXBwb2ludG1lbnRzOicsIGVycm9yKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnRmFsbGluZyBiYWNrIHRvIGFsbCBhdmFpbGFibGUgc2xvdHMnKTtcclxuICAgICAgICAvLyBGYWxsYmFjayB0byBhbGwgYXZhaWxhYmxlXHJcbiAgICAgICAgZGF0ZXMuZm9yRWFjaChkYXRlID0+IHtcclxuICAgICAgICAgIHRpbWVTbG90cy5mb3JFYWNoKHRpbWUgPT4ge1xyXG4gICAgICAgICAgICBzbG90cy5wdXNoKHtcclxuICAgICAgICAgICAgICBkYXRlOiBuZXcgRGF0ZShkYXRlKSxcclxuICAgICAgICAgICAgICB0aW1lLFxyXG4gICAgICAgICAgICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBib29rZWQ6IGZhbHNlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0ZvdW5kIGJvb2tlZCBhcHBvaW50bWVudHM6JywgYm9va2VkQXBwb2ludG1lbnRzKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnTnVtYmVyIG9mIGJvb2tlZCBhcHBvaW50bWVudHM6JywgYm9va2VkQXBwb2ludG1lbnRzPy5sZW5ndGggfHwgMCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gQ3JlYXRlIGEgc2V0IG9mIGJvb2tlZCB0aW1lcyBmb3IgcXVpY2sgbG9va3VwXHJcbiAgICAgICAgY29uc3QgYm9va2VkVGltZXMgPSBuZXcgU2V0KCk7XHJcbiAgICAgICAgYm9va2VkQXBwb2ludG1lbnRzPy5mb3JFYWNoKGFwcG9pbnRtZW50ID0+IHtcclxuICAgICAgICAgIGlmIChhcHBvaW50bWVudC50ZXJtaW5fZGF0dW0pIHtcclxuICAgICAgICAgICAgY29uc3QgYXBwb2ludG1lbnREYXRlID0gbmV3IERhdGUoYXBwb2ludG1lbnQudGVybWluX2RhdHVtKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ1Byb2Nlc3NpbmcgYm9va2VkIGFwcG9pbnRtZW50OicsIGFwcG9pbnRtZW50LnRlcm1pbl9kYXR1bSk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBcHBvaW50bWVudCBkYXRlIG9iamVjdDonLCBhcHBvaW50bWVudERhdGUpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQXBwb2ludG1lbnQgaG91cnM6JywgYXBwb2ludG1lbnREYXRlLmdldEhvdXJzKCkpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQXBwb2ludG1lbnQgbG9jYWwgdGltZTonLCBhcHBvaW50bWVudERhdGUudG9Mb2NhbGVTdHJpbmcoJ2RlLURFJykpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy8gVXNlIGxvY2FsIHRpbWUgY29uc2lzdGVudGx5IC0gZG9uJ3QgY29udmVydCB0byBVVENcclxuICAgICAgICAgICAgY29uc3QgeWVhciA9IGFwcG9pbnRtZW50RGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgICAgICBjb25zdCBtb250aCA9IGFwcG9pbnRtZW50RGF0ZS5nZXRNb250aCgpO1xyXG4gICAgICAgICAgICBjb25zdCBkYXkgPSBhcHBvaW50bWVudERhdGUuZ2V0RGF0ZSgpO1xyXG4gICAgICAgICAgICBjb25zdCBob3VycyA9IGFwcG9pbnRtZW50RGF0ZS5nZXRIb3VycygpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy8gQ3JlYXRlIHRpbWUgc3RyaW5nIHVzaW5nIGxvY2FsIHRpbWUgY29tcG9uZW50c1xyXG4gICAgICAgICAgICBjb25zdCBkYXRlU3RyaW5nID0gYCR7eWVhcn0tJHsobW9udGggKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LSR7ZGF5LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gO1xyXG4gICAgICAgICAgICBjb25zdCBob3VyU3RyaW5nID0gaG91cnMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpICsgJzowMCc7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpbWVTdHJpbmcgPSBgJHtkYXRlU3RyaW5nfVQke2hvdXJTdHJpbmd9OjAwOjAwYDtcclxuICAgICAgICAgICAgYm9va2VkVGltZXMuYWRkKHRpbWVTdHJpbmcpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQm9va2VkIGFwcG9pbnRtZW50IGZvdW5kIChsb2NhbCB0aW1lKTonLCB0aW1lU3RyaW5nKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBcclxuICAgICAgICBjb25zb2xlLmxvZygnQWxsIGJvb2tlZCB0aW1lIHN0cmluZ3M6JywgQXJyYXkuZnJvbShib29rZWRUaW1lcykpO1xyXG5cclxuICAgICAgICAvLyBHZW5lcmF0ZSBzbG90cyB3aXRoIGF2YWlsYWJpbGl0eSBjaGVja1xyXG4gICAgICAgIGRhdGVzLmZvckVhY2goZGF0ZSA9PiB7XHJcbiAgICAgICAgICB0aW1lU2xvdHMuZm9yRWFjaCh0aW1lID0+IHtcclxuICAgICAgICAgICAgY29uc3QgW2hvdXJzXSA9IHRpbWUuc3BsaXQoJzonKS5tYXAoTnVtYmVyKTtcclxuICAgICAgICAgICAgLy8gQ3JlYXRlIHNsb3QgZGF0ZXRpbWUgaW4gbG9jYWwgdGltZVxyXG4gICAgICAgICAgICBjb25zdCBzbG90RGF0ZVRpbWUgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCksIGhvdXJzLCAwLCAwLCAwKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIENyZWF0ZSB0aW1lIHN0cmluZyB1c2luZyBsb2NhbCB0aW1lIGNvbXBvbmVudHMgKHNhbWUgYXMgYm9va2VkIGFwcG9pbnRtZW50cylcclxuICAgICAgICAgICAgY29uc3QgeWVhciA9IHNsb3REYXRlVGltZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgICAgICBjb25zdCBtb250aCA9IHNsb3REYXRlVGltZS5nZXRNb250aCgpO1xyXG4gICAgICAgICAgICBjb25zdCBkYXkgPSBzbG90RGF0ZVRpbWUuZ2V0RGF0ZSgpO1xyXG4gICAgICAgICAgICBjb25zdCBzbG90SG91cnMgPSBzbG90RGF0ZVRpbWUuZ2V0SG91cnMoKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGVTdHJpbmcgPSBgJHt5ZWFyfS0keyhtb250aCArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0tJHtkYXkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWA7XHJcbiAgICAgICAgICAgIGNvbnN0IGhvdXJTdHJpbmcgPSBzbG90SG91cnMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpICsgJzowMCc7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpbWVTdHJpbmcgPSBgJHtkYXRlU3RyaW5nfVQke2hvdXJTdHJpbmd9OjAwOjAwYDtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGNvbnN0IGlzQm9va2VkID0gYm9va2VkVGltZXMuaGFzKHRpbWVTdHJpbmcpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYFNsb3QgJHtkYXRlU3RyaW5nfSAke3RpbWV9OmAsIHtcclxuICAgICAgICAgICAgICBzbG90RGF0ZVRpbWU6IHNsb3REYXRlVGltZS50b0lTT1N0cmluZygpLFxyXG4gICAgICAgICAgICAgIHRpbWVTdHJpbmcsXHJcbiAgICAgICAgICAgICAgaXNCb29rZWQsXHJcbiAgICAgICAgICAgICAgYm9va2VkVGltZXM6IEFycmF5LmZyb20oYm9va2VkVGltZXMpXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKGlzQm9va2VkKSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1Nsb3QgaXMgYm9va2VkOicsIHRpbWVTdHJpbmcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBzbG90cy5wdXNoKHtcclxuICAgICAgICAgICAgICBkYXRlOiBuZXcgRGF0ZShkYXRlKSxcclxuICAgICAgICAgICAgICB0aW1lLFxyXG4gICAgICAgICAgICAgIGF2YWlsYWJsZTogIWlzQm9va2VkLFxyXG4gICAgICAgICAgICAgIGJvb2tlZDogaXNCb29rZWRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNoZWNraW5nIGF2YWlsYWJpbGl0eTonLCBlcnIpO1xyXG4gICAgICAvLyBGYWxsYmFjayB0byBhbGwgYXZhaWxhYmxlXHJcbiAgICAgIGRhdGVzLmZvckVhY2goZGF0ZSA9PiB7XHJcbiAgICAgICAgdGltZVNsb3RzLmZvckVhY2godGltZSA9PiB7XHJcbiAgICAgICAgICBzbG90cy5wdXNoKHtcclxuICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoZGF0ZSksXHJcbiAgICAgICAgICAgIHRpbWUsXHJcbiAgICAgICAgICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgYm9va2VkOiBmYWxzZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEF2YWlsYWJsZVNsb3RzKHNsb3RzKTtcclxuICB9O1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgc2V0TG9hZGluZyh0cnVlKTtcclxuICAgIC8vIFNpbXVsYXRlIGxvYWRpbmcgdGltZVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGdlbmVyYXRlQXZhaWxhYmxlU2xvdHMoKTtcclxuICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XHJcbiAgICB9LCA1MDApO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgLy8gR3JvdXAgc2xvdHMgYnkgZGF0ZVxyXG4gIGNvbnN0IGdyb3VwZWRTbG90cyA9IGF2YWlsYWJsZVNsb3RzLnJlZHVjZSgoZ3JvdXBzLCBzbG90KSA9PiB7XHJcbiAgICBjb25zdCBkYXRlS2V5ID0gc2xvdC5kYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcclxuICAgIGlmICghZ3JvdXBzW2RhdGVLZXldKSB7XHJcbiAgICAgIGdyb3Vwc1tkYXRlS2V5XSA9IFtdO1xyXG4gICAgfVxyXG4gICAgZ3JvdXBzW2RhdGVLZXldLnB1c2goc2xvdCk7XHJcbiAgICByZXR1cm4gZ3JvdXBzO1xyXG4gIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIEFwcG9pbnRtZW50U2xvdFtdPik7XHJcblxyXG4gIGNvbnN0IGZvcm1hdERhdGUgPSAoZGF0ZTogRGF0ZSkgPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdkZS1ERScsIHtcclxuICAgICAgd2Vla2RheTogJ3Nob3J0JyxcclxuICAgICAgZGF5OiAnMi1kaWdpdCcsXHJcbiAgICAgIG1vbnRoOiAnMi1kaWdpdCdcclxuICAgIH0pLmZvcm1hdChkYXRlKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBpc1Nsb3RTZWxlY3RlZCA9IChzbG90OiBBcHBvaW50bWVudFNsb3QpID0+IHtcclxuICAgIGlmICghc2VsZWN0ZWRTbG90KSByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gc2VsZWN0ZWRTbG90LmRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdID09PSBzbG90LmRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdICYmXHJcbiAgICAgICAgICAgc2VsZWN0ZWRTbG90LnRpbWUgPT09IHNsb3QudGltZTtcclxuICB9O1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgbWF4LXctbWQgbXgtYXV0b1wiPlxyXG4gICAgICA8ZGl2IFxyXG4gICAgICAgIGNsYXNzTmFtZT1cInAtNiByb3VuZGVkLTJ4bCBzaGFkb3ctbGcgYmFja2Ryb3AtYmx1ci1zbVwiXHJcbiAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBgJHtjb2xvcnMuYmFja2dyb3VuZH1GMGAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0zIG1iLTZcIj5cclxuICAgICAgICAgIDxDYWxlbmRhciBjbGFzc05hbWU9XCJ3LTYgaC02XCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19IC8+XHJcbiAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWJvbGRcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX0+XHJcbiAgICAgICAgICAgIFRlcm1pbiBhdXN3w6RobGVuXHJcbiAgICAgICAgICA8L2gzPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICB7bG9hZGluZyA/IChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgcHktOFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFuaW1hdGUtc3BpbiByb3VuZGVkLWZ1bGwgaC04IHctOCBib3JkZXItYi0yIG14LWF1dG8gbWItNFwiIFxyXG4gICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJvcmRlckNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fT48L2Rpdj5cclxuICAgICAgICAgICAgPHAgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5zZWNvbmRhcnkgfX0+TGFkZSB2ZXJmw7xnYmFyZSBUZXJtaW5lLi4uPC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS00XCI+XHJcbiAgICAgICAgICAgIHtPYmplY3QuZW50cmllcyhncm91cGVkU2xvdHMpLnNsaWNlKDAsIDMpLm1hcCgoW2RhdGVLZXksIHNsb3RzXSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShkYXRlS2V5KTtcclxuICAgICAgICAgICAgICAvLyBTaG93IGFsbCBzbG90cywgbm90IGp1c3QgYXZhaWxhYmxlIG9uZXNcclxuICAgICAgICAgICAgICBjb25zdCBhbGxTbG90c0ZvckRhdGUgPSBzbG90cztcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBpZiAoYWxsU2xvdHNGb3JEYXRlLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGtleT17ZGF0ZUtleX0gY2xhc3NOYW1lPVwiYm9yZGVyIHJvdW5kZWQteGwgcC00XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJvcmRlckNvbG9yOiBjb2xvcnMudGVydGlhcnkgfX0+XHJcbiAgICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJmb250LXNlbWlib2xkIG1iLTNcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAge2Zvcm1hdERhdGUoZGF0ZSl9XHJcbiAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMiBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHthbGxTbG90c0ZvckRhdGUubWFwKChzbG90LCBpbmRleCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc1Nsb3RTZWxlY3RlZChzbG90KSA/IFwiZGVmYXVsdFwiIDogXCJvdXRsaW5lXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uU2xvdFNlbGVjdChzbG90LmRhdGUsIHNsb3QudGltZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtzbG90LmJvb2tlZCB8fCAhc2xvdC5hdmFpbGFibGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBpc1Nsb3RTZWxlY3RlZChzbG90KSA/IGNvbG9ycy5wcmltYXJ5IDogXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QuYm9va2VkID8gJyNmM2Y0ZjYnIDogJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaXNTbG90U2VsZWN0ZWQoc2xvdCkgPyBjb2xvcnMuYmFja2dyb3VuZCA6IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QuYm9va2VkID8gJyM5Y2EzYWYnIDogY29sb3JzLnByaW1hcnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IHNsb3QuYm9va2VkID8gJyNkMWQ1ZGInIDogY29sb3JzLnRlcnRpYXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDbG9jayBjbGFzc05hbWU9XCJ3LTQgaC00XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3Nsb3QudGltZX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc1Nsb3RTZWxlY3RlZChzbG90KSAmJiA8Q2hlY2tDaXJjbGUgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7c2xvdC5ib29rZWQgJiYgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC14c1wiPihHZWJ1Y2h0KTwvc3Bhbj59XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcblxyXG4gICAgICAgIHtzZWxlY3RlZFNsb3QgJiYgKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC02IHAtNCByb3VuZGVkLXhsIGJvcmRlci0yXCIgXHJcbiAgICAgICAgICAgICAgIHN0eWxlPXt7IFxyXG4gICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3JzLnByaW1hcnl9MjBgLFxyXG4gICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBjb2xvcnMucHJpbWFyeSBcclxuICAgICAgICAgICAgICAgfX0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGRcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX0+XHJcbiAgICAgICAgICAgICAgICAgIEF1c2dld8OkaGx0ZXIgVGVybWluOlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbVwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19PlxyXG4gICAgICAgICAgICAgICAgICB7Zm9ybWF0RGF0ZShzZWxlY3RlZFNsb3QuZGF0ZSl9IHVtIHtzZWxlY3RlZFNsb3QudGltZX0gVWhyXHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcclxuICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblNsb3RTZWxlY3QobmV3IERhdGUoKSwgJycpfVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPFggY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+XHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC00IHRleHQteHMgdGV4dC1jZW50ZXJcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnNlY29uZGFyeSB9fT5cclxuICAgICAgICAgIDxwPuKAoiBUZXJtaW5lIHNpbmQgMSBTdHVuZGVuIGxhbmc8L3A+XHJcbiAgICAgICAgICA8cD7igKIgTW8tRnIgOTowMC0xNzowMCBVaHI8L3A+XHJcbiAgICAgICAgICA8cD7igKIgTnVyIHZlcmbDvGdiYXJlIFRlcm1pbmUgd2VyZGVuIGFuZ2V6ZWlndDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59ICJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiQnV0dG9uIiwiQ2FsZW5kYXIiLCJDbG9jayIsIkNoZWNrQ2lyY2xlIiwiWCIsImNvbG9ycyIsInN1cGFiYXNlIiwiQXBwb2ludG1lbnRDYWxlbmRhciIsIm9uU2xvdFNlbGVjdCIsInNlbGVjdGVkU2xvdCIsImF2YWlsYWJsZVNsb3RzIiwic2V0QXZhaWxhYmxlU2xvdHMiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsImdlbmVyYXRlVGltZVNsb3RzIiwic2xvdHMiLCJob3VyIiwicHVzaCIsInRvU3RyaW5nIiwicGFkU3RhcnQiLCJnZW5lcmF0ZUF2YWlsYWJsZURhdGVzIiwiZGF0ZXMiLCJ0b2RheSIsIkRhdGUiLCJjdXJyZW50RGF0ZSIsImRheU9mV2VlayIsImdldERheSIsInNldERhdGUiLCJnZXREYXRlIiwiaSIsImRhdGUiLCJnZW5lcmF0ZUF2YWlsYWJsZVNsb3RzIiwidGltZVNsb3RzIiwiZGF0YSIsImJvb2tlZEFwcG9pbnRtZW50cyIsImVycm9yIiwiZnJvbSIsInNlbGVjdCIsIm5vdCIsImNvbnNvbGUiLCJsb2ciLCJmb3JFYWNoIiwidGltZSIsImF2YWlsYWJsZSIsImJvb2tlZCIsImxlbmd0aCIsImJvb2tlZFRpbWVzIiwiU2V0IiwiYXBwb2ludG1lbnQiLCJ0ZXJtaW5fZGF0dW0iLCJhcHBvaW50bWVudERhdGUiLCJnZXRIb3VycyIsInRvTG9jYWxlU3RyaW5nIiwieWVhciIsImdldEZ1bGxZZWFyIiwibW9udGgiLCJnZXRNb250aCIsImRheSIsImhvdXJzIiwiZGF0ZVN0cmluZyIsImhvdXJTdHJpbmciLCJ0aW1lU3RyaW5nIiwiYWRkIiwiQXJyYXkiLCJzcGxpdCIsIm1hcCIsIk51bWJlciIsInNsb3REYXRlVGltZSIsInNsb3RIb3VycyIsImlzQm9va2VkIiwiaGFzIiwidG9JU09TdHJpbmciLCJlcnIiLCJzZXRUaW1lb3V0IiwiZ3JvdXBlZFNsb3RzIiwicmVkdWNlIiwiZ3JvdXBzIiwic2xvdCIsImRhdGVLZXkiLCJmb3JtYXREYXRlIiwiSW50bCIsIkRhdGVUaW1lRm9ybWF0Iiwid2Vla2RheSIsImZvcm1hdCIsImlzU2xvdFNlbGVjdGVkIiwiZGl2IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwiY29sb3IiLCJwcmltYXJ5IiwiaDMiLCJib3JkZXJDb2xvciIsInAiLCJzZWNvbmRhcnkiLCJPYmplY3QiLCJlbnRyaWVzIiwic2xpY2UiLCJhbGxTbG90c0ZvckRhdGUiLCJ0ZXJ0aWFyeSIsImg0IiwiaW5kZXgiLCJ2YXJpYW50Iiwic2l6ZSIsIm9uQ2xpY2siLCJkaXNhYmxlZCIsInNwYW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/AppointmentCalendar.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/AppointmentForm.tsx":
|
||
/*!****************************************!*\
|
||
!*** ./components/AppointmentForm.tsx ***!
|
||
\****************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ AppointmentForm; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./components/ui/input.tsx\");\n/* harmony import */ var _components_ui_textarea__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/textarea */ \"(app-pages-browser)/./components/ui/textarea.tsx\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Mail,Calendar,User,Phone,Building,MessageSquare!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/calendar.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Mail,Calendar,User,Phone,Building,MessageSquare!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/user.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Mail,Calendar,User,Phone,Building,MessageSquare!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/phone.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Mail,Calendar,User,Phone,Building,MessageSquare!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/building.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Mail,Calendar,User,Phone,Building,MessageSquare!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Mail,Calendar,User,Phone,Building,MessageSquare!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/message-square.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Mail,Calendar,User,Phone,Building,MessageSquare!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-check-big.js\");\n/* harmony import */ var _lib_colors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/lib/colors */ \"(app-pages-browser)/./lib/colors.ts\");\n/* harmony import */ var _AppointmentCalendar__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./AppointmentCalendar */ \"(app-pages-browser)/./components/AppointmentCalendar.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\nfunction AppointmentForm(param) {\n let { onSubmit, loading = false } = param;\n _s();\n const [formData, setFormData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n name: \"\",\n telefon: \"\",\n firma: \"\",\n email: \"\",\n beschreibung: \"\"\n });\n const [selectedSlot, setSelectedSlot] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [errors, setErrors] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({});\n const handleInputChange = (field, value)=>{\n setFormData((prev)=>({\n ...prev,\n [field]: value\n }));\n // Clear error when user starts typing\n if (errors[field]) {\n setErrors((prev)=>{\n const newErrors = {\n ...prev\n };\n delete newErrors[field];\n return newErrors;\n });\n }\n };\n const handleSlotSelect = (date, time)=>{\n console.log(\"=== SLOT SELECTION DEBUG ===\");\n console.log(\"Selected date:\", date);\n console.log(\"Selected time:\", time);\n console.log(\"Date type:\", typeof date);\n console.log(\"Date instanceof Date:\", date instanceof Date);\n console.log(\"Date.toISOString():\", date.toISOString());\n if (time === \"\") {\n setSelectedSlot(null);\n console.log(\"Slot deselected\");\n } else {\n setSelectedSlot({\n date,\n time\n });\n console.log(\"Slot selected:\", {\n date,\n time\n });\n }\n };\n const validateForm = ()=>{\n const newErrors = {};\n if (!formData.name.trim()) {\n newErrors.name = \"Name ist erforderlich\";\n }\n if (!formData.telefon.trim()) {\n newErrors.telefon = \"Telefonnummer ist erforderlich\";\n }\n if (!formData.firma.trim()) {\n newErrors.firma = \"Unternehmen ist erforderlich\";\n }\n if (!formData.email.trim()) {\n newErrors.email = \"E-Mail ist erforderlich\";\n } else if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(formData.email)) {\n newErrors.email = \"Bitte geben Sie eine g\\xfcltige E-Mail-Adresse ein\";\n }\n if (!formData.beschreibung.trim()) {\n newErrors.beschreibung = \"Projektbeschreibung ist erforderlich\";\n }\n if (!selectedSlot) {\n newErrors.termin_datum = \"Bitte w\\xe4hlen Sie einen Termin aus\";\n }\n setErrors(newErrors);\n return Object.keys(newErrors).length === 0;\n };\n const handleSubmit = (e)=>{\n e.preventDefault();\n if (validateForm()) {\n console.log(\"=== FORM SUBMIT DEBUG ===\");\n console.log(\"Form data:\", formData);\n console.log(\"Selected slot:\", selectedSlot);\n console.log(\"Selected slot date:\", selectedSlot === null || selectedSlot === void 0 ? void 0 : selectedSlot.date);\n console.log(\"Selected slot time:\", selectedSlot === null || selectedSlot === void 0 ? void 0 : selectedSlot.time);\n const submitData = {\n ...formData,\n termin_datum: selectedSlot === null || selectedSlot === void 0 ? void 0 : selectedSlot.date,\n termin_time: selectedSlot === null || selectedSlot === void 0 ? void 0 : selectedSlot.time\n };\n console.log(\"Submit data:\", submitData);\n console.log(\"Submit termin_datum:\", submitData.termin_datum);\n console.log(\"Submit termin_time:\", submitData.termin_time);\n onSubmit(submitData);\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full max-w-4xl mx-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 lg:grid-cols-2 gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-6 sm:p-8 rounded-3xl shadow-lg backdrop-blur-sm\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.background, \"F0\")\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-3 mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"w-6 h-6\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 130,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-bold\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n children: \"Termin anfragen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 131,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 129,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSubmit,\n className: \"space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2 flex items-center space-x-2\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 140,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"01 – Wie ist dein Name?\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 141,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 138,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_3__.Input, {\n type: \"text\",\n value: formData.name,\n onChange: (e)=>handleInputChange(\"name\", e.target.value),\n className: \"w-full p-3 rounded-xl border-2 focus:outline-none focus:ring-2 \".concat(errors.name ? \"border-red-500\" : \"\"),\n style: {\n borderColor: errors.name ? \"#ef4444\" : _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.tertiary,\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.background,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n placeholder: \"Dein vollst\\xe4ndiger Name\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 143,\n columnNumber: 15\n }, this),\n errors.name && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-red-500 text-sm mt-1\",\n children: errors.name\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 158,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 137,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2 flex items-center space-x-2\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 165,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"02 – Deine Telefonnummer\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 166,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 163,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_3__.Input, {\n type: \"tel\",\n value: formData.telefon,\n onChange: (e)=>handleInputChange(\"telefon\", e.target.value),\n className: \"w-full p-3 rounded-xl border-2 focus:outline-none focus:ring-2 \".concat(errors.telefon ? \"border-red-500\" : \"\"),\n style: {\n borderColor: errors.telefon ? \"#ef4444\" : _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.tertiary,\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.background,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n placeholder: \"+49 123 456789\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 168,\n columnNumber: 15\n }, this),\n errors.telefon && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-red-500 text-sm mt-1\",\n children: errors.telefon\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 183,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 162,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2 flex items-center space-x-2\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 190,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"03 – Dein Unternehmen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 191,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 188,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_3__.Input, {\n type: \"text\",\n value: formData.firma,\n onChange: (e)=>handleInputChange(\"firma\", e.target.value),\n className: \"w-full p-3 rounded-xl border-2 focus:outline-none focus:ring-2 \".concat(errors.firma ? \"border-red-500\" : \"\"),\n style: {\n borderColor: errors.firma ? \"#ef4444\" : _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.tertiary,\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.background,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n placeholder: \"Name deines Unternehmens\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 193,\n columnNumber: 15\n }, this),\n errors.firma && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-red-500 text-sm mt-1\",\n children: errors.firma\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 208,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 187,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2 flex items-center space-x-2\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 215,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"04 – Deine E-Mail-Adresse\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 216,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 213,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_3__.Input, {\n type: \"email\",\n value: formData.email,\n onChange: (e)=>handleInputChange(\"email\", e.target.value),\n className: \"w-full p-3 rounded-xl border-2 focus:outline-none focus:ring-2 \".concat(errors.email ? \"border-red-500\" : \"\"),\n style: {\n borderColor: errors.email ? \"#ef4444\" : _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.tertiary,\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.background,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n placeholder: \"deine@email.de\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 218,\n columnNumber: 15\n }, this),\n errors.email && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-red-500 text-sm mt-1\",\n children: errors.email\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 233,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 212,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2 flex items-center space-x-2\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 240,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"05 – Erz\\xe4hl uns kurz von deinem Vorhaben\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 241,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 238,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_textarea__WEBPACK_IMPORTED_MODULE_4__.Textarea, {\n value: formData.beschreibung,\n onChange: (e)=>handleInputChange(\"beschreibung\", e.target.value),\n rows: 4,\n className: \"w-full p-3 rounded-xl border-2 focus:outline-none focus:ring-2 \".concat(errors.beschreibung ? \"border-red-500\" : \"\"),\n style: {\n borderColor: errors.beschreibung ? \"#ef4444\" : _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.tertiary,\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.background,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n placeholder: \"Beschreibe dein Projekt, Ziele, W\\xfcnsche...\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 243,\n columnNumber: 15\n }, this),\n errors.beschreibung && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-red-500 text-sm mt-1\",\n children: errors.beschreibung\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 258,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 237,\n columnNumber: 13\n }, this),\n errors.termin_datum && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 rounded-xl border-2 border-red-500 bg-red-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-red-500 text-sm\",\n children: errors.termin_datum\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 264,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 263,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n type: \"submit\",\n disabled: loading,\n className: \"w-full py-3 rounded-xl text-lg font-semibold flex items-center justify-center space-x-2\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.background\n },\n children: loading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-5 w-5 border-b-2 border-white\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 279,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"Wird verarbeitet...\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 280,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 284,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"Termin anfragen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 285,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 268,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 136,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 125,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_AppointmentCalendar__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n onSlotSelect: handleSlotSelect,\n selectedSlot: selectedSlot\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 294,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-6 rounded-2xl backdrop-blur-sm\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary, \"20\")\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-bold mb-4 flex items-center space-x-2\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.background\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 306,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"Oder direkt anrufen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 307,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 304,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3 text-sm\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.background\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"w-4 h-4 mr-3\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 312,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"+49 170 4969375\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 313,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 311,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"w-4 h-4 mr-3\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 316,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"support@webklar.com\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 317,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 315,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Mail_Calendar_User_Phone_Building_MessageSquare_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"w-4 h-4 mr-3\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 320,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"Kaiserslautern, Deutschland\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 321,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 319,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 310,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 300,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 293,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 123,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentForm.tsx\",\n lineNumber: 122,\n columnNumber: 5\n }, this);\n}\n_s(AppointmentForm, \"MI3Bijfmga+vCnDTyzrTmFmJKvk=\");\n_c = AppointmentForm;\nvar _c;\n$RefreshReg$(_c, \"AppointmentForm\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvQXBwb2ludG1lbnRGb3JtLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFd0M7QUFDUTtBQUNGO0FBQ007QUFDNkM7QUFDM0Q7QUFDa0I7QUFlekMsU0FBU2MsZ0JBQWdCLEtBQW1EO1FBQW5ELEVBQUVDLFFBQVEsRUFBRUMsVUFBVSxLQUFLLEVBQXdCLEdBQW5EOztJQUN0QyxNQUFNLENBQUNDLFVBQVVDLFlBQVksR0FBR2pCLCtDQUFRQSxDQUFzQjtRQUM1RGtCLE1BQU07UUFDTkMsU0FBUztRQUNUQyxPQUFPO1FBQ1BDLE9BQU87UUFDUEMsY0FBYztJQUNoQjtJQUNBLE1BQU0sQ0FBQ0MsY0FBY0MsZ0JBQWdCLEdBQUd4QiwrQ0FBUUEsQ0FBc0M7SUFDdEYsTUFBTSxDQUFDeUIsUUFBUUMsVUFBVSxHQUFHMUIsK0NBQVFBLENBQXlCLENBQUM7SUFFOUQsTUFBTTJCLG9CQUFvQixDQUFDQyxPQUFrQ0M7UUFDM0RaLFlBQVlhLENBQUFBLE9BQVM7Z0JBQUUsR0FBR0EsSUFBSTtnQkFBRSxDQUFDRixNQUFNLEVBQUVDO1lBQU07UUFDL0Msc0NBQXNDO1FBQ3RDLElBQUlKLE1BQU0sQ0FBQ0csTUFBTSxFQUFFO1lBQ2pCRixVQUFVSSxDQUFBQTtnQkFDUixNQUFNQyxZQUFZO29CQUFFLEdBQUdELElBQUk7Z0JBQUM7Z0JBQzVCLE9BQU9DLFNBQVMsQ0FBQ0gsTUFBTTtnQkFDdkIsT0FBT0c7WUFDVDtRQUNGO0lBQ0Y7SUFFQSxNQUFNQyxtQkFBbUIsQ0FBQ0MsTUFBWUM7UUFDcENDLFFBQVFDLEdBQUcsQ0FBQztRQUNaRCxRQUFRQyxHQUFHLENBQUMsa0JBQWtCSDtRQUM5QkUsUUFBUUMsR0FBRyxDQUFDLGtCQUFrQkY7UUFDOUJDLFFBQVFDLEdBQUcsQ0FBQyxjQUFjLE9BQU9IO1FBQ2pDRSxRQUFRQyxHQUFHLENBQUMseUJBQXlCSCxnQkFBZ0JJO1FBQ3JERixRQUFRQyxHQUFH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LE9BQU83QywrQ0FBTUEsQ0FBQzRDLFVBQVU7b0NBQUM7O3NEQUNuRSw4REFBQ0o7NENBQUlDLFdBQVU7OzhEQUNiLDhEQUFDNUMsdUlBQUtBO29EQUFDNEMsV0FBVTs7Ozs7OzhEQUNqQiw4REFBQ1M7OERBQUs7Ozs7Ozs7Ozs7OztzREFFUiw4REFBQ1Y7NENBQUlDLFdBQVU7OzhEQUNiLDhEQUFDL0Msd0lBQUlBO29EQUFDK0MsV0FBVTs7Ozs7OzhEQUNoQiw4REFBQ1M7OERBQUs7Ozs7Ozs7Ozs7OztzREFFUiw4REFBQ1Y7NENBQUlDLFdBQVU7OzhEQUNiLDhEQUFDM0Msd0lBQVFBO29EQUFDMkMsV0FBVTs7Ozs7OzhEQUNwQiw4REFBQ1M7OERBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUXRCO0dBalR3QmhEO0tBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2NvbXBvbmVudHMvQXBwb2ludG1lbnRGb3JtLnRzeD8zNTRkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5cclxuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvaW5wdXRcIjtcclxuaW1wb3J0IHsgVGV4dGFyZWEgfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL3RleHRhcmVhXCI7XHJcbmltcG9ydCB7IENoZWNrQ2lyY2xlLCBNYWlsLCBDYWxlbmRhciwgVXNlciwgUGhvbmUsIEJ1aWxkaW5nLCBNZXNzYWdlU3F1YXJlIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xyXG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICdAL2xpYi9jb2xvcnMnO1xyXG5pbXBvcnQgQXBwb2ludG1lbnRDYWxlbmRhciBmcm9tICcuL0FwcG9pbnRtZW50Q2FsZW5kYXInO1xyXG5cclxuaW50ZXJmYWNlIEFwcG9pbnRtZW50Rm9ybURhdGEge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0ZWxlZm9uOiBzdHJpbmc7XHJcbiAgZmlybWE6IHN0cmluZztcclxuICBlbWFpbDogc3RyaW5nO1xyXG4gIGJlc2NocmVpYnVuZzogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQXBwb2ludG1lbnRGb3JtUHJvcHMge1xyXG4gIG9uU3VibWl0OiAoZGF0YTogQXBwb2ludG1lbnRGb3JtRGF0YSAmIHsgdGVybWluX2RhdHVtPzogRGF0ZTsgdGVybWluX3RpbWU/OiBzdHJpbmcgfSkgPT4gdm9pZDtcclxuICBsb2FkaW5nPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQXBwb2ludG1lbnRGb3JtKHsgb25TdWJtaXQsIGxvYWRpbmcgPSBmYWxzZSB9OiBBcHBvaW50bWVudEZvcm1Qcm9wcykge1xyXG4gIGNvbnN0IFtmb3JtRGF0YSwgc2V0Rm9ybURhdGFdID0gdXNlU3RhdGU8QXBwb2ludG1lbnRGb3JtRGF0YT4oe1xyXG4gICAgbmFtZTogJycsXHJcbiAgICB0ZWxlZm9uOiAnJyxcclxuICAgIGZpcm1hOiAnJyxcclxuICAgIGVtYWlsOiAnJyxcclxuICAgIGJlc2NocmVpYnVuZzogJydcclxuICB9KTtcclxuICBjb25zdCBbc2VsZWN0ZWRTbG90LCBzZXRTZWxlY3RlZFNsb3RdID0gdXNlU3RhdGU8eyBkYXRlOiBEYXRlOyB0aW1lOiBzdHJpbmcgfSB8IG51bGw+KG51bGwpO1xyXG4gIGNvbnN0IFtlcnJvcnMsIHNldEVycm9yc10gPSB1c2VTdGF0ZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pih7fSk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZUlucHV0Q2hhbmdlID0gKGZpZWxkOiBrZXlvZiBBcHBvaW50bWVudEZvcm1EYXRhLCB2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICBzZXRGb3JtRGF0YShwcmV2ID0+ICh7IC4uLnByZXYsIFtmaWVsZF06IHZhbHVlIH0pKTtcclxuICAgIC8vIENsZWFyIGVycm9yIHdoZW4gdXNlciBzdGFydHMgdHlwaW5nXHJcbiAgICBpZiAoZXJyb3JzW2ZpZWxkXSkge1xyXG4gICAgICBzZXRFcnJvcnMocHJldiA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3RXJyb3JzID0geyAuLi5wcmV2IH07XHJcbiAgICAgICAgZGVsZXRlIG5ld0Vycm9yc1tmaWVsZF07XHJcbiAgICAgICAgcmV0dXJuIG5ld0Vycm9ycztcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlU2xvdFNlbGVjdCA9IChkYXRlOiBEYXRlLCB0aW1lOiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnNvbGUubG9nKCc9PT0gU0xPVCBTRUxFQ1RJT04gREVCVUcgPT09Jyk7XHJcbiAgICBjb25zb2xlLmxvZygnU2VsZWN0ZWQgZGF0ZTonLCBkYXRlKTtcclxuICAgIGNvbnNvbGUubG9nKCdTZWxlY3RlZCB0aW1lOicsIHRpbWUpO1xyXG4gICAgY29uc29sZS5sb2coJ0RhdGUgdHlwZTonLCB0eXBlb2YgZGF0ZSk7XHJcbiAgICBjb25zb2xlLmxvZygnRGF0ZSBpbnN0YW5jZW9mIERhdGU6JywgZGF0ZSBpbnN0YW5jZW9mIERhdGUpO1xyXG4gICAgY29uc29sZS5sb2coJ0RhdGUudG9JU09TdHJpbmcoKTonLCBkYXRlLnRvSVNPU3RyaW5nKCkpO1xyXG4gICAgXHJcbiAgICBpZiAodGltZSA9PT0gJycpIHtcclxuICAgICAgc2V0U2VsZWN0ZWRTbG90KG51bGwpO1xyXG4gICAgICBjb25zb2xlLmxvZygnU2xvdCBkZXNlbGVjdGVkJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXRTZWxlY3RlZFNsb3QoeyBkYXRlLCB0aW1lIH0pO1xyXG4gICAgICBjb25zb2xlLmxvZygnU2xvdCBzZWxlY3RlZDonLCB7IGRhdGUsIHRpbWUgfSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgdmFsaWRhdGVGb3JtID0gKCk6IGJvb2xlYW4gPT4ge1xyXG4gICAgY29uc3QgbmV3RXJyb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XHJcblxyXG4gICAgaWYgKCFmb3JtRGF0YS5uYW1lLnRyaW0oKSkge1xyXG4gICAgICBuZXdFcnJvcnMubmFtZSA9ICdOYW1lIGlzdCBlcmZvcmRlcmxpY2gnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghZm9ybURhdGEudGVsZWZvbi50cmltKCkpIHtcclxuICAgICAgbmV3RXJyb3JzLnRlbGVmb24gPSAnVGVsZWZvbm51bW1lciBpc3QgZXJmb3JkZXJsaWNoJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWZvcm1EYXRhLmZpcm1hLnRyaW0oKSkge1xyXG4gICAgICBuZXdFcnJvcnMuZmlybWEgPSAnVW50ZXJuZWhtZW4gaXN0IGVyZm9yZGVybGljaCc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFmb3JtRGF0YS5lbWFpbC50cmltKCkpIHtcclxuICAgICAgbmV3RXJyb3JzLmVtYWlsID0gJ0UtTWFpbCBpc3QgZXJmb3JkZXJsaWNoJztcclxuICAgIH0gZWxzZSBpZiAoIS9eW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdKyQvLnRlc3QoZm9ybURhdGEuZW1haWwpKSB7XHJcbiAgICAgIG5ld0Vycm9ycy5lbWFpbCA9ICdCaXR0ZSBnZWJlbiBTaWUgZWluZSBnw7xsdGlnZSBFLU1haWwtQWRyZXNzZSBlaW4nO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghZm9ybURhdGEuYmVzY2hyZWlidW5nLnRyaW0oKSkge1xyXG4gICAgICBuZXdFcnJvcnMuYmVzY2hyZWlidW5nID0gJ1Byb2pla3RiZXNjaHJlaWJ1bmcgaXN0IGVyZm9yZGVybGljaCc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFzZWxlY3RlZFNsb3QpIHtcclxuICAgICAgbmV3RXJyb3JzLnRlcm1pbl9kYXR1bSA9ICdCaXR0ZSB3w6RobGVuIFNpZSBlaW5lbiBUZXJtaW4gYXVzJztcclxuICAgIH1cclxuXHJcbiAgICBzZXRFcnJvcnMobmV3RXJyb3JzKTtcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhuZXdFcnJvcnMpLmxlbmd0aCA9PT0gMDtcclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSAoZTogUmVhY3QuRm9ybUV2ZW50KSA9PiB7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBcclxuICAgIGlmICh2YWxpZGF0ZUZvcm0oKSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnPT09IEZPUk0gU1VCTUlUIERFQlVHID09PScpO1xyXG4gICAgICBjb25zb2xlLmxvZygnRm9ybSBkYXRhOicsIGZvcm1EYXRhKTtcclxuICAgICAgY29uc29sZS5sb2coJ1NlbGVjdGVkIHNsb3Q6Jywgc2VsZWN0ZWRTbG90KTtcclxuICAgICAgY29uc29sZS5sb2coJ1NlbGVjdGVkIHNsb3QgZGF0ZTonLCBzZWxlY3RlZFNsb3Q/LmRhdGUpO1xyXG4gICAgICBjb25zb2xlLmxvZygnU2VsZWN0ZWQgc2xvdCB0aW1lOicsIHNlbGVjdGVkU2xvdD8udGltZSk7XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBzdWJtaXREYXRhID0ge1xyXG4gICAgICAgIC4uLmZvcm1EYXRhLFxyXG4gICAgICAgIHRlcm1pbl9kYXR1bTogc2VsZWN0ZWRTbG90Py5kYXRlLFxyXG4gICAgICAgIHRlcm1pbl90aW1lOiBzZWxlY3RlZFNsb3Q/LnRpbWVcclxuICAgICAgfTtcclxuICAgICAgXHJcbiAgICAgIGNvbnNvbGUubG9nKCdTdWJtaXQgZGF0YTonLCBzdWJtaXREYXRhKTtcclxuICAgICAgY29uc29sZS5sb2coJ1N1Ym1pdCB0ZXJtaW5fZGF0dW06Jywgc3VibWl0RGF0YS50ZXJtaW5fZGF0dW0pO1xyXG4gICAgICBjb25zb2xlLmxvZygnU3VibWl0IHRlcm1pbl90aW1lOicsIHN1Ym1pdERhdGEudGVybWluX3RpbWUpO1xyXG4gICAgICBcclxuICAgICAgb25TdWJtaXQoc3VibWl0RGF0YSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwidy1mdWxsIG1heC13LTR4bCBteC1hdXRvXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBsZzpncmlkLWNvbHMtMiBnYXAtOFwiPlxyXG4gICAgICAgIHsvKiBBcHBvaW50bWVudCBGb3JtICovfVxyXG4gICAgICAgIDxkaXYgXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJwLTYgc206cC04IHJvdW5kZWQtM3hsIHNoYWRvdy1sZyBiYWNrZHJvcC1ibHVyLXNtXCJcclxuICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3JzLmJhY2tncm91bmR9RjBgIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTMgbWItNlwiPlxyXG4gICAgICAgICAgICA8Q2FsZW5kYXIgY2xhc3NOYW1lPVwidy02IGgtNlwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fSAvPlxyXG4gICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWJvbGRcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX0+XHJcbiAgICAgICAgICAgICAgVGVybWluIGFuZnJhZ2VuXHJcbiAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8Zm9ybSBvblN1Ym1pdD17aGFuZGxlU3VibWl0fSBjbGFzc05hbWU9XCJzcGFjZS15LTZcIj5cclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSBtYi0yIGZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMlwiIFxyXG4gICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX0+XHJcbiAgICAgICAgICAgICAgICA8VXNlciBjbGFzc05hbWU9XCJ3LTQgaC00XCIgLz5cclxuICAgICAgICAgICAgICAgIDxzcGFuPjAxIOKAkyBXaWUgaXN0IGRlaW4gTmFtZT88L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8SW5wdXQgXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiIFxyXG4gICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1EYXRhLm5hbWV9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUlucHV0Q2hhbmdlKCduYW1lJywgZS50YXJnZXQudmFsdWUpfVxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgdy1mdWxsIHAtMyByb3VuZGVkLXhsIGJvcmRlci0yIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgJHtcclxuICAgICAgICAgICAgICAgICAgZXJyb3JzLm5hbWUgPyAnYm9yZGVyLXJlZC01MDAnIDogJydcclxuICAgICAgICAgICAgICAgIH1gfVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgXHJcbiAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBlcnJvcnMubmFtZSA/ICcjZWY0NDQ0JyA6IGNvbG9ycy50ZXJ0aWFyeSxcclxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMuYmFja2dyb3VuZCxcclxuICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy5wcmltYXJ5XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJEZWluIHZvbGxzdMOkbmRpZ2VyIE5hbWVcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAge2Vycm9ycy5uYW1lICYmIChcclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtcmVkLTUwMCB0ZXh0LXNtIG10LTFcIj57ZXJyb3JzLm5hbWV9PC9wPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSBtYi0yIGZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMlwiIFxyXG4gICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX0+XHJcbiAgICAgICAgICAgICAgICA8UGhvbmUgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj4wMiDigJMgRGVpbmUgVGVsZWZvbm51bW1lcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxJbnB1dCBcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZWxcIiBcclxuICAgICAgICAgICAgICAgIHZhbHVlPXtmb3JtRGF0YS50ZWxlZm9ufVxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVJbnB1dENoYW5nZSgndGVsZWZvbicsIGUudGFyZ2V0LnZhbHVlKX1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHctZnVsbCBwLTMgcm91bmRlZC14bCBib3JkZXItMiBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yICR7XHJcbiAgICAgICAgICAgICAgICAgIGVycm9ycy50ZWxlZm9uID8gJ2JvcmRlci1yZWQtNTAwJyA6ICcnXHJcbiAgICAgICAgICAgICAgICB9YH1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IFxyXG4gICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogZXJyb3JzLnRlbGVmb24gPyAnI2VmNDQ0NCcgOiBjb2xvcnMudGVydGlhcnksXHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3JzLmJhY2tncm91bmQsXHJcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcnMucHJpbWFyeVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiKzQ5IDEyMyA0NTY3ODlcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAge2Vycm9ycy50ZWxlZm9uICYmIChcclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtcmVkLTUwMCB0ZXh0LXNtIG10LTFcIj57ZXJyb3JzLnRlbGVmb259PC9wPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSBtYi0yIGZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMlwiIFxyXG4gICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX0+XHJcbiAgICAgICAgICAgICAgICA8QnVpbGRpbmcgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj4wMyDigJMgRGVpbiBVbnRlcm5laG1lbjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxJbnB1dCBcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgXHJcbiAgICAgICAgICAgICAgICB2YWx1ZT17Zm9ybURhdGEuZmlybWF9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUlucHV0Q2hhbmdlKCdmaXJtYScsIGUudGFyZ2V0LnZhbHVlKX1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHctZnVsbCBwLTMgcm91bmRlZC14bCBib3JkZXItMiBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yICR7XHJcbiAgICAgICAgICAgICAgICAgIGVycm9ycy5maXJtYSA/ICdib3JkZXItcmVkLTUwMCcgOiAnJ1xyXG4gICAgICAgICAgICAgICAgfWB9XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9ycy5maXJtYSA/ICcjZWY0NDQ0JyA6IGNvbG9ycy50ZXJ0aWFyeSxcclxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMuYmFja2dyb3VuZCxcclxuICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy5wcmltYXJ5XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJOYW1lIGRlaW5lcyBVbnRlcm5laG1lbnNcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAge2Vycm9ycy5maXJtYSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXJlZC01MDAgdGV4dC1zbSBtdC0xXCI+e2Vycm9ycy5maXJtYX08L3A+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIG1iLTIgZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0yXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fT5cclxuICAgICAgICAgICAgICAgIDxNYWlsIGNsYXNzTmFtZT1cInctNCBoLTRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+MDQg4oCTIERlaW5lIEUtTWFpbC1BZHJlc3NlPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPElucHV0IFxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCIgXHJcbiAgICAgICAgICAgICAgICB2YWx1ZT17Zm9ybURhdGEuZW1haWx9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUlucHV0Q2hhbmdlKCdlbWFpbCcsIGUudGFyZ2V0LnZhbHVlKX1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHctZnVsbCBwLTMgcm91bmRlZC14bCBib3JkZXItMiBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yICR7XHJcbiAgICAgICAgICAgICAgICAgIGVycm9ycy5lbWFpbCA/ICdib3JkZXItcmVkLTUwMCcgOiAnJ1xyXG4gICAgICAgICAgICAgICAgfWB9XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9ycy5lbWFpbCA/ICcjZWY0NDQ0JyA6IGNvbG9ycy50ZXJ0aWFyeSxcclxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMuYmFja2dyb3VuZCxcclxuICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy5wcmltYXJ5XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJkZWluZUBlbWFpbC5kZVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICB7ZXJyb3JzLmVtYWlsICYmIChcclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtcmVkLTUwMCB0ZXh0LXNtIG10LTFcIj57ZXJyb3JzLmVtYWlsfTwvcD5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gbWItMiBmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTJcIiBcclxuICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19PlxyXG4gICAgICAgICAgICAgICAgPE1lc3NhZ2VTcXVhcmUgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj4wNSDigJMgRXJ6w6RobCB1bnMga3VyeiB2b24gZGVpbmVtIFZvcmhhYmVuPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPFRleHRhcmVhIFxyXG4gICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1EYXRhLmJlc2NocmVpYnVuZ31cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlSW5wdXRDaGFuZ2UoJ2Jlc2NocmVpYnVuZycsIGUudGFyZ2V0LnZhbHVlKX1cclxuICAgICAgICAgICAgICAgIHJvd3M9ezR9XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2B3LWZ1bGwgcC0zIHJvdW5kZWQteGwgYm9yZGVyLTIgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiAke1xyXG4gICAgICAgICAgICAgICAgICBlcnJvcnMuYmVzY2hyZWlidW5nID8gJ2JvcmRlci1yZWQtNTAwJyA6ICcnXHJcbiAgICAgICAgICAgICAgICB9YH1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IFxyXG4gICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogZXJyb3JzLmJlc2NocmVpYnVuZyA/ICcjZWY0NDQ0JyA6IGNvbG9ycy50ZXJ0aWFyeSxcclxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMuYmFja2dyb3VuZCxcclxuICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy5wcmltYXJ5XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJCZXNjaHJlaWJlIGRlaW4gUHJvamVrdCwgWmllbGUsIFfDvG5zY2hlLi4uXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIHtlcnJvcnMuYmVzY2hyZWlidW5nICYmIChcclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtcmVkLTUwMCB0ZXh0LXNtIG10LTFcIj57ZXJyb3JzLmJlc2NocmVpYnVuZ308L3A+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICB7ZXJyb3JzLnRlcm1pbl9kYXR1bSAmJiAoXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTMgcm91bmRlZC14bCBib3JkZXItMiBib3JkZXItcmVkLTUwMCBiZy1yZWQtNTBcIj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtcmVkLTUwMCB0ZXh0LXNtXCI+e2Vycm9ycy50ZXJtaW5fZGF0dW19PC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPEJ1dHRvbiBcclxuICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICBkaXNhYmxlZD17bG9hZGluZ31cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgcHktMyByb3VuZGVkLXhsIHRleHQtbGcgZm9udC1zZW1pYm9sZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBzcGFjZS14LTJcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IFxyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMucHJpbWFyeSxcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcnMuYmFja2dyb3VuZFxyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7bG9hZGluZyA/IChcclxuICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYW5pbWF0ZS1zcGluIHJvdW5kZWQtZnVsbCBoLTUgdy01IGJvcmRlci1iLTIgYm9yZGVyLXdoaXRlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPldpcmQgdmVyYXJiZWl0ZXQuLi48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgPENoZWNrQ2lyY2xlIGNsYXNzTmFtZT1cInctNSBoLTVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5UZXJtaW4gYW5mcmFnZW48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgey8qIENhbGVuZGFyIENvbXBvbmVudCAqL31cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgc3BhY2UteS02XCI+XHJcbiAgICAgICAgICA8QXBwb2ludG1lbnRDYWxlbmRhciBcclxuICAgICAgICAgICAgb25TbG90U2VsZWN0PXtoYW5kbGVTbG90U2VsZWN0fVxyXG4gICAgICAgICAgICBzZWxlY3RlZFNsb3Q9e3NlbGVjdGVkU2xvdH1cclxuICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgey8qIEFsdGVybmF0aXZlIENvbnRhY3QgKi99XHJcbiAgICAgICAgICA8ZGl2IFxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJwLTYgcm91bmRlZC0yeGwgYmFja2Ryb3AtYmx1ci1zbVwiXHJcbiAgICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3JzLnByaW1hcnl9MjBgIH19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtYm9sZCBtYi00IGZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMlwiIFxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kIH19PlxyXG4gICAgICAgICAgICAgIDxQaG9uZSBjbGFzc05hbWU9XCJ3LTUgaC01XCIgLz5cclxuICAgICAgICAgICAgICA8c3Bhbj5PZGVyIGRpcmVrdCBhbnJ1ZmVuPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTMgdGV4dC1zbVwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuYmFja2dyb3VuZCB9fT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8UGhvbmUgY2xhc3NOYW1lPVwidy00IGgtNCBtci0zXCIgLz5cclxuICAgICAgICAgICAgICAgIDxzcGFuPis0OSAxNzAgNDk2OTM3NTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8TWFpbCBjbGFzc05hbWU9XCJ3LTQgaC00IG1yLTNcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+c3VwcG9ydEB3ZWJrbGFyLmNvbTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8QnVpbGRpbmcgY2xhc3NOYW1lPVwidy00IGgtNCBtci0zXCIgLz5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkthaXNlcnNsYXV0ZXJuLCBEZXV0c2NobGFuZDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59ICJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwiQnV0dG9uIiwiSW5wdXQiLCJUZXh0YXJlYSIsIkNoZWNrQ2lyY2xlIiwiTWFpbCIsIkNhbGVuZGFyIiwiVXNlciIsIlBob25lIiwiQnVpbGRpbmciLCJNZXNzYWdlU3F1YXJlIiwiY29sb3JzIiwiQXBwb2ludG1lbnRDYWxlbmRhciIsIkFwcG9pbnRtZW50Rm9ybSIsIm9uU3VibWl0IiwibG9hZGluZyIsImZvcm1EYXRhIiwic2V0Rm9ybURhdGEiLCJuYW1lIiwidGVsZWZvbiIsImZpcm1hIiwiZW1haWwiLCJiZXNjaHJlaWJ1bmciLCJzZWxlY3RlZFNsb3QiLCJzZXRTZWxlY3RlZFNsb3QiLCJlcnJvcnMiLCJzZXRFcnJvcnMiLCJoYW5kbGVJbnB1dENoYW5nZSIsImZpZWxkIiwidmFsdWUiLCJwcmV2IiwibmV3RXJyb3JzIiwiaGFuZGxlU2xvdFNlbGVjdCIsImRhdGUiLCJ0aW1lIiwiY29uc29sZSIsImxvZyIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsInZhbGlkYXRlRm9ybSIsInRyaW0iLCJ0ZXN0IiwidGVybWluX2RhdHVtIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsImhhbmRsZVN1Ym1pdCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInN1Ym1pdERhdGEiLCJ0ZXJtaW5fdGltZSIsImRpdiIsImNsYXNzTmFtZSIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwiYmFja2dyb3VuZCIsImNvbG9yIiwicHJpbWFyeSIsImgzIiwiZm9ybSIsImxhYmVsIiwic3BhbiIsInR5cGUiLCJvbkNoYW5nZSIsInRhcmdldCIsImJvcmRlckNvbG9yIiwidGVydGlhcnkiLCJwbGFjZWhvbGRlciIsInAiLCJyb3dzIiwiZGlzYWJsZWQiLCJvblNsb3RTZWxlY3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/AppointmentForm.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/AppointmentStatus.tsx":
|
||
/*!******************************************!*\
|
||
!*** ./components/AppointmentStatus.tsx ***!
|
||
\******************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ AppointmentStatus; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Calendar_Mail_Clock_User_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Calendar,Mail,Clock,User!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-check-big.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Calendar_Mail_Clock_User_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Calendar,Mail,Clock,User!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/user.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Calendar_Mail_Clock_User_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Calendar,Mail,Clock,User!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Calendar_Mail_Clock_User_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Calendar,Mail,Clock,User!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/calendar.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_Calendar_Mail_Clock_User_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,Calendar,Mail,Clock,User!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js\");\n/* harmony import */ var _lib_colors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/colors */ \"(app-pages-browser)/./lib/colors.ts\");\n/* harmony import */ var _hooks_useAuth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/hooks/useAuth */ \"(app-pages-browser)/./hooks/useAuth.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\nfunction AppointmentStatus() {\n _s();\n const { user, loading } = (0,_hooks_useAuth__WEBPACK_IMPORTED_MODULE_3__.useAuth)();\n const [showStatus, setShowStatus] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Show status if user is authenticated and has appointment_booking metadata\n if (user && !loading) {\n var _user_user_metadata;\n const hasAppointmentBooking = (_user_user_metadata = user.user_metadata) === null || _user_user_metadata === void 0 ? void 0 : _user_user_metadata.appointment_booking;\n if (hasAppointmentBooking) {\n setShowStatus(true);\n // Hide status after 10 seconds\n const timer = setTimeout(()=>{\n setShowStatus(false);\n }, 10000);\n return ()=>clearTimeout(timer);\n }\n }\n }, [\n user,\n loading\n ]);\n if (!showStatus) return null;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed top-4 right-4 z-50 max-w-sm\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-6 rounded-2xl shadow-lg backdrop-blur-sm border-2\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.background, \"F0\"),\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.primary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-3 mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Calendar_Mail_Clock_User_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"w-6 h-6\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.primary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 41,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-semibold\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.primary\n },\n children: \"Termin best\\xe4tigt! ✅\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 42,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 40,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Calendar_Mail_Clock_User_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"w-4 h-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.secondary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 49,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.secondary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \"Status:\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 51,\n columnNumber: 15\n }, this),\n \" Angemeldet\"\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 50,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 48,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Calendar_Mail_Clock_User_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"w-4 h-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.secondary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 56,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.secondary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \"E-Mail:\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 58,\n columnNumber: 15\n }, this),\n \" \",\n user === null || user === void 0 ? void 0 : user.email\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 57,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 55,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Calendar_Mail_Clock_User_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"w-4 h-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.secondary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 63,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.secondary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \"Termin:\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 65,\n columnNumber: 15\n }, this),\n \" Gespeichert\"\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 64,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 62,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_Calendar_Mail_Clock_User_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"w-4 h-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.secondary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 70,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.secondary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \"Zeit:\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 72,\n columnNumber: 15\n }, this),\n \" \",\n new Date().toLocaleTimeString(\"de-DE\")\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 71,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 69,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 47,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowStatus(false),\n className: \"mt-4 w-full p-2 rounded-xl text-sm transition-all duration-200 hover:scale-105\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.primary,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.background\n },\n children: \"Verstanden\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 77,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 33,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\AppointmentStatus.tsx\",\n lineNumber: 32,\n columnNumber: 5\n }, this);\n}\n_s(AppointmentStatus, \"0cw7Jg4CYo2Nxo+Ynb68cuuuUKs=\", false, function() {\n return [\n _hooks_useAuth__WEBPACK_IMPORTED_MODULE_3__.useAuth\n ];\n});\n_c = AppointmentStatus;\nvar _c;\n$RefreshReg$(_c, \"AppointmentStatus\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvQXBwb2ludG1lbnRTdGF0dXMudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNEM7QUFDNEI7QUFDbEM7QUFDSTtBQUUzQixTQUFTUzs7SUFDdEIsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBRSxHQUFHSCx1REFBT0E7SUFDakMsTUFBTSxDQUFDSSxZQUFZQyxjQUFjLEdBQUdaLCtDQUFRQSxDQUFDO0lBRTdDRCxnREFBU0EsQ0FBQztRQUNSLDRFQUE0RTtRQUM1RSxJQUFJVSxRQUFRLENBQUNDLFNBQVM7Z0JBQ1VEO1lBQTlCLE1BQU1JLHlCQUF3Qkosc0JBQUFBLEtBQUtLLGFBQWEsY0FBbEJMLDBDQUFBQSxvQkFBb0JNLG1CQUFtQjtZQUNyRSxJQUFJRix1QkFBdUI7Z0JBQ3pCRCxjQUFjO2dCQUVkLCtCQUErQjtnQkFDL0IsTUFBTUksUUFBUUMsV0FBVztvQkFDdkJMLGNBQWM7Z0JBQ2hCLEdBQUc7Z0JBRUgsT0FBTyxJQUFNTSxhQUFhRjtZQUM1QjtRQUNGO0lBQ0YsR0FBRztRQUFDUDtRQUFNQztLQUFRO0lBRWxCLElBQUksQ0FBQ0MsWUFBWSxPQUFPO0lBRXhCLHFCQUNFLDhEQUFDUTtRQUFJQyxXQUFVO2tCQUNiLDRFQUFDRDtZQUNDQyxXQUFVO1lBQ1ZDLE9BQU87Z0JBQ0xDLGlCQUFpQixHQUFxQixPQUFsQmhCLCtDQUFNQSxDQUFDaUIsVUFBVSxFQUFDO2dCQUN0Q0MsYUFBYWxCLCtDQUFNQSxDQUFDbUIsT0FBTztZQUM3Qjs7OEJBRUEsOERBQUNOO29CQUFJQyxXQUFVOztzQ0FDYiw4REFBQ25CLGdIQUFXQTs0QkFBQ21CLFdBQVU7NEJBQVVDLE9BQU87Z0NBQUVLLE9BQU9wQiwrQ0FBTUEsQ0FBQ21CLE9BQU87NEJBQUM7Ozs7OztzQ0FDaEUsOERBQUNFOzRCQUFHUCxXQUFVOzRCQUFnQkMsT0FBTztnQ0FBRUssT0FBT3BCLCtDQUFNQSxDQUFDbUIsT0FBTzs0QkFBQztzQ0FBRzs7Ozs7Ozs7Ozs7OzhCQUtsRSw4REFBQ047b0JBQUlDLFdBQVU7O3NDQUNiLDhEQUFDRDs0QkFBSUMsV0FBVTs7OENBQ2IsOERBQUNmLGdIQUFJQTtvQ0FBQ2UsV0FBVTtvQ0FBVUMsT0FBTzt3Q0FBRUssT0FBT3BCLCtDQUFNQSxDQUFDc0IsU0FBUztvQ0FBQzs7Ozs7OzhDQUMzRCw4REFBQ0M7b0NBQUtULFdBQVU7b0NBQVVDLE9BQU87d0NBQUVLLE9BQU9wQiwrQ0FBTUEsQ0FBQ3NCLFNBQVM7b0NBQUM7O3NEQUN6RCw4REFBQ0U7c0RBQU87Ozs7Ozt3Q0FBZ0I7Ozs7Ozs7Ozs7Ozs7c0NBSTVCLDhEQUFDWDs0QkFBSUMsV0FBVTs7OENBQ2IsOERBQUNqQixnSEFBSUE7b0NBQUNpQixXQUFVO29DQUFVQyxPQUFPO3dDQUFFSyxPQUFPcEIsK0NBQU1BLENBQUNzQixTQUFTO29DQUFDOzs7Ozs7OENBQzNELDhEQUFDQztvQ0FBS1QsV0FBVTtvQ0FBVUMsT0FBTzt3Q0FBRUssT0FBT3BCLCtDQUFNQSxDQUFDc0IsU0FBUztvQ0FBQzs7c0RBQ3pELDhEQUFDRTtzREFBTzs7Ozs7O3dDQUFnQjt3Q0FBRXJCLGlCQUFBQSwyQkFBQUEsS0FBTXNCLEtBQUs7Ozs7Ozs7Ozs7Ozs7c0NBSXpDLDhEQUFDWjs0QkFBSUMsV0FBVTs7OENBQ2IsOERBQUNsQixnSEFBUUE7b0NBQUNrQixXQUFVO29DQUFVQyxPQUFPO3dDQUFFSyxPQUFPcEIsK0NBQU1BLENBQUNzQixTQUFTO29DQUFDOzs7Ozs7OENBQy9ELDhEQUFDQztvQ0FBS1QsV0FBVTtvQ0FBVUMsT0FBTzt3Q0FBRUssT0FBT3BCLCtDQUFNQSxDQUFDc0IsU0FBUztvQ0FBQzs7c0RBQ3pELDhEQUFDRTtzREFBTzs7Ozs7O3dDQUFnQjs7Ozs7Ozs7Ozs7OztzQ0FJNUIsOERBQUNYOzRCQUFJQyxXQUFVOzs4Q0FDYiw4REFBQ2hCLGdIQUFLQTtvQ0FBQ2dCLFdBQVU7b0NBQVVDLE9BQU87d0NBQUVLLE9BQU9wQiwrQ0FBTUEsQ0FBQ3NCLFNBQVM7b0NBQUM7Ozs7Ozs4Q0FDNUQsOERBQUNDO29DQUFLVCxXQUFVO29DQUFVQyxPQUFPO3dDQUFFSyxPQUFPcEIsK0NBQU1BLENBQUNzQixTQUFTO29DQUFDOztzREFDekQsOERBQUNFO3NEQUFPOzs7Ozs7d0NBQWM7d0NBQUUsSUFBSUUsT0FBT0Msa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OEJBSzVELDhEQUFDQztvQkFDQ0MsU0FBUyxJQUFNdkIsY0FBYztvQkFDN0JRLFdBQVU7b0JBQ1ZDLE9BQU87d0JBQ0xDLGlCQUFpQmhCLCtDQUFNQSxDQUFDbUIsT0FBTzt3QkFDL0JDLE9BQU9wQiwrQ0FBTUEsQ0FBQ2lCLFVBQVU7b0JBQzFCOzhCQUNEOzs7Ozs7Ozs7Ozs7Ozs7OztBQU1UO0dBbEZ3QmY7O1FBQ0lELG1EQUFPQTs7O0tBRFhDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2NvbXBvbmVudHMvQXBwb2ludG1lbnRTdGF0dXMudHN4PzRkNDgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcblxyXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBDaGVja0NpcmNsZSwgQ2FsZW5kYXIsIE1haWwsIENsb2NrLCBVc2VyIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xyXG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICdAL2xpYi9jb2xvcnMnO1xyXG5pbXBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnQC9ob29rcy91c2VBdXRoJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEFwcG9pbnRtZW50U3RhdHVzKCkge1xyXG4gIGNvbnN0IHsgdXNlciwgbG9hZGluZyB9ID0gdXNlQXV0aCgpO1xyXG4gIGNvbnN0IFtzaG93U3RhdHVzLCBzZXRTaG93U3RhdHVzXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIC8vIFNob3cgc3RhdHVzIGlmIHVzZXIgaXMgYXV0aGVudGljYXRlZCBhbmQgaGFzIGFwcG9pbnRtZW50X2Jvb2tpbmcgbWV0YWRhdGFcclxuICAgIGlmICh1c2VyICYmICFsb2FkaW5nKSB7XHJcbiAgICAgIGNvbnN0IGhhc0FwcG9pbnRtZW50Qm9va2luZyA9IHVzZXIudXNlcl9tZXRhZGF0YT8uYXBwb2ludG1lbnRfYm9va2luZztcclxuICAgICAgaWYgKGhhc0FwcG9pbnRtZW50Qm9va2luZykge1xyXG4gICAgICAgIHNldFNob3dTdGF0dXModHJ1ZSk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gSGlkZSBzdGF0dXMgYWZ0ZXIgMTAgc2Vjb25kc1xyXG4gICAgICAgIGNvbnN0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBzZXRTaG93U3RhdHVzKGZhbHNlKTtcclxuICAgICAgICB9LCAxMDAwMCk7XHJcblxyXG4gICAgICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSwgW3VzZXIsIGxvYWRpbmddKTtcclxuXHJcbiAgaWYgKCFzaG93U3RhdHVzKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZml4ZWQgdG9wLTQgcmlnaHQtNCB6LTUwIG1heC13LXNtXCI+XHJcbiAgICAgIDxkaXYgXHJcbiAgICAgICAgY2xhc3NOYW1lPVwicC02IHJvdW5kZWQtMnhsIHNoYWRvdy1sZyBiYWNrZHJvcC1ibHVyLXNtIGJvcmRlci0yXCJcclxuICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3JzLmJhY2tncm91bmR9RjBgLFxyXG4gICAgICAgICAgYm9yZGVyQ29sb3I6IGNvbG9ycy5wcmltYXJ5XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0zIG1iLTRcIj5cclxuICAgICAgICAgIDxDaGVja0NpcmNsZSBjbGFzc05hbWU9XCJ3LTYgaC02XCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19IC8+XHJcbiAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fT5cclxuICAgICAgICAgICAgVGVybWluIGJlc3TDpHRpZ3QhIOKchVxyXG4gICAgICAgICAgPC9oMz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0zXCI+XHJcbiAgICAgICAgICAgIDxVc2VyIGNsYXNzTmFtZT1cInctNCBoLTRcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnNlY29uZGFyeSB9fSAvPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNtXCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5zZWNvbmRhcnkgfX0+XHJcbiAgICAgICAgICAgICAgPHN0cm9uZz5TdGF0dXM6PC9zdHJvbmc+IEFuZ2VtZWxkZXRcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTNcIj5cclxuICAgICAgICAgICAgPE1haWwgY2xhc3NOYW1lPVwidy00IGgtNFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19IC8+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc21cIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnNlY29uZGFyeSB9fT5cclxuICAgICAgICAgICAgICA8c3Ryb25nPkUtTWFpbDo8L3N0cm9uZz4ge3VzZXI/LmVtYWlsfVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtM1wiPlxyXG4gICAgICAgICAgICA8Q2FsZW5kYXIgY2xhc3NOYW1lPVwidy00IGgtNFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19IC8+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc21cIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnNlY29uZGFyeSB9fT5cclxuICAgICAgICAgICAgICA8c3Ryb25nPlRlcm1pbjo8L3N0cm9uZz4gR2VzcGVpY2hlcnRcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTNcIj5cclxuICAgICAgICAgICAgPENsb2NrIGNsYXNzTmFtZT1cInctNCBoLTRcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnNlY29uZGFyeSB9fSAvPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNtXCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5zZWNvbmRhcnkgfX0+XHJcbiAgICAgICAgICAgICAgPHN0cm9uZz5aZWl0Ojwvc3Ryb25nPiB7bmV3IERhdGUoKS50b0xvY2FsZVRpbWVTdHJpbmcoJ2RlLURFJyl9XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93U3RhdHVzKGZhbHNlKX1cclxuICAgICAgICAgIGNsYXNzTmFtZT1cIm10LTQgdy1mdWxsIHAtMiByb3VuZGVkLXhsIHRleHQtc20gdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMjAwIGhvdmVyOnNjYWxlLTEwNVwiXHJcbiAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMucHJpbWFyeSxcclxuICAgICAgICAgICAgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kXHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIFZlcnN0YW5kZW5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59ICJdLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIkNoZWNrQ2lyY2xlIiwiQ2FsZW5kYXIiLCJNYWlsIiwiQ2xvY2siLCJVc2VyIiwiY29sb3JzIiwidXNlQXV0aCIsIkFwcG9pbnRtZW50U3RhdHVzIiwidXNlciIsImxvYWRpbmciLCJzaG93U3RhdHVzIiwic2V0U2hvd1N0YXR1cyIsImhhc0FwcG9pbnRtZW50Qm9va2luZyIsInVzZXJfbWV0YWRhdGEiLCJhcHBvaW50bWVudF9ib29raW5nIiwidGltZXIiLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwiZGl2IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwiYm9yZGVyQ29sb3IiLCJwcmltYXJ5IiwiY29sb3IiLCJoMyIsInNlY29uZGFyeSIsInNwYW4iLCJzdHJvbmciLCJlbWFpbCIsIkRhdGUiLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJidXR0b24iLCJvbkNsaWNrIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/AppointmentStatus.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/EmailVerification.tsx":
|
||
/*!******************************************!*\
|
||
!*** ./components/EmailVerification.tsx ***!
|
||
\******************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ EmailVerification; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./components/ui/input.tsx\");\n/* harmony import */ var _barrel_optimize_names_Mail_CheckCircle_ArrowLeft_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Mail,CheckCircle,ArrowLeft!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\");\n/* harmony import */ var _barrel_optimize_names_Mail_CheckCircle_ArrowLeft_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Mail,CheckCircle,ArrowLeft!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/arrow-left.js\");\n/* harmony import */ var _barrel_optimize_names_Mail_CheckCircle_ArrowLeft_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Mail,CheckCircle,ArrowLeft!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-check-big.js\");\n/* harmony import */ var _lib_supabase__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/lib/supabase */ \"(app-pages-browser)/./lib/supabase.ts\");\n/* harmony import */ var _lib_colors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/lib/colors */ \"(app-pages-browser)/./lib/colors.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\nfunction EmailVerification(param) {\n let { email, onVerificationComplete, onBack } = param;\n _s();\n const [verificationEmail, setVerificationEmail] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(email);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [sent, setSent] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [success, setSuccess] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [rateLimited, setRateLimited] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [cooldownTime, setCooldownTime] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n const handleSendVerification = async ()=>{\n if (!verificationEmail || !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(verificationEmail)) {\n setError(\"Bitte geben Sie eine g\\xfcltige E-Mail-Adresse ein.\");\n return;\n }\n if (rateLimited) {\n setError(\"Rate Limit aktiv. Bitte warten Sie \".concat(cooldownTime, \" Sekunden oder verwenden Sie die manuelle Best\\xe4tigung.\"));\n return;\n }\n setLoading(true);\n setError(null);\n try {\n console.log(\"=== E-MAIL VERIFICATION DEBUG ===\");\n console.log(\"Sending verification email to:\", verificationEmail);\n console.log(\"Current origin:\", window.location.origin);\n console.log(\"Redirect URL:\", \"\".concat(window.location.origin, \"/auth/callback\"));\n // Use signInWithOtp with proper configuration for email verification\n const { data, error } = await _lib_supabase__WEBPACK_IMPORTED_MODULE_4__.supabase.auth.signInWithOtp({\n email: verificationEmail,\n options: {\n shouldCreateUser: true,\n data: {\n // Custom metadata for appointment booking\n appointment_booking: true,\n email: verificationEmail\n }\n }\n });\n console.log(\"Supabase email verification response:\", {\n data,\n error\n });\n if (error) {\n console.error(\"Supabase email verification error:\", error);\n if (error.message.includes(\"rate limit\")) {\n setRateLimited(true);\n setCooldownTime(60); // 60 seconds cooldown\n // Start countdown\n const countdown = setInterval(()=>{\n setCooldownTime((prev)=>{\n if (prev <= 1) {\n clearInterval(countdown);\n setRateLimited(false);\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n setError(\"E-Mail-Rate-Limit erreicht. Bitte warten Sie 60 Sekunden oder verwenden Sie die manuelle Best\\xe4tigung.\");\n } else if (error.message.includes(\"expired\") || error.message.includes(\"invalid\")) {\n setError(\"Der E-Mail-Link ist abgelaufen oder ung\\xfcltig. Bitte fordern Sie einen neuen Link an.\");\n } else {\n setError(\"E-Mail-Fehler: \".concat(error.message));\n }\n } else {\n console.log(\"Verification email sent successfully\");\n setSent(true);\n }\n } catch (err) {\n console.error(\"Unexpected error sending verification email:\", err);\n setError(\"Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.\");\n } finally{\n setLoading(false);\n }\n };\n const handleEmailChange = (e)=>{\n setVerificationEmail(e.target.value);\n if (error) setError(null);\n };\n const handleResend = ()=>{\n setSent(false);\n setError(null);\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full max-w-md mx-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-6 sm:p-8 rounded-3xl shadow-lg backdrop-blur-sm\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.background, \"F0\")\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-3 mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_CheckCircle_ArrowLeft_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"w-6 h-6\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 114,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-bold\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n children: \"E-Mail senden\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 115,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 113,\n columnNumber: 9\n }, this),\n !sent ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.secondary\n },\n children: \"Um Ihren Termin zu best\\xe4tigen, senden wir Ihnen eine Best\\xe4tigungs-E-Mail. Klicken Sie auf den Link in der E-Mail, um sich zu authentifizieren.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 122,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n children: \"E-Mail-Adresse\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 128,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_3__.Input, {\n type: \"email\",\n value: verificationEmail,\n onChange: handleEmailChange,\n className: \"w-full p-3 rounded-xl border-2 focus:outline-none focus:ring-2\",\n style: {\n borderColor: error ? \"#ef4444\" : _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.tertiary,\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.background,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n placeholder: \"ihre@email.de\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 131,\n columnNumber: 15\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-red-500 text-sm mt-1\",\n children: error\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 144,\n columnNumber: 17\n }, this),\n rateLimited && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-2 p-2 rounded-lg border-2 border-orange-300 bg-orange-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-orange-700\",\n children: [\n \"⚠️ \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \"Rate Limit aktiv:\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 150,\n columnNumber: 24\n }, this),\n \" Bitte warten Sie \",\n cooldownTime,\n \" Sekunden oder verwenden Sie die manuelle Best\\xe4tigung.\"\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 149,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 148,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 127,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex space-x-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: onBack,\n variant: \"outline\",\n className: \"flex-1 rounded-xl\",\n style: {\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.tertiary,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_CheckCircle_ArrowLeft_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"w-4 h-4 mr-2\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 166,\n columnNumber: 17\n }, this),\n \"Zur\\xfcck\"\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 157,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: handleSendVerification,\n disabled: loading || rateLimited,\n className: \"flex-1 rounded-xl flex items-center justify-center space-x-2\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.background\n },\n children: loading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-4 w-4 border-b-2 border-white\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 181,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"E-Mail wird gesendet...\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 182,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true) : rateLimited ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n \"Rate Limit (\",\n cooldownTime,\n \"s)\"\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 186,\n columnNumber: 21\n }, this)\n }, void 0, false) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_CheckCircle_ArrowLeft_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 190,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"E-Mail senden\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 191,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 170,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 156,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 121,\n columnNumber: 11\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary, \"20\")\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_CheckCircle_ArrowLeft_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"w-8 h-8\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 202,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 200,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-lg font-semibold mb-2\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n children: \"E-Mail gesendet!\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 205,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm mb-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.secondary\n },\n children: [\n \"Wir haben eine Best\\xe4tigungs-E-Mail an \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: verificationEmail\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 210,\n columnNumber: 55\n }, this),\n \" gesendet. Bitte \\xfcberpr\\xfcfen Sie Ihren Posteingang und klicken Sie auf den Link in der E-Mail.\"\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 209,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 199,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex space-x-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: handleResend,\n variant: \"outline\",\n className: \"flex-1 rounded-xl\",\n style: {\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.tertiary,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary\n },\n children: \"Erneut senden\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 217,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: onVerificationComplete,\n className: \"flex-1 rounded-xl flex items-center justify-center space-x-2\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.primary,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_5__.colors.background\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_CheckCircle_ArrowLeft_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 237,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"E-Mail best\\xe4tigt\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 238,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 229,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 216,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 198,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 109,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\EmailVerification.tsx\",\n lineNumber: 108,\n columnNumber: 5\n }, this);\n}\n_s(EmailVerification, \"gxX+9KdGvGwtIHSL8cavqhyoGoE=\");\n_c = EmailVerification;\nvar _c;\n$RefreshReg$(_c, \"EmailVerification\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvRW1haWxWZXJpZmljYXRpb24udHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFd0M7QUFDUTtBQUNGO0FBQzJCO0FBQy9CO0FBQ0o7QUFRdkIsU0FBU1Msa0JBQWtCLEtBQWlFO1FBQWpFLEVBQUVDLEtBQUssRUFBRUMsc0JBQXNCLEVBQUVDLE1BQU0sRUFBMEIsR0FBakU7O0lBQ3hDLE1BQU0sQ0FBQ0MsbUJBQW1CQyxxQkFBcUIsR0FBR2IsK0NBQVFBLENBQUNTO0lBQzNELE1BQU0sQ0FBQ0ssU0FBU0MsV0FBVyxHQUFHZiwrQ0FBUUEsQ0FBQztJQUN2QyxNQUFNLENBQUNnQixNQUFNQyxRQUFRLEdBQUdqQiwrQ0FBUUEsQ0FBQztJQUNqQyxNQUFNLENBQUNrQixPQUFPQyxTQUFTLEdBQUduQiwrQ0FBUUEsQ0FBZ0I7SUFDbEQsTUFBTSxDQUFDb0IsU0FBU0MsV0FBVyxHQUFHckIsK0NBQVFBLENBQUM7SUFDdkMsTUFBTSxDQUFDc0IsYUFBYUMsZUFBZSxHQUFHdkIsK0NBQVFBLENBQUM7SUFDL0MsTUFBTSxDQUFDd0IsY0FBY0MsZ0JBQWdCLEdBQUd6QiwrQ0FBUUEsQ0FBQztJQUVqRCxNQUFNMEIseUJBQXlCO1FBQzdCLElBQUksQ0FBQ2QscUJBQXFCLENBQUMsNkJBQTZCZSxJQUFJLENBQUNmLG9CQUFvQjtZQUMvRU8sU0FBUztZQUNUO1FBQ0Y7UUFFQSxJQUFJRyxhQUFhO1lBQ2ZILFNBQVMsc0NBQW1ELE9BQWJLLGNBQWE7WUFDNUQ7UUFDRjtRQUVBVCxXQUFXO1FBQ1hJLFNBQVM7UUFFVCxJQUFJO1lBQ0ZTLFFBQVFDLEdBQUcsQ0FBQztZQUNaRCxRQUFRQyxHQUFHLENBQUMsa0NBQWtDakI7WUFDOUNnQixRQUFRQyxHQUFHLENBQUMsbUJBQW1CQyxPQUFPQyxRQUFRLENBQUNDLE1BQU07WUFDckRKLFFBQVFDLEdBQUcsQ0FBQyxpQkFBaUIsR0FBMEIsT0FBdkJDLE9BQU9DLFFB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Tzt3Q0FBRUMsaUJBQWlCLEdBQWtCLE9BQWYvQywrQ0FBTUEsQ0FBQ2tELE9BQU8sRUFBQztvQ0FBSTs4Q0FDbkQsNEVBQUN0RCxzR0FBSUE7d0NBQUNpRCxXQUFVO3dDQUFVQyxPQUFPOzRDQUFFRyxPQUFPakQsK0NBQU1BLENBQUNrRCxPQUFPO3dDQUFDOzs7Ozs7Ozs7Ozs4Q0FHM0QsOERBQUNlO29DQUFHcEIsV0FBVTtvQ0FBNkJDLE9BQU87d0NBQUVHLE9BQU9qRCwrQ0FBTUEsQ0FBQ2tELE9BQU87b0NBQUM7OENBQUc7Ozs7Ozs4Q0FJN0UsOERBQUNFO29DQUFFUCxXQUFVO29DQUFlQyxPQUFPO3dDQUFFRyxPQUFPakQsK0NBQU1BLENBQUNxRCxTQUFTO29DQUFDOzt3Q0FBRztzREFDeEIsOERBQUNPO3NEQUFRdkQ7Ozs7Ozt3Q0FBMkI7Ozs7Ozs7Ozs7Ozs7c0NBTTlFLDhEQUFDdUM7NEJBQUlDLFdBQVU7OzhDQUNiLDhEQUFDbkQseURBQU1BO29DQUNMbUUsU0FBU2xCO29DQUNUbUIsU0FBUTtvQ0FDUmpCLFdBQVU7b0NBQ1ZDLE9BQU87d0NBQ0xXLGFBQWF6RCwrQ0FBTUEsQ0FBQzBELFFBQVE7d0NBQzVCVCxPQUFPakQsK0NBQU1BLENBQUNrRCxPQUFPO29DQUN2Qjs4Q0FDRDs7Ozs7OzhDQUlELDhEQUFDeEQseURBQU1BO29DQUNMbUUsU0FBUzFEO29DQUNUMEMsV0FBVTtvQ0FDVkMsT0FBTzt3Q0FDTEMsaUJBQWlCL0MsK0NBQU1BLENBQUNrRCxPQUFPO3dDQUMvQkQsT0FBT2pELCtDQUFNQSxDQUFDZ0QsVUFBVTtvQ0FDMUI7O3NEQUVBLDhEQUFDbkQsc0dBQVdBOzRDQUFDZ0QsV0FBVTs7Ozs7O3NEQUN2Qiw4REFBQ21CO3NEQUFLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVF0QjtHQXRPd0IvRDtLQUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9jb21wb25lbnRzL0VtYWlsVmVyaWZpY2F0aW9uLnRzeD85YjA2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5cclxuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvaW5wdXRcIjtcclxuaW1wb3J0IHsgTWFpbCwgQ2hlY2tDaXJjbGUsIEFsZXJ0Q2lyY2xlLCBBcnJvd0xlZnQgfSBmcm9tIFwibHVjaWRlLXJlYWN0XCI7XHJcbmltcG9ydCB7IHN1cGFiYXNlIH0gZnJvbSAnQC9saWIvc3VwYWJhc2UnO1xyXG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICdAL2xpYi9jb2xvcnMnO1xyXG5cclxuaW50ZXJmYWNlIEVtYWlsVmVyaWZpY2F0aW9uUHJvcHMge1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgb25WZXJpZmljYXRpb25Db21wbGV0ZTogKCkgPT4gdm9pZDtcclxuICBvbkJhY2s6ICgpID0+IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEVtYWlsVmVyaWZpY2F0aW9uKHsgZW1haWwsIG9uVmVyaWZpY2F0aW9uQ29tcGxldGUsIG9uQmFjayB9OiBFbWFpbFZlcmlmaWNhdGlvblByb3BzKSB7XHJcbiAgY29uc3QgW3ZlcmlmaWNhdGlvbkVtYWlsLCBzZXRWZXJpZmljYXRpb25FbWFpbF0gPSB1c2VTdGF0ZShlbWFpbCk7XHJcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xyXG4gIGNvbnN0IFtzZW50LCBzZXRTZW50XSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xyXG4gIGNvbnN0IFtzdWNjZXNzLCBzZXRTdWNjZXNzXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICBjb25zdCBbcmF0ZUxpbWl0ZWQsIHNldFJhdGVMaW1pdGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICBjb25zdCBbY29vbGRvd25UaW1lLCBzZXRDb29sZG93blRpbWVdID0gdXNlU3RhdGUoMCk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZVNlbmRWZXJpZmljYXRpb24gPSBhc3luYyAoKSA9PiB7XHJcbiAgICBpZiAoIXZlcmlmaWNhdGlvbkVtYWlsIHx8ICEvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLy50ZXN0KHZlcmlmaWNhdGlvbkVtYWlsKSkge1xyXG4gICAgICBzZXRFcnJvcignQml0dGUgZ2ViZW4gU2llIGVpbmUgZ8O8bHRpZ2UgRS1NYWlsLUFkcmVzc2UgZWluLicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHJhdGVMaW1pdGVkKSB7XHJcbiAgICAgIHNldEVycm9yKGBSYXRlIExpbWl0IGFrdGl2LiBCaXR0ZSB3YXJ0ZW4gU2llICR7Y29vbGRvd25UaW1lfSBTZWt1bmRlbiBvZGVyIHZlcndlbmRlbiBTaWUgZGllIG1hbnVlbGxlIEJlc3TDpHRpZ3VuZy5gKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldExvYWRpbmcodHJ1ZSk7XHJcbiAgICBzZXRFcnJvcihudWxsKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zb2xlLmxvZygnPT09IEUtTUFJTCBWRVJJRklDQVRJT04gREVCVUcgPT09Jyk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdTZW5kaW5nIHZlcmlmaWNhdGlvbiBlbWFpbCB0bzonLCB2ZXJpZmljYXRpb25FbWFpbCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdDdXJyZW50IG9yaWdpbjonLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKTtcclxuICAgICAgY29uc29sZS5sb2coJ1JlZGlyZWN0IFVSTDonLCBgJHt3aW5kb3cubG9jYXRpb24ub3JpZ2lufS9hdXRoL2NhbGxiYWNrYCk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBVc2Ugc2lnbkluV2l0aE90cCB3aXRoIHByb3BlciBjb25maWd1cmF0aW9uIGZvciBlbWFpbCB2ZXJpZmljYXRpb25cclxuICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgc3VwYWJhc2UuYXV0aC5zaWduSW5XaXRoT3RwKHtcclxuICAgICAgICBlbWFpbDogdmVyaWZpY2F0aW9uRW1haWwsXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgc2hvdWxkQ3JlYXRlVXNlcjogdHJ1ZSxcclxuICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgLy8gQ3VzdG9tIG1ldGFkYXRhIGZvciBhcHBvaW50bWVudCBib29raW5nXHJcbiAgICAgICAgICAgIGFwcG9pbnRtZW50X2Jvb2tpbmc6IHRydWUsXHJcbiAgICAgICAgICAgIGVtYWlsOiB2ZXJpZmljYXRpb25FbWFpbFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjb25zb2xlLmxvZygnU3VwYWJhc2UgZW1haWwgdmVyaWZpY2F0aW9uIHJlc3BvbnNlOicsIHsgZGF0YSwgZXJyb3IgfSk7XHJcblxyXG4gICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdTdXBhYmFzZSBlbWFpbCB2ZXJpZmljYXRpb24gZXJyb3I6JywgZXJyb3IpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChlcnJvci5tZXNzYWdlLmluY2x1ZGVzKCdyYXRlIGxpbWl0JykpIHtcclxuICAgICAgICAgIHNldFJhdGVMaW1pdGVkKHRydWUpO1xyXG4gICAgICAgICAgc2V0Q29vbGRvd25UaW1lKDYwKTsgLy8gNjAgc2Vjb25kcyBjb29sZG93blxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyBTdGFydCBjb3VudGRvd25cclxuICAgICAgICAgIGNvbnN0IGNvdW50ZG93biA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgc2V0Q29vbGRvd25UaW1lKHByZXYgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChwcmV2IDw9IDEpIHtcclxuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoY291bnRkb3duKTtcclxuICAgICAgICAgICAgICAgIHNldFJhdGVMaW1pdGVkKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gcHJldiAtIDE7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHNldEVycm9yKGBFLU1haWwtUmF0ZS1MaW1pdCBlcnJlaWNodC4gQml0dGUgd2FydGVuIFNpZSA2MCBTZWt1bmRlbiBvZGVyIHZlcndlbmRlbiBTaWUgZGllIG1hbnVlbGxlIEJlc3TDpHRpZ3VuZy5gKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoJ2V4cGlyZWQnKSB8fCBlcnJvci5tZXNzYWdlLmluY2x1ZGVzKCdpbnZhbGlkJykpIHtcclxuICAgICAgICAgIHNldEVycm9yKCdEZXIgRS1NYWlsLUxpbmsgaXN0IGFiZ2VsYXVmZW4gb2RlciB1bmfDvGx0aWcuIEJpdHRlIGZvcmRlcm4gU2llIGVpbmVuIG5ldWVuIExpbmsgYW4uJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNldEVycm9yKGBFLU1haWwtRmVobGVyOiAke2Vycm9yLm1lc3NhZ2V9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdWZXJpZmljYXRpb24gZW1haWwgc2VudCBzdWNjZXNzZnVsbHknKTtcclxuICAgICAgICBzZXRTZW50KHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignVW5leHBlY3RlZCBlcnJvciBzZW5kaW5nIHZlcmlmaWNhdGlvbiBlbWFpbDonLCBlcnIpO1xyXG4gICAgICBzZXRFcnJvcignRWluIEZlaGxlciBpc3QgYXVmZ2V0cmV0ZW4uIEJpdHRlIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LicpO1xyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlRW1haWxDaGFuZ2UgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcclxuICAgIHNldFZlcmlmaWNhdGlvbkVtYWlsKGUudGFyZ2V0LnZhbHVlKTtcclxuICAgIGlmIChlcnJvcikgc2V0RXJyb3IobnVsbCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlUmVzZW5kID0gKCkgPT4ge1xyXG4gICAgc2V0U2VudChmYWxzZSk7XHJcbiAgICBzZXRFcnJvcihudWxsKTtcclxuICB9O1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgbWF4LXctbWQgbXgtYXV0b1wiPlxyXG4gICAgICA8ZGl2IFxyXG4gICAgICAgIGNsYXNzTmFtZT1cInAtNiBzbTpwLTggcm91bmRlZC0zeGwgc2hhZG93LWxnIGJhY2tkcm9wLWJsdXItc21cIlxyXG4gICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3JzLmJhY2tncm91bmR9RjBgIH19XHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMyBtYi02XCI+XHJcbiAgICAgICAgICA8TWFpbCBjbGFzc05hbWU9XCJ3LTYgaC02XCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19IC8+XHJcbiAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWJvbGRcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX0+XHJcbiAgICAgICAgICAgIEUtTWFpbCBzZW5kZW5cclxuICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgeyFzZW50ID8gKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTZcIj5cclxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbVwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19PlxyXG4gICAgICAgICAgICAgIFVtIElocmVuIFRlcm1pbiB6dSBiZXN0w6R0aWdlbiwgc2VuZGVuIHdpciBJaG5lbiBlaW5lIEJlc3TDpHRpZ3VuZ3MtRS1NYWlsLiBcclxuICAgICAgICAgICAgICBLbGlja2VuIFNpZSBhdWYgZGVuIExpbmsgaW4gZGVyIEUtTWFpbCwgdW0gc2ljaCB6dSBhdXRoZW50aWZpemllcmVuLlxyXG4gICAgICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIG1iLTJcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX0+XHJcbiAgICAgICAgICAgICAgICBFLU1haWwtQWRyZXNzZVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPElucHV0IFxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCIgXHJcbiAgICAgICAgICAgICAgICB2YWx1ZT17dmVyaWZpY2F0aW9uRW1haWx9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRW1haWxDaGFuZ2V9XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgcC0zIHJvdW5kZWQteGwgYm9yZGVyLTIgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMlwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yID8gJyNlZjQ0NDQnIDogY29sb3JzLnRlcnRpYXJ5LFxyXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kLFxyXG4gICAgICAgICAgICAgICAgICBjb2xvcjogY29sb3JzLnByaW1hcnlcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImlocmVAZW1haWwuZGVcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAge2Vycm9yICYmIChcclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtcmVkLTUwMCB0ZXh0LXNtIG10LTFcIj57ZXJyb3J9PC9wPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAge3JhdGVMaW1pdGVkICYmIChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMiBwLTIgcm91bmRlZC1sZyBib3JkZXItMiBib3JkZXItb3JhbmdlLTMwMCBiZy1vcmFuZ2UtNTBcIj5cclxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LW9yYW5nZS03MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICDimqDvuI8gPHN0cm9uZz5SYXRlIExpbWl0IGFrdGl2Ojwvc3Ryb25nPiBCaXR0ZSB3YXJ0ZW4gU2llIHtjb29sZG93blRpbWV9IFNla3VuZGVuIG9kZXIgdmVyd2VuZGVuIFNpZSBkaWUgbWFudWVsbGUgQmVzdMOkdGlndW5nLlxyXG4gICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBzcGFjZS14LTNcIj5cclxuICAgICAgICAgICAgICA8QnV0dG9uIFxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25CYWNrfVxyXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleC0xIHJvdW5kZWQteGxcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgXHJcbiAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBjb2xvcnMudGVydGlhcnksXHJcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcnMucHJpbWFyeVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8QXJyb3dMZWZ0IGNsYXNzTmFtZT1cInctNCBoLTQgbXItMlwiIC8+XHJcbiAgICAgICAgICAgICAgICBadXLDvGNrXHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPEJ1dHRvbiBcclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRWZXJpZmljYXRpb259XHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17bG9hZGluZyB8fCByYXRlTGltaXRlZH1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSByb3VuZGVkLXhsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHNwYWNlLXgtMlwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMucHJpbWFyeSxcclxuICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHtsb2FkaW5nID8gKFxyXG4gICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYW5pbWF0ZS1zcGluIHJvdW5kZWQtZnVsbCBoLTQgdy00IGJvcmRlci1iLTIgYm9yZGVyLXdoaXRlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+RS1NYWlsIHdpcmQgZ2VzZW5kZXQuLi48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgKSA6IHJhdGVMaW1pdGVkID8gKFxyXG4gICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlJhdGUgTGltaXQgKHtjb29sZG93blRpbWV9cyk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgICA8TWFpbCBjbGFzc05hbWU9XCJ3LTQgaC00XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj5FLU1haWwgc2VuZGVuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMTYgaC0xNiByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbXgtYXV0byBtYi00XCJcclxuICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3JzLnByaW1hcnl9MjBgIH19PlxyXG4gICAgICAgICAgICAgICAgPE1haWwgY2xhc3NOYW1lPVwidy04IGgtOFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fSAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbWItMlwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fT5cclxuICAgICAgICAgICAgICAgIEUtTWFpbCBnZXNlbmRldCFcclxuICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gbWItNFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19PlxyXG4gICAgICAgICAgICAgICAgV2lyIGhhYmVuIGVpbmUgQmVzdMOkdGlndW5ncy1FLU1haWwgYW4gPHN0cm9uZz57dmVyaWZpY2F0aW9uRW1haWx9PC9zdHJvbmc+IGdlc2VuZGV0LiBcclxuICAgICAgICAgICAgICAgIEJpdHRlIMO8YmVycHLDvGZlbiBTaWUgSWhyZW4gUG9zdGVpbmdhbmcgdW5kIGtsaWNrZW4gU2llIGF1ZiBkZW4gTGluayBpbiBkZXIgRS1NYWlsLlxyXG4gICAgICAgICAgICAgIDwvcD5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IHNwYWNlLXgtM1wiPlxyXG4gICAgICAgICAgICAgIDxCdXR0b24gXHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVSZXNlbmR9XHJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4LTEgcm91bmRlZC14bFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGNvbG9ycy50ZXJ0aWFyeSxcclxuICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy5wcmltYXJ5XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIEVybmV1dCBzZW5kZW5cclxuICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8QnV0dG9uIFxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25WZXJpZmljYXRpb25Db21wbGV0ZX1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSByb3VuZGVkLXhsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHNwYWNlLXgtMlwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMucHJpbWFyeSxcclxuICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxDaGVja0NpcmNsZSBjbGFzc05hbWU9XCJ3LTQgaC00XCIgLz5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkUtTWFpbCBiZXN0w6R0aWd0PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufSAiXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsIkJ1dHRvbiIsIklucHV0IiwiTWFpbCIsIkNoZWNrQ2lyY2xlIiwiQXJyb3dMZWZ0Iiwic3VwYWJhc2UiLCJjb2xvcnMiLCJFbWFpbFZlcmlmaWNhdGlvbiIsImVtYWlsIiwib25WZXJpZmljYXRpb25Db21wbGV0ZSIsIm9uQmFjayIsInZlcmlmaWNhdGlvbkVtYWlsIiwic2V0VmVyaWZpY2F0aW9uRW1haWwiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsInNlbnQiLCJzZXRTZW50IiwiZXJyb3IiLCJzZXRFcnJvciIsInN1Y2Nlc3MiLCJzZXRTdWNjZXNzIiwicmF0ZUxpbWl0ZWQiLCJzZXRSYXRlTGltaXRlZCIsImNvb2xkb3duVGltZSIsInNldENvb2xkb3duVGltZSIsImhhbmRsZVNlbmRWZXJpZmljYXRpb24iLCJ0ZXN0IiwiY29uc29sZSIsImxvZyIsIndpbmRvdyIsImxvY2F0aW9uIiwib3JpZ2luIiwiZGF0YSIsImF1dGgiLCJzaWduSW5XaXRoT3RwIiwib3B0aW9ucyIsInNob3VsZENyZWF0ZVVzZXIiLCJhcHBvaW50bWVudF9ib29raW5nIiwibWVzc2FnZSIsImluY2x1ZGVzIiwiY291bnRkb3duIiwic2V0SW50ZXJ2YWwiLCJwcmV2IiwiY2xlYXJJbnRlcnZhbCIsImVyciIsImhhbmRsZUVtYWlsQ2hhbmdlIiwiZSIsInRhcmdldCIsInZhbHVlIiwiaGFuZGxlUmVzZW5kIiwiZGl2IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwiY29sb3IiLCJwcmltYXJ5IiwiaDMiLCJwIiwic2Vjb25kYXJ5IiwibGFiZWwiLCJ0eXBlIiwib25DaGFuZ2UiLCJib3JkZXJDb2xvciIsInRlcnRpYXJ5IiwicGxhY2Vob2xkZXIiLCJzdHJvbmciLCJvbkNsaWNrIiwidmFyaWFudCIsImRpc2FibGVkIiwic3BhbiIsImg0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/EmailVerification.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/GlassSurface.tsx":
|
||
/*!*************************************!*\
|
||
!*** ./components/GlassSurface.tsx ***!
|
||
\*************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _GlassSurface_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./GlassSurface.css */ \"(app-pages-browser)/./components/GlassSurface.css\");\n\nvar _s = $RefreshSig$();\n\n\nconst GlassSurface = (param)=>{\n let { children, width = 200, height = 80, borderRadius = 20, borderWidth = 0.07, brightness = 50, opacity = 0.93, blur = 11, displace = 0, backgroundOpacity = 0, saturation = 1, distortionScale = -180, redOffset = 0, greenOffset = 10, blueOffset = 20, xChannel = \"R\", yChannel = \"G\", mixBlendMode = \"difference\", className = \"\", style = {} } = param;\n _s();\n const uniqueId = (0,react__WEBPACK_IMPORTED_MODULE_1__.useId)().replace(/:/g, \"-\");\n const filterId = \"glass-filter-\".concat(uniqueId);\n const redGradId = \"red-grad-\".concat(uniqueId);\n const blueGradId = \"blue-grad-\".concat(uniqueId);\n const containerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const feImageRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const redChannelRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const greenChannelRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const blueChannelRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const gaussianBlurRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const generateDisplacementMap = ()=>{\n var _containerRef_current;\n const rect = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : _containerRef_current.getBoundingClientRect();\n const actualWidth = (rect === null || rect === void 0 ? void 0 : rect.width) || 400;\n const actualHeight = (rect === null || rect === void 0 ? void 0 : rect.height) || 200;\n const edgeSize = Math.min(actualWidth, actualHeight) * (borderWidth * 0.5);\n const svgContent = '\\n <svg viewBox=\"0 0 '.concat(actualWidth, \" \").concat(actualHeight, '\" xmlns=\"http://www.w3.org/2000/svg\">\\n <defs>\\n <linearGradient id=\"').concat(redGradId, '\" x1=\"100%\" y1=\"0%\" x2=\"0%\" y2=\"0%\">\\n <stop offset=\"0%\" stop-color=\"#0000\"/>\\n <stop offset=\"100%\" stop-color=\"red\"/>\\n </linearGradient>\\n <linearGradient id=\"').concat(blueGradId, '\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\\n <stop offset=\"0%\" stop-color=\"#0000\"/>\\n <stop offset=\"100%\" stop-color=\"blue\"/>\\n </linearGradient>\\n </defs>\\n <rect x=\"0\" y=\"0\" width=\"').concat(actualWidth, '\" height=\"').concat(actualHeight, '\" fill=\"black\"></rect>\\n <rect x=\"0\" y=\"0\" width=\"').concat(actualWidth, '\" height=\"').concat(actualHeight, '\" rx=\"').concat(borderRadius, '\" fill=\"url(#').concat(redGradId, ')\" />\\n <rect x=\"0\" y=\"0\" width=\"').concat(actualWidth, '\" height=\"').concat(actualHeight, '\" rx=\"').concat(borderRadius, '\" fill=\"url(#').concat(blueGradId, ')\" style=\"mix-blend-mode: ').concat(mixBlendMode, '\" />\\n <rect x=\"').concat(edgeSize, '\" y=\"').concat(edgeSize, '\" width=\"').concat(actualWidth - edgeSize * 2, '\" height=\"').concat(actualHeight - edgeSize * 2, '\" rx=\"').concat(borderRadius, '\" fill=\"hsl(0 0% ').concat(brightness, \"% / \").concat(opacity, ')\" style=\"filter:blur(').concat(blur, 'px)\" />\\n </svg>\\n ');\n return \"data:image/svg+xml,\".concat(encodeURIComponent(svgContent));\n };\n const updateDisplacementMap = ()=>{\n if (feImageRef.current) {\n feImageRef.current.setAttribute(\"href\", generateDisplacementMap());\n }\n };\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n updateDisplacementMap();\n [\n {\n ref: redChannelRef,\n offset: redOffset\n },\n {\n ref: greenChannelRef,\n offset: greenOffset\n },\n {\n ref: blueChannelRef,\n offset: blueOffset\n }\n ].forEach((param)=>{\n let { ref, offset } = param;\n if (ref.current) {\n ref.current.setAttribute(\"scale\", (distortionScale + offset).toString());\n ref.current.setAttribute(\"xChannelSelector\", xChannel);\n ref.current.setAttribute(\"yChannelSelector\", yChannel);\n }\n });\n if (gaussianBlurRef.current) {\n gaussianBlurRef.current.setAttribute(\"stdDeviation\", displace.toString());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n width,\n height,\n borderRadius,\n borderWidth,\n brightness,\n opacity,\n blur,\n displace,\n distortionScale,\n redOffset,\n greenOffset,\n blueOffset,\n xChannel,\n yChannel,\n mixBlendMode\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (!containerRef.current) return;\n const resizeObserver = new ResizeObserver(()=>{\n setTimeout(updateDisplacementMap, 0);\n });\n resizeObserver.observe(containerRef.current);\n return ()=>{\n resizeObserver.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n setTimeout(updateDisplacementMap, 0);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n width,\n height\n ]);\n const supportsSVGFilters = ()=>{\n const isWebkit = /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent);\n const isFirefox = /Firefox/.test(navigator.userAgent);\n if (isWebkit || isFirefox) {\n return false;\n }\n const div = document.createElement(\"div\");\n div.style.backdropFilter = \"url(#\".concat(filterId, \")\");\n return div.style.backdropFilter !== \"\";\n };\n const containerStyle = {\n ...style,\n width: typeof width === \"number\" ? \"\".concat(width, \"px\") : width,\n height: typeof height === \"number\" ? \"\".concat(height, \"px\") : height,\n borderRadius: \"\".concat(borderRadius, \"px\"),\n \"--glass-frost\": backgroundOpacity,\n \"--glass-saturation\": saturation,\n \"--filter-id\": \"url(#\".concat(filterId, \")\")\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: containerRef,\n className: \"glass-surface \".concat(supportsSVGFilters() ? \"glass-surface--svg\" : \"glass-surface--fallback\", \" \").concat(className),\n style: containerStyle,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"glass-surface__filter\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"filter\", {\n id: filterId,\n colorInterpolationFilters: \"sRGB\",\n x: \"0%\",\n y: \"0%\",\n width: \"100%\",\n height: \"100%\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"feImage\", {\n ref: feImageRef,\n x: \"0\",\n y: \"0\",\n width: \"100%\",\n height: \"100%\",\n preserveAspectRatio: \"none\",\n result: \"map\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 182,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"feDisplacementMap\", {\n ref: redChannelRef,\n in: \"SourceGraphic\",\n in2: \"map\",\n id: \"redchannel\",\n result: \"dispRed\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 183,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"feColorMatrix\", {\n in: \"dispRed\",\n type: \"matrix\",\n values: \"1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0\",\n result: \"red\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 184,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"feDisplacementMap\", {\n ref: greenChannelRef,\n in: \"SourceGraphic\",\n in2: \"map\",\n id: \"greenchannel\",\n result: \"dispGreen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 193,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"feColorMatrix\", {\n in: \"dispGreen\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0\",\n result: \"green\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 200,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"feDisplacementMap\", {\n ref: blueChannelRef,\n in: \"SourceGraphic\",\n in2: \"map\",\n id: \"bluechannel\",\n result: \"dispBlue\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 209,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"feColorMatrix\", {\n in: \"dispBlue\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0\",\n result: \"blue\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 210,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"feBlend\", {\n in: \"red\",\n in2: \"green\",\n mode: \"screen\",\n result: \"rg\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 219,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"feBlend\", {\n in: \"rg\",\n in2: \"blue\",\n mode: \"screen\",\n result: \"output\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 220,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"feGaussianBlur\", {\n ref: gaussianBlurRef,\n in: \"output\",\n stdDeviation: \"0.7\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 221,\n columnNumber: 13\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 181,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 180,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 179,\n columnNumber: 7\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"glass-surface__content\",\n children: children\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 225,\n columnNumber: 7\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\GlassSurface.tsx\",\n lineNumber: 174,\n columnNumber: 5\n }, undefined);\n};\n_s(GlassSurface, \"Nq0WZIQEVMhyCGgrFKUOyjHtQSQ=\", false, function() {\n return [\n react__WEBPACK_IMPORTED_MODULE_1__.useId\n ];\n});\n_c = GlassSurface;\n/* harmony default export */ __webpack_exports__[\"default\"] = (GlassSurface);\nvar _c;\n$RefreshReg$(_c, \"GlassSurface\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvR2xhc3NTdXJmYWNlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTJFO0FBQy9DO0FBeUI1QixNQUFNRyxlQUE0QztRQUFDLEVBQ2pEQyxRQUFRLEVBQ1JDLFFBQVEsR0FBRyxFQUNYQyxTQUFTLEVBQUUsRUFDWEMsZUFBZSxFQUFFLEVBQ2pCQyxjQUFjLElBQUksRUFDbEJDLGFBQWEsRUFBRSxFQUNmQyxVQUFVLElBQUksRUFDZEMsT0FBTyxFQUFFLEVBQ1RDLFdBQVcsQ0FBQyxFQUNaQyxvQkFBb0IsQ0FBQyxFQUNyQkMsYUFBYSxDQUFDLEVBQ2RDLGtCQUFrQixDQUFDLEdBQUcsRUFDdEJDLFlBQVksQ0FBQyxFQUNiQyxjQUFjLEVBQUUsRUFDaEJDLGFBQWEsRUFBRSxFQUNmQyxXQUFXLEdBQUcsRUFDZEMsV0FBVyxHQUFHLEVBQ2RDLGVBQWUsWUFBWSxFQUMzQkMsWUFBWSxFQUFFLEVBQ2RDLFFBQVEsQ0FBQyxDQUFDLEVBQ1g7O0lBQ0MsTUFBTUMsV0FBV3RCLDRDQUFLQSxHQUFHdUIsT0FBTyxDQUFDLE1BQU07SUFDdkMsTUFBTUMsV0FBVyxnQkFBeUIsT0FBVEY7SUFDakMsTUFBTUcsWUFBWSxZQUFxQixPQUFUSDtJQUM5QixNQUFNSSxhQUFhLGFBQXNCLE9BQVRKO0lBQ2hDLE1BQU1LLGVBQWU1Qiw2Q0FBTUEsQ0FBaUI7SUFDNUMsTUFBTTZCLGFBQWE3Qiw2Q0FBTUEsQ0FBb0I7SUFDN0MsTUFBTThCLGdCQUFnQjlCLDZDQUFNQSxDQUE4QjtJQUMxRCxNQUFNK0Isa0JBQWtCL0IsNkNBQU1BLENBQThCO0lBQzVELE1BQU1nQyxpQkFBaUJoQyw2Q0FBTUEsQ0FBOEI7SUFDM0QsTUFBTWlDLGtCQUFrQmpDLDZDQUFNQSxDQUEyQjtJQUV6RCxNQUFNa0MsMEJBQTBCO1lBQ2pCTjtRQUFiLE1BQU1PLFFBQU9QLHdCQUFBQSxhQUFhUSxPQUFPLGNBQXBCUiw0Q0FBQUEsc0JBQXNCUyxxQkFBcUI7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LFFBQU87Ozs7OzswQ0FDM0YsOERBQUNJO2dDQUNDRixJQUFHO2dDQUNIRyxNQUFLO2dDQUNMQyxRQUFPO2dDQUlQTixRQUFPOzs7Ozs7MENBRVQsOERBQUNDO2dDQUNDL0IsS0FBS2hCO2dDQUNMZ0QsSUFBRztnQ0FDSEMsS0FBSTtnQ0FDSlQsSUFBRztnQ0FDSE0sUUFBTzs7Ozs7OzBDQUVULDhEQUFDSTtnQ0FDQ0YsSUFBRztnQ0FDSEcsTUFBSztnQ0FDTEMsUUFBTztnQ0FJUE4sUUFBTzs7Ozs7OzBDQUVULDhEQUFDQztnQ0FBa0IvQixLQUFLZjtnQ0FBZ0IrQyxJQUFHO2dDQUFnQkMsS0FBSTtnQ0FBTVQsSUFBRztnQ0FBY00sUUFBTzs7Ozs7OzBDQUM3Riw4REFBQ0k7Z0NBQ0NGLElBQUc7Z0NBQ0hHLE1BQUs7Z0NBQ0xDLFFBQU87Z0NBSVBOLFFBQU87Ozs7OzswQ0FFVCw4REFBQ087Z0NBQVFMLElBQUc7Z0NBQU1DLEtBQUk7Z0NBQVFLLE1BQUs7Z0NBQVNSLFFBQU87Ozs7OzswQ0FDbkQsOERBQUNPO2dDQUFRTCxJQUFHO2dDQUFLQyxLQUFJO2dDQUFPSyxNQUFLO2dDQUFTUixRQUFPOzs7Ozs7MENBQ2pELDhEQUFDUztnQ0FBZXZDLEtBQUtkO2dDQUFpQjhDLElBQUc7Z0NBQVNRLGNBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBSXJFLDhEQUFDekI7Z0JBQUl6QyxXQUFVOzBCQUEwQmxCOzs7Ozs7Ozs7Ozs7QUFHL0M7R0F6TU1EOztRQXNCYUQsd0NBQUtBOzs7S0F0QmxCQztBQTJNTiwrREFBZUEsWUFBWUEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9jb21wb25lbnRzL0dsYXNzU3VyZmFjZS50c3g/MDM0NyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlSWQsIFJlYWN0Tm9kZSwgQ1NTUHJvcGVydGllcyB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0ICcuL0dsYXNzU3VyZmFjZS5jc3MnO1xyXG5cclxuaW50ZXJmYWNlIEdsYXNzU3VyZmFjZVByb3BzIHtcclxuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gIHdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xyXG4gIGhlaWdodD86IG51bWJlciB8IHN0cmluZztcclxuICBib3JkZXJSYWRpdXM/OiBudW1iZXI7XHJcbiAgYm9yZGVyV2lkdGg/OiBudW1iZXI7XHJcbiAgYnJpZ2h0bmVzcz86IG51bWJlcjtcclxuICBvcGFjaXR5PzogbnVtYmVyO1xyXG4gIGJsdXI/OiBudW1iZXI7XHJcbiAgZGlzcGxhY2U/OiBudW1iZXI7XHJcbiAgYmFja2dyb3VuZE9wYWNpdHk/OiBudW1iZXI7XHJcbiAgc2F0dXJhdGlvbj86IG51bWJlcjtcclxuICBkaXN0b3J0aW9uU2NhbGU/OiBudW1iZXI7XHJcbiAgcmVkT2Zmc2V0PzogbnVtYmVyO1xyXG4gIGdyZWVuT2Zmc2V0PzogbnVtYmVyO1xyXG4gIGJsdWVPZmZzZXQ/OiBudW1iZXI7XHJcbiAgeENoYW5uZWw/OiBzdHJpbmc7XHJcbiAgeUNoYW5uZWw/OiBzdHJpbmc7XHJcbiAgbWl4QmxlbmRNb2RlPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxuICBzdHlsZT86IENTU1Byb3BlcnRpZXM7XHJcbn1cclxuXHJcbmNvbnN0IEdsYXNzU3VyZmFjZTogUmVhY3QuRkM8R2xhc3NTdXJmYWNlUHJvcHM+ID0gKHtcclxuICBjaGlsZHJlbixcclxuICB3aWR0aCA9IDIwMCxcclxuICBoZWlnaHQgPSA4MCxcclxuICBib3JkZXJSYWRpdXMgPSAyMCxcclxuICBib3JkZXJXaWR0aCA9IDAuMDcsXHJcbiAgYnJpZ2h0bmVzcyA9IDUwLFxyXG4gIG9wYWNpdHkgPSAwLjkzLFxyXG4gIGJsdXIgPSAxMSxcclxuICBkaXNwbGFjZSA9IDAsXHJcbiAgYmFja2dyb3VuZE9wYWNpdHkgPSAwLFxyXG4gIHNhdHVyYXRpb24gPSAxLFxyXG4gIGRpc3RvcnRpb25TY2FsZSA9IC0xODAsXHJcbiAgcmVkT2Zmc2V0ID0gMCxcclxuICBncmVlbk9mZnNldCA9IDEwLFxyXG4gIGJsdWVPZmZzZXQgPSAyMCxcclxuICB4Q2hhbm5lbCA9ICdSJyxcclxuICB5Q2hhbm5lbCA9ICdHJyxcclxuICBtaXhCbGVuZE1vZGUgPSAnZGlmZmVyZW5jZScsXHJcbiAgY2xhc3NOYW1lID0gJycsXHJcbiAgc3R5bGUgPSB7fVxyXG59KSA9PiB7XHJcbiAgY29uc3QgdW5pcXVlSWQgPSB1c2VJZCgpLnJlcGxhY2UoLzovZywgJy0nKTtcclxuICBjb25zdCBmaWx0ZXJJZCA9IGBnbGFzcy1maWx0ZXItJHt1bmlxdWVJZH1gO1xyXG4gIGNvbnN0IHJlZEdyYWRJZCA9IGByZWQtZ3JhZC0ke3VuaXF1ZUlkfWA7XHJcbiAgY29uc3QgYmx1ZUdyYWRJZCA9IGBibHVlLWdyYWQtJHt1bmlxdWVJZH1gO1xyXG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XHJcbiAgY29uc3QgZmVJbWFnZVJlZiA9IHVzZVJlZjxTVkdGRUltYWdlRWxlbWVudD4obnVsbCk7XHJcbiAgY29uc3QgcmVkQ2hhbm5lbFJlZiA9IHVzZVJlZjxTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ+KG51bGwpO1xyXG4gIGNvbnN0IGdyZWVuQ2hhbm5lbFJlZiA9IHVzZVJlZjxTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ+KG51bGwpO1xyXG4gIGNvbnN0IGJsdWVDaGFubmVsUmVmID0gdXNlUmVmPFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudD4obnVsbCk7XHJcbiAgY29uc3QgZ2F1c3NpYW5CbHVyUmVmID0gdXNlUmVmPFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudD4obnVsbCk7XHJcblxyXG4gIGNvbnN0IGdlbmVyYXRlRGlzcGxhY2VtZW50TWFwID0gKCkgPT4ge1xyXG4gICAgY29uc3QgcmVjdCA9IGNvbnRhaW5lclJlZi5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGFjdHVhbFdpZHRoID0gcmVjdD8ud2lkdGggfHwgNDAwO1xyXG4gICAgY29uc3QgYWN0dWFsSGVpZ2h0ID0gcmVjdD8uaGVpZ2h0IHx8IDIwMDtcclxuICAgIGNvbnN0IGVkZ2VTaXplID0gTWF0aC5taW4oYWN0dWFsV2lkdGgsIGFjdHVhbEhlaWdodCkgKiAoYm9yZGVyV2lkdGggKiAwLjUpO1xyXG5cclxuICAgIGNvbnN0IHN2Z0NvbnRlbnQgPSBgXHJcbiAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAke2FjdHVhbFdpZHRofSAke2FjdHVhbEhlaWdodH1cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCIke3JlZEdyYWRJZH1cIiB4MT1cIjEwMCVcIiB5MT1cIjAlXCIgeDI9XCIwJVwiIHkyPVwiMCVcIj5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMCVcIiBzdG9wLWNvbG9yPVwiIzAwMDBcIi8+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjEwMCVcIiBzdG9wLWNvbG9yPVwicmVkXCIvPlxyXG4gICAgICAgICAgPC9saW5lYXJHcmFkaWVudD5cclxuICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cIiR7Ymx1ZUdyYWRJZH1cIiB4MT1cIjAlXCIgeTE9XCIwJVwiIHgyPVwiMCVcIiB5Mj1cIjEwMCVcIj5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMCVcIiBzdG9wLWNvbG9yPVwiIzAwMDBcIi8+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjEwMCVcIiBzdG9wLWNvbG9yPVwiYmx1ZVwiLz5cclxuICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIiR7YWN0dWFsV2lkdGh9XCIgaGVpZ2h0PVwiJHthY3R1YWxIZWlnaHR9XCIgZmlsbD1cImJsYWNrXCI+PC9yZWN0PlxyXG4gICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIiR7YWN0dWFsV2lkdGh9XCIgaGVpZ2h0PVwiJHthY3R1YWxIZWlnaHR9XCIgcng9XCIke2JvcmRlclJhZGl1c31cIiBmaWxsPVwidXJsKCMke3JlZEdyYWRJZH0pXCIgLz5cclxuICAgICAgICA8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIke2FjdHVhbFdpZHRofVwiIGhlaWdodD1cIiR7YWN0dWFsSGVpZ2h0fVwiIHJ4PVwiJHtib3JkZXJSYWRpdXN9XCIgZmlsbD1cInVybCgjJHtibHVlR3JhZElkfSlcIiBzdHlsZT1cIm1peC1ibGVuZC1tb2RlOiAke21peEJsZW5kTW9kZX1cIiAvPlxyXG4gICAgICAgIDxyZWN0IHg9XCIke2VkZ2VTaXplfVwiIHk9XCIke2VkZ2VTaXplfVwiIHdpZHRoPVwiJHthY3R1YWxXaWR0aCAtIGVkZ2VTaXplICogMn1cIiBoZWlnaHQ9XCIke2FjdHVhbEhlaWdodCAtIGVkZ2VTaXplICogMn1cIiByeD1cIiR7Ym9yZGVyUmFkaXVzfVwiIGZpbGw9XCJoc2woMCAwJSAke2JyaWdodG5lc3N9JSAvICR7b3BhY2l0eX0pXCIgc3R5bGU9XCJmaWx0ZXI6Ymx1cigke2JsdXJ9cHgpXCIgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICBgO1xyXG4gICAgcmV0dXJuIGBkYXRhOmltYWdlL3N2Zyt4bWwsJHtlbmNvZGVVUklDb21wb25lbnQoc3ZnQ29udGVudCl9YDtcclxuICB9O1xyXG5cclxuICBjb25zdCB1cGRhdGVEaXNwbGFjZW1lbnRNYXAgPSAoKSA9PiB7XHJcbiAgICBpZiAoZmVJbWFnZVJlZi5jdXJyZW50KSB7XHJcbiAgICAgIGZlSW1hZ2VSZWYuY3VycmVudC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBnZW5lcmF0ZURpc3BsYWNlbWVudE1hcCgpKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgdXBkYXRlRGlzcGxhY2VtZW50TWFwKCk7XHJcblxyXG4gICAgW1xyXG4gICAgICB7IHJlZjogcmVkQ2hhbm5lbFJlZiwgb2Zmc2V0OiByZWRPZmZzZXQgfSxcclxuICAgICAgeyByZWY6IGdyZWVuQ2hhbm5lbFJlZiwgb2Zmc2V0OiBncmVlbk9mZnNldCB9LFxyXG4gICAgICB7IHJlZjogYmx1ZUNoYW5uZWxSZWYsIG9mZnNldDogYmx1ZU9mZnNldCB9XHJcbiAgICBdLmZvckVhY2goKHsgcmVmLCBvZmZzZXQgfSkgPT4ge1xyXG4gICAgICBpZiAocmVmLmN1cnJlbnQpIHtcclxuICAgICAgICByZWYuY3VycmVudC5zZXRBdHRyaWJ1dGUoJ3NjYWxlJywgKGRpc3RvcnRpb25TY2FsZSArIG9mZnNldCkudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgcmVmLmN1cnJlbnQuc2V0QXR0cmlidXRlKCd4Q2hhbm5lbFNlbGVjdG9yJywgeENoYW5uZWwpO1xyXG4gICAgICAgIHJlZi5jdXJyZW50LnNldEF0dHJpYnV0ZSgneUNoYW5uZWxTZWxlY3RvcicsIHlDaGFubmVsKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGdhdXNzaWFuQmx1clJlZi5jdXJyZW50KSB7XHJcbiAgICAgIGdhdXNzaWFuQmx1clJlZi5jdXJyZW50LnNldEF0dHJpYnV0ZSgnc3RkRGV2aWF0aW9uJywgZGlzcGxhY2UudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXHJcbiAgfSwgW1xyXG4gICAgd2lkdGgsXHJcbiAgICBoZWlnaHQsXHJcbiAgICBib3JkZXJSYWRpdXMsXHJcbiAgICBib3JkZXJXaWR0aCxcclxuICAgIGJyaWdodG5lc3MsXHJcbiAgICBvcGFjaXR5LFxyXG4gICAgYmx1cixcclxuICAgIGRpc3BsYWNlLFxyXG4gICAgZGlzdG9ydGlvblNjYWxlLFxyXG4gICAgcmVkT2Zmc2V0LFxyXG4gICAgZ3JlZW5PZmZzZXQsXHJcbiAgICBibHVlT2Zmc2V0LFxyXG4gICAgeENoYW5uZWwsXHJcbiAgICB5Q2hhbm5lbCxcclxuICAgIG1peEJsZW5kTW9kZVxyXG4gIF0pO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKCFjb250YWluZXJSZWYuY3VycmVudCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCh1cGRhdGVEaXNwbGFjZW1lbnRNYXAsIDApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShjb250YWluZXJSZWYuY3VycmVudCk7XHJcblxyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gICAgfTtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcclxuICB9LCBbXSk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBzZXRUaW1lb3V0KHVwZGF0ZURpc3BsYWNlbWVudE1hcCwgMCk7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXHJcbiAgfSwgW3dpZHRoLCBoZWlnaHRdKTtcclxuXHJcbiAgY29uc3Qgc3VwcG9ydHNTVkdGaWx0ZXJzID0gKCkgPT4ge1xyXG4gICAgY29uc3QgaXNXZWJraXQgPSAvU2FmYXJpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmICEvQ2hyb21lLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xyXG4gICAgY29uc3QgaXNGaXJlZm94ID0gL0ZpcmVmb3gvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XHJcblxyXG4gICAgaWYgKGlzV2Via2l0IHx8IGlzRmlyZWZveCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBkaXYuc3R5bGUuYmFja2Ryb3BGaWx0ZXIgPSBgdXJsKCMke2ZpbHRlcklkfSlgO1xyXG4gICAgcmV0dXJuIGRpdi5zdHlsZS5iYWNrZHJvcEZpbHRlciAhPT0gJyc7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgY29udGFpbmVyU3R5bGU6IENTU1Byb3BlcnRpZXMgPSB7XHJcbiAgICAuLi5zdHlsZSxcclxuICAgIHdpZHRoOiB0eXBlb2Ygd2lkdGggPT09ICdudW1iZXInID8gYCR7d2lkdGh9cHhgIDogd2lkdGgsXHJcbiAgICBoZWlnaHQ6IHR5cGVvZiBoZWlnaHQgPT09ICdudW1iZXInID8gYCR7aGVpZ2h0fXB4YCA6IGhlaWdodCxcclxuICAgIGJvcmRlclJhZGl1czogYCR7Ym9yZGVyUmFkaXVzfXB4YCxcclxuICAgICctLWdsYXNzLWZyb3N0JzogYmFja2dyb3VuZE9wYWNpdHksXHJcbiAgICAnLS1nbGFzcy1zYXR1cmF0aW9uJzogc2F0dXJhdGlvbixcclxuICAgICctLWZpbHRlci1pZCc6IGB1cmwoIyR7ZmlsdGVySWR9KWBcclxuICB9IGFzIENTU1Byb3BlcnRpZXM7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2BnbGFzcy1zdXJmYWNlICR7c3VwcG9ydHNTVkdGaWx0ZXJzKCkgPyAnZ2xhc3Mtc3VyZmFjZS0tc3ZnJyA6ICdnbGFzcy1zdXJmYWNlLS1mYWxsYmFjayd9ICR7Y2xhc3NOYW1lfWB9XHJcbiAgICAgIHN0eWxlPXtjb250YWluZXJTdHlsZX1cclxuICAgID5cclxuICAgICAgPHN2ZyBjbGFzc05hbWU9XCJnbGFzcy1zdXJmYWNlX19maWx0ZXJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICA8ZmlsdGVyIGlkPXtmaWx0ZXJJZH0gY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVycz1cInNSR0JcIiB4PVwiMCVcIiB5PVwiMCVcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCI+XHJcbiAgICAgICAgICAgIDxmZUltYWdlIHJlZj17ZmVJbWFnZVJlZn0geD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwibm9uZVwiIHJlc3VsdD1cIm1hcFwiIC8+XHJcbiAgICAgICAgICAgIDxmZURpc3BsYWNlbWVudE1hcCByZWY9e3JlZENoYW5uZWxSZWZ9IGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cIm1hcFwiIGlkPVwicmVkY2hhbm5lbFwiIHJlc3VsdD1cImRpc3BSZWRcIiAvPlxyXG4gICAgICAgICAgICA8ZmVDb2xvck1hdHJpeFxyXG4gICAgICAgICAgICAgIGluPVwiZGlzcFJlZFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgdmFsdWVzPVwiMSAwIDAgMCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAwIDAgMCAwIDBcclxuICAgICAgICAgICAgICAgICAgICAgIDAgMCAwIDAgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgMCAwIDAgMSAwXCJcclxuICAgICAgICAgICAgICByZXN1bHQ9XCJyZWRcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8ZmVEaXNwbGFjZW1lbnRNYXBcclxuICAgICAgICAgICAgICByZWY9e2dyZWVuQ2hhbm5lbFJlZn1cclxuICAgICAgICAgICAgICBpbj1cIlNvdXJjZUdyYXBoaWNcIlxyXG4gICAgICAgICAgICAgIGluMj1cIm1hcFwiXHJcbiAgICAgICAgICAgICAgaWQ9XCJncmVlbmNoYW5uZWxcIlxyXG4gICAgICAgICAgICAgIHJlc3VsdD1cImRpc3BHcmVlblwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4XHJcbiAgICAgICAgICAgICAgaW49XCJkaXNwR3JlZW5cIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgMCAxIDAgMCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAwIDAgMCAwIDBcclxuICAgICAgICAgICAgICAgICAgICAgIDAgMCAwIDEgMFwiXHJcbiAgICAgICAgICAgICAgcmVzdWx0PVwiZ3JlZW5cIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8ZmVEaXNwbGFjZW1lbnRNYXAgcmVmPXtibHVlQ2hhbm5lbFJlZn0gaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwibWFwXCIgaWQ9XCJibHVlY2hhbm5lbFwiIHJlc3VsdD1cImRpc3BCbHVlXCIgLz5cclxuICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXhcclxuICAgICAgICAgICAgICBpbj1cImRpc3BCbHVlXCJcclxuICAgICAgICAgICAgICB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDBcclxuICAgICAgICAgICAgICAgICAgICAgIDAgMCAwIDAgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgMCAwIDEgMCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAwIDAgMCAxIDBcIlxyXG4gICAgICAgICAgICAgIHJlc3VsdD1cImJsdWVcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8ZmVCbGVuZCBpbj1cInJlZFwiIGluMj1cImdyZWVuXCIgbW9kZT1cInNjcmVlblwiIHJlc3VsdD1cInJnXCIgLz5cclxuICAgICAgICAgICAgPGZlQmxlbmQgaW49XCJyZ1wiIGluMj1cImJsdWVcIiBtb2RlPVwic2NyZWVuXCIgcmVzdWx0PVwib3V0cHV0XCIgLz5cclxuICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHJlZj17Z2F1c3NpYW5CbHVyUmVmfSBpbj1cIm91dHB1dFwiIHN0ZERldmlhdGlvbj1cIjAuN1wiIC8+XHJcbiAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICA8L2RlZnM+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImdsYXNzLXN1cmZhY2VfX2NvbnRlbnRcIj57Y2hpbGRyZW59PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgR2xhc3NTdXJmYWNlO1xyXG5cclxuIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUlkIiwiR2xhc3NTdXJmYWNlIiwiY2hpbGRyZW4iLCJ3aWR0aCIsImhlaWdodCIsImJvcmRlclJhZGl1cyIsImJvcmRlcldpZHRoIiwiYnJpZ2h0bmVzcyIsIm9wYWNpdHkiLCJibHVyIiwiZGlzcGxhY2UiLCJiYWNrZ3JvdW5kT3BhY2l0eSIsInNhdHVyYXRpb24iLCJkaXN0b3J0aW9uU2NhbGUiLCJyZWRPZmZzZXQiLCJncmVlbk9mZnNldCIsImJsdWVPZmZzZXQiLCJ4Q2hhbm5lbCIsInlDaGFubmVsIiwibWl4QmxlbmRNb2RlIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJ1bmlxdWVJZCIsInJlcGxhY2UiLCJmaWx0ZXJJZCIsInJlZEdyYWRJZCIsImJsdWVHcmFkSWQiLCJjb250YWluZXJSZWYiLCJmZUltYWdlUmVmIiwicmVkQ2hhbm5lbFJlZiIsImdyZWVuQ2hhbm5lbFJlZiIsImJsdWVDaGFubmVsUmVmIiwiZ2F1c3NpYW5CbHVyUmVmIiwiZ2VuZXJhdGVEaXNwbGFjZW1lbnRNYXAiLCJyZWN0IiwiY3VycmVudCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImFjdHVhbFdpZHRoIiwiYWN0dWFsSGVpZ2h0IiwiZWRnZVNpemUiLCJNYXRoIiwibWluIiwic3ZnQ29udGVudCIsImVuY29kZVVSSUNvbXBvbmVudCIsInVwZGF0ZURpc3BsYWNlbWVudE1hcCIsInNldEF0dHJpYnV0ZSIsInJlZiIsIm9mZnNldCIsImZvckVhY2giLCJ0b1N0cmluZyIsInJlc2l6ZU9ic2VydmVyIiwiUmVzaXplT2JzZXJ2ZXIiLCJzZXRUaW1lb3V0Iiwib2JzZXJ2ZSIsImRpc2Nvbm5lY3QiLCJzdXBwb3J0c1NWR0ZpbHRlcnMiLCJpc1dlYmtpdCIsInRlc3QiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJpc0ZpcmVmb3giLCJkaXYiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJiYWNrZHJvcEZpbHRlciIsImNvbnRhaW5lclN0eWxlIiwic3ZnIiwieG1sbnMiLCJkZWZzIiwiZmlsdGVyIiwiaWQiLCJjb2xvckludGVycG9sYXRpb25GaWx0ZXJzIiwieCIsInkiLCJmZUltYWdlIiwicHJlc2VydmVBc3BlY3RSYXRpbyIsInJlc3VsdCIsImZlRGlzcGxhY2VtZW50TWFwIiwiaW4iLCJpbjIiLCJmZUNvbG9yTWF0cml4IiwidHlwZSIsInZhbHVlcyIsImZlQmxlbmQiLCJtb2RlIiwiZmVHYXVzc2lhbkJsdXIiLCJzdGREZXZpYXRpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/GlassSurface.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/LogoLoop.tsx":
|
||
/*!*********************************!*\
|
||
!*** ./components/LogoLoop.tsx ***!
|
||
\*********************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LogoLoop: function() { return /* binding */ LogoLoop; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _LogoLoop_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LogoLoop.css */ \"(app-pages-browser)/./components/LogoLoop.css\");\n/* __next_internal_client_entry_do_not_use__ LogoLoop,default auto */ \nvar _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n\n\nconst ANIMATION_CONFIG = {\n SMOOTH_TAU: 0.25,\n MIN_COPIES: 2,\n COPY_HEADROOM: 2\n};\nconst toCssLength = (value)=>typeof value === \"number\" ? \"\".concat(value, \"px\") : value !== null && value !== void 0 ? value : undefined;\nconst useResizeObserver = (callback, elements, dependencies)=>{\n _s();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (!window.ResizeObserver) {\n const handleResize = ()=>callback();\n window.addEventListener(\"resize\", handleResize);\n callback();\n return ()=>window.removeEventListener(\"resize\", handleResize);\n }\n const observers = elements.map((ref)=>{\n if (!ref.current) return null;\n const observer = new ResizeObserver(callback);\n observer.observe(ref.current);\n return observer;\n });\n callback();\n return ()=>{\n observers.forEach((observer)=>observer === null || observer === void 0 ? void 0 : observer.disconnect());\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies);\n};\n_s(useResizeObserver, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\nconst useImageLoader = (seqRef, onLoad, dependencies)=>{\n _s1();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n var _seqRef_current;\n var _seqRef_current_querySelectorAll;\n const images = (_seqRef_current_querySelectorAll = (_seqRef_current = seqRef.current) === null || _seqRef_current === void 0 ? void 0 : _seqRef_current.querySelectorAll(\"img\")) !== null && _seqRef_current_querySelectorAll !== void 0 ? _seqRef_current_querySelectorAll : [];\n if (images.length === 0) {\n onLoad();\n return;\n }\n let remainingImages = images.length;\n const handleImageLoad = ()=>{\n remainingImages -= 1;\n if (remainingImages === 0) {\n onLoad();\n }\n };\n images.forEach((img)=>{\n const htmlImg = img;\n if (htmlImg.complete) {\n handleImageLoad();\n } else {\n htmlImg.addEventListener(\"load\", handleImageLoad, {\n once: true\n });\n htmlImg.addEventListener(\"error\", handleImageLoad, {\n once: true\n });\n }\n });\n return ()=>{\n images.forEach((img)=>{\n img.removeEventListener(\"load\", handleImageLoad);\n img.removeEventListener(\"error\", handleImageLoad);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies);\n};\n_s1(useImageLoader, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\nconst useAnimationLoop = (trackRef, targetVelocity, seqWidth, isHovered, pauseOnHover)=>{\n _s2();\n const rafRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const lastTimestampRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const offsetRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(0);\n const velocityRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(0);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const track = trackRef.current;\n if (!track) return;\n if (seqWidth > 0) {\n offsetRef.current = (offsetRef.current % seqWidth + seqWidth) % seqWidth;\n track.style.transform = \"translate3d(\".concat(-offsetRef.current, \"px, 0, 0)\");\n }\n const animate = (timestamp)=>{\n if (lastTimestampRef.current === null) {\n lastTimestampRef.current = timestamp;\n }\n const deltaTime = Math.max(0, timestamp - lastTimestampRef.current) / 1000;\n lastTimestampRef.current = timestamp;\n const target = pauseOnHover && isHovered ? 0 : targetVelocity;\n const easingFactor = 1 - Math.exp(-deltaTime / ANIMATION_CONFIG.SMOOTH_TAU);\n velocityRef.current += (target - velocityRef.current) * easingFactor;\n if (seqWidth > 0) {\n let nextOffset = offsetRef.current + velocityRef.current * deltaTime;\n nextOffset = (nextOffset % seqWidth + seqWidth) % seqWidth;\n offsetRef.current = nextOffset;\n const translateX = -offsetRef.current;\n track.style.transform = \"translate3d(\".concat(translateX, \"px, 0, 0)\");\n }\n rafRef.current = requestAnimationFrame(animate);\n };\n rafRef.current = requestAnimationFrame(animate);\n return ()=>{\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n lastTimestampRef.current = null;\n };\n }, [\n targetVelocity,\n seqWidth,\n isHovered,\n pauseOnHover,\n trackRef\n ]);\n};\n_s2(useAnimationLoop, \"CHkB9QIrZTEfgjfB6nwY5WHuHxk=\");\nconst LogoLoop = /*#__PURE__*/ _s3((0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(_c = _s3((param)=>{\n let { logos, speed = 120, direction = \"left\", width = \"100%\", logoHeight = 28, gap = 32, pauseOnHover = true, fadeOut = false, fadeOutColor, scaleOnHover = false, ariaLabel = \"Partner logos\", className, style } = param;\n _s3();\n const containerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const trackRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const seqRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const [seqWidth, setSeqWidth] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n const [copyCount, setCopyCount] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(ANIMATION_CONFIG.MIN_COPIES);\n const [isHovered, setIsHovered] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const targetVelocity = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const magnitude = Math.abs(speed);\n const directionMultiplier = direction === \"left\" ? 1 : -1;\n const speedMultiplier = speed < 0 ? -1 : 1;\n return magnitude * directionMultiplier * speedMultiplier;\n }, [\n speed,\n direction\n ]);\n const updateDimensions = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(()=>{\n var _containerRef_current, _seqRef_current_getBoundingClientRect, _seqRef_current_getBoundingClientRect1, _seqRef_current;\n var _containerRef_current_clientWidth;\n const containerWidth = (_containerRef_current_clientWidth = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : _containerRef_current.clientWidth) !== null && _containerRef_current_clientWidth !== void 0 ? _containerRef_current_clientWidth : 0;\n var _seqRef_current_getBoundingClientRect_width;\n const sequenceWidth = (_seqRef_current_getBoundingClientRect_width = (_seqRef_current = seqRef.current) === null || _seqRef_current === void 0 ? void 0 : (_seqRef_current_getBoundingClientRect1 = _seqRef_current.getBoundingClientRect) === null || _seqRef_current_getBoundingClientRect1 === void 0 ? void 0 : (_seqRef_current_getBoundingClientRect = _seqRef_current_getBoundingClientRect1.call(_seqRef_current)) === null || _seqRef_current_getBoundingClientRect === void 0 ? void 0 : _seqRef_current_getBoundingClientRect.width) !== null && _seqRef_current_getBoundingClientRect_width !== void 0 ? _seqRef_current_getBoundingClientRect_width : 0;\n if (sequenceWidth > 0) {\n setSeqWidth(Math.ceil(sequenceWidth));\n const copiesNeeded = Math.ceil(containerWidth / sequenceWidth) + ANIMATION_CONFIG.COPY_HEADROOM;\n setCopyCount(Math.max(ANIMATION_CONFIG.MIN_COPIES, copiesNeeded));\n }\n }, []);\n useResizeObserver(updateDimensions, [\n containerRef,\n seqRef\n ], [\n logos,\n gap,\n logoHeight\n ]);\n useImageLoader(seqRef, updateDimensions, [\n logos,\n gap,\n logoHeight\n ]);\n useAnimationLoop(trackRef, targetVelocity, seqWidth, isHovered, pauseOnHover);\n const cssVariables = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>({\n \"--logoloop-gap\": \"\".concat(gap, \"px\"),\n \"--logoloop-logoHeight\": \"\".concat(logoHeight, \"px\"),\n ...fadeOutColor && {\n \"--logoloop-fadeColor\": fadeOutColor\n }\n }), [\n gap,\n logoHeight,\n fadeOutColor\n ]);\n const rootClassName = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>[\n \"logoloop\",\n fadeOut && \"logoloop--fade\",\n scaleOnHover && \"logoloop--scale-hover\",\n className\n ].filter(Boolean).join(\" \"), [\n fadeOut,\n scaleOnHover,\n className\n ]);\n const handleMouseEnter = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(()=>{\n if (pauseOnHover) setIsHovered(true);\n }, [\n pauseOnHover\n ]);\n const handleMouseLeave = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(()=>{\n if (pauseOnHover) setIsHovered(false);\n }, [\n pauseOnHover\n ]);\n const renderLogoItem = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((item, key)=>{\n const isNodeItem = \"node\" in item;\n var _item_alt;\n const content = isNodeItem ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"logoloop__node\",\n \"aria-hidden\": !!item.href && !item.ariaLabel,\n children: item.node\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\LogoLoop.tsx\",\n lineNumber: 240,\n columnNumber: 7\n }, undefined) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: item.src,\n srcSet: item.srcSet,\n sizes: item.sizes,\n width: item.width,\n height: item.height,\n alt: (_item_alt = item.alt) !== null && _item_alt !== void 0 ? _item_alt : \"\",\n title: item.title,\n loading: \"lazy\",\n decoding: \"async\",\n draggable: false\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\LogoLoop.tsx\",\n lineNumber: 244,\n columnNumber: 7\n }, undefined);\n var _item_ariaLabel, _item_alt1;\n const itemAriaLabel = isNodeItem ? (_item_ariaLabel = item.ariaLabel) !== null && _item_ariaLabel !== void 0 ? _item_ariaLabel : item.title : (_item_alt1 = item.alt) !== null && _item_alt1 !== void 0 ? _item_alt1 : item.title;\n const itemContent = item.href ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n className: \"logoloop__link\",\n href: item.href,\n \"aria-label\": itemAriaLabel || \"logo link\",\n target: \"_blank\",\n rel: \"noreferrer noopener\",\n children: content\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\LogoLoop.tsx\",\n lineNumber: 260,\n columnNumber: 7\n }, undefined) : content;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"logoloop__item\",\n role: \"listitem\",\n children: itemContent\n }, key, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\LogoLoop.tsx\",\n lineNumber: 274,\n columnNumber: 7\n }, undefined);\n }, []);\n const logoLists = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>Array.from({\n length: copyCount\n }, (_, copyIndex)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"logoloop__list\",\n role: \"list\",\n \"aria-hidden\": copyIndex > 0,\n ref: copyIndex === 0 ? seqRef : undefined,\n children: logos.map((item, itemIndex)=>renderLogoItem(item, \"\".concat(copyIndex, \"-\").concat(itemIndex)))\n }, \"copy-\".concat(copyIndex), false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\LogoLoop.tsx\",\n lineNumber: 283,\n columnNumber: 9\n }, undefined)), [\n copyCount,\n logos,\n renderLogoItem\n ]);\n var _toCssLength;\n const containerStyle = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>({\n width: (_toCssLength = toCssLength(width)) !== null && _toCssLength !== void 0 ? _toCssLength : \"100%\",\n ...cssVariables,\n ...style\n }), [\n width,\n cssVariables,\n style\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: containerRef,\n className: rootClassName,\n style: containerStyle,\n role: \"region\",\n \"aria-label\": ariaLabel,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"logoloop__track\",\n ref: trackRef,\n children: logoLists\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\LogoLoop.tsx\",\n lineNumber: 315,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\LogoLoop.tsx\",\n lineNumber: 306,\n columnNumber: 5\n }, undefined);\n}, \"U3/dJDb7s52rp4bnqMvGaPwQ2Ys=\", false, function() {\n return [\n useResizeObserver,\n useImageLoader,\n useAnimationLoop\n ];\n})), \"U3/dJDb7s52rp4bnqMvGaPwQ2Ys=\", false, function() {\n return [\n useResizeObserver,\n useImageLoader,\n useAnimationLoop\n ];\n});\n_c1 = LogoLoop;\nLogoLoop.displayName = \"LogoLoop\";\n/* harmony default export */ __webpack_exports__[\"default\"] = (LogoLoop);\nvar _c, _c1;\n$RefreshReg$(_c, \"LogoLoop$memo\");\n$RefreshReg$(_c1, \"LogoLoop\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvTG9nb0xvb3AudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFFMkY7QUFDbkU7QUFFeEIsTUFBTU0sbUJBQW1CO0lBQ3ZCQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsZUFBZTtBQUNqQjtBQUVBLE1BQU1DLGNBQWMsQ0FBQ0MsUUFDbEIsT0FBT0EsVUFBVSxXQUFXLEdBQVMsT0FBTkEsT0FBTSxRQUFPQSxrQkFBQUEsbUJBQUFBLFFBQVNDO0FBK0J4RCxNQUFNQyxvQkFBb0IsQ0FDeEJDLFVBQ0FDLFVBQ0FDOztJQUVBZixnREFBU0EsQ0FBQztRQUNSLElBQUksQ0FBQ2dCLE9BQU9DLGNBQWMsRUFBRTtZQUMxQixNQUFNQyxlQUFlLElBQU1MO1lBQzNCRyxPQUFPRyxnQkFBZ0IsQ0FBQyxVQUFVRDtZQUNsQ0w7WUFDQSxPQUFPLElBQU1HLE9BQU9JLG1CQUFtQixDQUFDLFVBQVVGO1FBQ3BEO1FBRUEsTUFBTUcsWUFBWVAsU0FBU1EsR0FBRyxDQUFDQyxDQUFBQTtZQUM3QixJQUFJLENBQUNBLElBQUlDLE9BQU8sRUFBRSxPQUFPO1lBQ3pCLE1BQU1DLFdBQVcsSUFBSVIsZUFBZUo7WUFDcENZLFNBQVNDLE9BQU8sQ0FBQ0gsSUFBSUMsT0FBTztZQUM1QixPQUFPQztRQUNUO1FBRUFaO1FBRUEsT0FBTztZQUNMUSxVQUFVTSxPQUFPLENBQUNGLENBQUFBLFdBQVlBLHFCQUFBQSwrQkFBQUEsU0FBVUcsVUFBVTtRQUNwRDtJQUNBLHVEQUF1RDtJQUN6RCxHQUFHYjtBQUNMO0dBM0JNSDtBQTZCTixNQUFNaUIsaUJBQWlCLENBQ3JCQyxRQUNBQyxRQUNBaEI7O0lBRUFmLGdEQUFTQSxDQUFDO1lBQ084QjtZQUFBQTtRQUFmLE1BQU1FLFNBQVNGLENBQUFBLG9DQUFBQSxrQkFBQUEsT0FBT04sT0FBTyxjQUFkTSxzQ0FBQUEsZ0JBQWdCRyxnQkFBZ0IsQ0FBQyxvQkFBakNILDhDQUFBQSxtQ0FBMkMsRUFB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c291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xyXG5cclxuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSwgbWVtbywgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgJy4vTG9nb0xvb3AuY3NzJztcclxuXHJcbmNvbnN0IEFOSU1BVElPTl9DT05GSUcgPSB7XHJcbiAgU01PT1RIX1RBVTogMC4yNSxcclxuICBNSU5fQ09QSUVTOiAyLFxyXG4gIENPUFlfSEVBRFJPT006IDJcclxufTtcclxuXHJcbmNvbnN0IHRvQ3NzTGVuZ3RoID0gKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4gXHJcbiAgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyBgJHt2YWx1ZX1weGAgOiAodmFsdWUgPz8gdW5kZWZpbmVkKSk7XHJcblxyXG5pbnRlcmZhY2UgTG9nb0l0ZW0ge1xyXG4gIG5vZGU/OiBSZWFjdE5vZGU7XHJcbiAgc3JjPzogc3RyaW5nO1xyXG4gIHNyY1NldD86IHN0cmluZztcclxuICBzaXplcz86IHN0cmluZztcclxuICB3aWR0aD86IG51bWJlcjtcclxuICBoZWlnaHQ/OiBudW1iZXI7XHJcbiAgYWx0Pzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGhyZWY/OiBzdHJpbmc7XHJcbiAgYXJpYUxhYmVsPzogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTG9nb0xvb3BQcm9wcyB7XHJcbiAgbG9nb3M6IExvZ29JdGVtW107XHJcbiAgc3BlZWQ/OiBudW1iZXI7XHJcbiAgZGlyZWN0aW9uPzogJ2xlZnQnIHwgJ3JpZ2h0JztcclxuICB3aWR0aD86IG51bWJlciB8IHN0cmluZztcclxuICBsb2dvSGVpZ2h0PzogbnVtYmVyO1xyXG4gIGdhcD86IG51bWJlcjtcclxuICBwYXVzZU9uSG92ZXI/OiBib29sZWFuO1xyXG4gIGZhZGVPdXQ/OiBib29sZWFuO1xyXG4gIGZhZGVPdXRDb2xvcj86IHN0cmluZztcclxuICBzY2FsZU9uSG92ZXI/OiBib29sZWFuO1xyXG4gIGFyaWFMYWJlbD86IHN0cmluZztcclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xyXG59XHJcblxyXG5jb25zdCB1c2VSZXNpemVPYnNlcnZlciA9IChcclxuICBjYWxsYmFjazogKCkgPT4gdm9pZCxcclxuICBlbGVtZW50czogUmVhY3QuUmVmT2JqZWN0PEhUTUxFbGVtZW50PltdLFxyXG4gIGRlcGVuZGVuY2llczogdW5rbm93bltdXHJcbikgPT4ge1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAoIXdpbmRvdy5SZXNpemVPYnNlcnZlcikge1xyXG4gICAgICBjb25zdCBoYW5kbGVSZXNpemUgPSAoKSA9PiBjYWxsYmFjaygpO1xyXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlUmVzaXplKTtcclxuICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVSZXNpemUpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9ic2VydmVycyA9IGVsZW1lbnRzLm1hcChyZWYgPT4ge1xyXG4gICAgICBpZiAoIXJlZi5jdXJyZW50KSByZXR1cm4gbnVsbDtcclxuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoY2FsbGJhY2spO1xyXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHJlZi5jdXJyZW50KTtcclxuICAgICAgcmV0dXJuIG9ic2VydmVyO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY2FsbGJhY2soKTtcclxuXHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICBvYnNlcnZlcnMuZm9yRWFjaChvYnNlcnZlciA9PiBvYnNlcnZlcj8uZGlzY29ubmVjdCgpKTtcclxuICAgIH07XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXHJcbiAgfSwgZGVwZW5kZW5jaWVzKTtcclxufTtcclxuXHJcbmNvbnN0IHVzZUltYWdlTG9hZGVyID0gKFxyXG4gIHNlcVJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxFbGVtZW50PixcclxuICBvbkxvYWQ6ICgpID0+IHZvaWQsXHJcbiAgZGVwZW5kZW5jaWVzOiB1bmtub3duW11cclxuKSA9PiB7XHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IGltYWdlcyA9IHNlcVJlZi5jdXJyZW50Py5xdWVyeVNlbGVjdG9yQWxsKCdpbWcnKSA/PyBbXTtcclxuICAgIGlmIChpbWFnZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIG9uTG9hZCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHJlbWFpbmluZ0ltYWdlcyA9IGltYWdlcy5sZW5ndGg7XHJcbiAgICBjb25zdCBoYW5kbGVJbWFnZUxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIHJlbWFpbmluZ0ltYWdlcyAtPSAxO1xyXG4gICAgICBpZiAocmVtYWluaW5nSW1hZ2VzID09PSAwKSB7XHJcbiAgICAgICAgb25Mb2FkKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW1hZ2VzLmZvckVhY2goaW1nID0+IHtcclxuICAgICAgY29uc3QgaHRtbEltZyA9IGltZyBhcyBIVE1MSW1hZ2VFbGVtZW50O1xyXG4gICAgICBpZiAoaHRtbEltZy5jb21wbGV0ZSkge1xyXG4gICAgICAgIGhhbmRsZUltYWdlTG9hZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGh0bWxJbWcuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGhhbmRsZUltYWdlTG9hZCwgeyBvbmNlOiB0cnVlIH0pO1xyXG4gICAgICAgIGh0bWxJbWcuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBoYW5kbGVJbWFnZUxvYWQsIHsgb25jZTogdHJ1ZSB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgaW1hZ2VzLmZvckVhY2goaW1nID0+IHtcclxuICAgICAgICBpbWcucmVtb3ZlRXZlbnRMaXN0ZW5lcignbG9hZCcsIGhhbmRsZUltYWdlTG9hZCk7XHJcbiAgICAgICAgaW1nLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgaGFuZGxlSW1hZ2VMb2FkKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xyXG4gIH0sIGRlcGVuZGVuY2llcyk7XHJcbn07XHJcblxyXG5jb25zdCB1c2VBbmltYXRpb25Mb29wID0gKFxyXG4gIHRyYWNrUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEVsZW1lbnQ+LFxyXG4gIHRhcmdldFZlbG9jaXR5OiBudW1iZXIsXHJcbiAgc2VxV2lkdGg6IG51bWJlcixcclxuICBpc0hvdmVyZWQ6IGJvb2xlYW4sXHJcbiAgcGF1c2VPbkhvdmVyOiBib29sZWFuXHJcbikgPT4ge1xyXG4gIGNvbnN0IHJhZlJlZiA9IHVzZVJlZjxudW1iZXIgfCBudWxsPihudWxsKTtcclxuICBjb25zdCBsYXN0VGltZXN0YW1wUmVmID0gdXNlUmVmPG51bWJlciB8IG51bGw+KG51bGwpO1xyXG4gIGNvbnN0IG9mZnNldFJlZiA9IHVzZVJlZigwKTtcclxuICBjb25zdCB2ZWxvY2l0eVJlZiA9IHVzZVJlZigwKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IHRyYWNrID0gdHJhY2tSZWYuY3VycmVudDtcclxuICAgIGlmICghdHJhY2spIHJldHVybjtcclxuXHJcbiAgICBpZiAoc2VxV2lkdGggPiAwKSB7XHJcbiAgICAgIG9mZnNldFJlZi5jdXJyZW50ID0gKChvZmZzZXRSZWYuY3VycmVudCAlIHNlcVdpZHRoKSArIHNlcVdpZHRoKSAlIHNlcVdpZHRoO1xyXG4gICAgICB0cmFjay5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlM2QoJHstb2Zmc2V0UmVmLmN1cnJlbnR9cHgsIDAsIDApYDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBhbmltYXRlID0gKHRpbWVzdGFtcDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGlmIChsYXN0VGltZXN0YW1wUmVmLmN1cnJlbnQgPT09IG51bGwpIHtcclxuICAgICAgICBsYXN0VGltZXN0YW1wUmVmLmN1cnJlbnQgPSB0aW1lc3RhbXA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGRlbHRhVGltZSA9IE1hdGgubWF4KDAsIHRpbWVzdGFtcCAtIGxhc3RUaW1lc3RhbXBSZWYuY3VycmVudCkgLyAxMDAwO1xyXG4gICAgICBsYXN0VGltZXN0YW1wUmVmLmN1cnJlbnQgPSB0aW1lc3RhbXA7XHJcblxyXG4gICAgICBjb25zdCB0YXJnZXQgPSBwYXVzZU9uSG92ZXIgJiYgaXNIb3ZlcmVkID8gMCA6IHRhcmdldFZlbG9jaXR5O1xyXG4gICAgICBjb25zdCBlYXNpbmdGYWN0b3IgPSAxIC0gTWF0aC5leHAoLWRlbHRhVGltZSAvIEFOSU1BVElPTl9DT05GSUcuU01PT1RIX1RBVSk7XHJcbiAgICAgIHZlbG9jaXR5UmVmLmN1cnJlbnQgKz0gKHRhcmdldCAtIHZlbG9jaXR5UmVmLmN1cnJlbnQpICogZWFzaW5nRmFjdG9yO1xyXG5cclxuICAgICAgaWYgKHNlcVdpZHRoID4gMCkge1xyXG4gICAgICAgIGxldCBuZXh0T2Zmc2V0ID0gb2Zmc2V0UmVmLmN1cnJlbnQgKyB2ZWxvY2l0eVJlZi5jdXJyZW50ICogZGVsdGFUaW1lO1xyXG4gICAgICAgIG5leHRPZmZzZXQgPSAoKG5leHRPZmZzZXQgJSBzZXFXaWR0aCkgKyBzZXFXaWR0aCkgJSBzZXFXaWR0aDtcclxuICAgICAgICBvZmZzZXRSZWYuY3VycmVudCA9IG5leHRPZmZzZXQ7XHJcbiAgICAgICAgY29uc3QgdHJhbnNsYXRlWCA9IC1vZmZzZXRSZWYuY3VycmVudDtcclxuICAgICAgICB0cmFjay5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlM2QoJHt0cmFuc2xhdGVYfXB4LCAwLCAwKWA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJhZlJlZi5jdXJyZW50ID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFuaW1hdGUpO1xyXG4gICAgfTtcclxuXHJcbiAgICByYWZSZWYuY3VycmVudCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlKTtcclxuXHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICBpZiAocmFmUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcclxuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShyYWZSZWYuY3VycmVudCk7XHJcbiAgICAgICAgcmFmUmVmLmN1cnJlbnQgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGxhc3RUaW1lc3RhbXBSZWYuY3VycmVudCA9IG51bGw7XHJcbiAgICB9O1xyXG4gIH0sIFt0YXJnZXRWZWxvY2l0eSwgc2VxV2lkdGgsIGlzSG92ZXJlZCwgcGF1c2VPbkhvdmVyLCB0cmFja1JlZl0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IExvZ29Mb29wID0gbWVtbzxMb2dvTG9vcFByb3BzPigoe1xyXG4gIGxvZ29zLFxyXG4gIHNwZWVkID0gMTIwLFxyXG4gIGRpcmVjdGlvbiA9ICdsZWZ0JyxcclxuICB3aWR0aCA9ICcxMDAlJyxcclxuICBsb2dvSGVpZ2h0ID0gMjgsXHJcbiAgZ2FwID0gMzIsXHJcbiAgcGF1c2VPbkhvdmVyID0gdHJ1ZSxcclxuICBmYWRlT3V0ID0gZmFsc2UsXHJcbiAgZmFkZU91dENvbG9yLFxyXG4gIHNjYWxlT25Ib3ZlciA9IGZhbHNlLFxyXG4gIGFyaWFMYWJlbCA9ICdQYXJ0bmVyIGxvZ29zJyxcclxuICBjbGFzc05hbWUsXHJcbiAgc3R5bGVcclxufSkgPT4ge1xyXG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XHJcbiAgY29uc3QgdHJhY2tSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xyXG4gIGNvbnN0IHNlcVJlZiA9IHVzZVJlZjxIVE1MVUxpc3RFbGVtZW50PihudWxsKTtcclxuICBjb25zdCBbc2VxV2lkdGgsIHNldFNlcVdpZHRoXSA9IHVzZVN0YXRlKDApO1xyXG4gIGNvbnN0IFtjb3B5Q291bnQsIHNldENvcHlDb3VudF0gPSB1c2VTdGF0ZShBTklNQVRJT05fQ09ORklHLk1JTl9DT1BJRVMpO1xyXG4gIGNvbnN0IFtpc0hvdmVyZWQsIHNldElzSG92ZXJlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG4gIGNvbnN0IHRhcmdldFZlbG9jaXR5ID0gdXNlTWVtbygoKSA9PiB7XHJcbiAgICBjb25zdCBtYWduaXR1ZGUgPSBNYXRoLmFicyhzcGVlZCk7XHJcbiAgICBjb25zdCBkaXJlY3Rpb25NdWx0aXBsaWVyID0gZGlyZWN0aW9uID09PSAnbGVmdCcgPyAxIDogLTE7XHJcbiAgICBjb25zdCBzcGVlZE11bHRpcGxpZXIgPSBzcGVlZCA8IDAgPyAtMSA6IDE7XHJcbiAgICByZXR1cm4gbWFnbml0dWRlICogZGlyZWN0aW9uTXVsdGlwbGllciAqIHNwZWVkTXVsdGlwbGllcjtcclxuICB9LCBbc3BlZWQsIGRpcmVjdGlvbl0pO1xyXG5cclxuICBjb25zdCB1cGRhdGVEaW1lbnNpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xyXG4gICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBjb250YWluZXJSZWYuY3VycmVudD8uY2xpZW50V2lkdGggPz8gMDtcclxuICAgIGNvbnN0IHNlcXVlbmNlV2lkdGggPSBzZXFSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0Py4oKT8ud2lkdGggPz8gMDtcclxuICAgIGlmIChzZXF1ZW5jZVdpZHRoID4gMCkge1xyXG4gICAgICBzZXRTZXFXaWR0aChNYXRoLmNlaWwoc2VxdWVuY2VXaWR0aCkpO1xyXG4gICAgICBjb25zdCBjb3BpZXNOZWVkZWQgPSBNYXRoLmNlaWwoY29udGFpbmVyV2lkdGggLyBzZXF1ZW5jZVdpZHRoKSArIEFOSU1BVElPTl9DT05GSUcuQ09QWV9IRUFEUk9PTTtcclxuICAgICAgc2V0Q29weUNvdW50KE1hdGgubWF4KEFOSU1BVElPTl9DT05GSUcuTUlOX0NPUElFUywgY29waWVzTmVlZGVkKSk7XHJcbiAgICB9XHJcbiAgfSwgW10pO1xyXG5cclxuICB1c2VSZXNpemVPYnNlcnZlcih1cGRhdGVEaW1lbnNpb25zLCBbY29udGFpbmVyUmVmLCBzZXFSZWZdLCBbbG9nb3MsIGdhcCwgbG9nb0hlaWdodF0pO1xyXG4gIHVzZUltYWdlTG9hZGVyKHNlcVJlZiwgdXBkYXRlRGltZW5zaW9ucywgW2xvZ29zLCBnYXAsIGxvZ29IZWlnaHRdKTtcclxuICB1c2VBbmltYXRpb25Mb29wKHRyYWNrUmVmLCB0YXJnZXRWZWxvY2l0eSwgc2VxV2lkdGgsIGlzSG92ZXJlZCwgcGF1c2VPbkhvdmVyKTtcclxuXHJcbiAgY29uc3QgY3NzVmFyaWFibGVzID0gdXNlTWVtbyhcclxuICAgICgpID0+ICh7XHJcbiAgICAgICctLWxvZ29sb29wLWdhcCc6IGAke2dhcH1weGAsXHJcbiAgICAgICctLWxvZ29sb29wLWxvZ29IZWlnaHQnOiBgJHtsb2dvSGVpZ2h0fXB4YCxcclxuICAgICAgLi4uKGZhZGVPdXRDb2xvciAmJiB7ICctLWxvZ29sb29wLWZhZGVDb2xvcic6IGZhZGVPdXRDb2xvciB9KVxyXG4gICAgfSksXHJcbiAgICBbZ2FwLCBsb2dvSGVpZ2h0LCBmYWRlT3V0Q29sb3JdXHJcbiAgKTtcclxuXHJcbiAgY29uc3Qgcm9vdENsYXNzTmFtZSA9IHVzZU1lbW8oXHJcbiAgICAoKSA9PlxyXG4gICAgICBbJ2xvZ29sb29wJywgZmFkZU91dCAmJiAnbG9nb2xvb3AtLWZhZGUnLCBzY2FsZU9uSG92ZXIgJiYgJ2xvZ29sb29wLS1zY2FsZS1ob3ZlcicsIGNsYXNzTmFtZV1cclxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXHJcbiAgICAgICAgLmpvaW4oJyAnKSxcclxuICAgIFtmYWRlT3V0LCBzY2FsZU9uSG92ZXIsIGNsYXNzTmFtZV1cclxuICApO1xyXG5cclxuICBjb25zdCBoYW5kbGVNb3VzZUVudGVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xyXG4gICAgaWYgKHBhdXNlT25Ib3Zlcikgc2V0SXNIb3ZlcmVkKHRydWUpO1xyXG4gIH0sIFtwYXVzZU9uSG92ZXJdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlTW91c2VMZWF2ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgIGlmIChwYXVzZU9uSG92ZXIpIHNldElzSG92ZXJlZChmYWxzZSk7XHJcbiAgfSwgW3BhdXNlT25Ib3Zlcl0pO1xyXG5cclxuICBjb25zdCByZW5kZXJMb2dvSXRlbSA9IHVzZUNhbGxiYWNrKChpdGVtOiBMb2dvSXRlbSwga2V5OiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IGlzTm9kZUl0ZW0gPSAnbm9kZScgaW4gaXRlbTtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSBpc05vZGVJdGVtID8gKFxyXG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJsb2dvbG9vcF9fbm9kZVwiIGFyaWEtaGlkZGVuPXshIWl0ZW0uaHJlZiAmJiAhaXRlbS5hcmlhTGFiZWx9PlxyXG4gICAgICAgIHtpdGVtLm5vZGV9XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICkgOiAoXHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9e2l0ZW0uc3JjfVxyXG4gICAgICAgIHNyY1NldD17aXRlbS5zcmNTZXR9XHJcbiAgICAgICAgc2l6ZXM9e2l0ZW0uc2l6ZXN9XHJcbiAgICAgICAgd2lkdGg9e2l0ZW0ud2lkdGh9XHJcbiAgICAgICAgaGVpZ2h0PXtpdGVtLmhlaWdodH1cclxuICAgICAgICBhbHQ9e2l0ZW0uYWx0ID8/ICcnfVxyXG4gICAgICAgIHRpdGxlPXtpdGVtLnRpdGxlfVxyXG4gICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcclxuICAgICAgICBkZWNvZGluZz1cImFzeW5jXCJcclxuICAgICAgICBkcmFnZ2FibGU9e2ZhbHNlfVxyXG4gICAgICAvPlxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBpdGVtQXJpYUxhYmVsID0gaXNOb2RlSXRlbSA/IChpdGVtLmFyaWFMYWJlbCA/PyBpdGVtLnRpdGxlKSA6IChpdGVtLmFsdCA/PyBpdGVtLnRpdGxlKTtcclxuICAgIGNvbnN0IGl0ZW1Db250ZW50ID0gaXRlbS5ocmVmID8gKFxyXG4gICAgICA8YVxyXG4gICAgICAgIGNsYXNzTmFtZT1cImxvZ29sb29wX19saW5rXCJcclxuICAgICAgICBocmVmPXtpdGVtLmhyZWZ9XHJcbiAgICAgICAgYXJpYS1sYWJlbD17aXRlbUFyaWFMYWJlbCB8fCAnbG9nbyBsaW5rJ31cclxuICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgIHJlbD1cIm5vcmVmZXJyZXIgbm9vcGVuZXJcIlxyXG4gICAgICA+XHJcbiAgICAgICAge2NvbnRlbnR9XHJcbiAgICAgIDwvYT5cclxuICAgICkgOiAoXHJcbiAgICAgIGNvbnRlbnRcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGxpIGNsYXNzTmFtZT1cImxvZ29sb29wX19pdGVtXCIga2V5PXtrZXl9IHJvbGU9XCJsaXN0aXRlbVwiPlxyXG4gICAgICAgIHtpdGVtQ29udGVudH1cclxuICAgICAgPC9saT5cclxuICAgICk7XHJcbiAgfSwgW10pO1xyXG5cclxuICBjb25zdCBsb2dvTGlzdHMgPSB1c2VNZW1vKFxyXG4gICAgKCkgPT5cclxuICAgICAgQXJyYXkuZnJvbSh7IGxlbmd0aDogY29weUNvdW50IH0sIChfLCBjb3B5SW5kZXgpID0+IChcclxuICAgICAgICA8dWxcclxuICAgICAgICAgIGNsYXNzTmFtZT1cImxvZ29sb29wX19saXN0XCJcclxuICAgICAgICAgIGtleT17YGNvcHktJHtjb3B5SW5kZXh9YH1cclxuICAgICAgICAgIHJvbGU9XCJsaXN0XCJcclxuICAgICAgICAgIGFyaWEtaGlkZGVuPXtjb3B5SW5kZXggPiAwfVxyXG4gICAgICAgICAgcmVmPXtjb3B5SW5kZXggPT09IDAgPyBzZXFSZWYgOiB1bmRlZmluZWR9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge2xvZ29zLm1hcCgoaXRlbSwgaXRlbUluZGV4KSA9PiByZW5kZXJMb2dvSXRlbShpdGVtLCBgJHtjb3B5SW5kZXh9LSR7aXRlbUluZGV4fWApKX1cclxuICAgICAgICA8L3VsPlxyXG4gICAgICApKSxcclxuICAgIFtjb3B5Q291bnQsIGxvZ29zLCByZW5kZXJMb2dvSXRlbV1cclxuICApO1xyXG5cclxuICBjb25zdCBjb250YWluZXJTdHlsZSA9IHVzZU1lbW8oXHJcbiAgICAoKSA9PiAoe1xyXG4gICAgICB3aWR0aDogdG9Dc3NMZW5ndGgod2lkdGgpID8/ICcxMDAlJyxcclxuICAgICAgLi4uY3NzVmFyaWFibGVzLFxyXG4gICAgICAuLi5zdHlsZVxyXG4gICAgfSksXHJcbiAgICBbd2lkdGgsIGNzc1ZhcmlhYmxlcywgc3R5bGVdXHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXZcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT17cm9vdENsYXNzTmFtZX1cclxuICAgICAgc3R5bGU9e2NvbnRhaW5lclN0eWxlfVxyXG4gICAgICByb2xlPVwicmVnaW9uXCJcclxuICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsfVxyXG4gICAgICBvbk1vdXNlRW50ZXI9e2hhbmRsZU1vdXNlRW50ZXJ9XHJcbiAgICAgIG9uTW91c2VMZWF2ZT17aGFuZGxlTW91c2VMZWF2ZX1cclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2dvbG9vcF9fdHJhY2tcIiByZWY9e3RyYWNrUmVmfT5cclxuICAgICAgICB7bG9nb0xpc3RzfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn0pO1xyXG5cclxuTG9nb0xvb3AuZGlzcGxheU5hbWUgPSAnTG9nb0xvb3AnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgTG9nb0xvb3A7XHJcblxyXG4iXSwibmFtZXMiOlsidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJtZW1vIiwiQU5JTUFUSU9OX0NPTkZJRyIsIlNNT09USF9UQVUiLCJNSU5fQ09QSUVTIiwiQ09QWV9IRUFEUk9PTSIsInRvQ3NzTGVuZ3RoIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJ1c2VSZXNpemVPYnNlcnZlciIsImNhbGxiYWNrIiwiZWxlbWVudHMiLCJkZXBlbmRlbmNpZXMiLCJ3aW5kb3ciLCJSZXNpemVPYnNlcnZlciIsImhhbmRsZVJlc2l6ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib2JzZXJ2ZXJzIiwibWFwIiwicmVmIiwiY3VycmVudCIsIm9ic2VydmVyIiwib2JzZXJ2ZSIsImZvckVhY2giLCJkaXNjb25uZWN0IiwidXNlSW1hZ2VMb2FkZXIiLCJzZXFSZWYiLCJvbkxvYWQiLCJpbWFnZXMiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwicmVtYWluaW5nSW1hZ2VzIiwiaGFuZGxlSW1hZ2VMb2FkIiwiaW1nIiwiaHRtbEltZyIsImNvbXBsZXRlIiwib25jZSIsInVzZUFuaW1hdGlvbkxvb3AiLCJ0cmFja1JlZiIsInRhcmdldFZlbG9jaXR5Iiwic2VxV2lkdGgiLCJpc0hvdmVyZWQiLCJwYXVzZU9uSG92ZXIiLCJyYWZSZWYiLCJsYXN0VGltZXN0YW1wUmVmIiwib2Zmc2V0UmVmIiwidmVsb2NpdHlSZWYiLCJ0cmFjayIsInN0eWxlIiwidHJhbnNmb3JtIiwiYW5pbWF0ZSIsInRpbWVzdGFtcCIsImRlbHRhVGltZSIsIk1hdGgiLCJtYXgiLCJ0YXJnZXQiLCJlYXNpbmdGYWN0b3IiLCJleHAiLCJuZXh0T2Zmc2V0IiwidHJhbnNsYXRlWCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwiTG9nb0xvb3AiLCJsb2dvcyIsInNwZWVkIiwiZGlyZWN0aW9uIiwid2lkdGgiLCJsb2dvSGVpZ2h0IiwiZ2FwIiwiZmFkZU91dCIsImZhZGVPdXRDb2xvciIsInNjYWxlT25Ib3ZlciIsImFyaWFMYWJlbCIsImNsYXNzTmFtZSIsImNvbnRhaW5lclJlZiIsInNldFNlcVdpZHRoIiwiY29weUNvdW50Iiwic2V0Q29weUNvdW50Iiwic2V0SXNIb3ZlcmVkIiwibWFnbml0dWRlIiwiYWJzIiwiZGlyZWN0aW9uTXVsdGlwbGllciIsInNwZWVkTXVsdGlwbGllciIsInVwZGF0ZURpbWVuc2lvbnMiLCJjb250YWluZXJXaWR0aCIsImNsaWVudFdpZHRoIiwic2VxdWVuY2VXaWR0aCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImNlaWwiLCJjb3BpZXNOZWVkZWQiLCJjc3NWYXJpYWJsZXMiLCJyb290Q2xhc3NOYW1lIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJoYW5kbGVNb3VzZUVudGVyIiwiaGFuZGxlTW91c2VMZWF2ZSIsInJlbmRlckxvZ29JdGVtIiwiaXRlbSIsImtleSIsImlzTm9kZUl0ZW0iLCJjb250ZW50Iiwic3BhbiIsImFyaWEtaGlkZGVuIiwiaHJlZiIsIm5vZGUiLCJzcmMiLCJzcmNTZXQiLCJzaXplcyIsImhlaWdodCIsImFsdCIsInRpdGxlIiwibG9hZGluZyIsImRlY29kaW5nIiwiZHJhZ2dhYmxlIiwiaXRlbUFyaWFMYWJlbCIsIml0ZW1Db250ZW50IiwiYSIsImFyaWEtbGFiZWwiLCJyZWwiLCJsaSIsInJvbGUiLCJsb2dvTGlzdHMiLCJBcnJheSIsImZyb20iLCJfIiwiY29weUluZGV4IiwidWwiLCJpdGVtSW5kZXgiLCJjb250YWluZXJTdHlsZSIsImRpdiIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsImRpc3BsYXlOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/LogoLoop.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/PillNav.tsx":
|
||
/*!********************************!*\
|
||
!*** ./components/PillNav.tsx ***!
|
||
\********************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"(app-pages-browser)/./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var gsap__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! gsap */ \"(app-pages-browser)/./node_modules/gsap/index.js\");\n/* harmony import */ var _PillNav_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PillNav.css */ \"(app-pages-browser)/./components/PillNav.css\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\nconst PillNav = (param)=>{\n let { logo, logoAlt = \"Logo\", items, activeHref, className = \"\", ease = \"power3.easeOut\", baseColor = \"#fff\", pillColor = \"#060010\", hoveredPillTextColor = \"#060010\", pillTextColor, onMobileMenuClick, initialLoadAnimation = true } = param;\n _s();\n const resolvedPillTextColor = pillTextColor !== null && pillTextColor !== void 0 ? pillTextColor : baseColor;\n const [isMobileMenuOpen, setIsMobileMenuOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const circleRefs = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)([]);\n const tlRefs = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)([]);\n const activeTweenRefs = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)([]);\n const logoImgRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const logoTweenRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const hamburgerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const mobileMenuRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const navItemsRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const logoRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const hasAnimatedRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n var _document_fonts;\n const layout = ()=>{\n circleRefs.current.forEach((circle)=>{\n var _tlRefs_current_index;\n if (!(circle === null || circle === void 0 ? void 0 : circle.parentElement)) return;\n const pill = circle.parentElement;\n const rect = pill.getBoundingClientRect();\n const { width: w, height: h } = rect;\n const R = (w * w / 4 + h * h) / (2 * h);\n const D = Math.ceil(2 * R) + 2;\n const delta = Math.ceil(R - Math.sqrt(Math.max(0, R * R - w * w / 4))) + 1;\n const originY = D - delta;\n circle.style.width = \"\".concat(D, \"px\");\n circle.style.height = \"\".concat(D, \"px\");\n circle.style.bottom = \"-\".concat(delta, \"px\");\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.set(circle, {\n xPercent: -50,\n scale: 0,\n transformOrigin: \"50% \".concat(originY, \"px\")\n });\n const label = pill.querySelector(\".pill-label\");\n const white = pill.querySelector(\".pill-label-hover\");\n if (label) gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.set(label, {\n y: 0\n });\n if (white) gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.set(white, {\n y: h + 12,\n opacity: 0\n });\n const index = circleRefs.current.indexOf(circle);\n if (index === -1) return;\n (_tlRefs_current_index = tlRefs.current[index]) === null || _tlRefs_current_index === void 0 ? void 0 : _tlRefs_current_index.kill();\n const tl = gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.timeline({\n paused: true\n });\n tl.to(circle, {\n scale: 1.2,\n xPercent: -50,\n duration: 2,\n ease,\n overwrite: \"auto\"\n }, 0);\n if (label) {\n tl.to(label, {\n y: -(h + 8),\n duration: 2,\n ease,\n overwrite: \"auto\"\n }, 0);\n }\n if (white) {\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.set(white, {\n y: Math.ceil(h + 100),\n opacity: 0\n });\n tl.to(white, {\n y: 0,\n opacity: 1,\n duration: 2,\n ease,\n overwrite: \"auto\"\n }, 0);\n }\n tlRefs.current[index] = tl;\n });\n };\n layout();\n const onResize = ()=>layout();\n window.addEventListener(\"resize\", onResize);\n if ((_document_fonts = document.fonts) === null || _document_fonts === void 0 ? void 0 : _document_fonts.ready) {\n document.fonts.ready.then(layout).catch(()=>{});\n }\n const menu = mobileMenuRef.current;\n if (menu) {\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.set(menu, {\n visibility: \"hidden\",\n opacity: 0,\n scaleY: 1\n });\n }\n if (initialLoadAnimation && !hasAnimatedRef.current) {\n const logoEl = logoRef.current;\n const navItems = navItemsRef.current;\n if (logoEl) {\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.set(logoEl, {\n scale: 0\n });\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.to(logoEl, {\n scale: 1,\n duration: 0.6,\n ease\n });\n }\n if (navItems) {\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.set(navItems, {\n width: 0,\n overflow: \"hidden\"\n });\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.to(navItems, {\n width: \"auto\",\n duration: 0.6,\n ease\n });\n }\n hasAnimatedRef.current = true;\n } else if (navItemsRef.current && !hasAnimatedRef.current) {\n // Wenn initialLoadAnimation false ist, setze die Items sofort auf sichtbar\n const navItems = navItemsRef.current;\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.set(navItems, {\n width: \"auto\",\n overflow: \"visible\"\n });\n if (logoRef.current) {\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.set(logoRef.current, {\n scale: 1\n });\n }\n hasAnimatedRef.current = true;\n }\n return ()=>window.removeEventListener(\"resize\", onResize);\n }, [\n items,\n ease\n ]); // initialLoadAnimation entfernt, damit es nur einmal läuft\n const handleEnter = (i)=>{\n var _activeTweenRefs_current_i;\n const tl = tlRefs.current[i];\n if (!tl) return;\n (_activeTweenRefs_current_i = activeTweenRefs.current[i]) === null || _activeTweenRefs_current_i === void 0 ? void 0 : _activeTweenRefs_current_i.kill();\n activeTweenRefs.current[i] = tl.tweenTo(tl.duration(), {\n duration: 0.3,\n ease,\n overwrite: \"auto\"\n });\n };\n const handleLeave = (i)=>{\n var _activeTweenRefs_current_i;\n const tl = tlRefs.current[i];\n if (!tl) return;\n (_activeTweenRefs_current_i = activeTweenRefs.current[i]) === null || _activeTweenRefs_current_i === void 0 ? void 0 : _activeTweenRefs_current_i.kill();\n activeTweenRefs.current[i] = tl.tweenTo(0, {\n duration: 0.2,\n ease,\n overwrite: \"auto\"\n });\n };\n const handleLogoEnter = ()=>{\n var _logoTweenRef_current;\n const img = logoImgRef.current;\n if (!img) return;\n (_logoTweenRef_current = logoTweenRef.current) === null || _logoTweenRef_current === void 0 ? void 0 : _logoTweenRef_current.kill();\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.set(img, {\n rotate: 0\n });\n logoTweenRef.current = gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.to(img, {\n rotate: 360,\n duration: 0.2,\n ease,\n overwrite: \"auto\"\n });\n };\n const toggleMobileMenu = ()=>{\n const newState = !isMobileMenuOpen;\n setIsMobileMenuOpen(newState);\n const hamburger = hamburgerRef.current;\n const menu = mobileMenuRef.current;\n if (hamburger) {\n const lines = hamburger.querySelectorAll(\".hamburger-line\");\n if (newState) {\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.to(lines[0], {\n rotation: 45,\n y: 3,\n duration: 0.3,\n ease\n });\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.to(lines[1], {\n rotation: -45,\n y: -3,\n duration: 0.3,\n ease\n });\n } else {\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.to(lines[0], {\n rotation: 0,\n y: 0,\n duration: 0.3,\n ease\n });\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.to(lines[1], {\n rotation: 0,\n y: 0,\n duration: 0.3,\n ease\n });\n }\n }\n if (menu) {\n if (newState) {\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.set(menu, {\n visibility: \"visible\"\n });\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.fromTo(menu, {\n opacity: 0,\n y: 10,\n scaleY: 1\n }, {\n opacity: 1,\n y: 0,\n scaleY: 1,\n duration: 0.3,\n ease,\n transformOrigin: \"top center\"\n });\n } else {\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.to(menu, {\n opacity: 0,\n y: 10,\n scaleY: 1,\n duration: 0.2,\n ease,\n transformOrigin: \"top center\",\n onComplete: ()=>{\n gsap__WEBPACK_IMPORTED_MODULE_4__.gsap.set(menu, {\n visibility: \"hidden\"\n });\n }\n });\n }\n }\n onMobileMenuClick === null || onMobileMenuClick === void 0 ? void 0 : onMobileMenuClick();\n };\n const isExternalLink = (href)=>href.startsWith(\"http://\") || href.startsWith(\"https://\") || href.startsWith(\"//\") || href.startsWith(\"mailto:\") || href.startsWith(\"tel:\") || href.startsWith(\"#\");\n const cssVars = {\n [\"--base\"]: baseColor,\n [\"--pill-bg\"]: pillColor,\n [\"--hover-text\"]: hoveredPillTextColor,\n [\"--pill-text\"]: resolvedPillTextColor\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pill-nav-container\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"pill-nav \".concat(className),\n \"aria-label\": \"Primary\",\n style: cssVars,\n children: [\n logo && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n className: \"pill-logo\",\n href: \"#\",\n \"aria-label\": \"Home\",\n onMouseEnter: handleLogoEnter,\n role: \"menuitem\",\n ref: logoRef,\n onClick: (e)=>{\n e.preventDefault();\n window.scrollTo({\n top: 0,\n behavior: \"smooth\"\n });\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: logo,\n alt: logoAlt,\n ref: logoImgRef\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 250,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 238,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pill-nav-items desktop-only\",\n ref: navItemsRef,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"pill-list\",\n role: \"menubar\",\n children: items.map((item, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n role: \"none\",\n children: isExternalLink(item.href) ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n role: \"menuitem\",\n href: item.href,\n className: \"pill\".concat(activeHref === item.href ? \" is-active\" : \"\"),\n \"aria-label\": item.ariaLabel || item.label,\n onMouseEnter: ()=>handleEnter(i),\n onMouseLeave: ()=>handleLeave(i),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"hover-circle\",\n \"aria-hidden\": \"true\",\n ref: (el)=>{\n circleRefs.current[i] = el;\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 266,\n columnNumber: 21\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"label-stack\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"pill-label\",\n children: item.label\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 274,\n columnNumber: 23\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"pill-label-hover\",\n \"aria-hidden\": \"true\",\n children: item.label\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 275,\n columnNumber: 23\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 273,\n columnNumber: 21\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 258,\n columnNumber: 19\n }, undefined) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n role: \"menuitem\",\n href: item.href,\n className: \"pill\".concat(activeHref === item.href ? \" is-active\" : \"\"),\n \"aria-label\": item.ariaLabel || item.label,\n onMouseEnter: ()=>handleEnter(i),\n onMouseLeave: ()=>handleLeave(i),\n onClick: (e)=>{\n if (item.href.startsWith(\"#\")) {\n e.preventDefault();\n const element = document.getElementById(item.href.substring(1));\n if (element) {\n element.scrollIntoView({\n behavior: \"smooth\"\n });\n }\n }\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"hover-circle\",\n \"aria-hidden\": \"true\",\n ref: (el)=>{\n circleRefs.current[i] = el;\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 298,\n columnNumber: 21\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"label-stack\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"pill-label\",\n children: item.label\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 306,\n columnNumber: 23\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"pill-label-hover\",\n \"aria-hidden\": \"true\",\n children: item.label\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 307,\n columnNumber: 23\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 305,\n columnNumber: 21\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 281,\n columnNumber: 19\n }, undefined)\n }, item.href || \"item-\".concat(i), false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 256,\n columnNumber: 15\n }, undefined))\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 254,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 253,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"mobile-menu-button mobile-only\",\n onClick: toggleMobileMenu,\n \"aria-label\": \"Toggle menu\",\n ref: hamburgerRef,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"hamburger-line\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 323,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"hamburger-line\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 324,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 317,\n columnNumber: 9\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 236,\n columnNumber: 7\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mobile-menu-popover mobile-only\",\n ref: mobileMenuRef,\n style: cssVars,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"mobile-menu-list\",\n children: items.map((item, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: isExternalLink(item.href) ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: item.href,\n className: \"mobile-menu-link\".concat(activeHref === item.href ? \" is-active\" : \"\"),\n onClick: ()=>setIsMobileMenuOpen(false),\n children: item.label\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 332,\n columnNumber: 17\n }, undefined) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: item.href,\n className: \"mobile-menu-link\".concat(activeHref === item.href ? \" is-active\" : \"\"),\n onClick: ()=>{\n setIsMobileMenuOpen(false);\n if (item.href.startsWith(\"#\")) {\n const element = document.getElementById(item.href.substring(1));\n if (element) {\n element.scrollIntoView({\n behavior: \"smooth\"\n });\n }\n }\n },\n children: item.label\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 340,\n columnNumber: 17\n }, undefined)\n }, item.href || \"mobile-item-\".concat(i), false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 330,\n columnNumber: 13\n }, undefined))\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 328,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 327,\n columnNumber: 7\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PillNav.tsx\",\n lineNumber: 235,\n columnNumber: 5\n }, undefined);\n};\n_s(PillNav, \"Dbx+DrZkuvKfyAOov6WJiBwfOOA=\");\n_c = PillNav;\n/* harmony default export */ __webpack_exports__[\"default\"] = (PillNav);\nvar _c;\n$RefreshReg$(_c, \"PillNav\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvUGlsbE5hdi50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUVvRDtBQUN2QjtBQUNEO0FBQ0w7QUF1QnZCLE1BQU1LLFVBQVU7UUFBQyxFQUNmQyxJQUFJLEVBQ0pDLFVBQVUsTUFBTSxFQUNoQkMsS0FBSyxFQUNMQyxVQUFVLEVBQ1ZDLFlBQVksRUFBRSxFQUNkQyxPQUFPLGdCQUFnQixFQUN2QkMsWUFBWSxNQUFNLEVBQ2xCQyxZQUFZLFNBQVMsRUFDckJDLHVCQUF1QixTQUFTLEVBQ2hDQyxhQUFhLEVBQ2JDLGlCQUFpQixFQUNqQkMsdUJBQXVCLElBQUksRUFDZDs7SUFDYixNQUFNQyx3QkFBd0JILDBCQUFBQSwyQkFBQUEsZ0JBQWlCSDtJQUMvQyxNQUFNLENBQUNPLGtCQUFrQkMsb0JBQW9CLEdBQUdsQiwrQ0FBUUEsQ0FBQztJQUN6RCxNQUFNbUIsYUFBYXBCLDZDQUFNQSxDQUE2QixFQUFFO0lBQ3hELE1BQU1xQixTQUFTckIsNkNBQU1BLENBQXVCLEVBQUU7SUFDOUMsTUFBTXNCLGtCQUFrQnRCLDZDQUFNQSxDQUFvQixFQUFFO0lBQ3BELE1BQU11QixhQUFhdkIsNkNBQU1BLENBQTBCO0lBQ25ELE1BQU13QixlQUFleEIsNkNBQU1BLENBQXlCO0lBQ3BELE1BQU15QixlQUFlekIsNkNBQU1BLENBQTJCO0lBQ3RELE1BQU0wQixnQkFBZ0IxQiw2Q0FBTUEsQ0FBd0I7SUFDcEQsTUFBTTJCLGNBQWMzQiw2Q0FBTUEsQ0FBd0I7SUFDbEQsTUFBTTRCLFVBQVU1Qiw2Q0FBTUEsQ0FBMkI7SUFDakQsTUFBTTZCLGlCQUFpQjdCLDZDQUFNQSxDQUFDO0lBRTlCRCxnREFBU0EsQ0FBQztZQTBDSitCO1FBekNKLE1BQU1DLFNBQVM7WUFDYlgsV0FBV1ksT0FBTyxDQUFDQyxPQUFPLENBQUNDLENBQUFBO29CQXVCekJiO2dCQXRCQSxJQUFJLEVBQUNhLG1CQUFBQSw2QkFBQUEsT0FBUUMsYUFBYSxH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LElBQUksR0FBRyxlQUFlO2dDQUN4RVMsU0FBUyxJQUFNM0Ysb0JBQW9COzBDQUVsQ3FHLEtBQUsvRCxLQUFLOzs7OzswREFHYiw4REFBQ3ZELGtEQUFJQTtnQ0FDSG1HLE1BQU1tQixLQUFLbkIsSUFBSTtnQ0FDZjVGLFdBQVcsbUJBQWdFLE9BQTdDRCxlQUFlZ0gsS0FBS25CLElBQUksR0FBRyxlQUFlO2dDQUN4RVMsU0FBUztvQ0FDUDNGLG9CQUFvQjtvQ0FDcEIsSUFBSXFHLEtBQUtuQixJQUFJLENBQUNDLFVBQVUsQ0FBQyxNQUFNO3dDQUM3QixNQUFNMEIsVUFBVWxHLFNBQVNtRyxjQUFjLENBQUNULEtBQUtuQixJQUFJLENBQUM2QixTQUFTLENBQUM7d0NBQzVELElBQUlGLFNBQVM7NENBQ1hBLFFBQVFHLGNBQWMsQ0FBQztnREFBRWhCLFVBQVU7NENBQVM7d0NBQzlDO29DQUNGO2dDQUNGOzBDQUVDSyxLQUFLL0QsS0FBSzs7Ozs7OzJCQXZCUitELEtBQUtuQixJQUFJLElBQUksZUFBaUIsT0FBRmY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdDakQ7R0E3VU1sRjtLQUFBQTtBQStVTiwrREFBZUEsT0FBT0EsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9jb21wb25lbnRzL1BpbGxOYXYudHN4P2RhYjQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcblxyXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBMaW5rIGZyb20gJ25leHQvbGluayc7XHJcbmltcG9ydCB7IGdzYXAgfSBmcm9tICdnc2FwJztcclxuaW1wb3J0ICcuL1BpbGxOYXYuY3NzJztcclxuXHJcbmludGVyZmFjZSBQaWxsTmF2SXRlbSB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBocmVmOiBzdHJpbmc7XHJcbiAgYXJpYUxhYmVsPzogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgUGlsbE5hdlByb3BzIHtcclxuICBsb2dvPzogc3RyaW5nO1xyXG4gIGxvZ29BbHQ/OiBzdHJpbmc7XHJcbiAgaXRlbXM6IFBpbGxOYXZJdGVtW107XHJcbiAgYWN0aXZlSHJlZj86IHN0cmluZztcclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgZWFzZT86IHN0cmluZztcclxuICBiYXNlQ29sb3I/OiBzdHJpbmc7XHJcbiAgcGlsbENvbG9yPzogc3RyaW5nO1xyXG4gIGhvdmVyZWRQaWxsVGV4dENvbG9yPzogc3RyaW5nO1xyXG4gIHBpbGxUZXh0Q29sb3I/OiBzdHJpbmc7XHJcbiAgb25Nb2JpbGVNZW51Q2xpY2s/OiAoKSA9PiB2b2lkO1xyXG4gIGluaXRpYWxMb2FkQW5pbWF0aW9uPzogYm9vbGVhbjtcclxufVxyXG5cclxuY29uc3QgUGlsbE5hdiA9ICh7XHJcbiAgbG9nbyxcclxuICBsb2dvQWx0ID0gJ0xvZ28nLFxyXG4gIGl0ZW1zLFxyXG4gIGFjdGl2ZUhyZWYsXHJcbiAgY2xhc3NOYW1lID0gJycsXHJcbiAgZWFzZSA9ICdwb3dlcjMuZWFzZU91dCcsXHJcbiAgYmFzZUNvbG9yID0gJyNmZmYnLFxyXG4gIHBpbGxDb2xvciA9ICcjMDYwMDEwJyxcclxuICBob3ZlcmVkUGlsbFRleHRDb2xvciA9ICcjMDYwMDEwJyxcclxuICBwaWxsVGV4dENvbG9yLFxyXG4gIG9uTW9iaWxlTWVudUNsaWNrLFxyXG4gIGluaXRpYWxMb2FkQW5pbWF0aW9uID0gdHJ1ZVxyXG59OiBQaWxsTmF2UHJvcHMpID0+IHtcclxuICBjb25zdCByZXNvbHZlZFBpbGxUZXh0Q29sb3IgPSBwaWxsVGV4dENvbG9yID8/IGJhc2VDb2xvcjtcclxuICBjb25zdCBbaXNNb2JpbGVNZW51T3Blbiwgc2V0SXNNb2JpbGVNZW51T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgY2lyY2xlUmVmcyA9IHVzZVJlZjwoSFRNTFNwYW5FbGVtZW50IHwgbnVsbClbXT4oW10pO1xyXG4gIGNvbnN0IHRsUmVmcyA9IHVzZVJlZjxnc2FwLmNvcmUuVGltZWxpbmVbXT4oW10pO1xyXG4gIGNvbnN0IGFjdGl2ZVR3ZWVuUmVmcyA9IHVzZVJlZjxnc2FwLmNvcmUuVHdlZW5bXT4oW10pO1xyXG4gIGNvbnN0IGxvZ29JbWdSZWYgPSB1c2VSZWY8SFRNTEltYWdlRWxlbWVudCB8IG51bGw+KG51bGwpO1xyXG4gIGNvbnN0IGxvZ29Ud2VlblJlZiA9IHVzZVJlZjxnc2FwLmNvcmUuVHdlZW4gfCBudWxsPihudWxsKTtcclxuICBjb25zdCBoYW1idXJnZXJSZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPihudWxsKTtcclxuICBjb25zdCBtb2JpbGVNZW51UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XHJcbiAgY29uc3QgbmF2SXRlbXNSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcclxuICBjb25zdCBsb2dvUmVmID0gdXNlUmVmPEhUTUxBbmNob3JFbGVtZW50IHwgbnVsbD4obnVsbCk7XHJcbiAgY29uc3QgaGFzQW5pbWF0ZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3QgbGF5b3V0ID0gKCkgPT4ge1xyXG4gICAgICBjaXJjbGVSZWZzLmN1cnJlbnQuZm9yRWFjaChjaXJjbGUgPT4ge1xyXG4gICAgICAgIGlmICghY2lyY2xlPy5wYXJlbnRFbGVtZW50KSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgcGlsbCA9IGNpcmNsZS5wYXJlbnRFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IHJlY3QgPSBwaWxsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIGNvbnN0IHsgd2lkdGg6IHcsIGhlaWdodDogaCB9ID0gcmVjdDtcclxuICAgICAgICBjb25zdCBSID0gKCh3ICogdykgLyA0ICsgaCAqIGgpIC8gKDIgKiBoKTtcclxuICAgICAgICBjb25zdCBEID0gTWF0aC5jZWlsKDIgKiBSKSArIDI7XHJcbiAgICAgICAgY29uc3QgZGVsdGEgPSBNYXRoLmNlaWwoUiAtIE1hdGguc3FydChNYXRoLm1heCgwLCBSICogUiAtICh3ICogdykgLyA0KSkpICsgMTtcclxuICAgICAgICBjb25zdCBvcmlnaW5ZID0gRCAtIGRlbHRhO1xyXG4gICAgICAgIGNpcmNsZS5zdHlsZS53aWR0aCA9IGAke0R9cHhgO1xyXG4gICAgICAgIGNpcmNsZS5zdHlsZS5oZWlnaHQgPSBgJHtEfXB4YDtcclxuICAgICAgICBjaXJjbGUuc3R5bGUuYm90dG9tID0gYC0ke2RlbHRhfXB4YDtcclxuICAgICAgICBnc2FwLnNldChjaXJjbGUsIHtcclxuICAgICAgICAgIHhQZXJjZW50OiAtNTAsXHJcbiAgICAgICAgICBzY2FsZTogMCxcclxuICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbjogYDUwJSAke29yaWdpbll9cHhgXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgbGFiZWwgPSBwaWxsLnF1ZXJ5U2VsZWN0b3IoJy5waWxsLWxhYmVsJyk7XHJcbiAgICAgICAgY29uc3Qgd2hpdGUgPSBwaWxsLnF1ZXJ5U2VsZWN0b3IoJy5waWxsLWxhYmVsLWhvdmVyJyk7XHJcbiAgICAgICAgaWYgKGxhYmVsKSBnc2FwLnNldChsYWJlbCwgeyB5OiAwIH0pO1xyXG4gICAgICAgIGlmICh3aGl0ZSkgZ3NhcC5zZXQod2hpdGUsIHsgeTogaCArIDEyLCBvcGFjaXR5OiAwIH0pO1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gY2lyY2xlUmVmcy5jdXJyZW50LmluZGV4T2YoY2lyY2xlKTtcclxuICAgICAgICBpZiAoaW5kZXggPT09IC0xKSByZXR1cm47XHJcbiAgICAgICAgdGxSZWZzLmN1cnJlbnRbaW5kZXhdPy5raWxsKCk7XHJcbiAgICAgICAgY29uc3QgdGwgPSBnc2FwLnRpbWVsaW5lKHsgcGF1c2VkOiB0cnVlIH0pO1xyXG4gICAgICAgIHRsLnRvKGNpcmNsZSwgeyBzY2FsZTogMS4yLCB4UGVyY2VudDogLTUwLCBkdXJhdGlvbjogMiwgZWFzZSwgb3ZlcndyaXRlOiAnYXV0bycgfSwgMCk7XHJcbiAgICAgICAgaWYgKGxhYmVsKSB7XHJcbiAgICAgICAgICB0bC50byhsYWJlbCwgeyB5OiAtKGggKyA4KSwgZHVyYXRpb246IDIsIGVhc2UsIG92ZXJ3cml0ZTogJ2F1dG8nIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAod2hpdGUpIHtcclxuICAgICAgICAgIGdzYXAuc2V0KHdoaXRlLCB7IHk6IE1hdGguY2VpbChoICsgMTAwKSwgb3BhY2l0eTogMCB9KTtcclxuICAgICAgICAgIHRsLnRvKHdoaXRlLCB7IHk6IDAsIG9wYWNpdHk6IDEsIGR1cmF0aW9uOiAyLCBlYXNlLCBvdmVyd3JpdGU6ICdhdXRvJyB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGxSZWZzLmN1cnJlbnRbaW5kZXhdID0gdGw7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBsYXlvdXQoKTtcclxuICAgIGNvbnN0IG9uUmVzaXplID0gKCkgPT4gbGF5b3V0KCk7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25SZXNpemUpO1xyXG4gICAgaWYgKGRvY3VtZW50LmZvbnRzPy5yZWFkeSkge1xyXG4gICAgICBkb2N1bWVudC5mb250cy5yZWFkeS50aGVuKGxheW91dCkuY2F0Y2goKCkgPT4ge30pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVudSA9IG1vYmlsZU1lbnVSZWYuY3VycmVudDtcclxuICAgIGlmIChtZW51KSB7XHJcbiAgICAgIGdzYXAuc2V0KG1lbnUsIHsgdmlzaWJpbGl0eTogJ2hpZGRlbicsIG9wYWNpdHk6IDAsIHNjYWxlWTogMSB9KTtcclxuICAgIH1cclxuICAgIGlmIChpbml0aWFsTG9hZEFuaW1hdGlvbiAmJiAhaGFzQW5pbWF0ZWRSZWYuY3VycmVudCkge1xyXG4gICAgICBjb25zdCBsb2dvRWwgPSBsb2dvUmVmLmN1cnJlbnQ7XHJcbiAgICAgIGNvbnN0IG5hdkl0ZW1zID0gbmF2SXRlbXNSZWYuY3VycmVudDtcclxuICAgICAgaWYgKGxvZ29FbCkge1xyXG4gICAgICAgIGdzYXAuc2V0KGxvZ29FbCwgeyBzY2FsZTogMCB9KTtcclxuICAgICAgICBnc2FwLnRvKGxvZ29FbCwge1xyXG4gICAgICAgICAgc2NhbGU6IDEsXHJcbiAgICAgICAgICBkdXJhdGlvbjogMC42LFxyXG4gICAgICAgICAgZWFzZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChuYXZJdGVtcykge1xyXG4gICAgICAgIGdzYXAuc2V0KG5hdkl0ZW1zLCB7IHdpZHRoOiAwLCBvdmVyZmxvdzogJ2hpZGRlbicgfSk7XHJcbiAgICAgICAgZ3NhcC50byhuYXZJdGVtcywge1xyXG4gICAgICAgICAgd2lkdGg6ICdhdXRvJyxcclxuICAgICAgICAgIGR1cmF0aW9uOiAwLjYsXHJcbiAgICAgICAgICBlYXNlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaGFzQW5pbWF0ZWRSZWYuY3VycmVudCA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKG5hdkl0ZW1zUmVmLmN1cnJlbnQgJiYgIWhhc0FuaW1hdGVkUmVmLmN1cnJlbnQpIHtcclxuICAgICAgLy8gV2VubiBpbml0aWFsTG9hZEFuaW1hdGlvbiBmYWxzZSBpc3QsIHNldHplIGRpZSBJdGVtcyBzb2ZvcnQgYXVmIHNpY2h0YmFyXHJcbiAgICAgIGNvbnN0IG5hdkl0ZW1zID0gbmF2SXRlbXNSZWYuY3VycmVudDtcclxuICAgICAgZ3NhcC5zZXQobmF2SXRlbXMsIHsgd2lkdGg6ICdhdXRvJywgb3ZlcmZsb3c6ICd2aXNpYmxlJyB9KTtcclxuICAgICAgaWYgKGxvZ29SZWYuY3VycmVudCkge1xyXG4gICAgICAgIGdzYXAuc2V0KGxvZ29SZWYuY3VycmVudCwgeyBzY2FsZTogMSB9KTtcclxuICAgICAgfVxyXG4gICAgICBoYXNBbmltYXRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25SZXNpemUpO1xyXG4gIH0sIFtpdGVtcywgZWFzZV0pOyAvLyBpbml0aWFsTG9hZEFuaW1hdGlvbiBlbnRmZXJudCwgZGFtaXQgZXMgbnVyIGVpbm1hbCBsw6R1ZnRcclxuXHJcbiAgY29uc3QgaGFuZGxlRW50ZXIgPSAoaTogbnVtYmVyKSA9PiB7XHJcbiAgICBjb25zdCB0bCA9IHRsUmVmcy5jdXJyZW50W2ldO1xyXG4gICAgaWYgKCF0bCkgcmV0dXJuO1xyXG4gICAgYWN0aXZlVHdlZW5SZWZzLmN1cnJlbnRbaV0/LmtpbGwoKTtcclxuICAgIGFjdGl2ZVR3ZWVuUmVmcy5jdXJyZW50W2ldID0gdGwudHdlZW5Ubyh0bC5kdXJhdGlvbigpLCB7XHJcbiAgICAgIGR1cmF0aW9uOiAwLjMsXHJcbiAgICAgIGVhc2UsXHJcbiAgICAgIG92ZXJ3cml0ZTogJ2F1dG8nXHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVMZWF2ZSA9IChpOiBudW1iZXIpID0+IHtcclxuICAgIGNvbnN0IHRsID0gdGxSZWZzLmN1cnJlbnRbaV07XHJcbiAgICBpZiAoIXRsKSByZXR1cm47XHJcbiAgICBhY3RpdmVUd2VlblJlZnMuY3VycmVudFtpXT8ua2lsbCgpO1xyXG4gICAgYWN0aXZlVHdlZW5SZWZzLmN1cnJlbnRbaV0gPSB0bC50d2VlblRvKDAsIHtcclxuICAgICAgZHVyYXRpb246IDAuMixcclxuICAgICAgZWFzZSxcclxuICAgICAgb3ZlcndyaXRlOiAnYXV0bydcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGhhbmRsZUxvZ29FbnRlciA9ICgpID0+IHtcclxuICAgIGNvbnN0IGltZyA9IGxvZ29JbWdSZWYuY3VycmVudDtcclxuICAgIGlmICghaW1nKSByZXR1cm47XHJcbiAgICBsb2dvVHdlZW5SZWYuY3VycmVudD8ua2lsbCgpO1xyXG4gICAgZ3NhcC5zZXQoaW1nLCB7IHJvdGF0ZTogMCB9KTtcclxuICAgIGxvZ29Ud2VlblJlZi5jdXJyZW50ID0gZ3NhcC50byhpbWcsIHtcclxuICAgICAgcm90YXRlOiAzNjAsXHJcbiAgICAgIGR1cmF0aW9uOiAwLjIsXHJcbiAgICAgIGVhc2UsXHJcbiAgICAgIG92ZXJ3cml0ZTogJ2F1dG8nXHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICBjb25zdCB0b2dnbGVNb2JpbGVNZW51ID0gKCkgPT4ge1xyXG4gICAgY29uc3QgbmV3U3RhdGUgPSAhaXNNb2JpbGVNZW51T3BlbjtcclxuICAgIHNldElzTW9iaWxlTWVudU9wZW4obmV3U3RhdGUpO1xyXG4gICAgY29uc3QgaGFtYnVyZ2VyID0gaGFtYnVyZ2VyUmVmLmN1cnJlbnQ7XHJcbiAgICBjb25zdCBtZW51ID0gbW9iaWxlTWVudVJlZi5jdXJyZW50O1xyXG4gICAgaWYgKGhhbWJ1cmdlcikge1xyXG4gICAgICBjb25zdCBsaW5lcyA9IGhhbWJ1cmdlci5xdWVyeVNlbGVjdG9yQWxsKCcuaGFtYnVyZ2VyLWxpbmUnKTtcclxuICAgICAgaWYgKG5ld1N0YXRlKSB7XHJcbiAgICAgICAgZ3NhcC50byhsaW5lc1swXSwgeyByb3RhdGlvbjogNDUsIHk6IDMsIGR1cmF0aW9uOiAwLjMsIGVhc2UgfSk7XHJcbiAgICAgICAgZ3NhcC50byhsaW5lc1sxXSwgeyByb3RhdGlvbjogLTQ1LCB5OiAtMywgZHVyYXRpb246IDAuMywgZWFzZSB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBnc2FwLnRvKGxpbmVzWzBdLCB7IHJvdGF0aW9uOiAwLCB5OiAwLCBkdXJhdGlvbjogMC4zLCBlYXNlIH0pO1xyXG4gICAgICAgIGdzYXAudG8obGluZXNbMV0sIHsgcm90YXRpb246IDAsIHk6IDAsIGR1cmF0aW9uOiAwLjMsIGVhc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChtZW51KSB7XHJcbiAgICAgIGlmIChuZXdTdGF0ZSkge1xyXG4gICAgICAgIGdzYXAuc2V0KG1lbnUsIHsgdmlzaWJpbGl0eTogJ3Zpc2libGUnIH0pO1xyXG4gICAgICAgIGdzYXAuZnJvbVRvKFxyXG4gICAgICAgICAgbWVudSxcclxuICAgICAgICAgIHsgb3BhY2l0eTogMCwgeTogMTAsIHNjYWxlWTogMSB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxLFxyXG4gICAgICAgICAgICB5OiAwLFxyXG4gICAgICAgICAgICBzY2FsZVk6IDEsXHJcbiAgICAgICAgICAgIGR1cmF0aW9uOiAwLjMsXHJcbiAgICAgICAgICAgIGVhc2UsXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbjogJ3RvcCBjZW50ZXInXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBnc2FwLnRvKG1lbnUsIHtcclxuICAgICAgICAgIG9wYWNpdHk6IDAsXHJcbiAgICAgICAgICB5OiAxMCxcclxuICAgICAgICAgIHNjYWxlWTogMSxcclxuICAgICAgICAgIGR1cmF0aW9uOiAwLjIsXHJcbiAgICAgICAgICBlYXNlLFxyXG4gICAgICAgICAgdHJhbnNmb3JtT3JpZ2luOiAndG9wIGNlbnRlcicsXHJcbiAgICAgICAgICBvbkNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGdzYXAuc2V0KG1lbnUsIHsgdmlzaWJpbGl0eTogJ2hpZGRlbicgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG9uTW9iaWxlTWVudUNsaWNrPy4oKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBpc0V4dGVybmFsTGluayA9IChocmVmOiBzdHJpbmcpID0+XHJcbiAgICBocmVmLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKSB8fFxyXG4gICAgaHJlZi5zdGFydHNXaXRoKCdodHRwczovLycpIHx8XHJcbiAgICBocmVmLnN0YXJ0c1dpdGgoJy8vJykgfHxcclxuICAgIGhyZWYuc3RhcnRzV2l0aCgnbWFpbHRvOicpIHx8XHJcbiAgICBocmVmLnN0YXJ0c1dpdGgoJ3RlbDonKSB8fFxyXG4gICAgaHJlZi5zdGFydHNXaXRoKCcjJyk7XHJcblxyXG4gIGNvbnN0IGNzc1ZhcnMgPSB7XHJcbiAgICBbJy0tYmFzZSddOiBiYXNlQ29sb3IsXHJcbiAgICBbJy0tcGlsbC1iZyddOiBwaWxsQ29sb3IsXHJcbiAgICBbJy0taG92ZXItdGV4dCddOiBob3ZlcmVkUGlsbFRleHRDb2xvcixcclxuICAgIFsnLS1waWxsLXRleHQnXTogcmVzb2x2ZWRQaWxsVGV4dENvbG9yXHJcbiAgfSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJwaWxsLW5hdi1jb250YWluZXJcIj5cclxuICAgICAgPG5hdiBjbGFzc05hbWU9e2BwaWxsLW5hdiAke2NsYXNzTmFtZX1gfSBhcmlhLWxhYmVsPVwiUHJpbWFyeVwiIHN0eWxlPXtjc3NWYXJzfT5cclxuICAgICAgICB7bG9nbyAmJiAoXHJcbiAgICAgICAgICA8TGlua1xyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJwaWxsLWxvZ29cIlxyXG4gICAgICAgICAgICBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJIb21lXCJcclxuICAgICAgICAgICAgb25Nb3VzZUVudGVyPXtoYW5kbGVMb2dvRW50ZXJ9XHJcbiAgICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXHJcbiAgICAgICAgICAgIHJlZj17bG9nb1JlZn1cclxuICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcclxuICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiAwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPXtsb2dvfSBhbHQ9e2xvZ29BbHR9IHJlZj17bG9nb0ltZ1JlZn0gLz5cclxuICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICApfVxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGlsbC1uYXYtaXRlbXMgZGVza3RvcC1vbmx5XCIgcmVmPXtuYXZJdGVtc1JlZn0+XHJcbiAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwicGlsbC1saXN0XCIgcm9sZT1cIm1lbnViYXJcIj5cclxuICAgICAgICAgICAge2l0ZW1zLm1hcCgoaXRlbSwgaSkgPT4gKFxyXG4gICAgICAgICAgICAgIDxsaSBrZXk9e2l0ZW0uaHJlZiB8fCBgaXRlbS0ke2l9YH0gcm9sZT1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIHtpc0V4dGVybmFsTGluayhpdGVtLmhyZWYpID8gKFxyXG4gICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj17aXRlbS5ocmVmfVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHBpbGwke2FjdGl2ZUhyZWYgPT09IGl0ZW0uaHJlZiA/ICcgaXMtYWN0aXZlJyA6ICcnfWB9XHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17aXRlbS5hcmlhTGFiZWwgfHwgaXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IGhhbmRsZUVudGVyKGkpfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17KCkgPT4gaGFuZGxlTGVhdmUoaSl9XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaG92ZXItY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICByZWY9e2VsID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2lyY2xlUmVmcy5jdXJyZW50W2ldID0gZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGFiZWwtc3RhY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInBpbGwtbGFiZWxcIj57aXRlbS5sYWJlbH08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJwaWxsLWxhYmVsLWhvdmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgPExpbmtcclxuICAgICAgICAgICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9e2l0ZW0uaHJlZn1cclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BwaWxsJHthY3RpdmVIcmVmID09PSBpdGVtLmhyZWYgPyAnIGlzLWFjdGl2ZScgOiAnJ31gfVxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2l0ZW0uYXJpYUxhYmVsIHx8IGl0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBoYW5kbGVFbnRlcihpKX1cclxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU9eygpID0+IGhhbmRsZUxlYXZlKGkpfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5ocmVmLnN0YXJ0c1dpdGgoJyMnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpdGVtLmhyZWYuc3Vic3RyaW5nKDEpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJob3Zlci1jaXJjbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHJlZj17ZWwgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaXJjbGVSZWZzLmN1cnJlbnRbaV0gPSBlbDtcclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJsYWJlbC1zdGFja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicGlsbC1sYWJlbFwiPntpdGVtLmxhYmVsfTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInBpbGwtbGFiZWwtaG92ZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJtb2JpbGUtbWVudS1idXR0b24gbW9iaWxlLW9ubHlcIlxyXG4gICAgICAgICAgb25DbGljaz17dG9nZ2xlTW9iaWxlTWVudX1cclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJUb2dnbGUgbWVudVwiXHJcbiAgICAgICAgICByZWY9e2hhbWJ1cmdlclJlZn1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJoYW1idXJnZXItbGluZVwiIC8+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJoYW1idXJnZXItbGluZVwiIC8+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbmF2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vYmlsZS1tZW51LXBvcG92ZXIgbW9iaWxlLW9ubHlcIiByZWY9e21vYmlsZU1lbnVSZWZ9IHN0eWxlPXtjc3NWYXJzfT5cclxuICAgICAgICA8dWwgY2xhc3NOYW1lPVwibW9iaWxlLW1lbnUtbGlzdFwiPlxyXG4gICAgICAgICAge2l0ZW1zLm1hcCgoaXRlbSwgaSkgPT4gKFxyXG4gICAgICAgICAgICA8bGkga2V5PXtpdGVtLmhyZWYgfHwgYG1vYmlsZS1pdGVtLSR7aX1gfT5cclxuICAgICAgICAgICAgICB7aXNFeHRlcm5hbExpbmsoaXRlbS5ocmVmKSA/IChcclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9e2l0ZW0uaHJlZn1cclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgbW9iaWxlLW1lbnUtbGluayR7YWN0aXZlSHJlZiA9PT0gaXRlbS5ocmVmID8gJyBpcy1hY3RpdmUnIDogJyd9YH1cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0SXNNb2JpbGVNZW51T3BlbihmYWxzZSl9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICA8TGlua1xyXG4gICAgICAgICAgICAgICAgICBocmVmPXtpdGVtLmhyZWZ9XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YG1vYmlsZS1tZW51LWxpbmske2FjdGl2ZUhyZWYgPT09IGl0ZW0uaHJlZiA/ICcgaXMtYWN0aXZlJyA6ICcnfWB9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRJc01vYmlsZU1lbnVPcGVuKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5ocmVmLnN0YXJ0c1dpdGgoJyMnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGl0ZW0uaHJlZi5zdWJzdHJpbmcoMSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICApKX1cclxuICAgICAgICA8L3VsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBQaWxsTmF2O1xyXG5cclxuIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiTGluayIsImdzYXAiLCJQaWxsTmF2IiwibG9nbyIsImxvZ29BbHQiLCJpdGVtcyIsImFjdGl2ZUhyZWYiLCJjbGFzc05hbWUiLCJlYXNlIiwiYmFzZUNvbG9yIiwicGlsbENvbG9yIiwiaG92ZXJlZFBpbGxUZXh0Q29sb3IiLCJwaWxsVGV4dENvbG9yIiwib25Nb2JpbGVNZW51Q2xpY2siLCJpbml0aWFsTG9hZEFuaW1hdGlvbiIsInJlc29sdmVkUGlsbFRleHRDb2xvciIsImlzTW9iaWxlTWVudU9wZW4iLCJzZXRJc01vYmlsZU1lbnVPcGVuIiwiY2lyY2xlUmVmcyIsInRsUmVmcyIsImFjdGl2ZVR3ZWVuUmVmcyIsImxvZ29JbWdSZWYiLCJsb2dvVHdlZW5SZWYiLCJoYW1idXJnZXJSZWYiLCJtb2JpbGVNZW51UmVmIiwibmF2SXRlbXNSZWYiLCJsb2dvUmVmIiwiaGFzQW5pbWF0ZWRSZWYiLCJkb2N1bWVudCIsImxheW91dCIsImN1cnJlbnQiLCJmb3JFYWNoIiwiY2lyY2xlIiwicGFyZW50RWxlbWVudCIsInBpbGwiLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwid2lkdGgiLCJ3IiwiaGVpZ2h0IiwiaCIsIlIiLCJEIiwiTWF0aCIsImNlaWwiLCJkZWx0YSIsInNxcnQiLCJtYXgiLCJvcmlnaW5ZIiwic3R5bGUiLCJib3R0b20iLCJzZXQiLCJ4UGVyY2VudCIsInNjYWxlIiwidHJhbnNmb3JtT3JpZ2luIiwibGFiZWwiLCJxdWVyeVNlbGVjdG9yIiwid2hpdGUiLCJ5Iiwib3BhY2l0eSIsImluZGV4IiwiaW5kZXhPZiIsImtpbGwiLCJ0bCIsInRpbWVsaW5lIiwicGF1c2VkIiwidG8iLCJkdXJhdGlvbiIsIm92ZXJ3cml0ZSIsIm9uUmVzaXplIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsImZvbnRzIiwicmVhZHkiLCJ0aGVuIiwiY2F0Y2giLCJtZW51IiwidmlzaWJpbGl0eSIsInNjYWxlWSIsImxvZ29FbCIsIm5hdkl0ZW1zIiwib3ZlcmZsb3ciLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlRW50ZXIiLCJpIiwidHdlZW5UbyIsImhhbmRsZUxlYXZlIiwiaGFuZGxlTG9nb0VudGVyIiwiaW1nIiwicm90YXRlIiwidG9nZ2xlTW9iaWxlTWVudSIsIm5ld1N0YXRlIiwiaGFtYnVyZ2VyIiwibGluZXMiLCJxdWVyeVNlbGVjdG9yQWxsIiwicm90YXRpb24iLCJmcm9tVG8iLCJvbkNvbXBsZXRlIiwiaXNFeHRlcm5hbExpbmsiLCJocmVmIiwic3RhcnRzV2l0aCIsImNzc1ZhcnMiLCJkaXYiLCJuYXYiLCJhcmlhLWxhYmVsIiwib25Nb3VzZUVudGVyIiwicm9sZSIsInJlZiIsIm9uQ2xpY2siLCJlIiwicHJldmVudERlZmF1bHQiLCJzY3JvbGxUbyIsInRvcCIsImJlaGF2aW9yIiwic3JjIiwiYWx0IiwidWwiLCJtYXAiLCJpdGVtIiwibGkiLCJhIiwiYXJpYUxhYmVsIiwib25Nb3VzZUxlYXZlIiwic3BhbiIsImFyaWEtaGlkZGVuIiwiZWwiLCJlbGVtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJzdWJzdHJpbmciLCJzY3JvbGxJbnRvVmlldyIsImJ1dHRvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/PillNav.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/PriceCalculator.tsx":
|
||
/*!****************************************!*\
|
||
!*** ./components/PriceCalculator.tsx ***!
|
||
\****************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ PriceCalculator; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_checkbox__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/checkbox */ \"(app-pages-browser)/./components/ui/checkbox.tsx\");\n/* harmony import */ var _components_ui_textarea__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/textarea */ \"(app-pages-browser)/./components/ui/textarea.tsx\");\n/* harmony import */ var _components_ui_collapsible__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/collapsible */ \"(app-pages-browser)/./components/ui/collapsible.tsx\");\n/* harmony import */ var _components_ui_tooltip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/ui/tooltip */ \"(app-pages-browser)/./components/ui/tooltip.tsx\");\n/* harmony import */ var _barrel_optimize_names_Calculator_ChevronDown_ChevronUp_Loader2_Info_HelpCircle_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Calculator,ChevronDown,ChevronUp,Loader2,Info,HelpCircle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/calculator.js\");\n/* harmony import */ var _barrel_optimize_names_Calculator_ChevronDown_ChevronUp_Loader2_Info_HelpCircle_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=Calculator,ChevronDown,ChevronUp,Loader2,Info,HelpCircle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-up.js\");\n/* harmony import */ var _barrel_optimize_names_Calculator_ChevronDown_ChevronUp_Loader2_Info_HelpCircle_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=Calculator,ChevronDown,ChevronUp,Loader2,Info,HelpCircle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-down.js\");\n/* harmony import */ var _barrel_optimize_names_Calculator_ChevronDown_ChevronUp_Loader2_Info_HelpCircle_lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=Calculator,ChevronDown,ChevronUp,Loader2,Info,HelpCircle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-help.js\");\n/* harmony import */ var _barrel_optimize_names_Calculator_ChevronDown_ChevronUp_Loader2_Info_HelpCircle_lucide_react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! __barrel_optimize__?names=Calculator,ChevronDown,ChevronUp,Loader2,Info,HelpCircle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/info.js\");\n/* harmony import */ var _barrel_optimize_names_Calculator_ChevronDown_ChevronUp_Loader2_Info_HelpCircle_lucide_react__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! __barrel_optimize__?names=Calculator,ChevronDown,ChevronUp,Loader2,Info,HelpCircle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-circle.js\");\n/* harmony import */ var _lib_colors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/lib/colors */ \"(app-pages-browser)/./lib/colors.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n\nconst services = [\n {\n id: \"seo\",\n label: \"SEO-Optimierung\",\n tooltip: \"Suchmaschinenoptimierung f\\xfcr bessere Sichtbarkeit in Google & Co.\"\n },\n {\n id: \"database\",\n label: \"Datenbank-Anbindung\",\n tooltip: \"Verbindung zu bestehenden Datenbanken oder neue Datenbankstrukturen\"\n },\n {\n id: \"ai\",\n label: \"KI-Integration\",\n tooltip: \"K\\xfcnstliche Intelligenz f\\xfcr Chatbots, Empfehlungssysteme oder Automatisierung\"\n },\n {\n id: \"responsive\",\n label: \"Responsives Design\",\n tooltip: \"Optimale Darstellung auf allen Ger\\xe4ten: Desktop, Tablet, Smartphone\"\n },\n {\n id: \"social\",\n label: \"Social-Media-Verkn\\xfcpfung\",\n tooltip: \"Integration von Social Media Feeds und Sharing-Funktionen\"\n },\n {\n id: \"payment\",\n label: \"Zahlungsmethoden\",\n tooltip: \"Sichere Online-Zahlungen mit PayPal, Kreditkarte, SEPA & Co.\"\n },\n {\n id: \"analytics\",\n label: \"Nutzeranalyse & Tracking\",\n tooltip: \"Google Analytics, Conversion-Tracking und detaillierte Besucherstatistiken\"\n },\n {\n id: \"domain\",\n label: \"Domainverwaltung\",\n tooltip: \"Professionelle Domain-Einrichtung und DNS-Konfiguration\"\n },\n {\n id: \"strategy\",\n label: \"Strategieberatung\",\n tooltip: \"Digitale Strategie, Zielgruppenanalyse und Wettbewerbsanalyse\"\n },\n {\n id: \"app\",\n label: \"App-Entwicklung\",\n tooltip: \"Native oder Progressive Web Apps f\\xfcr iOS und Android\"\n }\n];\nconst subscriptionServices = [\n {\n id: \"content\",\n label: \"Content-Pflege\",\n tooltip: \"Regelm\\xe4\\xdfige Aktualisierung von Texten, Bildern und Inhalten\"\n },\n {\n id: \"newsletter\",\n label: \"Newsletter-Versand & Pflege\",\n tooltip: \"Professionelle Newsletter-Erstellung, Versand und Analyse\"\n },\n {\n id: \"landingpage\",\n label: \"Landingpage-Erstellung (1x/Monat)\",\n tooltip: \"Conversion-optimierte Landingpages f\\xfcr Kampagnen und Aktionen\"\n },\n {\n id: \"blog\",\n label: \"Blog-Pflege\",\n tooltip: \"Regelm\\xe4\\xdfige Blogartikel, SEO-Optimierung und Community-Management\"\n },\n {\n id: \"domain_redirects\",\n label: \"Domainverwaltung & Umleitungen\",\n tooltip: \"Professionelle Domain-Verwaltung, Weiterleitungen und DNS-Management\"\n }\n];\nfunction PriceCalculator(param) {\n let { onPriceCalculated } = param;\n _s();\n const [isOpen, setIsOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [isLoading, setIsLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [formData, setFormData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n pages: 1,\n services: [],\n express: false,\n subscription: [],\n specialRequirements: \"\"\n });\n const [result, setResult] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const handleServiceChange = (serviceId, checked)=>{\n setFormData((prev)=>({\n ...prev,\n services: checked ? [\n ...prev.services,\n serviceId\n ] : prev.services.filter((id)=>id !== serviceId)\n }));\n };\n const handleSubscriptionChange = (serviceId, checked)=>{\n setFormData((prev)=>({\n ...prev,\n subscription: checked ? [\n ...prev.subscription,\n serviceId\n ] : prev.subscription.filter((id)=>id !== serviceId)\n }));\n };\n const generatePrompt = ()=>{\n const selectedServices = services.filter((service)=>formData.services.includes(service.id));\n const selectedSubscriptions = subscriptionServices.filter((service)=>formData.subscription.includes(service.id));\n const additionalServices = selectedServices.length > 0 ? selectedServices.map((s)=>s.label).join(\", \") : \"Keine zus\\xe4tzlichen Leistungen ausgew\\xe4hlt\";\n const ongoingServices = selectedSubscriptions.length > 0 ? selectedSubscriptions.map((s)=>s.label).join(\", \") : \"Keine laufenden Services ausgew\\xe4hlt\";\n return \"Du bist eine intelligente Webprojekt-KI, die Kunden bei der Preisabsch\\xe4tzung f\\xfcr professionelle Websites unterst\\xfctzt. Analysiere die vom Kunden angegebenen W\\xfcnsche und gib einen gesch\\xe4tzten Preisrahmen in Euro aus, basierend auf Komplexit\\xe4t, Umfang und Zusatzleistungen.\\n\\nWichtige Regeln:\\n– Die Basiswebsite beginnt bei 300 €\\n– Mehr Seiten erh\\xf6hen den Preis moderat\\n– Express-Lieferung kostet +30 % Aufpreis\\n– Je mehr Leistungen ausgew\\xe4hlt werden, desto effizienter kann gearbeitet werden ⇒ kleine Mengenrabatte m\\xf6glich\\n– Laufende Services bedeuten monatliche Zusatzkosten (nicht im Grundpreis enthalten)\\n– Alle Preise sind unverbindliche Sch\\xe4tzungen\\n\\nZiel: Der Kunde soll eine ehrliche und transparente Einsch\\xe4tzung bekommen – nicht zu hoch, aber auch nicht unter Wert.\\n\\n⸻\\n\\nKundeneingaben\\nSeitenanzahl: \".concat(formData.pages, \"\\n\\nZus\\xe4tzliche Leistungen:\\n\").concat(additionalServices, \"\\n\\nLaufende Services:\\n\").concat(ongoingServices, \"\\n\\nExpress-Lieferung gew\\xfcnscht?\\n\").concat(formData.express ? \"Ja\" : \"Nein\", \"\\n\\nBesondere W\\xfcnsche / Anforderungen:\\n\").concat(formData.specialRequirements || \"Keine besonderen W\\xfcnsche angegeben\", \"\\n\\n⸻\\n\\nBitte liefere als Antwort:\\n– Eine realistische Preisspanne in Euro (z. B. 750–950 €)\\n– Eine kurze Begr\\xfcndung (1–2 S\\xe4tze)\\n– Hinweis auf Beratungsgespr\\xe4ch f\\xfcr verbindliches Angebot\");\n };\n const calculateLocalPrice = ()=>{\n let basePrice = 300; // Basis-Website\n // Preis pro Seite (ab der 2. Seite)\n if (formData.pages > 1) {\n basePrice += (formData.pages - 1) * 50;\n }\n // Zusatzleistungen\n const selectedServices = services.filter((service)=>formData.services.includes(service.id));\n const servicePrices = {\n \"seo\": 150,\n \"database\": 200,\n \"ai\": 300,\n \"responsive\": 100,\n \"social\": 80,\n \"payment\": 120,\n \"analytics\": 90,\n \"domain\": 60,\n \"strategy\": 180,\n \"app\": 400\n };\n let servicesCost = 0;\n selectedServices.forEach((service)=>{\n servicesCost += servicePrices[service.id] || 0;\n });\n // Mengenrabatt für mehrere Leistungen\n if (selectedServices.length > 2) {\n servicesCost *= 0.9; // 10% Rabatt ab 3 Leistungen\n }\n // Express-Lieferung\n let totalPrice = basePrice + servicesCost;\n if (formData.express) {\n totalPrice *= 1.3; // +30% für Express\n }\n // Preisspanne (10% Variation)\n const variation = totalPrice * 0.1;\n const minPrice = Math.round(totalPrice - variation);\n const maxPrice = Math.round(totalPrice + variation);\n return {\n price: \"\".concat(minPrice, \"–\").concat(maxPrice, \"€\"),\n details: \"Basierend auf \".concat(formData.pages, \" Seiten und \").concat(selectedServices.length, \" Zusatzleistungen. \").concat(formData.express ? \"Express-Lieferung inklusive.\" : \"\")\n };\n };\n const calculatePrice = async ()=>{\n setIsLoading(true);\n try {\n var _data_choices__message, _data_choices_, _data_choices, _data_choices_1, _data_choices1;\n const prompt = generatePrompt();\n console.log(\"Sending API request with prompt:\", prompt);\n const response = await fetch(\"/api/calculate-price\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n prompt: prompt\n })\n });\n console.log(\"Response status:\", response.status);\n if (!response.ok) {\n const errorText = await response.text();\n console.error(\"API Error Response:\", errorText);\n // Fallback zur lokalen Preisberechnung\n console.log(\"Using local price calculation as fallback\");\n const localResult = calculateLocalPrice();\n setResult(localResult);\n onPriceCalculated === null || onPriceCalculated === void 0 ? void 0 : onPriceCalculated(localResult.price, localResult.details);\n return;\n }\n const data = await response.json();\n console.log(\"API Response data:\", data);\n const aiResponse = ((_data_choices = data.choices) === null || _data_choices === void 0 ? void 0 : (_data_choices_ = _data_choices[0]) === null || _data_choices_ === void 0 ? void 0 : (_data_choices__message = _data_choices_.message) === null || _data_choices__message === void 0 ? void 0 : _data_choices__message.content) || ((_data_choices1 = data.choices) === null || _data_choices1 === void 0 ? void 0 : (_data_choices_1 = _data_choices1[0]) === null || _data_choices_1 === void 0 ? void 0 : _data_choices_1.text) || \"Preis konnte nicht berechnet werden\";\n console.log(\"AI Response:\", aiResponse);\n // Extract price range and details\n const priceMatch = aiResponse.match(/(\\d+[-–]\\d+€)/);\n const price = priceMatch ? priceMatch[1] : \"Preis auf Anfrage\";\n const details = aiResponse.replace((priceMatch === null || priceMatch === void 0 ? void 0 : priceMatch[0]) || \"\", \"\").trim();\n const result = {\n price,\n details\n };\n setResult(result);\n onPriceCalculated === null || onPriceCalculated === void 0 ? void 0 : onPriceCalculated(price, details);\n } catch (error) {\n console.error(\"Error calculating price:\", error);\n // Fallback zur lokalen Preisberechnung\n console.log(\"Using local price calculation as fallback due to error\");\n const localResult = calculateLocalPrice();\n setResult(localResult);\n onPriceCalculated === null || onPriceCalculated === void 0 ? void 0 : onPriceCalculated(localResult.price, localResult.details);\n } finally{\n setIsLoading(false);\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full max-w-4xl mx-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_collapsible__WEBPACK_IMPORTED_MODULE_5__.Collapsible, {\n open: isOpen,\n onOpenChange: setIsOpen,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_collapsible__WEBPACK_IMPORTED_MODULE_5__.CollapsibleTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n size: \"lg\",\n className: \"w-full px-8 py-4 rounded-full text-lg font-semibold shadow-xl hover:scale-105 transition-all duration-300 flex items-center justify-center space-x-2\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.primary,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.background\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calculator_ChevronDown_ChevronUp_Loader2_Info_HelpCircle_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 297,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"Preis kalkulieren\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 298,\n columnNumber: 13\n }, this),\n isOpen ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calculator_ChevronDown_ChevronUp_Loader2_Info_HelpCircle_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 299,\n columnNumber: 23\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calculator_ChevronDown_ChevronUp_Loader2_Info_HelpCircle_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 299,\n columnNumber: 59\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 289,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 288,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_collapsible__WEBPACK_IMPORTED_MODULE_5__.CollapsibleContent, {\n className: \"mt-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative overflow-hidden rounded-3xl shadow-2xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-8 sm:p-12\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.background, \"F0\")\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-2xl sm:text-3xl font-bold mb-8 text-center\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.primary\n },\n children: \"Kalkuliere deinen individuellen Preis mit wenigen Klicks\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 307,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-lg font-semibold mb-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.primary\n },\n children: [\n \"Anzahl der Seiten: \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-bold\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.secondary\n },\n children: formData.pages\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 315,\n columnNumber: 40\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 314,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"range\",\n min: \"1\",\n max: \"10\",\n value: formData.pages,\n onChange: (e)=>setFormData((prev)=>({\n ...prev,\n pages: parseInt(e.target.value)\n })),\n className: \"flex-1 h-3 rounded-lg appearance-none cursor-pointer\",\n style: {\n background: \"linear-gradient(to right, \".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.secondary, \" 0%, \").concat(_lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.secondary, \" \").concat((formData.pages - 1) * 11.11, \"%, \").concat(_lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.tertiary, \" \").concat((formData.pages - 1) * 11.11, \"%, \").concat(_lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.tertiary, \" 100%)\")\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 318,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-lg font-bold min-w-[3rem] text-center\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.secondary\n },\n children: formData.pages\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 329,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 317,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between text-sm mt-2\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.primary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"1\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 334,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"10\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 335,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 333,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 313,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-lg font-semibold mb-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.primary\n },\n children: \"Zus\\xe4tzliche Leistungen\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 341,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-2 gap-4\",\n children: services.map((service)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_6__.TooltipProvider, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_6__.Tooltip, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_6__.TooltipTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-3 p-3 rounded-lg hover:bg-white/20 transition-colors cursor-pointer\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_3__.Checkbox, {\n id: service.id,\n checked: formData.services.includes(service.id),\n onCheckedChange: (checked)=>handleServiceChange(service.id, checked),\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 350,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: service.id,\n className: \"text-lg cursor-pointer flex-1\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.primary\n },\n children: service.label\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 356,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calculator_ChevronDown_ChevronUp_Loader2_Info_HelpCircle_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"w-4 h-4 opacity-60\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.secondary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 359,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 349,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 348,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_6__.TooltipContent, {\n className: \"max-w-xs\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: service.tooltip\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 363,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 362,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 347,\n columnNumber: 25\n }, this)\n }, service.id, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 346,\n columnNumber: 23\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 344,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 340,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-3 p-4 rounded-lg hover:bg-white/20 transition-colors\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_3__.Checkbox, {\n id: \"express\",\n checked: formData.express,\n onCheckedChange: (checked)=>setFormData((prev)=>({\n ...prev,\n express: checked\n })),\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 373,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: \"express\",\n className: \"text-lg cursor-pointer\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.primary\n },\n children: \"Express-Lieferung\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 379,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 372,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-lg font-semibold mb-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.primary\n },\n children: \"Laufende Services (optional)\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 386,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: subscriptionServices.map((service)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_6__.TooltipProvider, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_6__.Tooltip, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_6__.TooltipTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-3 p-3 rounded-lg hover:bg-white/20 transition-colors cursor-pointer\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_3__.Checkbox, {\n id: service.id,\n checked: formData.subscription.includes(service.id),\n onCheckedChange: (checked)=>handleSubscriptionChange(service.id, checked),\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 395,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: service.id,\n className: \"text-lg cursor-pointer flex-1\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.primary\n },\n children: service.label\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 401,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calculator_ChevronDown_ChevronUp_Loader2_Info_HelpCircle_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"w-4 h-4 opacity-60\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.secondary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 404,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 394,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 393,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_6__.TooltipContent, {\n className: \"max-w-xs\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: service.tooltip\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 408,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 407,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 392,\n columnNumber: 25\n }, this)\n }, service.id, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 391,\n columnNumber: 23\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 389,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 385,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 311,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 306,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative h-8\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.background, \"F0\")\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"absolute bottom-0 w-full h-full\",\n viewBox: \"0 0 1200 120\",\n preserveAspectRatio: \"none\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.primary\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M0,0 C300,120 900,120 1200,0 L1200,120 L0,120 Z\",\n fill: \"currentColor\",\n fillOpacity: \"0.1\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 426,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 420,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 419,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-8 sm:p-12\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.primary, \"F0\")\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-lg font-semibold mb-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.background\n },\n children: \"Haben Sie besondere W\\xfcnsche oder Anforderungen (optional, nicht verpflichtend)?\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 439,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_textarea__WEBPACK_IMPORTED_MODULE_4__.Textarea, {\n value: formData.specialRequirements,\n onChange: (e)=>setFormData((prev)=>({\n ...prev,\n specialRequirements: e.target.value\n })),\n placeholder: \"Welche Funktionen oder Strukturen sind Ihnen wichtig? Beispiele: Mitgliederbereich, Projektverwaltung, dynamischer Produktfilter, interne Datenbankpflege, mehrsprachige Inhalte.\",\n className: \"w-full p-4 text-lg resize-none\",\n rows: 4,\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.background, \"20\"),\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.background,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.background\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 442,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 438,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 rounded-lg\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.background, \"20\")\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start space-x-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calculator_ChevronDown_ChevronUp_Loader2_Info_HelpCircle_lucide_react__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n className: \"w-5 h-5 mt-1 flex-shrink-0\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.tertiary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 459,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.background\n },\n children: \"Diese Leistungen sind bei jeder Website automatisch enthalten: Hosting, Wartung, technischer Support, SEO-Grundoptimierung, Performance-Check und eine pers\\xf6nliche Quartalsberatung.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 460,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 458,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 457,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: calculatePrice,\n disabled: isLoading,\n size: \"lg\",\n className: \"w-full px-8 py-4 rounded-full text-lg font-semibold shadow-xl hover:scale-105 transition-all duration-300 flex items-center justify-center space-x-2\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.tertiary,\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.primary\n },\n children: isLoading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calculator_ChevronDown_ChevronUp_Loader2_Info_HelpCircle_lucide_react__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n className: \"w-5 h-5 animate-spin\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 479,\n columnNumber: 23\n }, this),\n \"Berechne Preis...\"\n ]\n }, void 0, true) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calculator_ChevronDown_ChevronUp_Loader2_Info_HelpCircle_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 484,\n columnNumber: 23\n }, this),\n \"Preis berechnen\"\n ]\n }, void 0, true)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 467,\n columnNumber: 17\n }, this),\n result && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-8 p-6 rounded-xl border-2\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.tertiary, \"20\"),\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.tertiary\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-xl font-semibold mb-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.tertiary\n },\n children: [\n \"Gesch\\xe4tzter Preis: \",\n result.price\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 497,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-lg mb-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.background\n },\n children: result.details\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 500,\n columnNumber: 21\n }, this),\n formData.subscription.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-lg font-medium mb-4\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.tertiary\n },\n children: \"+200€/Monat f\\xfcr laufende Services\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 504,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_7__.colors.background\n },\n children: \"Dies ist ein Richtwert. Im Beratungsgespr\\xe4ch kl\\xe4ren wir alle Details und finden eine L\\xf6sung, die zu Ihrem Budget passt.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 508,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 492,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 436,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 435,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 304,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 303,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 287,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\PriceCalculator.tsx\",\n lineNumber: 286,\n columnNumber: 5\n }, this);\n}\n_s(PriceCalculator, \"ZVSMe2R3kwpWXiMdX/CUWYBBx1c=\");\n_c = PriceCalculator;\nvar _c;\n$RefreshReg$(_c, \"PriceCalculator\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvUHJpY2VDYWxjdWxhdG9yLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDaUM7QUFDZTtBQUNJO0FBQ0E7QUFDOEM7QUFDQztBQUNOO0FBQ3ZEO0FBTXRDLE1BQU1rQixXQUFXO0lBQ2Y7UUFDRUMsSUFBSTtRQUNKQyxPQUFPO1FBQ1BDLFNBQVM7SUFDWDtJQUNBO1FBQ0VGLElBQUk7UUFDSkMsT0FBTztRQUNQQyxTQUFTO0lBQ1g7SUFDQTtRQUNFRixJQUFJO1FBQ0pDLE9BQU87UUFDUEMsU0FBUztJQUNYO0lBQ0E7UUFDRUYsSUFBSTtRQUNKQyxPQUFPO1FBQ1BDLFNBQVM7SUFDWDtJQUNBO1FBQ0VGLElBQUk7UUFDSkMsT0FBTztRQUNQQyxTQUFTO0lBQ1g7SUFDQTtRQUNFRixJQUFJO1FBQ0pDLE9BQU87UUFDUEMsU0FBUztJQUNYO0lBQ0E7UUFDRUYsSUFBSTtRQUNKQyxPQUFPO1FBQ1BDLFNBQVM7SUFDWDtJQUNBO1FBQ0VGLElBQUk7UUFDSkMsT0FBTztRQUNQQyxTQUFTO0lBQ1g7SUFDQTtRQUNFRixJQUFJO1FBQ0pDLE9BQU87UUFDUEMsU0FBUztJQUNYO0lBQ0E7UUFDRUYsSUFBSTtRQUNKQyxPQUFPO1FBQ1BDLFNBQVM7SUFDWDtDQUNEO0FBRUQsTUFBTUMsdUJBQXVCO0lBQzNCO1FBQ0VILElBQUk7UUFDSkMsT0FBTztRQUNQQyxTQUFTO0lBQ1g7SUFDQTtRQUNFRixJQUFJO1FBQ0pDLE9BQU87UUFDUEMsU0FBUztJQUNYO0lBQ0E7UUFDRUYsSUFBSTtRQUNKQyxPQUFPO1FBQ1BDLFNBQVM7SUFDWDtJQUNBO1FBQ0VGLElBQUk7UUFDSkMsT0FBTztRQUNQQyxTQUFTO0lBQ1g7SUFDQTtRQUNFRixJQUFJO1FBQ0pDLE9BQU87UUFDUEMsU0FBUztJQUNYO0NBQ0Q7QUFFYyxTQUFTRSxnQkFBZ0IsS0FBMkM7UUFBM0MsRUFBRUMsaUJBQWlCLEVBQXdCLEdBQTNDOztJ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b0RBQTJCSyxPQUFPO3dEQUFFRyxPQUFPdEYsK0NBQU1BLENBQUNvRyxRQUFRO29EQUFDOzhEQUFHOzs7Ozs7OERBSTdFLDhEQUFDRztvREFBRXpCLFdBQVU7b0RBQVVLLE9BQU87d0RBQUVHLE9BQU90RiwrQ0FBTUEsQ0FBQ3VGLFVBQVU7b0RBQUM7OERBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVloRjtHQXhhd0JqRjtLQUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9jb21wb25lbnRzL1ByaWNlQ2FsY3VsYXRvci50c3g/NmY2YiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9idXR0b24nO1xyXG5pbXBvcnQgeyBDaGVja2JveCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9jaGVja2JveCc7XHJcbmltcG9ydCB7IFRleHRhcmVhIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL3RleHRhcmVhJztcclxuaW1wb3J0IHsgQ29sbGFwc2libGUsIENvbGxhcHNpYmxlQ29udGVudCwgQ29sbGFwc2libGVUcmlnZ2VyIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL2NvbGxhcHNpYmxlJztcclxuaW1wb3J0IHsgVG9vbHRpcCwgVG9vbHRpcENvbnRlbnQsIFRvb2x0aXBQcm92aWRlciwgVG9vbHRpcFRyaWdnZXIgfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvdG9vbHRpcCc7XHJcbmltcG9ydCB7IENhbGN1bGF0b3IsIENoZXZyb25Eb3duLCBDaGV2cm9uVXAsIExvYWRlcjIsIEluZm8sIEhlbHBDaXJjbGUgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xyXG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICdAL2xpYi9jb2xvcnMnO1xyXG5cclxuaW50ZXJmYWNlIFByaWNlQ2FsY3VsYXRvclByb3BzIHtcclxuICBvblByaWNlQ2FsY3VsYXRlZD86IChwcmljZTogc3RyaW5nLCBkZXRhaWxzOiBzdHJpbmcpID0+IHZvaWQ7XHJcbn1cclxuXHJcbmNvbnN0IHNlcnZpY2VzID0gW1xyXG4gIHsgXHJcbiAgICBpZDogJ3NlbycsIFxyXG4gICAgbGFiZWw6ICdTRU8tT3B0aW1pZXJ1bmcnLFxyXG4gICAgdG9vbHRpcDogJ1N1Y2htYXNjaGluZW5vcHRpbWllcnVuZyBmw7xyIGJlc3NlcmUgU2ljaHRiYXJrZWl0IGluIEdvb2dsZSAmIENvLidcclxuICB9LFxyXG4gIHsgXHJcbiAgICBpZDogJ2RhdGFiYXNlJywgXHJcbiAgICBsYWJlbDogJ0RhdGVuYmFuay1BbmJpbmR1bmcnLFxyXG4gICAgdG9vbHRpcDogJ1ZlcmJpbmR1bmcgenUgYmVzdGVoZW5kZW4gRGF0ZW5iYW5rZW4gb2RlciBuZXVlIERhdGVuYmFua3N0cnVrdHVyZW4nXHJcbiAgfSxcclxuICB7IFxyXG4gICAgaWQ6ICdhaScsIFxyXG4gICAgbGFiZWw6ICdLSS1JbnRlZ3JhdGlvbicsXHJcbiAgICB0b29sdGlwOiAnS8O8bnN0bGljaGUgSW50ZWxsaWdlbnogZsO8ciBDaGF0Ym90cywgRW1wZmVobHVuZ3NzeXN0ZW1lIG9kZXIgQXV0b21hdGlzaWVydW5nJ1xyXG4gIH0sXHJcbiAgeyBcclxuICAgIGlkOiAncmVzcG9uc2l2ZScsIFxyXG4gICAgbGFiZWw6ICdSZXNwb25zaXZlcyBEZXNpZ24nLFxyXG4gICAgdG9vbHRpcDogJ09wdGltYWxlIERhcnN0ZWxsdW5nIGF1ZiBhbGxlbiBHZXLDpHRlbjogRGVza3RvcCwgVGFibGV0LCBTbWFydHBob25lJ1xyXG4gIH0sXHJcbiAgeyBcclxuICAgIGlkOiAnc29jaWFsJywgXHJcbiAgICBsYWJlbDogJ1NvY2lhbC1NZWRpYS1WZXJrbsO8cGZ1bmcnLFxyXG4gICAgdG9vbHRpcDogJ0ludGVncmF0aW9uIHZvbiBTb2NpYWwgTWVkaWEgRmVlZHMgdW5kIFNoYXJpbmctRnVua3Rpb25lbidcclxuICB9LFxyXG4gIHsgXHJcbiAgICBpZDogJ3BheW1lbnQnLCBcclxuICAgIGxhYmVsOiAnWmFobHVuZ3NtZXRob2RlbicsXHJcbiAgICB0b29sdGlwOiAnU2ljaGVyZSBPbmxpbmUtWmFobHVuZ2VuIG1pdCBQYXlQYWwsIEtyZWRpdGthcnRlLCBTRVBBICYgQ28uJ1xyXG4gIH0sXHJcbiAgeyBcclxuICAgIGlkOiAnYW5hbHl0aWNzJywgXHJcbiAgICBsYWJlbDogJ051dHplcmFuYWx5c2UgJiBUcmFja2luZycsXHJcbiAgICB0b29sdGlwOiAnR29vZ2xlIEFuYWx5dGljcywgQ29udmVyc2lvbi1UcmFja2luZyB1bmQgZGV0YWlsbGllcnRlIEJlc3VjaGVyc3RhdGlzdGlrZW4nXHJcbiAgfSxcclxuICB7IFxyXG4gICAgaWQ6ICdkb21haW4nLCBcclxuICAgIGxhYmVsOiAnRG9tYWludmVyd2FsdHVuZycsXHJcbiAgICB0b29sdGlwOiAnUHJvZmVzc2lvbmVsbGUgRG9tYWluLUVpbnJpY2h0dW5nIHVuZCBETlMtS29uZmlndXJhdGlvbidcclxuICB9LFxyXG4gIHsgXHJcbiAgICBpZDogJ3N0cmF0ZWd5JywgXHJcbiAgICBsYWJlbDogJ1N0cmF0ZWdpZWJlcmF0dW5nJyxcclxuICAgIHRvb2x0aXA6ICdEaWdpdGFsZSBTdHJhdGVnaWUsIFppZWxncnVwcGVuYW5hbHlzZSB1bmQgV2V0dGJld2VyYnNhbmFseXNlJ1xyXG4gIH0sXHJcbiAgeyBcclxuICAgIGlkOiAnYXBwJywgXHJcbiAgICBsYWJlbDogJ0FwcC1FbnR3aWNrbHVuZycsXHJcbiAgICB0b29sdGlwOiAnTmF0aXZlIG9kZXIgUHJvZ3Jlc3NpdmUgV2ViIEFwcHMgZsO8ciBpT1MgdW5kIEFuZHJvaWQnXHJcbiAgfVxyXG5dO1xyXG5cclxuY29uc3Qgc3Vic2NyaXB0aW9uU2VydmljZXMgPSBbXHJcbiAgeyBcclxuICAgIGlkOiAnY29udGVudCcsIFxyXG4gICAgbGFiZWw6ICdDb250ZW50LVBmbGVnZScsXHJcbiAgICB0b29sdGlwOiAnUmVnZWxtw6TDn2lnZSBBa3R1YWxpc2llcnVuZyB2b24gVGV4dGVuLCBCaWxkZXJuIHVuZCBJbmhhbHRlbidcclxuICB9LFxyXG4gIHsgXHJcbiAgICBpZDogJ25ld3NsZXR0ZXInLCBcclxuICAgIGxhYmVsOiAnTmV3c2xldHRlci1WZXJzYW5kICYgUGZsZWdlJyxcclxuICAgIHRvb2x0aXA6ICdQcm9mZXNzaW9uZWxsZSBOZXdzbGV0dGVyLUVyc3RlbGx1bmcsIFZlcnNhbmQgdW5kIEFuYWx5c2UnXHJcbiAgfSxcclxuICB7IFxyXG4gICAgaWQ6ICdsYW5kaW5ncGFnZScsIFxyXG4gICAgbGFiZWw6ICdMYW5kaW5ncGFnZS1FcnN0ZWxsdW5nICgxeC9Nb25hdCknLFxyXG4gICAgdG9vbHRpcDogJ0NvbnZlcnNpb24tb3B0aW1pZXJ0ZSBMYW5kaW5ncGFnZXMgZsO8ciBLYW1wYWduZW4gdW5kIEFrdGlvbmVuJ1xyXG4gIH0sXHJcbiAgeyBcclxuICAgIGlkOiAnYmxvZycsIFxyXG4gICAgbGFiZWw6ICdCbG9nLVBmbGVnZScsXHJcbiAgICB0b29sdGlwOiAnUmVnZWxtw6TDn2lnZSBCbG9nYXJ0aWtlbCwgU0VPLU9wdGltaWVydW5nIHVuZCBDb21tdW5pdHktTWFuYWdlbWVudCdcclxuICB9LFxyXG4gIHsgXHJcbiAgICBpZDogJ2RvbWFpbl9yZWRpcmVjdHMnLCBcclxuICAgIGxhYmVsOiAnRG9tYWludmVyd2FsdHVuZyAmIFVtbGVpdHVuZ2VuJyxcclxuICAgIHRvb2x0aXA6ICdQcm9mZXNzaW9uZWxsZSBEb21haW4tVmVyd2FsdHVuZywgV2VpdGVybGVpdHVuZ2VuIHVuZCBETlMtTWFuYWdlbWVudCdcclxuICB9XHJcbl07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQcmljZUNhbGN1bGF0b3IoeyBvblByaWNlQ2FsY3VsYXRlZCB9OiBQcmljZUNhbGN1bGF0b3JQcm9wcykge1xyXG4gIGNvbnN0IFtpc09wZW4sIHNldElzT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICBjb25zdCBbZm9ybURhdGEsIHNldEZvcm1EYXRhXSA9IHVzZVN0YXRlKHtcclxuICAgIHBhZ2VzOiAxLFxyXG4gICAgc2VydmljZXM6IFtdIGFzIHN0cmluZ1tdLFxyXG4gICAgZXhwcmVzczogZmFsc2UsXHJcbiAgICBzdWJzY3JpcHRpb246IFtdIGFzIHN0cmluZ1tdLFxyXG4gICAgc3BlY2lhbFJlcXVpcmVtZW50czogJydcclxuICB9KTtcclxuICBjb25zdCBbcmVzdWx0LCBzZXRSZXN1bHRdID0gdXNlU3RhdGU8eyBwcmljZTogc3RyaW5nOyBkZXRhaWxzOiBzdHJpbmcgfSB8IG51bGw+KG51bGwpO1xyXG5cclxuICBjb25zdCBoYW5kbGVTZXJ2aWNlQ2hhbmdlID0gKHNlcnZpY2VJZDogc3RyaW5nLCBjaGVja2VkOiBib29sZWFuKSA9PiB7XHJcbiAgICBzZXRGb3JtRGF0YShwcmV2ID0+ICh7XHJcbiAgICAgIC4uLnByZXYsXHJcbiAgICAgIHNlcnZpY2VzOiBjaGVja2VkIFxyXG4gICAgICAgID8gWy4uLnByZXYuc2VydmljZXMsIHNlcnZpY2VJZF1cclxuICAgICAgICA6IHByZXYuc2VydmljZXMuZmlsdGVyKGlkID0+IGlkICE9PSBzZXJ2aWNlSWQpXHJcbiAgICB9KSk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlU3Vic2NyaXB0aW9uQ2hhbmdlID0gKHNlcnZpY2VJZDogc3RyaW5nLCBjaGVja2VkOiBib29sZWFuKSA9PiB7XHJcbiAgICBzZXRGb3JtRGF0YShwcmV2ID0+ICh7XHJcbiAgICAgIC4uLnByZXYsXHJcbiAgICAgIHN1YnNjcmlwdGlvbjogY2hlY2tlZCBcclxuICAgICAgICA/IFsuLi5wcmV2LnN1YnNjcmlwdGlvbiwgc2VydmljZUlkXVxyXG4gICAgICAgIDogcHJldi5zdWJzY3JpcHRpb24uZmlsdGVyKGlkID0+IGlkICE9PSBzZXJ2aWNlSWQpXHJcbiAgICB9KSk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ2VuZXJhdGVQcm9tcHQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBzZWxlY3RlZFNlcnZpY2VzID0gc2VydmljZXMuZmlsdGVyKHNlcnZpY2UgPT4gZm9ybURhdGEuc2VydmljZXMuaW5jbHVkZXMoc2VydmljZS5pZCkpO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRTdWJzY3JpcHRpb25zID0gc3Vic2NyaXB0aW9uU2VydmljZXMuZmlsdGVyKHNlcnZpY2UgPT4gZm9ybURhdGEuc3Vic2NyaXB0aW9uLmluY2x1ZGVzKHNlcnZpY2UuaWQpKTtcclxuICAgIFxyXG4gICAgY29uc3QgYWRkaXRpb25hbFNlcnZpY2VzID0gc2VsZWN0ZWRTZXJ2aWNlcy5sZW5ndGggPiAwIFxyXG4gICAgICA/IHNlbGVjdGVkU2VydmljZXMubWFwKHMgPT4gcy5sYWJlbCkuam9pbignLCAnKVxyXG4gICAgICA6ICdLZWluZSB6dXPDpHR6bGljaGVuIExlaXN0dW5nZW4gYXVzZ2V3w6RobHQnO1xyXG4gICAgXHJcbiAgICBjb25zdCBvbmdvaW5nU2VydmljZXMgPSBzZWxlY3RlZFN1YnNjcmlwdGlvbnMubGVuZ3RoID4gMFxyXG4gICAgICA/IHNlbGVjdGVkU3Vic2NyaXB0aW9ucy5tYXAocyA9PiBzLmxhYmVsKS5qb2luKCcsICcpXHJcbiAgICAgIDogJ0tlaW5lIGxhdWZlbmRlbiBTZXJ2aWNlcyBhdXNnZXfDpGhsdCc7XHJcblxyXG4gICAgcmV0dXJuIGBEdSBiaXN0IGVpbmUgaW50ZWxsaWdlbnRlIFdlYnByb2pla3QtS0ksIGRpZSBLdW5kZW4gYmVpIGRlciBQcmVpc2Fic2Now6R0enVuZyBmw7xyIHByb2Zlc3Npb25lbGxlIFdlYnNpdGVzIHVudGVyc3TDvHR6dC4gQW5hbHlzaWVyZSBkaWUgdm9tIEt1bmRlbiBhbmdlZ2ViZW5lbiBXw7xuc2NoZSB1bmQgZ2liIGVpbmVuIGdlc2Now6R0enRlbiBQcmVpc3JhaG1lbiBpbiBFdXJvIGF1cywgYmFzaWVyZW5kIGF1ZiBLb21wbGV4aXTDpHQsIFVtZmFuZyB1bmQgWnVzYXR6bGVpc3R1bmdlbi5cclxuXHJcbldpY2h0aWdlIFJlZ2Vsbjpcclxu4oCTIERpZSBCYXNpc3dlYnNpdGUgYmVnaW5udCBiZWkgMzAwIOKCrFxyXG7igJMgTWVociBTZWl0ZW4gZXJow7ZoZW4gZGVuIFByZWlzIG1vZGVyYXRcclxu4oCTIEV4cHJlc3MtTGllZmVydW5nIGtvc3RldCArMzAgJSBBdWZwcmVpc1xyXG7igJMgSmUgbWVociBMZWlzdHVuZ2VuIGF1c2dld8OkaGx0IHdlcmRlbiwgZGVzdG8gZWZmaXppZW50ZXIga2FubiBnZWFyYmVpdGV0IHdlcmRlbiDih5Iga2xlaW5lIE1lbmdlbnJhYmF0dGUgbcO2Z2xpY2hcclxu4oCTIExhdWZlbmRlIFNlcnZpY2VzIGJlZGV1dGVuIG1vbmF0bGljaGUgWnVzYXR6a29zdGVuIChuaWNodCBpbSBHcnVuZHByZWlzIGVudGhhbHRlbilcclxu4oCTIEFsbGUgUHJlaXNlIHNpbmQgdW52ZXJiaW5kbGljaGUgU2Now6R0enVuZ2VuXHJcblxyXG5aaWVsOiBEZXIgS3VuZGUgc29sbCBlaW5lIGVocmxpY2hlIHVuZCB0cmFuc3BhcmVudGUgRWluc2Now6R0enVuZyBiZWtvbW1lbiDigJMgbmljaHQgenUgaG9jaCwgYWJlciBhdWNoIG5pY2h0IHVudGVyIFdlcnQuXHJcblxyXG7iuLtcclxuXHJcbkt1bmRlbmVpbmdhYmVuXHJcblNlaXRlbmFuemFobDogJHtmb3JtRGF0YS5wYWdlc31cclxuXHJcblp1c8OkdHpsaWNoZSBMZWlzdHVuZ2VuOlxyXG4ke2FkZGl0aW9uYWxTZXJ2aWNlc31cclxuXHJcbkxhdWZlbmRlIFNlcnZpY2VzOlxyXG4ke29uZ29pbmdTZXJ2aWNlc31cclxuXHJcbkV4cHJlc3MtTGllZmVydW5nIGdld8O8bnNjaHQ/XHJcbiR7Zm9ybURhdGEuZXhwcmVzcyA/ICdKYScgOiAnTmVpbid9XHJcblxyXG5CZXNvbmRlcmUgV8O8bnNjaGUgLyBBbmZvcmRlcnVuZ2VuOlxyXG4ke2Zvcm1EYXRhLnNwZWNpYWxSZXF1aXJlbWVudHMgfHwgJ0tlaW5lIGJlc29uZGVyZW4gV8O8bnNjaGUgYW5nZWdlYmVuJ31cclxuXHJcbuK4u1xyXG5cclxuQml0dGUgbGllZmVyZSBhbHMgQW50d29ydDpcclxu4oCTIEVpbmUgcmVhbGlzdGlzY2hlIFByZWlzc3Bhbm5lIGluIEV1cm8gKHouIEIuIDc1MOKAkzk1MCDigqwpXHJcbuKAkyBFaW5lIGt1cnplIEJlZ3LDvG5kdW5nICgx4oCTMiBTw6R0emUpXHJcbuKAkyBIaW53ZWlzIGF1ZiBCZXJhdHVuZ3NnZXNwcsOkY2ggZsO8ciB2ZXJiaW5kbGljaGVzIEFuZ2Vib3RgO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGNhbGN1bGF0ZUxvY2FsUHJpY2UgPSAoKSA9PiB7XHJcbiAgICBsZXQgYmFzZVByaWNlID0gMzAwOyAvLyBCYXNpcy1XZWJzaXRlXHJcbiAgICBcclxuICAgIC8vIFByZWlzIHBybyBTZWl0ZSAoYWIgZGVyIDIuIFNlaXRlKVxyXG4gICAgaWYgKGZvcm1EYXRhLnBhZ2VzID4gMSkge1xyXG4gICAgICBiYXNlUHJpY2UgKz0gKGZvcm1EYXRhLnBhZ2VzIC0gMSkgKiA1MDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8gWnVzYXR6bGVpc3R1bmdlblxyXG4gICAgY29uc3Qgc2VsZWN0ZWRTZXJ2aWNlcyA9IHNlcnZpY2VzLmZpbHRlcihzZXJ2aWNlID0+IGZvcm1EYXRhLnNlcnZpY2VzLmluY2x1ZGVzKHNlcnZpY2UuaWQpKTtcclxuICAgIGNvbnN0IHNlcnZpY2VQcmljZXMgPSB7XHJcbiAgICAgICdzZW8nOiAxNTAsXHJcbiAgICAgICdkYXRhYmFzZSc6IDIwMCxcclxuICAgICAgJ2FpJzogMzAwLFxyXG4gICAgICAncmVzcG9uc2l2ZSc6IDEwMCxcclxuICAgICAgJ3NvY2lhbCc6IDgwLFxyXG4gICAgICAncGF5bWVudCc6IDEyMCxcclxuICAgICAgJ2FuYWx5dGljcyc6IDkwLFxyXG4gICAgICAnZG9tYWluJzogNjAsXHJcbiAgICAgICdzdHJhdGVneSc6IDE4MCxcclxuICAgICAgJ2FwcCc6IDQwMFxyXG4gICAgfTtcclxuICAgIFxyXG4gICAgbGV0IHNlcnZpY2VzQ29zdCA9IDA7XHJcbiAgICBzZWxlY3RlZFNlcnZpY2VzLmZvckVhY2goc2VydmljZSA9PiB7XHJcbiAgICAgIHNlcnZpY2VzQ29zdCArPSBzZXJ2aWNlUHJpY2VzW3NlcnZpY2UuaWQgYXMga2V5b2YgdHlwZW9mIHNlcnZpY2VQcmljZXNdIHx8IDA7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgLy8gTWVuZ2VucmFiYXR0IGbDvHIgbWVocmVyZSBMZWlzdHVuZ2VuXHJcbiAgICBpZiAoc2VsZWN0ZWRTZXJ2aWNlcy5sZW5ndGggPiAyKSB7XHJcbiAgICAgIHNlcnZpY2VzQ29zdCAqPSAwLjk7IC8vIDEwJSBSYWJhdHQgYWIgMyBMZWlzdHVuZ2VuXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIEV4cHJlc3MtTGllZmVydW5nXHJcbiAgICBsZXQgdG90YWxQcmljZSA9IGJhc2VQcmljZSArIHNlcnZpY2VzQ29zdDtcclxuICAgIGlmIChmb3JtRGF0YS5leHByZXNzKSB7XHJcbiAgICAgIHRvdGFsUHJpY2UgKj0gMS4zOyAvLyArMzAlIGbDvHIgRXhwcmVzc1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLyBQcmVpc3NwYW5uZSAoMTAlIFZhcmlhdGlvbilcclxuICAgIGNvbnN0IHZhcmlhdGlvbiA9IHRvdGFsUHJpY2UgKiAwLjE7XHJcbiAgICBjb25zdCBtaW5QcmljZSA9IE1hdGgucm91bmQodG90YWxQcmljZSAtIHZhcmlhdGlvbik7XHJcbiAgICBjb25zdCBtYXhQcmljZSA9IE1hdGgucm91bmQodG90YWxQcmljZSArIHZhcmlhdGlvbik7XHJcbiAgICBcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHByaWNlOiBgJHttaW5QcmljZX3igJMke21heFByaWNlfeKCrGAsXHJcbiAgICAgIGRldGFpbHM6IGBCYXNpZXJlbmQgYXVmICR7Zm9ybURhdGEucGFnZXN9IFNlaXRlbiB1bmQgJHtzZWxlY3RlZFNlcnZpY2VzLmxlbmd0aH0gWnVzYXR6bGVpc3R1bmdlbi4gJHtmb3JtRGF0YS5leHByZXNzID8gJ0V4cHJlc3MtTGllZmVydW5nIGlua2x1c2l2ZS4nIDogJyd9YFxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICBjb25zdCBjYWxjdWxhdGVQcmljZSA9IGFzeW5jICgpID0+IHtcclxuICAgIHNldElzTG9hZGluZyh0cnVlKTtcclxuICAgIFxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcHJvbXB0ID0gZ2VuZXJhdGVQcm9tcHQoKTtcclxuICAgICAgXHJcbiAgICAgIGNvbnNvbGUubG9nKCdTZW5kaW5nIEFQSSByZXF1ZXN0IHdpdGggcHJvbXB0OicsIHByb21wdCk7XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCcvYXBpL2NhbGN1bGF0ZS1wcmljZScsIHtcclxuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICAgICAgfSxcclxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICBwcm9tcHQ6IHByb21wdFxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgY29uc29sZS5sb2coJ1Jlc3BvbnNlIHN0YXR1czonLCByZXNwb25zZS5zdGF0dXMpO1xyXG5cclxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xyXG4gICAgICAgIGNvbnN0IGVycm9yVGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdBUEkgRXJyb3IgUmVzcG9uc2U6JywgZXJyb3JUZXh0KTtcclxuICAgICAgICBcclxuICAgICAgICAvLyBGYWxsYmFjayB6dXIgbG9rYWxlbiBQcmVpc2JlcmVjaG51bmdcclxuICAgICAgICBjb25zb2xlLmxvZygnVXNpbmcgbG9jYWwgcHJpY2UgY2FsY3VsYXRpb24gYXMgZmFsbGJhY2snKTtcclxuICAgICAgICBjb25zdCBsb2NhbFJlc3VsdCA9IGNhbGN1bGF0ZUxvY2FsUHJpY2UoKTtcclxuICAgICAgICBzZXRSZXN1bHQobG9jYWxSZXN1bHQpO1xyXG4gICAgICAgIG9uUHJpY2VDYWxjdWxhdGVkPy4obG9jYWxSZXN1bHQucHJpY2UsIGxvY2FsUmVzdWx0LmRldGFpbHMpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuICAgICAgY29uc29sZS5sb2coJ0FQSSBSZXNwb25zZSBkYXRhOicsIGRhdGEpO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgYWlSZXNwb25zZSA9IGRhdGEuY2hvaWNlcz8uWzBdPy5tZXNzYWdlPy5jb250ZW50IHx8IGRhdGEuY2hvaWNlcz8uWzBdPy50ZXh0IHx8ICdQcmVpcyBrb25udGUgbmljaHQgYmVyZWNobmV0IHdlcmRlbic7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdBSSBSZXNwb25zZTonLCBhaVJlc3BvbnNlKTtcclxuICAgICAgXHJcbiAgICAgIC8vIEV4dHJhY3QgcHJpY2UgcmFuZ2UgYW5kIGRldGFpbHNcclxuICAgICAgY29uc3QgcHJpY2VNYXRjaCA9IGFpUmVzcG9uc2UubWF0Y2goLyhcXGQrWy3igJNdXFxkK+KCrCkvKTtcclxuICAgICAgY29uc3QgcHJpY2UgPSBwcmljZU1hdGNoID8gcHJpY2VNYXRjaFsxXSA6ICdQcmVpcyBhdWYgQW5mcmFnZSc7XHJcbiAgICAgIGNvbnN0IGRldGFpbHMgPSBhaVJlc3BvbnNlLnJlcGxhY2UocHJpY2VNYXRjaD8uWzBdIHx8ICcnLCAnJykudHJpbSgpO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgcmVzdWx0ID0geyBwcmljZSwgZGV0YWlscyB9O1xyXG4gICAgICBzZXRSZXN1bHQocmVzdWx0KTtcclxuICAgICAgb25QcmljZUNhbGN1bGF0ZWQ/LihwcmljZSwgZGV0YWlscyk7XHJcbiAgICAgIFxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgY2FsY3VsYXRpbmcgcHJpY2U6JywgZXJyb3IpO1xyXG4gICAgICBcclxuICAgICAgLy8gRmFsbGJhY2sgenVyIGxva2FsZW4gUHJlaXNiZXJlY2hudW5nXHJcbiAgICAgIGNvbnNvbGUubG9nKCdVc2luZyBsb2NhbCBwcmljZSBjYWxjdWxhdGlvbiBhcyBmYWxsYmFjayBkdWUgdG8gZXJyb3InKTtcclxuICAgICAgY29uc3QgbG9jYWxSZXN1bHQgPSBjYWxjdWxhdGVMb2NhbFByaWNlKCk7XHJcbiAgICAgIHNldFJlc3VsdChsb2NhbFJlc3VsdCk7XHJcbiAgICAgIG9uUHJpY2VDYWxjdWxhdGVkPy4obG9jYWxSZXN1bHQucHJpY2UsIGxvY2FsUmVzdWx0LmRldGFpbHMpO1xyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgbWF4LXctNHhsIG14LWF1dG9cIj5cclxuICAgICAgPENvbGxhcHNpYmxlIG9wZW49e2lzT3Blbn0gb25PcGVuQ2hhbmdlPXtzZXRJc09wZW59PlxyXG4gICAgICAgIDxDb2xsYXBzaWJsZVRyaWdnZXIgYXNDaGlsZD5cclxuICAgICAgICAgIDxCdXR0b24gXHJcbiAgICAgICAgICAgIHNpemU9XCJsZ1wiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBweC04IHB5LTQgcm91bmRlZC1mdWxsIHRleHQtbGcgZm9udC1zZW1pYm9sZCBzaGFkb3cteGwgaG92ZXI6c2NhbGUtMTA1IHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBzcGFjZS14LTJcIlxyXG4gICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9ycy5wcmltYXJ5LFxyXG4gICAgICAgICAgICAgIGNvbG9yOiBjb2xvcnMuYmFja2dyb3VuZFxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8Q2FsY3VsYXRvciBjbGFzc05hbWU9XCJ3LTUgaC01XCIgLz5cclxuICAgICAgICAgICAgPHNwYW4+UHJlaXMga2Fsa3VsaWVyZW48L3NwYW4+XHJcbiAgICAgICAgICAgIHtpc09wZW4gPyA8Q2hldnJvblVwIGNsYXNzTmFtZT1cInctNSBoLTVcIiAvPiA6IDxDaGV2cm9uRG93biBjbGFzc05hbWU9XCJ3LTUgaC01XCIgLz59XHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICA8L0NvbGxhcHNpYmxlVHJpZ2dlcj5cclxuICAgICAgICBcclxuICAgICAgICA8Q29sbGFwc2libGVDb250ZW50IGNsYXNzTmFtZT1cIm10LThcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtM3hsIHNoYWRvdy0yeGxcIj5cclxuICAgICAgICAgICAgey8qIFVwcGVyIHNlY3Rpb24gd2l0aCBsaWdodCBiYWNrZ3JvdW5kICovfVxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtOCBzbTpwLTEyXCIgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBgJHtjb2xvcnMuYmFja2dyb3VuZH1GMGAgfX0+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtMnhsIHNtOnRleHQtM3hsIGZvbnQtYm9sZCBtYi04IHRleHQtY2VudGVyXCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19PlxyXG4gICAgICAgICAgICAgICAgS2Fsa3VsaWVyZSBkZWluZW4gaW5kaXZpZHVlbGxlbiBQcmVpcyBtaXQgd2VuaWdlbiBLbGlja3NcclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS04XCI+XHJcbiAgICAgICAgICAgICAgICB7LyogQW56YWhsIFNlaXRlbiAtIFNsaWRlciAqL31cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbWItNFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fT5cclxuICAgICAgICAgICAgICAgICAgICBBbnphaGwgZGVyIFNlaXRlbjogPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1ib2xkXCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5zZWNvbmRhcnkgfX0+e2Zvcm1EYXRhLnBhZ2VzfTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYW5nZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgIG1heD1cIjEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb3JtRGF0YS5wYWdlc31cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Rm9ybURhdGEocHJldiA9PiAoeyAuLi5wcmV2LCBwYWdlczogcGFyc2VJbnQoZS50YXJnZXQudmFsdWUpIH0pKX1cclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSBoLTMgcm91bmRlZC1sZyBhcHBlYXJhbmNlLW5vbmUgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogYGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHtjb2xvcnMuc2Vjb25kYXJ5fSAwJSwgJHtjb2xvcnMuc2Vjb25kYXJ5fSAkeyhmb3JtRGF0YS5wYWdlcyAtIDEpICogMTEuMTF9JSwgJHtjb2xvcnMudGVydGlhcnl9ICR7KGZvcm1EYXRhLnBhZ2VzIC0gMSkgKiAxMS4xMX0lLCAke2NvbG9ycy50ZXJ0aWFyeX0gMTAwJSlgXHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LWJvbGQgbWluLXctWzNyZW1dIHRleHQtY2VudGVyXCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5zZWNvbmRhcnkgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7Zm9ybURhdGEucGFnZXN9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB0ZXh0LXNtIG10LTJcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+MTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj4xMDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB7LyogTGVpc3R1bmdlbiAqL31cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbWItNFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fT5cclxuICAgICAgICAgICAgICAgICAgICBadXPDpHR6bGljaGUgTGVpc3R1bmdlblxyXG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgZ2FwLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICB7c2VydmljZXMubWFwKChzZXJ2aWNlKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFByb3ZpZGVyIGtleT17c2VydmljZS5pZH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwVHJpZ2dlciBhc0NoaWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTMgcC0zIHJvdW5kZWQtbGcgaG92ZXI6Ymctd2hpdGUvMjAgdHJhbnNpdGlvbi1jb2xvcnMgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e3NlcnZpY2UuaWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17Zm9ybURhdGEuc2VydmljZXMuaW5jbHVkZXMoc2VydmljZS5pZCl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGVja2VkQ2hhbmdlPXsoY2hlY2tlZCkgPT4gaGFuZGxlU2VydmljZUNoYW5nZShzZXJ2aWNlLmlkLCBjaGVja2VkIGFzIGJvb2xlYW4pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctNSBoLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj17c2VydmljZS5pZH0gY2xhc3NOYW1lPVwidGV4dC1sZyBjdXJzb3ItcG9pbnRlciBmbGV4LTFcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3NlcnZpY2UubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIZWxwQ2lyY2xlIGNsYXNzTmFtZT1cInctNCBoLTQgb3BhY2l0eS02MFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXBUcmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwQ29udGVudCBjbGFzc05hbWU9XCJtYXgtdy14c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3NlcnZpY2UudG9vbHRpcH08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwQ29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgey8qIEV4cHJlc3MtTGllZmVydW5nICovfVxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTMgcC00IHJvdW5kZWQtbGcgaG92ZXI6Ymctd2hpdGUvMjAgdHJhbnNpdGlvbi1jb2xvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgPENoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJleHByZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtmb3JtRGF0YS5leHByZXNzfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hlY2tlZENoYW5nZT17KGNoZWNrZWQpID0+IHNldEZvcm1EYXRhKHByZXYgPT4gKHsgLi4ucHJldiwgZXhwcmVzczogY2hlY2tlZCBhcyBib29sZWFuIH0pKX1cclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LTUgaC01XCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJleHByZXNzXCIgY2xhc3NOYW1lPVwidGV4dC1sZyBjdXJzb3ItcG9pbnRlclwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fT5cclxuICAgICAgICAgICAgICAgICAgICBFeHByZXNzLUxpZWZlcnVuZ1xyXG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgey8qIExhdWZlbmRlIFNlcnZpY2VzICovfVxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJsb2NrIHRleHQtbGcgZm9udC1zZW1pYm9sZCBtYi00XCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19PlxyXG4gICAgICAgICAgICAgICAgICAgIExhdWZlbmRlIFNlcnZpY2VzIChvcHRpb25hbClcclxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICB7c3Vic2NyaXB0aW9uU2VydmljZXMubWFwKChzZXJ2aWNlKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFByb3ZpZGVyIGtleT17c2VydmljZS5pZH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwVHJpZ2dlciBhc0NoaWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTMgcC0zIHJvdW5kZWQtbGcgaG92ZXI6Ymctd2hpdGUvMjAgdHJhbnNpdGlvbi1jb2xvcnMgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e3NlcnZpY2UuaWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17Zm9ybURhdGEuc3Vic2NyaXB0aW9uLmluY2x1ZGVzKHNlcnZpY2UuaWQpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hlY2tlZENoYW5nZT17KGNoZWNrZWQpID0+IGhhbmRsZVN1YnNjcmlwdGlvbkNoYW5nZShzZXJ2aWNlLmlkLCBjaGVja2VkIGFzIGJvb2xlYW4pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctNSBoLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj17c2VydmljZS5pZH0gY2xhc3NOYW1lPVwidGV4dC1sZyBjdXJzb3ItcG9pbnRlciBmbGV4LTFcIiBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3NlcnZpY2UubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIZWxwQ2lyY2xlIGNsYXNzTmFtZT1cInctNCBoLTQgb3BhY2l0eS02MFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXBUcmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwQ29udGVudCBjbGFzc05hbWU9XCJtYXgtdy14c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3NlcnZpY2UudG9vbHRpcH08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwQ29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgey8qIFdhdmUgdHJhbnNpdGlvbiAqL31cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBoLThcIiBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6IGAke2NvbG9ycy5iYWNrZ3JvdW5kfUYwYCB9fT5cclxuICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBib3R0b20tMCB3LWZ1bGwgaC1mdWxsXCJcclxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIwMCAxMjBcIlxyXG4gICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgZD1cIk0wLDAgQzMwMCwxMjAgOTAwLDEyMCAxMjAwLDAgTDEyMDAsMTIwIEwwLDEyMCBaXCJcclxuICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5PVwiMC4xXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgey8qIExvd2VyIHNlY3Rpb24gd2l0aCBkYXJrZXIgYmFja2dyb3VuZCAqL31cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTggc206cC0xMlwiIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3JzLnByaW1hcnl9RjBgIH19PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS04XCI+XHJcbiAgICAgICAgICAgICAgICB7LyogSW5kaXZpZHVlbGxlIFfDvG5zY2hlICovfVxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJsb2NrIHRleHQtbGcgZm9udC1zZW1pYm9sZCBtYi00XCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kIH19PlxyXG4gICAgICAgICAgICAgICAgICAgIEhhYmVuIFNpZSBiZXNvbmRlcmUgV8O8bnNjaGUgb2RlciBBbmZvcmRlcnVuZ2VuIChvcHRpb25hbCwgbmljaHQgdmVycGZsaWNodGVuZCk/XHJcbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxUZXh0YXJlYVxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb3JtRGF0YS5zcGVjaWFsUmVxdWlyZW1lbnRzfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Rm9ybURhdGEocHJldiA9PiAoeyAuLi5wcmV2LCBzcGVjaWFsUmVxdWlyZW1lbnRzOiBlLnRhcmdldC52YWx1ZSB9KSl9XHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJXZWxjaGUgRnVua3Rpb25lbiBvZGVyIFN0cnVrdHVyZW4gc2luZCBJaG5lbiB3aWNodGlnPyBCZWlzcGllbGU6IE1pdGdsaWVkZXJiZXJlaWNoLCBQcm9qZWt0dmVyd2FsdHVuZywgZHluYW1pc2NoZXIgUHJvZHVrdGZpbHRlciwgaW50ZXJuZSBEYXRlbmJhbmtwZmxlZ2UsIG1laHJzcHJhY2hpZ2UgSW5oYWx0ZS5cIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBwLTQgdGV4dC1sZyByZXNpemUtbm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcm93cz17NH1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3JzLmJhY2tncm91bmR9MjBgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kLFxyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kXHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIHsvKiBTdGFuZGFyZC1MZWlzdHVuZ2VuIEluZm8gKi99XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNCByb3VuZGVkLWxnXCIgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBgJHtjb2xvcnMuYmFja2dyb3VuZH0yMGAgfX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1zdGFydCBzcGFjZS14LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8SW5mbyBjbGFzc05hbWU9XCJ3LTUgaC01IG10LTEgZmxleC1zaHJpbmstMFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMudGVydGlhcnkgfX0gLz5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtXCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kIH19PlxyXG4gICAgICAgICAgICAgICAgICAgICAgRGllc2UgTGVpc3R1bmdlbiBzaW5kIGJlaSBqZWRlciBXZWJzaXRlIGF1dG9tYXRpc2NoIGVudGhhbHRlbjogSG9zdGluZywgV2FydHVuZywgdGVjaG5pc2NoZXIgU3VwcG9ydCwgU0VPLUdydW5kb3B0aW1pZXJ1bmcsIFBlcmZvcm1hbmNlLUNoZWNrIHVuZCBlaW5lIHBlcnPDtm5saWNoZSBRdWFydGFsc2JlcmF0dW5nLlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB7LyogQmVyZWNobmVuIEJ1dHRvbiAqL31cclxuICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2FsY3VsYXRlUHJpY2V9XHJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0xvYWRpbmd9XHJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJsZ1wiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBweC04IHB5LTQgcm91bmRlZC1mdWxsIHRleHQtbGcgZm9udC1zZW1pYm9sZCBzaGFkb3cteGwgaG92ZXI6c2NhbGUtMTA1IHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBzcGFjZS14LTJcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9ycy50ZXJ0aWFyeSxcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogY29sb3JzLnByaW1hcnlcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge2lzTG9hZGluZyA/IChcclxuICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPExvYWRlcjIgY2xhc3NOYW1lPVwidy01IGgtNSBhbmltYXRlLXNwaW5cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgQmVyZWNobmUgUHJlaXMuLi5cclxuICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPENhbGN1bGF0b3IgY2xhc3NOYW1lPVwidy01IGgtNVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICBQcmVpcyBiZXJlY2huZW5cclxuICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgIHsvKiBFcmdlYm5pcyAqL31cclxuICAgICAgICAgICAgICAgIHtyZXN1bHQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTggcC02IHJvdW5kZWQteGwgYm9yZGVyLTJcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3JzLnRlcnRpYXJ5fTIwYCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBjb2xvcnMudGVydGlhcnkgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1zZW1pYm9sZCBtYi00XCIgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy50ZXJ0aWFyeSB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgIEdlc2Now6R0enRlciBQcmVpczoge3Jlc3VsdC5wcmljZX1cclxuICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtbGcgbWItNFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuYmFja2dyb3VuZCB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgIHtyZXN1bHQuZGV0YWlsc31cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAge2Zvcm1EYXRhLnN1YnNjcmlwdGlvbi5sZW5ndGggPiAwICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW0gbWItNFwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMudGVydGlhcnkgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICsyMDDigqwvTW9uYXQgZsO8ciBsYXVmZW5kZSBTZXJ2aWNlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbVwiIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuYmFja2dyb3VuZCB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgIERpZXMgaXN0IGVpbiBSaWNodHdlcnQuIEltIEJlcmF0dW5nc2dlc3Byw6RjaCBrbMOkcmVuIHdpciBhbGxlIERldGFpbHMgdW5kIGZpbmRlbiBlaW5lIEzDtnN1bmcsIGRpZSB6dSBJaHJlbSBCdWRnZXQgcGFzc3QuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9Db2xsYXBzaWJsZUNvbnRlbnQ+XHJcbiAgICAgIDwvQ29sbGFwc2libGU+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59ICJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIkJ1dHRvbiIsIkNoZWNrYm94IiwiVGV4dGFyZWEiLCJDb2xsYXBzaWJsZSIsIkNvbGxhcHNpYmxlQ29udGVudCIsIkNvbGxhcHNpYmxlVHJpZ2dlciIsIlRvb2x0aXAiLCJUb29sdGlwQ29udGVudCIsIlRvb2x0aXBQcm92aWRlciIsIlRvb2x0aXBUcmlnZ2VyIiwiQ2FsY3VsYXRvciIsIkNoZXZyb25Eb3duIiwiQ2hldnJvblVwIiwiTG9hZGVyMiIsIkluZm8iLCJIZWxwQ2lyY2xlIiwiY29sb3JzIiwic2VydmljZXMiLCJpZCIsImxhYmVsIiwidG9vbHRpcCIsInN1YnNjcmlwdGlvblNlcnZpY2VzIiwiUHJpY2VDYWxjdWxhdG9yIiwib25QcmljZUNhbGN1bGF0ZWQiLCJpc09wZW4iLCJzZXRJc09wZW4iLCJpc0xvYWRpbmciLCJzZXRJc0xvYWRpbmciLCJmb3JtRGF0YSIsInNldEZvcm1EYXRhIiwicGFnZXMiLCJleHByZXNzIiwic3Vic2NyaXB0aW9uIiwic3BlY2lhbFJlcXVpcmVtZW50cyIsInJlc3VsdCIsInNldFJlc3VsdCIsImhhbmRsZVNlcnZpY2VDaGFuZ2UiLCJzZXJ2aWNlSWQiLCJjaGVja2VkIiwicHJldiIsImZpbHRlciIsImhhbmRsZVN1YnNjcmlwdGlvbkNoYW5nZSIsImdlbmVyYXRlUHJvbXB0Iiwic2VsZWN0ZWRTZXJ2aWNlcyIsInNlcnZpY2UiLCJpbmNsdWRlcyIsInNlbGVjdGVkU3Vic2NyaXB0aW9ucyIsImFkZGl0aW9uYWxTZXJ2aWNlcyIsImxlbmd0aCIsIm1hcCIsInMiLCJqb2luIiwib25nb2luZ1NlcnZpY2VzIiwiY2FsY3VsYXRlTG9jYWxQcmljZSIsImJhc2VQcmljZSIsInNlcnZpY2VQcmljZXMiLCJzZXJ2aWNlc0Nvc3QiLCJmb3JFYWNoIiwidG90YWxQcmljZSIsInZhcmlhdGlvbiIsIm1pblByaWNlIiwiTWF0aCIsInJvdW5kIiwibWF4UHJpY2UiLCJwcmljZSIsImRldGFpbHMiLCJjYWxjdWxhdGVQcmljZSIsImRhdGEiLCJwcm9tcHQiLCJjb25zb2xlIiwibG9nIiwicmVzcG9uc2UiLCJmZXRjaCIsIm1ldGhvZCIsImhlYWRlcnMiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXR1cyIsIm9rIiwiZXJyb3JUZXh0IiwidGV4dCIsImVycm9yIiwibG9jYWxSZXN1bHQiLCJqc29uIiwiYWlSZXNwb25zZSIsImNob2ljZXMiLCJtZXNzYWdlIiwiY29udGVudCIsInByaWNlTWF0Y2giLCJtYXRjaCIsInJlcGxhY2UiLCJ0cmltIiwiZGl2IiwiY2xhc3NOYW1lIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsImFzQ2hpbGQiLCJzaXplIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJwcmltYXJ5IiwiY29sb3IiLCJiYWNrZ3JvdW5kIiwic3BhbiIsImgzIiwic2Vjb25kYXJ5IiwiaW5wdXQiLCJ0eXBlIiwibWluIiwibWF4IiwidmFsdWUiLCJvbkNoYW5nZSIsImUiLCJwYXJzZUludCIsInRhcmdldCIsInRlcnRpYXJ5Iiwib25DaGVja2VkQ2hhbmdlIiwiaHRtbEZvciIsInAiLCJzdmciLCJ2aWV3Qm94IiwicHJlc2VydmVBc3BlY3RSYXRpbyIsInBhdGgiLCJkIiwiZmlsbCIsImZpbGxPcGFjaXR5IiwicGxhY2Vob2xkZXIiLCJyb3dzIiwiYm9yZGVyQ29sb3IiLCJvbkNsaWNrIiwiZGlzYWJsZWQiLCJoNCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/PriceCalculator.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/ProtectedAppointmentBooking.tsx":
|
||
/*!****************************************************!*\
|
||
!*** ./components/ProtectedAppointmentBooking.tsx ***!
|
||
\****************************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ ProtectedAppointmentBooking; }\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 _hooks_useAuth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/hooks/useAuth */ \"(app-pages-browser)/./hooks/useAuth.ts\");\n/* harmony import */ var _AppointmentBooking__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppointmentBooking */ \"(app-pages-browser)/./components/AppointmentBooking.tsx\");\n/* harmony import */ var _lib_colors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/colors */ \"(app-pages-browser)/./lib/colors.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\nfunction ProtectedAppointmentBooking() {\n _s();\n const { user, loading } = (0,_hooks_useAuth__WEBPACK_IMPORTED_MODULE_1__.useAuth)();\n if (loading) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full max-w-md mx-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-6 sm:p-8 rounded-3xl shadow-lg backdrop-blur-sm text-center\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"F0\")\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-8 w-8 border-b-2 mx-auto mb-4\",\n style: {\n borderColor: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ProtectedAppointmentBooking.tsx\",\n lineNumber: 19,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: \"Lade...\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ProtectedAppointmentBooking.tsx\",\n lineNumber: 21,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ProtectedAppointmentBooking.tsx\",\n lineNumber: 15,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ProtectedAppointmentBooking.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full max-w-4xl mx-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_AppointmentBooking__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ProtectedAppointmentBooking.tsx\",\n lineNumber: 30,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ProtectedAppointmentBooking.tsx\",\n lineNumber: 28,\n columnNumber: 5\n }, this);\n}\n_s(ProtectedAppointmentBooking, \"EmJkapf7qiLC5Br5eCoEq4veZes=\", false, function() {\n return [\n _hooks_useAuth__WEBPACK_IMPORTED_MODULE_1__.useAuth\n ];\n});\n_c = ProtectedAppointmentBooking;\nvar _c;\n$RefreshReg$(_c, \"ProtectedAppointmentBooking\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvUHJvdGVjdGVkQXBwb2ludG1lbnRCb29raW5nLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBRXlDO0FBQ1k7QUFFaEI7QUFHdEIsU0FBU0c7O0lBQ3RCLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUUsR0FBR0wsdURBQU9BO0lBRWpDLElBQUlLLFNBQVM7UUFDWCxxQkFDRSw4REFBQ0M7WUFBSUMsV0FBVTtzQkFDYiw0RUFBQ0Q7Z0JBQ0NDLFdBQVU7Z0JBQ1ZDLE9BQU87b0JBQUVDLGlCQUFpQixHQUFxQixPQUFsQlAsK0NBQU1BLENBQUNRLFVBQVUsRUFBQztnQkFBSTs7a0NBRW5ELDhEQUFDSjt3QkFBSUMsV0FBVTt3QkFDVkMsT0FBTzs0QkFBRUcsYUFBYVQsK0NBQU1BLENBQUNVLE9BQU87d0JBQUM7Ozs7OztrQ0FDMUMsOERBQUNDO3dCQUFFTCxPQUFPOzRCQUFFTSxPQUFPWiwrQ0FBTUEsQ0FBQ2EsU0FBUzt3QkFBQztrQ0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFJL0M7SUFFQSxxQkFDRSw4REFBQ1Q7UUFBSUMsV0FBVTtrQkFFYiw0RUFBQ04sMkRBQWtCQTs7Ozs7Ozs7OztBQUd6QjtHQXhCd0JFOztRQUNJSCxtREFBT0E7OztLQURYRyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9jb21wb25lbnRzL1Byb3RlY3RlZEFwcG9pbnRtZW50Qm9va2luZy50c3g/NTU4ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxyXG5cclxuaW1wb3J0IHsgdXNlQXV0aCB9IGZyb20gJ0AvaG9va3MvdXNlQXV0aCdcclxuaW1wb3J0IEFwcG9pbnRtZW50Qm9va2luZyBmcm9tICcuL0FwcG9pbnRtZW50Qm9va2luZydcclxuaW1wb3J0IE1hZ2ljTGlua0F1dGggZnJvbSAnLi9NYWdpY0xpbmtBdXRoJ1xyXG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICdAL2xpYi9jb2xvcnMnXHJcbmltcG9ydCB7IFVzZXIsIFNoaWVsZCwgSW5mbyB9IGZyb20gJ2x1Y2lkZS1yZWFjdCdcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFByb3RlY3RlZEFwcG9pbnRtZW50Qm9va2luZygpIHtcclxuICBjb25zdCB7IHVzZXIsIGxvYWRpbmcgfSA9IHVzZUF1dGgoKVxyXG5cclxuICBpZiAobG9hZGluZykge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgbWF4LXctbWQgbXgtYXV0b1wiPlxyXG4gICAgICAgIDxkaXYgXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJwLTYgc206cC04IHJvdW5kZWQtM3hsIHNoYWRvdy1sZyBiYWNrZHJvcC1ibHVyLXNtIHRleHQtY2VudGVyXCJcclxuICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3JzLmJhY2tncm91bmR9RjBgIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhbmltYXRlLXNwaW4gcm91bmRlZC1mdWxsIGgtOCB3LTggYm9yZGVyLWItMiBteC1hdXRvIG1iLTRcIiBcclxuICAgICAgICAgICAgICAgc3R5bGU9e3sgYm9yZGVyQ29sb3I6IGNvbG9ycy5wcmltYXJ5IH19PjwvZGl2PlxyXG4gICAgICAgICAgPHAgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5zZWNvbmRhcnkgfX0+TGFkZS4uLjwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgbWF4LXctNHhsIG14LWF1dG9cIj5cclxuICAgICAgey8qIEFwcG9pbnRtZW50IEJvb2tpbmcgKi99XHJcbiAgICAgIDxBcHBvaW50bWVudEJvb2tpbmcgLz5cclxuICAgIDwvZGl2PlxyXG4gIClcclxufSAiXSwibmFtZXMiOlsidXNlQXV0aCIsIkFwcG9pbnRtZW50Qm9va2luZyIsImNvbG9ycyIsIlByb3RlY3RlZEFwcG9pbnRtZW50Qm9va2luZyIsInVzZXIiLCJsb2FkaW5nIiwiZGl2IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwiYm9yZGVyQ29sb3IiLCJwcmltYXJ5IiwicCIsImNvbG9yIiwic2Vjb25kYXJ5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ProtectedAppointmentBooking.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/SpinningNumbers.tsx":
|
||
/*!****************************************!*\
|
||
!*** ./components/SpinningNumbers.tsx ***!
|
||
\****************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ SpinningNumbers; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_colors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/colors */ \"(app-pages-browser)/./lib/colors.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\nfunction lerp(a, b, t) {\n return (b - a) * t + a;\n}\n// Convert hex to RGB\nfunction hexToRgb(hex) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : {\n r: 0,\n g: 0,\n b: 0\n };\n}\n// Interpolate between two hex colors\nfunction interpolateColor(color1, color2, t) {\n const rgb1 = hexToRgb(color1);\n const rgb2 = hexToRgb(color2);\n const r = Math.round(lerp(rgb1.r, rgb2.r, t));\n const g = Math.round(lerp(rgb1.g, rgb2.g, t));\n const b = Math.round(lerp(rgb1.b, rgb2.b, t));\n return \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\");\n}\nfunction color(i, total) {\n const t = i / total;\n // Interpolate between Webklar colors: primary (dark green) -> secondary (medium green) -> tertiary (light green-beige)\n if (t < 0.5) {\n return interpolateColor(_lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.primary, _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.secondary, t * 2);\n } else {\n return interpolateColor(_lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.secondary, _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.tertiary, (t - 0.5) * 2);\n }\n}\nfunction createWheel(i, total) {\n const distance = i + 3.5; // Slightly increased distance\n const charWidth = 0.85;\n const speed = 1;\n const circum = distance * 2 * Math.PI;\n const numbers = Math.floor(circum / charWidth);\n const time = speed * numbers;\n const t = i / total;\n return {\n time,\n numbers,\n distance,\n color: color(i, total),\n scale: lerp(1, 0.25, t * t * 0.5)\n };\n}\nfunction SpinningNumbers() {\n _s();\n const containerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (!containerRef.current) return;\n const container = containerRef.current;\n const total = 13;\n const wheels = Array.from({\n length: total\n }, (_, i)=>createWheel(i, total));\n wheels.forEach((wheel)=>{\n const { time, numbers, distance, color: wheelColor, scale } = wheel;\n const angleDiff = Math.PI * 2 / numbers;\n const divs = [];\n for(let i = 0; i < numbers; i++){\n divs.push(angleDiff * i);\n }\n const wheelDiv = document.createElement(\"div\");\n wheelDiv.className = \"wheel\";\n wheelDiv.style.color = wheelColor;\n wheelDiv.style.setProperty(\"--l\", \"\".concat(distance, \"em\"));\n wheelDiv.style.setProperty(\"--m\", \"\".concat(numbers));\n wheelDiv.style.setProperty(\"--t\", \"\".concat(time, \"s\"));\n wheelDiv.style.setProperty(\"--r1\", Math.random() < 0.5 ? \"reverse\" : \"normal\");\n wheelDiv.style.setProperty(\"--s\", \"\".concat(scale));\n divs.forEach((angle, i)=>{\n if (Math.sqrt(Math.random()) < scale) {\n const numberDiv = document.createElement(\"div\");\n numberDiv.className = \"number\";\n numberDiv.style.setProperty(\"--a\", \"\".concat(angle * 180 / Math.PI, \"deg\"));\n numberDiv.style.setProperty(\"--i\", \"\".concat(i));\n numberDiv.style.setProperty(\"--r\", Math.random() < 0.5 ? \"reverse\" : \"normal\");\n wheelDiv.appendChild(numberDiv);\n }\n });\n container.appendChild(wheelDiv);\n });\n // Cleanup function\n return ()=>{\n if (container) {\n container.innerHTML = \"\";\n }\n };\n }, []);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"spinning-number\",\n ref: containerRef\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\SpinningNumbers.tsx\",\n lineNumber: 112,\n columnNumber: 5\n }, this);\n}\n_s(SpinningNumbers, \"8puyVO4ts1RhCfXUmci3vLI3Njw=\");\n_c = SpinningNumbers;\nvar _c;\n$RefreshReg$(_c, \"SpinningNumbers\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvU3Bpbm5pbmdOdW1iZXJzLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBRTBDO0FBQ0o7QUFFdEMsU0FBU0csS0FBS0MsQ0FBUyxFQUFFQyxDQUFTLEVBQUVDLENBQVM7SUFDM0MsT0FBTyxDQUFDRCxJQUFJRCxDQUFBQSxJQUFLRSxJQUFJRjtBQUN2QjtBQUVBLHFCQUFxQjtBQUNyQixTQUFTRyxTQUFTQyxHQUFXO0lBQzNCLE1BQU1DLFNBQVMsNENBQTRDQyxJQUFJLENBQUNGO0lBQ2hFLE9BQU9DLFNBQ0g7UUFDRUUsR0FBR0MsU0FBU0gsTUFBTSxDQUFDLEVBQUUsRUFBRTtRQUN2QkksR0FBR0QsU0FBU0gsTUFBTSxDQUFDLEVBQUUsRUFBRTtRQUN2QkosR0FBR08sU0FBU0gsTUFBTSxDQUFDLEVBQUUsRUFBRTtJQUN6QixJQUNBO1FBQUVFLEdBQUc7UUFBR0UsR0FBRztRQUFHUixHQUFHO0lBQUU7QUFDekI7QUFFQSxxQ0FBcUM7QUFDckMsU0FBU1MsaUJBQWlCQyxNQUFjLEVBQUVDLE1BQWMsRUFBRVYsQ0FBUztJQUNqRSxNQUFNVyxPQUFPVixTQUFTUTtJQUN0QixNQUFNRyxPQUFPWCxTQUFTUztJQUN0QixNQUFNTCxJQUFJUSxLQUFLQyxLQUFLLENBQUNqQixLQUFLYyxLQUFLTixDQUFDLEVBQUVPLEtBQUtQLENBQUMsRUFBRUw7SUFDMUMsTUFBTU8sSUFBSU0sS0FBS0MsS0FBSyxDQUFDakIsS0FBS2MsS0FBS0osQ0FBQyxFQUFFSyxLQUFLTCxDQUFDLEVBQUVQO0lBQzFDLE1BQU1ELElBQUljLEtBQUtDLEtBQUssQ0FBQ2pCLEtBQUtjLEtBQUtaLENBQUMsRUFBRWEsS0FBS2IsQ0FBQyxFQUFFQztJQUMxQyxPQUFPLE9BQWFPLE9BQU5GLEdBQUUsTUFBVU4sT0FBTlEsR0FBRSxNQUFNLE9BQUZSLEdBQUU7QUFDOUI7QUFFQSxTQUFTZ0IsTUFBTUMsQ0FBUyxFQUFFQyxLQUFhO0lBQ3JD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QUFNLFlBQVk7b0JBRXJFTixTQUFTVSxXQUFXLENBQUNEO2dCQUN2QjtZQUNGO1lBRUFyQixVQUFVc0IsV0FBVyxDQUFDVjtRQUN4QjtRQUVBLG1CQUFtQjtRQUNuQixPQUFPO1lBQ0wsSUFBSVosV0FBVztnQkFDYkEsVUFBVXVCLFNBQVMsR0FBRztZQUN4QjtRQUNGO0lBQ0YsR0FBRyxFQUFFO0lBRUwscUJBQ0UsOERBQUNDO1FBQUlULFdBQVU7UUFBa0JVLEtBQUszQjs7Ozs7O0FBRTFDO0dBdER3QkQ7S0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy9TcGlubmluZ051bWJlcnMudHN4PzdjYzUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcblxyXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY29sb3JzIH0gZnJvbSAnQC9saWIvY29sb3JzJztcclxuXHJcbmZ1bmN0aW9uIGxlcnAoYTogbnVtYmVyLCBiOiBudW1iZXIsIHQ6IG51bWJlcikge1xyXG4gIHJldHVybiAoYiAtIGEpICogdCArIGE7XHJcbn1cclxuXHJcbi8vIENvbnZlcnQgaGV4IHRvIFJHQlxyXG5mdW5jdGlvbiBoZXhUb1JnYihoZXg6IHN0cmluZyk6IHsgcjogbnVtYmVyOyBnOiBudW1iZXI7IGI6IG51bWJlciB9IHtcclxuICBjb25zdCByZXN1bHQgPSAvXiM/KFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pJC9pLmV4ZWMoaGV4KTtcclxuICByZXR1cm4gcmVzdWx0XHJcbiAgICA/IHtcclxuICAgICAgICByOiBwYXJzZUludChyZXN1bHRbMV0sIDE2KSxcclxuICAgICAgICBnOiBwYXJzZUludChyZXN1bHRbMl0sIDE2KSxcclxuICAgICAgICBiOiBwYXJzZUludChyZXN1bHRbM10sIDE2KSxcclxuICAgICAgfVxyXG4gICAgOiB7IHI6IDAsIGc6IDAsIGI6IDAgfTtcclxufVxyXG5cclxuLy8gSW50ZXJwb2xhdGUgYmV0d2VlbiB0d28gaGV4IGNvbG9yc1xyXG5mdW5jdGlvbiBpbnRlcnBvbGF0ZUNvbG9yKGNvbG9yMTogc3RyaW5nLCBjb2xvcjI6IHN0cmluZywgdDogbnVtYmVyKTogc3RyaW5nIHtcclxuICBjb25zdCByZ2IxID0gaGV4VG9SZ2IoY29sb3IxKTtcclxuICBjb25zdCByZ2IyID0gaGV4VG9SZ2IoY29sb3IyKTtcclxuICBjb25zdCByID0gTWF0aC5yb3VuZChsZXJwKHJnYjEuciwgcmdiMi5yLCB0KSk7XHJcbiAgY29uc3QgZyA9IE1hdGgucm91bmQobGVycChyZ2IxLmcsIHJnYjIuZywgdCkpO1xyXG4gIGNvbnN0IGIgPSBNYXRoLnJvdW5kKGxlcnAocmdiMS5iLCByZ2IyLmIsIHQpKTtcclxuICByZXR1cm4gYHJnYigke3J9LCAke2d9LCAke2J9KWA7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbG9yKGk6IG51bWJlciwgdG90YWw6IG51bWJlcikge1xyXG4gIGNvbnN0IHQgPSBpIC8gdG90YWw7XHJcbiAgLy8gSW50ZXJwb2xhdGUgYmV0d2VlbiBXZWJrbGFyIGNvbG9yczogcHJpbWFyeSAoZGFyayBncmVlbikgLT4gc2Vjb25kYXJ5IChtZWRpdW0gZ3JlZW4pIC0+IHRlcnRpYXJ5IChsaWdodCBncmVlbi1iZWlnZSlcclxuICBpZiAodCA8IDAuNSkge1xyXG4gICAgcmV0dXJuIGludGVycG9sYXRlQ29sb3IoY29sb3JzLnByaW1hcnksIGNvbG9ycy5zZWNvbmRhcnksIHQgKiAyKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGludGVycG9sYXRlQ29sb3IoY29sb3JzLnNlY29uZGFyeSwgY29sb3JzLnRlcnRpYXJ5LCAodCAtIDAuNSkgKiAyKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZVdoZWVsKGk6IG51bWJlciwgdG90YWw6IG51bWJlcikge1xyXG4gIGNvbnN0IGRpc3RhbmNlID0gaSArIDMuNTsgLy8gU2xpZ2h0bHkgaW5jcmVhc2VkIGRpc3RhbmNlXHJcbiAgY29uc3QgY2hhcldpZHRoID0gMC44NTtcclxuICBjb25zdCBzcGVlZCA9IDE7XHJcbiAgY29uc3QgY2lyY3VtID0gZGlzdGFuY2UgKiAyICogTWF0aC5QSTtcclxuICBjb25zdCBudW1iZXJzID0gTWF0aC5mbG9vcihjaXJjdW0gLyBjaGFyV2lkdGgpO1xyXG4gIGNvbnN0IHRpbWUgPSBzcGVlZCAqIG51bWJlcnM7XHJcbiAgY29uc3QgdCA9IGkgLyB0b3RhbDtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIHRpbWUsXHJcbiAgICBudW1iZXJzLFxyXG4gICAgZGlzdGFuY2UsXHJcbiAgICBjb2xvcjogY29sb3IoaSwgdG90YWwpLFxyXG4gICAgc2NhbGU6IGxlcnAoMSwgMC4yNSwgdCAqIHQgKiAwLjUpLCAvLyBNZWRpdW0gc2NhbGVcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTcGlubmluZ051bWJlcnMoKSB7XHJcbiAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGlmICghY29udGFpbmVyUmVmLmN1cnJlbnQpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcclxuICAgIGNvbnN0IHRvdGFsID0gMTM7XHJcbiAgICBjb25zdCB3aGVlbHMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0b3RhbCB9LCAoXywgaSkgPT4gY3JlYXRlV2hlZWwoaSwgdG90YWwpKTtcclxuXHJcbiAgICB3aGVlbHMuZm9yRWFjaCgod2hlZWwpID0+IHtcclxuICAgICAgY29uc3QgeyB0aW1lLCBudW1iZXJzLCBkaXN0YW5jZSwgY29sb3I6IHdoZWVsQ29sb3IsIHNjYWxlIH0gPSB3aGVlbDtcclxuICAgICAgY29uc3QgYW5nbGVEaWZmID0gKE1hdGguUEkgKiAyKSAvIG51bWJlcnM7XHJcbiAgICAgIGNvbnN0IGRpdnMgPSBbXTtcclxuXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtYmVyczsgaSsrKSB7XHJcbiAgICAgICAgZGl2cy5wdXNoKGFuZ2xlRGlmZiAqIGkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB3aGVlbERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICB3aGVlbERpdi5jbGFzc05hbWUgPSAnd2hlZWwnO1xyXG4gICAgICB3aGVlbERpdi5zdHlsZS5jb2xvciA9IHdoZWVsQ29sb3I7XHJcbiAgICAgIHdoZWVsRGl2LnN0eWxlLnNldFByb3BlcnR5KCctLWwnLCBgJHtkaXN0YW5jZX1lbWApO1xyXG4gICAgICB3aGVlbERpdi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1tJywgYCR7bnVtYmVyc31gKTtcclxuICAgICAgd2hlZWxEaXYuc3R5bGUuc2V0UHJvcGVydHkoJy0tdCcsIGAke3RpbWV9c2ApO1xyXG4gICAgICB3aGVlbERpdi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1yMScsIE1hdGgucmFuZG9tKCkgPCAwLjUgPyAncmV2ZXJzZScgOiAnbm9ybWFsJyk7XHJcbiAgICAgIHdoZWVsRGl2LnN0eWxlLnNldFByb3BlcnR5KCctLXMnLCBgJHtzY2FsZX1gKTtcclxuXHJcbiAgICAgIGRpdnMuZm9yRWFjaCgoYW5nbGUsIGkpID0+IHtcclxuICAgICAgICBpZiAoTWF0aC5zcXJ0KE1hdGgucmFuZG9tKCkpIDwgc2NhbGUpIHtcclxuICAgICAgICAgIGNvbnN0IG51bWJlckRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgICAgbnVtYmVyRGl2LmNsYXNzTmFtZSA9ICdudW1iZXInO1xyXG4gICAgICAgICAgbnVtYmVyRGl2LnN0eWxlLnNldFByb3BlcnR5KCctLWEnLCBgJHsoYW5nbGUgKiAxODApIC8gTWF0aC5QSX1kZWdgKTtcclxuICAgICAgICAgIG51bWJlckRpdi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pJywgYCR7aX1gKTtcclxuICAgICAgICAgIG51bWJlckRpdi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1yJywgTWF0aC5yYW5kb20oKSA8IDAuNSA/ICdyZXZlcnNlJyA6ICdub3JtYWwnKTtcclxuXHJcbiAgICAgICAgICB3aGVlbERpdi5hcHBlbmRDaGlsZChudW1iZXJEaXYpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQod2hlZWxEaXYpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gQ2xlYW51cCBmdW5jdGlvblxyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgaWYgKGNvbnRhaW5lcikge1xyXG4gICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJztcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNwaW5uaW5nLW51bWJlclwiIHJlZj17Y29udGFpbmVyUmVmfSAvPlxyXG4gICk7XHJcbn1cclxuXHJcbiJdLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJjb2xvcnMiLCJsZXJwIiwiYSIsImIiLCJ0IiwiaGV4VG9SZ2IiLCJoZXgiLCJyZXN1bHQiLCJleGVjIiwiciIsInBhcnNlSW50IiwiZyIsImludGVycG9sYXRlQ29sb3IiLCJjb2xvcjEiLCJjb2xvcjIiLCJyZ2IxIiwicmdiMiIsIk1hdGgiLCJyb3VuZCIsImNvbG9yIiwiaSIsInRvdGFsIiwicHJpbWFyeSIsInNlY29uZGFyeSIsInRlcnRpYXJ5IiwiY3JlYXRlV2hlZWwiLCJkaXN0YW5jZSIsImNoYXJXaWR0aCIsInNwZWVkIiwiY2lyY3VtIiwiUEkiLCJudW1iZXJzIiwiZmxvb3IiLCJ0aW1lIiwic2NhbGUiLCJTcGlubmluZ051bWJlcnMiLCJjb250YWluZXJSZWYiLCJjdXJyZW50IiwiY29udGFpbmVyIiwid2hlZWxzIiwiQXJyYXkiLCJmcm9tIiwibGVuZ3RoIiwiXyIsImZvckVhY2giLCJ3aGVlbCIsIndoZWVsQ29sb3IiLCJhbmdsZURpZmYiLCJkaXZzIiwicHVzaCIsIndoZWVsRGl2IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJzZXRQcm9wZXJ0eSIsInJhbmRvbSIsImFuZ2xlIiwic3FydCIsIm51bWJlckRpdiIsImFwcGVuZENoaWxkIiwiaW5uZXJIVE1MIiwiZGl2IiwicmVmIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/SpinningNumbers.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/ui/background-beams.tsx":
|
||
/*!********************************************!*\
|
||
!*** ./components/ui/background-beams.tsx ***!
|
||
\********************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BackgroundBeams: function() { return /* binding */ BackgroundBeams; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var motion_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion/react */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ BackgroundBeams auto */ \n\n\n\nconst BackgroundBeams = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1___default().memo(_c = (param)=>{\n let { className } = param;\n const paths = [\n \"M-380 -189C-380 -189 -312 216 152 343C616 470 684 875 684 875\",\n \"M-373 -197C-373 -197 -305 208 159 335C623 462 691 867 691 867\",\n \"M-366 -205C-366 -205 -298 200 166 327C630 454 698 859 698 859\",\n \"M-359 -213C-359 -213 -291 192 173 319C637 446 705 851 705 851\",\n \"M-352 -221C-352 -221 -284 184 180 311C644 438 712 843 712 843\",\n \"M-345 -229C-345 -229 -277 176 187 303C651 430 719 835 719 835\",\n \"M-338 -237C-338 -237 -270 168 194 295C658 422 726 827 726 827\",\n \"M-331 -245C-331 -245 -263 160 201 287C665 414 733 819 733 819\",\n \"M-324 -253C-324 -253 -256 152 208 279C672 406 740 811 740 811\",\n \"M-317 -261C-317 -261 -249 144 215 271C679 398 747 803 747 803\",\n \"M-310 -269C-310 -269 -242 136 222 263C686 390 754 795 754 795\",\n \"M-303 -277C-303 -277 -235 128 229 255C693 382 761 787 761 787\",\n \"M-296 -285C-296 -285 -228 120 236 247C700 374 768 779 768 779\",\n \"M-289 -293C-289 -293 -221 112 243 239C707 366 775 771 775 771\",\n \"M-282 -301C-282 -301 -214 104 250 231C714 358 782 763 782 763\",\n \"M-275 -309C-275 -309 -207 96 257 223C721 350 789 755 789 755\",\n \"M-268 -317C-268 -317 -200 88 264 215C728 342 796 747 796 747\",\n \"M-261 -325C-261 -325 -193 80 271 207C735 334 803 739 803 739\",\n \"M-254 -333C-254 -333 -186 72 278 199C742 326 810 731 810 731\",\n \"M-247 -341C-247 -341 -179 64 285 191C749 318 817 723 817 723\",\n \"M-240 -349C-240 -349 -172 56 292 183C756 310 824 715 824 715\",\n \"M-233 -357C-233 -357 -165 48 299 175C763 302 831 707 831 707\",\n \"M-226 -365C-226 -365 -158 40 306 167C770 294 838 699 838 699\",\n \"M-219 -373C-219 -373 -151 32 313 159C777 286 845 691 845 691\",\n \"M-212 -381C-212 -381 -144 24 320 151C784 278 852 683 852 683\",\n \"M-205 -389C-205 -389 -137 16 327 143C791 270 859 675 859 675\",\n \"M-198 -397C-198 -397 -130 8 334 135C798 262 866 667 866 667\",\n \"M-191 -405C-191 -405 -123 0 341 127C805 254 873 659 873 659\",\n \"M-184 -413C-184 -413 -116 -8 348 119C812 246 880 651 880 651\",\n \"M-177 -421C-177 -421 -109 -16 355 111C819 238 887 643 887 643\",\n \"M-170 -429C-170 -429 -102 -24 362 103C826 230 894 635 894 635\",\n \"M-163 -437C-163 -437 -95 -32 369 95C833 222 901 627 901 627\",\n \"M-156 -445C-156 -445 -88 -40 376 87C840 214 908 619 908 619\",\n \"M-149 -453C-149 -453 -81 -48 383 79C847 206 915 611 915 611\",\n \"M-142 -461C-142 -461 -74 -56 390 71C854 198 922 603 922 603\",\n \"M-135 -469C-135 -469 -67 -64 397 63C861 190 929 595 929 595\",\n \"M-128 -477C-128 -477 -60 -72 404 55C868 182 936 587 936 587\",\n \"M-121 -485C-121 -485 -53 -80 411 47C875 174 943 579 943 579\",\n \"M-114 -493C-114 -493 -46 -88 418 39C882 166 950 571 950 571\",\n \"M-107 -501C-107 -501 -39 -96 425 31C889 158 957 563 957 563\",\n \"M-100 -509C-100 -509 -32 -104 432 23C896 150 964 555 964 555\",\n \"M-93 -517C-93 -517 -25 -112 439 15C903 142 971 547 971 547\",\n \"M-86 -525C-86 -525 -18 -120 446 7C910 134 978 539 978 539\",\n \"M-79 -533C-79 -533 -11 -128 453 -1C917 126 985 531 985 531\",\n \"M-72 -541C-72 -541 -4 -136 460 -9C924 118 992 523 992 523\",\n \"M-65 -549C-65 -549 3 -144 467 -17C931 110 999 515 999 515\",\n \"M-58 -557C-58 -557 10 -152 474 -25C938 102 1006 507 1006 507\",\n \"M-51 -565C-51 -565 17 -160 481 -33C945 94 1013 499 1013 499\",\n \"M-44 -573C-44 -573 24 -168 488 -41C952 86 1020 491 1020 491\",\n \"M-37 -581C-37 -581 31 -176 495 -49C959 78 1027 483 1027 483\"\n ];\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"absolute inset-0 flex h-full w-full items-center justify-center [mask-repeat:no-repeat] [mask-size:40px]\", className),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"pointer-events-none absolute z-0 h-full w-full\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 696 316\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M-380 -189C-380 -189 -312 216 152 343C616 470 684 875 684 875M-373 -197C-373 -197 -305 208 159 335C623 462 691 867 691 867M-366 -205C-366 -205 -298 200 166 327C630 454 698 859 698 859M-359 -213C-359 -213 -291 192 173 319C637 446 705 851 705 851M-352 -221C-352 -221 -284 184 180 311C644 438 712 843 712 843M-345 -229C-345 -229 -277 176 187 303C651 430 719 835 719 835M-338 -237C-338 -237 -270 168 194 295C658 422 726 827 726 827M-331 -245C-331 -245 -263 160 201 287C665 414 733 819 733 819M-324 -253C-324 -253 -256 152 208 279C672 406 740 811 740 811M-317 -261C-317 -261 -249 144 215 271C679 398 747 803 747 803M-310 -269C-310 -269 -242 136 222 263C686 390 754 795 754 795M-303 -277C-303 -277 -235 128 229 255C693 382 761 787 761 787M-296 -285C-296 -285 -228 120 236 247C700 374 768 779 768 779M-289 -293C-289 -293 -221 112 243 239C707 366 775 771 775 771M-282 -301C-282 -301 -214 104 250 231C714 358 782 763 782 763M-275 -309C-275 -309 -207 96 257 223C721 350 789 755 789 755M-268 -317C-268 -317 -200 88 264 215C728 342 796 747 796 747M-261 -325C-261 -325 -193 80 271 207C735 334 803 739 803 739M-254 -333C-254 -333 -186 72 278 199C742 326 810 731 810 731M-247 -341C-247 -341 -179 64 285 191C749 318 817 723 817 723M-240 -349C-240 -349 -172 56 292 183C756 310 824 715 824 715M-233 -357C-233 -357 -165 48 299 175C763 302 831 707 831 707M-226 -365C-226 -365 -158 40 306 167C770 294 838 699 838 699M-219 -373C-219 -373 -151 32 313 159C777 286 845 691 845 691M-212 -381C-212 -381 -144 24 320 151C784 278 852 683 852 683M-205 -389C-205 -389 -137 16 327 143C791 270 859 675 859 675M-198 -397C-198 -397 -130 8 334 135C798 262 866 667 866 667M-191 -405C-191 -405 -123 0 341 127C805 254 873 659 873 659M-184 -413C-184 -413 -116 -8 348 119C812 246 880 651 880 651M-177 -421C-177 -421 -109 -16 355 111C819 238 887 643 887 643M-170 -429C-170 -429 -102 -24 362 103C826 230 894 635 894 635M-163 -437C-163 -437 -95 -32 369 95C833 222 901 627 901 627M-156 -445C-156 -445 -88 -40 376 87C840 214 908 619 908 619M-149 -453C-149 -453 -81 -48 383 79C847 206 915 611 915 611M-142 -461C-142 -461 -74 -56 390 71C854 198 922 603 922 603M-135 -469C-135 -469 -67 -64 397 63C861 190 929 595 929 595M-128 -477C-128 -477 -60 -72 404 55C868 182 936 587 936 587M-121 -485C-121 -485 -53 -80 411 47C875 174 943 579 943 579M-114 -493C-114 -493 -46 -88 418 39C882 166 950 571 950 571M-107 -501C-107 -501 -39 -96 425 31C889 158 957 563 957 563M-100 -509C-100 -509 -32 -104 432 23C896 150 964 555 964 555M-93 -517C-93 -517 -25 -112 439 15C903 142 971 547 971 547M-86 -525C-86 -525 -18 -120 446 7C910 134 978 539 978 539M-79 -533C-79 -533 -11 -128 453 -1C917 126 985 531 985 531M-72 -541C-72 -541 -4 -136 460 -9C924 118 992 523 992 523M-65 -549C-65 -549 3 -144 467 -17C931 110 999 515 999 515M-58 -557C-58 -557 10 -152 474 -25C938 102 1006 507 1006 507M-51 -565C-51 -565 17 -160 481 -33C945 94 1013 499 1013 499M-44 -573C-44 -573 24 -168 488 -41C952 86 1020 491 1020 491M-37 -581C-37 -581 31 -176 495 -49C959 78 1027 483 1027 483M-30 -589C-30 -589 38 -184 502 -57C966 70 1034 475 1034 475M-23 -597C-23 -597 45 -192 509 -65C973 62 1041 467 1041 467M-16 -605C-16 -605 52 -200 516 -73C980 54 1048 459 1048 459M-9 -613C-9 -613 59 -208 523 -81C987 46 1055 451 1055 451M-2 -621C-2 -621 66 -216 530 -89C994 38 1062 443 1062 443M5 -629C5 -629 73 -224 537 -97C1001 30 1069 435 1069 435M12 -637C12 -637 80 -232 544 -105C1008 22 1076 427 1076 427M19 -645C19 -645 87 -240 551 -113C1015 14 1083 419 1083 419\",\n stroke: \"url(#paint0_radial_242_278)\",\n strokeOpacity: \"0.05\",\n strokeWidth: \"0.5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\background-beams.tsx\",\n lineNumber: 75,\n columnNumber: 11\n }, undefined),\n paths.map((path, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(motion_react__WEBPACK_IMPORTED_MODULE_3__.motion.path, {\n d: path,\n stroke: \"url(#linearGradient-\".concat(index, \")\"),\n strokeOpacity: \"0.4\",\n strokeWidth: \"0.5\"\n }, \"path-\" + index, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\background-beams.tsx\",\n lineNumber: 83,\n columnNumber: 13\n }, undefined)),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"defs\", {\n children: [\n paths.map((path, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(motion_react__WEBPACK_IMPORTED_MODULE_3__.motion.linearGradient, {\n id: \"linearGradient-\".concat(index),\n initial: {\n x1: \"0%\",\n x2: \"0%\",\n y1: \"0%\",\n y2: \"0%\"\n },\n animate: {\n x1: [\n \"0%\",\n \"100%\"\n ],\n x2: [\n \"0%\",\n \"95%\"\n ],\n y1: [\n \"0%\",\n \"100%\"\n ],\n y2: [\n \"0%\",\n \"\".concat(93 + Math.random() * 8, \"%\")\n ]\n },\n transition: {\n duration: Math.random() * 10 + 10,\n ease: \"easeInOut\",\n repeat: Infinity,\n delay: Math.random() * 10\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n stopColor: \"#18CCFC\",\n stopOpacity: \"0\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\background-beams.tsx\",\n lineNumber: 115,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n stopColor: \"#18CCFC\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\background-beams.tsx\",\n lineNumber: 116,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"32.5%\",\n stopColor: \"#6344F5\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\background-beams.tsx\",\n lineNumber: 117,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"100%\",\n stopColor: \"#AE48FF\",\n stopOpacity: \"0\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\background-beams.tsx\",\n lineNumber: 118,\n columnNumber: 17\n }, undefined)\n ]\n }, \"gradient-\".concat(index), true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\background-beams.tsx\",\n lineNumber: 93,\n columnNumber: 15\n }, undefined)),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"radialGradient\", {\n id: \"paint0_radial_242_278\",\n cx: \"0\",\n cy: \"0\",\n r: \"1\",\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(352 34) rotate(90) scale(555 1560.62)\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"0.0666667\",\n stopColor: \"#d4d4d4\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\background-beams.tsx\",\n lineNumber: 130,\n columnNumber: 15\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"0.243243\",\n stopColor: \"#d4d4d4\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\background-beams.tsx\",\n lineNumber: 131,\n columnNumber: 15\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"0.43594\",\n stopColor: \"white\",\n stopOpacity: \"0\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\background-beams.tsx\",\n lineNumber: 132,\n columnNumber: 15\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\background-beams.tsx\",\n lineNumber: 122,\n columnNumber: 13\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\background-beams.tsx\",\n lineNumber: 91,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\background-beams.tsx\",\n lineNumber: 67,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\background-beams.tsx\",\n lineNumber: 61,\n columnNumber: 7\n }, undefined);\n});\n_c1 = BackgroundBeams;\nBackgroundBeams.displayName = \"BackgroundBeams\";\nvar _c, _c1;\n$RefreshReg$(_c, \"BackgroundBeams$React.memo\");\n$RefreshReg$(_c1, \"BackgroundBeams\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvYmFja2dyb3VuZC1iZWFtcy50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUMwQjtBQUNZO0FBQ0w7QUFFMUIsTUFBTUcsZ0NBQWtCSCxpREFBVSxNQUN2QztRQUFDLEVBQUVLLFNBQVMsRUFBMEI7SUFDcEMsTUFBTUMsUUFBUTtRQUNaO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7S0FDRDtJQUNELHFCQUNFLDhEQUFDQztRQUNDRixXQUFXSCw4Q0FBRUEsQ0FDWCw0R0FDQUc7a0JBR0YsNEVBQUNHO1lBQ0NILFdBQVU7WUFDVkksT0FBTTtZQUNOQyxRQUFPO1lBQ1BDLFNBQVE7WUFDUkMsTUFBSztZQUNMQyxPQUFNOzs4QkFFTiw4REFBQ0M7b0JBQ0NDLEdBQUU7b0JBQ0ZDLFFBQU87b0JBQ1BDLGVBQWM7b0JBQ2RDLGFBQVk7Ozs7OztnQkFHYlosTUFBTWEsR0FBRyxDQUFDLENBQUNMLE1BQU1NLHNCQUNoQiw4REFBQ25CLGdEQUFNQSxDQUFDYSxJQUFJO3dCQUVWQyxHQUFHRDt3QkFDSEUsUUFBUSx1QkFBNkIsT0FBTkksT0FBTTt3QkFDckNILGVBQWM7d0JBQ2RDLGFBQVk7dUJBSlAsVUFBVUU7Ozs7OzhCQU9uQiw4REFBQ0M7O3dCQUNFZixNQUFNYSxHQUFHLENBQUMsQ0FBQ0wsTUFBTU0sc0JBQ2hCLDhEQUFDbkIsZ0RBQU1BLENBQUNxQixjQUFjO2dDQUNwQkMsSUFBSSxrQkFBd0IsT0FBTkg7Z0NBRXRCSSxTQUFTO29DQUNQQyxJQUFJO29DQUNKQyxJQUFJO29DQUNKQyxJQUFJO29DQUNKQyxJQUFJO2dDQUNOO2dDQUNBQyxTQUFTO29DQUNQSixJQUFJO3dDQUFDO3dDQUFNO3FDQUFPO29DQUNsQkMsSUFBSTt3Q0FBQzt3Q0FBTTtxQ0FBTTtvQ0FDakJDLElBQUk7d0NBQUM7d0NBQU07cUNBQU87b0NBQ2xCQyxJQUFJO3dDQUFDO3dDQUFPLEdBQXlCLE9BQXZCLEtBQUtFLEtBQUtDLE1BQU0sS0FBSyxHQUFFO3FDQUFHO2dDQUMxQztnQ0FDQUMsWUFBWTtvQ0FDVkMsVUFBVUgsS0FBS0MsTUFBTSxLQUFLLEtBQUs7b0NBQy9CRyxNQUFNO29DQUNOQyxRQUFRQztvQ0FDUkMsT0FBT1AsS0FBS0MsTUFBTSxLQUFLO2dDQUN6Qjs7a0RBRUEsOERBQUNPO3dDQUFLQyxXQUFVO3dDQUFVQyxhQUFZOzs7Ozs7a0RBQ3RDLDhEQUFDRjt3Q0FBS0MsV0FBVTs7Ozs7O2tEQUNoQiw4REFBQ0Q7d0NBQUtHLFFBQU87d0NBQVFGLFdBQVU7Ozs7OztrREFDL0IsOERBQUNEO3dDQUFLRyxRQUFPO3dDQUFPRixXQUFVO3dDQUFVQyxhQUFZOzs7Ozs7OytCQXZCL0MsWUFBa0IsT0FBTnBCOzs7OztzQ0EyQnJCLDhEQUFDc0I7NEJBQ0NuQixJQUFHOzRCQUNIb0IsSUFBRzs0QkFDSEMsSUFBRzs0QkFDSEMsR0FBRTs0QkFDRkMsZUFBYzs0QkFDZEMsbUJBQWtCOzs4Q0FFbEIsOERBQUNUO29DQUFLRyxRQUFPO29DQUFZRixXQUFVOzs7Ozs7OENBQ25DLDhEQUFDRDtvQ0FBS0csUUFBTztvQ0FBV0YsV0FBVTs7Ozs7OzhDQUNsQyw4REFBQ0Q7b0NBQUtHLFFBQU87b0NBQVVGLFdBQVU7b0NBQVFDLGFBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTWpFLEdBQ0E7O0FBRUZyQyxnQkFBZ0I2QyxXQUFXLEdBQUciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy91aS9iYWNrZ3JvdW5kLWJlYW1zLnRzeD8xY2JkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IG1vdGlvbiB9IGZyb20gXCJtb3Rpb24vcmVhY3RcIjtcclxuaW1wb3J0IHsgY24gfSBmcm9tIFwiQC9saWIvdXRpbHNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBCYWNrZ3JvdW5kQmVhbXMgPSBSZWFjdC5tZW1vKFxyXG4gICh7IGNsYXNzTmFtZSB9OiB7IGNsYXNzTmFtZT86IHN0cmluZyB9KSA9PiB7XHJcbiAgICBjb25zdCBwYXRocyA9IFtcclxuICAgICAgXCJNLTM4MCAtMTg5Qy0zODAgLTE4OSAtMzEyIDIxNiAxNTIgMzQzQzYxNiA0NzAgNjg0IDg3NSA2ODQgODc1XCIsXHJcbiAgICAgIFwiTS0zNzMgLTE5N0MtMzczIC0xOTcgLTMwNSAyMDggMTU5IDMzNUM2MjMgNDYyIDY5MSA4NjcgNjkxIDg2N1wiLFxyXG4gICAgICBcIk0tMzY2IC0yMDVDLTM2NiAtMjA1IC0yOTggMjAwIDE2NiAzMjdDNjMwIDQ1NCA2OTggODU5IDY5OCA4NTlcIixcclxuICAgICAgXCJNLTM1OSAtMjEzQy0zNTkgLTIxMyAtMjkxIDE5MiAxNzMgMzE5QzYzNyA0NDYgNzA1IDg1MSA3MDUgODUxXCIsXHJcbiAgICAgIFwiTS0zNTIgLTIyMUMtMzUyIC0yMjEgLTI4NCAxODQgMTgwIDMxMUM2NDQgNDM4IDcxMiA4NDMgNzEyIDg0M1wiLFxyXG4gICAgICBcIk0tMzQ1IC0yMjlDLTM0NSAtMjI5IC0yNzcgMTc2IDE4NyAzMDNDNjUxIDQzMCA3MTkgODM1IDcxOSA4MzVcIixcclxuICAgICAgXCJNLTMzOCAtMjM3Qy0zMzggLTIzNyAtMjcwIDE2OCAxOTQgMjk1QzY1OCA0MjIgNzI2IDgyNyA3MjYgODI3XCIsXHJcbiAgICAgIFwiTS0zMzEgLTI0NUMtMzMxIC0yNDUgLTI2MyAxNjAgMjAxIDI4N0M2NjUgNDE0IDczMyA4MTkgNzMzIDgxOVwiLFxyXG4gICAgICBcIk0tMzI0IC0yNTNDLTMyNCAtMjUzIC0yNTYgMTUyIDIwOCAyNzlDNjcyIDQwNiA3NDAgODExIDc0MCA4MTFcIixcclxuICAgICAgXCJNLTMxNyAtMjYxQy0zMTcgLTI2MSAtMjQ5IDE0NCAyMTUgMjcxQzY3OSAzOTggNzQ3IDgwMyA3NDcgODAzXCIsXHJcbiAgICAgIFwiTS0zMTAgLTI2OUMtMzEwIC0yNjkgLTI0MiAxMzYgMjIyIDI2M0M2ODYgMzkwIDc1NCA3OTUgNzU0IDc5NVwiLFxyXG4gICAgICBcIk0tMzAzIC0yNzdDLTMwMyAtMjc3IC0yMzUgMTI4IDIyOSAyNTVDNjkzIDM4MiA3NjEgNzg3IDc2MSA3ODdcIixcclxuICAgICAgXCJNLTI5NiAtMjg1Qy0yOTYgLTI4NSAtMjI4IDEyMCAyMzYgMjQ3QzcwMCAzNzQgNzY4IDc3OSA3NjggNzc5XCIsXHJcbiAgICAgIFwiTS0yODkgLTI5M0MtMjg5IC0yOTMgLTIyMSAxMTIgMjQzIDIzOUM3MDcgMzY2IDc3NSA3NzEgNzc1IDc3MVwiLFxyXG4gICAgICBcIk0tMjgyIC0zMDFDLTI4MiAtMzAxIC0yMTQgMTA0IDI1MCAyMzFDNzE0IDM1OCA3ODIgNzYzIDc4MiA3NjNcIixcclxuICAgICAgXCJNLTI3NSAtMzA5Qy0yNzUgLTMwOSAtMjA3IDk2IDI1NyAyMjNDNzIxIDM1MCA3ODkgNzU1IDc4OSA3NTVcIixcclxuICAgICAgXCJNLTI2OCAtMzE3Qy0yNjggLTMxNyAtMjAwIDg4IDI2NCAyMTVDNzI4IDM0MiA3OTYgNzQ3IDc5NiA3NDdcIixcclxuICAgICAgXCJNLTI2MSAtMzI1Qy0yNjEgLTMyNSAtMTkzIDgwIDI3MSAyMDdDNzM1IDMzNCA4MDMgNzM5IDgwMyA3MzlcIixcclxuICAgICAgXCJNLTI1NCAtMzMzQy0yNTQgLTMzMyAtMTg2IDcyIDI3OCAxOTlDNzQyIDMyNiA4MTAgNzMxIDgxMCA3MzFcIixcclxuICAgICAgXCJNLTI0NyAtMzQxQy0yNDcgLTM0MSAtMTc5IDY0IDI4NSAxOTFDNzQ5IDMxOCA4MTcgNzIzIDgxNyA3MjNcIixcclxuICAgICAgXCJNLTI0MCAtMzQ5Qy0yNDAgLTM0OSAtMTcyIDU2IDI5MiAxODNDNzU2IDMxMCA4MjQgNzE1IDgyNCA3MTVcIixcclxuICAgICAgXCJNLTIzMyAtMzU3Qy0yMzMgLTM1NyAtMTY1IDQ4IDI5OSAxNzVDNzYzIDMwMiA4MzEgNzA3IDgzMSA3MDdcIixcclxuICAgICAgXCJNLTIyNiAtMzY1Qy0yMjYgLTM2NSAtMTU4IDQwIDMwNiAxNjdDNzcwIDI5NCA4MzggNjk5IDgzOCA2OTlcIixcclxuICAgICAgXCJNLTIxOSAtMzczQy0yMTkgLTM3MyAtMTUxIDMyIDMxMyAxNTlDNzc3IDI4NiA4NDUgNjkxIDg0NSA2OTFcIixcclxuICAgICAgXCJNLTIxMiAtMzgxQy0yMTIgLTM4MSAtMTQ0IDI0IDMyMCAxNTFDNzg0IDI3OCA4NTIgNjgzIDg1MiA2ODNcIixcclxuICAgICAgXCJNLTIwNSAtMzg5Qy0yMDUgLTM4OSAtMTM3IDE2IDMyNyAxNDNDNzkxIDI3MCA4NTkgNjc1IDg1OSA2NzVcIixcclxuICAgICAgXCJNLTE5OCAtMzk3Qy0xOTggLTM5NyAtMTMwIDggMzM0IDEzNUM3OTggMjYyIDg2NiA2NjcgODY2IDY2N1wiLFxyXG4gICAgICBcIk0tMTkxIC00MDVDLTE5MSAtNDA1IC0xMjMgMCAzNDEgMTI3QzgwNSAyNTQgODczIDY1OSA4NzMgNjU5XCIsXHJcbiAgICAgIFwiTS0xODQgLTQxM0MtMTg0IC00MTMgLTExNiAtOCAzNDggMTE5QzgxMiAyNDYgODgwIDY1MSA4ODAgNjUxXCIsXHJcbiAgICAgIFwiTS0xNzcgLTQyMUMtMTc3IC00MjEgLTEwOSAtMTYgMzU1IDExMUM4MTkgMjM4IDg4NyA2NDMgODg3IDY0M1wiLFxyXG4gICAgICBcIk0tMTcwIC00MjlDLTE3MCAtNDI5IC0xMDIgLTI0IDM2MiAxMDNDODI2IDIzMCA4OTQgNjM1IDg5NCA2MzVcIixcclxuICAgICAgXCJNLTE2MyAtNDM3Qy0xNjMgLTQzNyAtOTUgLTMyIDM2OSA5NUM4MzMgMjIyIDkwMSA2MjcgOTAxIDYyN1wiLFxyXG4gICAgICBcIk0tMTU2IC00NDVDLTE1NiAtNDQ1IC04OCAtNDAgMzc2IDg3Qzg0MCAyMTQgOTA4IDYxOSA5MDggNjE5XCIsXHJcbiAgICAgIFwiTS0xNDkgLTQ1M0MtMTQ5IC00NTMgLTgxIC00OCAzODMgNzlDODQ3IDIwNiA5MTUgNjExIDkxNSA2MTFcIixcclxuICAgICAgXCJNLTE0MiAtNDYxQy0xNDIgLTQ2MSAtNzQgLTU2IDM5MCA3MUM4NTQgMTk4IDkyMiA2MDMgOTIyIDYwM1wiLFxyXG4gICAgICBcIk0tMTM1IC00NjlDLTEzNSAtNDY5IC02NyAtNjQgMzk3IDYzQzg2MSAxOTAgOTI5IDU5NSA5MjkgNTk1XCIsXHJcbiAgICAgIFwiTS0xMjggLTQ3N0MtMTI4IC00NzcgLTYwIC03MiA0MDQgNTVDODY4IDE4MiA5MzYgNTg3IDkzNiA1ODdcIixcclxuICAgICAgXCJNLTEyMSAtNDg1Qy0xMjEgLTQ4NSAtNTMgLTgwIDQxMSA0N0M4NzUgMTc0IDk0MyA1NzkgOTQzIDU3OVwiLFxyXG4gICAgICBcIk0tMTE0IC00OTNDLTExNCAtNDkzIC00NiAtODggNDE4IDM5Qzg4MiAxNjYgOTUwIDU3MSA5NTAgNTcxXCIsXHJcbiAgICAgIFwiTS0xMDcgLTUwMUMtMTA3IC01MDEgLTM5IC05NiA0MjUgMzFDODg5IDE1OCA5NTcgNTYzIDk1NyA1NjNcIixcclxuICAgICAgXCJNLTEwMCAtNTA5Qy0xMDAgLTUwOSAtMzIgLTEwNCA0MzIgMjNDODk2IDE1MCA5NjQgNTU1IDk2NCA1NTVcIixcclxuICAgICAgXCJNLTkzIC01MTdDLTkzIC01MTcgLTI1IC0xMTIgNDM5IDE1QzkwMyAxNDIgOTcxIDU0NyA5NzEgNTQ3XCIsXHJcbiAgICAgIFwiTS04NiAtNTI1Qy04NiAtNTI1IC0xOCAtMTIwIDQ0NiA3QzkxMCAxMzQgOTc4IDUzOSA5NzggNTM5XCIsXHJcbiAgICAgIFwiTS03OSAtNTMzQy03OSAtNTMzIC0xMSAtMTI4IDQ1MyAtMUM5MTcgMTI2IDk4NSA1MzEgOTg1IDUzMVwiLFxyXG4gICAgICBcIk0tNzIgLTU0MUMtNzIgLTU0MSAtNCAtMTM2IDQ2MCAtOUM5MjQgMTE4IDk5MiA1MjMgOTkyIDUyM1wiLFxyXG4gICAgICBcIk0tNjUgLTU0OUMtNjUgLTU0OSAzIC0xNDQgNDY3IC0xN0M5MzEgMTEwIDk5OSA1MTUgOTk5IDUxNVwiLFxyXG4gICAgICBcIk0tNTggLTU1N0MtNTggLTU1NyAxMCAtMTUyIDQ3NCAtMjVDOTM4IDEwMiAxMDA2IDUwNyAxMDA2IDUwN1wiLFxyXG4gICAgICBcIk0tNTEgLTU2NUMtNTEgLTU2NSAxNyAtMTYwIDQ4MSAtMzNDOTQ1IDk0IDEwMTMgNDk5IDEwMTMgNDk5XCIsXHJcbiAgICAgIFwiTS00NCAtNTczQy00NCAtNTczIDI0IC0xNjggNDg4IC00MUM5NTIgODYgMTAyMCA0OTEgMTAyMCA0OTFcIixcclxuICAgICAgXCJNLTM3IC01ODFDLTM3IC01ODEgMzEgLTE3NiA0OTUgLTQ5Qzk1OSA3OCAxMDI3IDQ4MyAxMDI3IDQ4M1wiLFxyXG4gICAgXTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2NuKFxyXG4gICAgICAgICAgXCJhYnNvbHV0ZSBpbnNldC0wIGZsZXggaC1mdWxsIHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgW21hc2stcmVwZWF0Om5vLXJlcGVhdF0gW21hc2stc2l6ZTo0MHB4XVwiLFxyXG4gICAgICAgICAgY2xhc3NOYW1lLFxyXG4gICAgICAgICl9XHJcbiAgICAgID5cclxuICAgICAgICA8c3ZnXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIHotMCBoLWZ1bGwgdy1mdWxsXCJcclxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXHJcbiAgICAgICAgICBoZWlnaHQ9XCIxMDAlXCJcclxuICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNjk2IDMxNlwiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICBkPVwiTS0zODAgLTE4OUMtMzgwIC0xODkgLTMxMiAyMTYgMTUyIDM0M0M2MTYgNDcwIDY4NCA4NzUgNjg0IDg3NU0tMzczIC0xOTdDLTM3MyAtMTk3IC0zMDUgMjA4IDE1OSAzMzVDNjIzIDQ2MiA2OTEgODY3IDY5MSA4NjdNLTM2NiAtMjA1Qy0zNjYgLTIwNSAtMjk4IDIwMCAxNjYgMzI3QzYzMCA0NTQgNjk4IDg1OSA2OTggODU5TS0zNTkgLTIxM0MtMzU5IC0yMTMgLTI5MSAxOTIgMTczIDMxOUM2MzcgNDQ2IDcwNSA4NTEgNzA1IDg1MU0tMzUyIC0yMjFDLTM1MiAtMjIxIC0yODQgMTg0IDE4MCAzMTFDNjQ0IDQzOCA3MTIgODQzIDcxMiA4NDNNLTM0NSAtMjI5Qy0zNDUgLTIyOSAtMjc3IDE3NiAxODcgMzAzQzY1MSA0MzAgNzE5IDgzNSA3MTkgODM1TS0zMzggLTIzN0MtMzM4IC0yMzcgLTI3MCAxNjggMTk0IDI5NUM2NTggNDIyIDcyNiA4MjcgNzI2IDgyN00tMzMxIC0yNDVDLTMzMSAtMjQ1IC0yNjMgMTYwIDIwMSAyODdDNjY1IDQxNCA3MzMgODE5IDczMyA4MTlNLTMyNCAtMjUzQy0zMjQgLTI1MyAtMjU2IDE1MiAyMDggMjc5QzY3MiA0MDYgNzQwIDgxMSA3NDAgODExTS0zMTcgLTI2MUMtMzE3IC0yNjEgLTI0OSAxNDQgMjE1IDI3MUM2NzkgMzk4IDc0NyA4MDMgNzQ3IDgwM00tMzEwIC0yNjlDLTMxMCAtMjY5IC0yNDIgMTM2IDIyMiAyNjNDNjg2IDM5MCA3NTQgNzk1IDc1NCA3OTVNLTMwMyAtMjc3Qy0zMDMgLTI3NyAtMjM1IDEyOCAyMjkgMjU1QzY5MyAzODIgNzYxIDc4NyA3NjEgNzg3TS0yOTYgLTI4NUMtMjk2IC0yODUgLTIyOCAxMjAgMjM2IDI0N0M3MDAgMzc0IDc2OCA3NzkgNzY4IDc3OU0tMjg5IC0yOTNDLTI4OSAtMjkzIC0yMjEgMTEyIDI0MyAyMzlDNzA3IDM2NiA3NzUgNzcxIDc3NSA3NzFNLTI4MiAtMzAxQy0yODIgLTMwMSAtMjE0IDEwNCAyNTAgMjMxQzcxNCAzNTggNzgyIDc2MyA3ODIgNzYzTS0yNzUgLTMwOUMtMjc1IC0zMDkgLTIwNyA5NiAyNTcgMjIzQzcyMSAzNTAgNzg5IDc1NSA3ODkgNzU1TS0yNjggLTMxN0MtMjY4IC0zMTcgLTIwMCA4OCAyNjQgMjE1QzcyOCAzNDIgNzk2IDc0NyA3OTYgNzQ3TS0yNjEgLTMyNUMtMjYxIC0zMjUgLTE5MyA4MCAyNzEgMjA3QzczNSAzMzQgODAzIDczOSA4MDMgNzM5TS0yNTQgLTMzM0MtMjU0IC0zMzMgLTE4NiA3MiAyNzggMTk5Qzc0MiAzMjYgODEwIDczMSA4MTAgNzMxTS0yNDcgLTM0MUMtMjQ3IC0zNDEgLTE3OSA2NCAyODUgMTkxQzc0OSAzMTggODE3IDcyMyA4MTcgNzIzTS0yNDAgLTM0OUMtMjQwIC0zNDkgLTE3MiA1NiAyOTIgMTgzQzc1NiAzMTAgODI0IDcxNSA4MjQgNzE1TS0yMzMgLTM1N0MtMjMzIC0zNTcgLTE2NSA0OCAyOTkgMTc1Qzc2MyAzMDIgODMxIDcwNyA4MzEgNzA3TS0yMjYgLTM2NUMtMjI2IC0zNjUgLTE1OCA0MCAzMDYgMTY3Qzc3MCAyOTQgODM4IDY5OSA4MzggNjk5TS0yMTkgLTM3M0MtMjE5IC0zNzMgLTE1MSAzMiAzMTMgMTU5Qzc3NyAyODYgODQ1IDY5MSA4NDUgNjkxTS0yMTIgLTM4MUMtMjEyIC0zODEgLTE0NCAyNCAzMjAgMTUxQzc4NCAyNzggODUyIDY4MyA4NTIgNjgzTS0yMDUgLTM4OUMtMjA1IC0zODkgLTEzNyAxNiAzMjcgMTQzQzc5MSAyNzAgODU5IDY3NSA4NTkgNjc1TS0xOTggLTM5N0MtMTk4IC0zOTcgLTEzMCA4IDMzNCAxMzVDNzk4IDI2MiA4NjYgNjY3IDg2NiA2NjdNLTE5MSAtNDA1Qy0xOTEgLTQwNSAtMTIzIDAgMzQxIDEyN0M4MDUgMjU0IDg3MyA2NTkgODczIDY1OU0tMTg0IC00MTNDLTE4NCAtNDEzIC0xMTYgLTggMzQ4IDExOUM4MTIgMjQ2IDg4MCA2NTEgODgwIDY1MU0tMTc3IC00MjFDLTE3NyAtNDIxIC0xMDkgLTE2IDM1NSAxMTFDODE5IDIzOCA4ODcgNjQzIDg4NyA2NDNNLTE3MCAtNDI5Qy0xNzAgLTQyOSAtMTAyIC0yNCAzNjIgMTAzQzgyNiAyMzAgODk0IDYzNSA4OTQgNjM1TS0xNjMgLTQzN0MtMTYzIC00MzcgLTk1IC0zMiAzNjkgOTVDODMzIDIyMiA5MDEgNjI3IDkwMSA2MjdNLTE1NiAtNDQ1Qy0xNTYgLTQ0NSAtODggLTQwIDM3NiA4N0M4NDAgMjE0IDkwOCA2MTkgOTA4IDYxOU0tMTQ5IC00NTNDLTE0OSAtNDUzIC04MSAtNDggMzgzIDc5Qzg0NyAyMDYgOTE1IDYxMSA5MTUgNjExTS0xNDIgLTQ2MUMtMTQyIC00NjEgLTc0IC01NiAzOTAgNzFDODU0IDE5OCA5MjIgNjAzIDkyMiA2MDNNLTEzNSAtNDY5Qy0xMzUgLTQ2OSAtNjcgLTY0IDM5NyA2M0M4NjEgMTkwIDkyOSA1OTUgOTI5IDU5NU0tMTI4IC00NzdDLTEyOCAtNDc3IC02MCAtNzIgNDA0IDU1Qzg2OCAxODIgOTM2IDU4NyA5MzYgNTg3TS0xMjEgLTQ4NUMtMTIxIC00ODUgLTUzIC04MCA0MTEgNDdDODc1IDE3NCA5NDMgNTc5IDk0MyA1NzlNLTExNCAtNDkzQy0xMTQgLTQ5MyAtNDYgLTg4IDQxOCAzOUM4ODIgMTY2IDk1MCA1NzEgOTUwIDU3MU0tMTA3IC01MDFDLTEwNyAtNTAxIC0zOSAtOTYgNDI1IDMxQzg4OSAxNTggOTU3IDU2MyA5NTcgNTYzTS0xMDAgLTUwOUMtMTAwIC01MDkgLTMyIC0xMDQgNDMyIDIzQzg5NiAxNTAgOTY0IDU1NSA5NjQgNTU1TS05MyAtNTE3Qy05MyAtNTE3IC0yNSAtMTEyIDQzOSAxNUM5MDMgMTQyIDk3MSA1NDcgOTcxIDU0N00tODYgLTUyNUMtODYgLTUyNSAtMTggLTEyMCA0NDYgN0M5MTAgMTM0IDk3OCA1MzkgOTc4IDUzOU0tNzkgLTUzM0MtNzkgLTUzMyAtMTEgLTEyOCA0NTMgLTFDOTE3IDEyNiA5ODUgNTMxIDk4NSA1MzFNLTcyIC01NDFDLTcyIC01NDEgLTQgLTEzNiA0NjAgLTlDOTI0IDExOCA5OTIgNTIzIDk5MiA1MjNNLTY1IC01NDlDLTY1IC01NDkgMyAtMTQ0IDQ2NyAtMTdDOTMxIDExMCA5OTkgNTE1IDk5OSA1MTVNLTU4IC01NTdDLTU4IC01NTcgMTAgLTE1MiA0NzQgLTI1QzkzOCAxMDIgMTAwNiA1MDcgMTAwNiA1MDdNLTUxIC01NjVDLTUxIC01NjUgMTcgLTE2MCA0ODEgLTMzQzk0NSA5NCAxMDEzIDQ5OSAxMDEzIDQ5OU0tNDQgLTU3M0MtNDQgLTU3MyAyNCAtMTY4IDQ4OCAtNDFDOTUyIDg2IDEwMjAgNDkxIDEwMjAgNDkxTS0zNyAtNTgxQy0zNyAtNTgxIDMxIC0xNzYgNDk1IC00OUM5NTkgNzggMTAyNyA0ODMgMTAyNyA0ODNNLTMwIC01ODlDLTMwIC01ODkgMzggLTE4NCA1MDIgLTU3Qzk2NiA3MCAxMDM0IDQ3NSAxMDM0IDQ3NU0tMjMgLTU5N0MtMjMgLTU5NyA0NSAtMTkyIDUwOSAtNjVDOTczIDYyIDEwNDEgNDY3IDEwNDEgNDY3TS0xNiAtNjA1Qy0xNiAtNjA1IDUyIC0yMDAgNTE2IC03M0M5ODAgNTQgMTA0OCA0NTkgMTA0OCA0NTlNLTkgLTYxM0MtOSAtNjEzIDU5IC0yMDggNTIzIC04MUM5ODcgNDYgMTA1NSA0NTEgMTA1NSA0NTFNLTIgLTYyMUMtMiAtNjIxIDY2IC0yMTYgNTMwIC04OUM5OTQgMzggMTA2MiA0NDMgMTA2MiA0NDNNNSAtNjI5QzUgLTYyOSA3MyAtMjI0IDUzNyAtOTdDMTAwMSAzMCAxMDY5IDQzNSAxMDY5IDQzNU0xMiAtNjM3QzEyIC02MzcgODAgLTIzMiA1NDQgLTEwNUMxMDA4IDIyIDEwNzYgNDI3IDEwNzYgNDI3TTE5IC02NDVDMTkgLTY0NSA4NyAtMjQwIDU1MSAtMTEzQzEwMTUgMTQgMTA4MyA0MTkgMTA4MyA0MTlcIlxyXG4gICAgICAgICAgICBzdHJva2U9XCJ1cmwoI3BhaW50MF9yYWRpYWxfMjQyXzI3OClcIlxyXG4gICAgICAgICAgICBzdHJva2VPcGFjaXR5PVwiMC4wNVwiXHJcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoPVwiMC41XCJcclxuICAgICAgICAgID48L3BhdGg+XHJcblxyXG4gICAgICAgICAge3BhdGhzLm1hcCgocGF0aCwgaW5kZXgpID0+IChcclxuICAgICAgICAgICAgPG1vdGlvbi5wYXRoXHJcbiAgICAgICAgICAgICAga2V5PXtgcGF0aC1gICsgaW5kZXh9XHJcbiAgICAgICAgICAgICAgZD17cGF0aH1cclxuICAgICAgICAgICAgICBzdHJva2U9e2B1cmwoI2xpbmVhckdyYWRpZW50LSR7aW5kZXh9KWB9XHJcbiAgICAgICAgICAgICAgc3Ryb2tlT3BhY2l0eT1cIjAuNFwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9XCIwLjVcIlxyXG4gICAgICAgICAgICA+PC9tb3Rpb24ucGF0aD5cclxuICAgICAgICAgICkpfVxyXG4gICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgIHtwYXRocy5tYXAoKHBhdGgsIGluZGV4KSA9PiAoXHJcbiAgICAgICAgICAgICAgPG1vdGlvbi5saW5lYXJHcmFkaWVudFxyXG4gICAgICAgICAgICAgICAgaWQ9e2BsaW5lYXJHcmFkaWVudC0ke2luZGV4fWB9XHJcbiAgICAgICAgICAgICAgICBrZXk9e2BncmFkaWVudC0ke2luZGV4fWB9XHJcbiAgICAgICAgICAgICAgICBpbml0aWFsPXt7XHJcbiAgICAgICAgICAgICAgICAgIHgxOiBcIjAlXCIsXHJcbiAgICAgICAgICAgICAgICAgIHgyOiBcIjAlXCIsXHJcbiAgICAgICAgICAgICAgICAgIHkxOiBcIjAlXCIsXHJcbiAgICAgICAgICAgICAgICAgIHkyOiBcIjAlXCIsXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZT17e1xyXG4gICAgICAgICAgICAgICAgICB4MTogW1wiMCVcIiwgXCIxMDAlXCJdLFxyXG4gICAgICAgICAgICAgICAgICB4MjogW1wiMCVcIiwgXCI5NSVcIl0sXHJcbiAgICAgICAgICAgICAgICAgIHkxOiBbXCIwJVwiLCBcIjEwMCVcIl0sXHJcbiAgICAgICAgICAgICAgICAgIHkyOiBbXCIwJVwiLCBgJHs5MyArIE1hdGgucmFuZG9tKCkgKiA4fSVgXSxcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uPXt7XHJcbiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBNYXRoLnJhbmRvbSgpICogMTAgKyAxMCxcclxuICAgICAgICAgICAgICAgICAgZWFzZTogXCJlYXNlSW5PdXRcIixcclxuICAgICAgICAgICAgICAgICAgcmVwZWF0OiBJbmZpbml0eSxcclxuICAgICAgICAgICAgICAgICAgZGVsYXk6IE1hdGgucmFuZG9tKCkgKiAxMCxcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHN0b3Agc3RvcENvbG9yPVwiIzE4Q0NGQ1wiIHN0b3BPcGFjaXR5PVwiMFwiPjwvc3RvcD5cclxuICAgICAgICAgICAgICAgIDxzdG9wIHN0b3BDb2xvcj1cIiMxOENDRkNcIj48L3N0b3A+XHJcbiAgICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIzMi41JVwiIHN0b3BDb2xvcj1cIiM2MzQ0RjVcIj48L3N0b3A+XHJcbiAgICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxMDAlXCIgc3RvcENvbG9yPVwiI0FFNDhGRlwiIHN0b3BPcGFjaXR5PVwiMFwiPjwvc3RvcD5cclxuICAgICAgICAgICAgICA8L21vdGlvbi5saW5lYXJHcmFkaWVudD5cclxuICAgICAgICAgICAgKSl9XHJcblxyXG4gICAgICAgICAgICA8cmFkaWFsR3JhZGllbnRcclxuICAgICAgICAgICAgICBpZD1cInBhaW50MF9yYWRpYWxfMjQyXzI3OFwiXHJcbiAgICAgICAgICAgICAgY3g9XCIwXCJcclxuICAgICAgICAgICAgICBjeT1cIjBcIlxyXG4gICAgICAgICAgICAgIHI9XCIxXCJcclxuICAgICAgICAgICAgICBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIlxyXG4gICAgICAgICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPVwidHJhbnNsYXRlKDM1MiAzNCkgcm90YXRlKDkwKSBzY2FsZSg1NTUgMTU2MC42MilcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMC4wNjY2NjY3XCIgc3RvcENvbG9yPVwiI2Q0ZDRkNFwiPjwvc3RvcD5cclxuICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwLjI0MzI0M1wiIHN0b3BDb2xvcj1cIiNkNGQ0ZDRcIj48L3N0b3A+XHJcbiAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMC40MzU5NFwiIHN0b3BDb2xvcj1cIndoaXRlXCIgc3RvcE9wYWNpdHk9XCIwXCI+PC9zdG9wPlxyXG4gICAgICAgICAgICA8L3JhZGlhbEdyYWRpZW50PlxyXG4gICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfSxcclxuKTtcclxuXHJcbkJhY2tncm91bmRCZWFtcy5kaXNwbGF5TmFtZSA9IFwiQmFja2dyb3VuZEJlYW1zXCI7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIm1vdGlvbiIsImNuIiwiQmFja2dyb3VuZEJlYW1zIiwibWVtbyIsImNsYXNzTmFtZSIsInBhdGhzIiwiZGl2Iiwic3ZnIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwiZmlsbCIsInhtbG5zIiwicGF0aCIsImQiLCJzdHJva2UiLCJzdHJva2VPcGFjaXR5Iiwic3Ryb2tlV2lkdGgiLCJtYXAiLCJpbmRleCIsImRlZnMiLCJsaW5lYXJHcmFkaWVudCIsImlkIiwiaW5pdGlhbCIsIngxIiwieDIiLCJ5MSIsInkyIiwiYW5pbWF0ZSIsIk1hdGgiLCJyYW5kb20iLCJ0cmFuc2l0aW9uIiwiZHVyYXRpb24iLCJlYXNlIiwicmVwZWF0IiwiSW5maW5pdHkiLCJkZWxheSIsInN0b3AiLCJzdG9wQ29sb3IiLCJzdG9wT3BhY2l0eSIsIm9mZnNldCIsInJhZGlhbEdyYWRpZW50IiwiY3giLCJjeSIsInIiLCJncmFkaWVudFVuaXRzIiwiZ3JhZGllbnRUcmFuc2Zvcm0iLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/background-beams.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/ui/button.tsx":
|
||
/*!**********************************!*\
|
||
!*** ./components/ui/button.tsx ***!
|
||
\**********************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Button: function() { return /* binding */ Button; },\n/* harmony export */ buttonVariants: function() { return /* binding */ buttonVariants; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var class_variance_authority__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! class-variance-authority */ \"(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\n\n\n\nconst buttonVariants = (0,class_variance_authority__WEBPACK_IMPORTED_MODULE_2__.cva)(\"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\", {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\"\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n});\nconst Button = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, variant, size, asChild = false, ...props } = param;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__.Slot : \"button\";\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Comp, {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(buttonVariants({\n variant,\n size,\n className\n })),\n ref: ref,\n ...props\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\button.tsx\",\n lineNumber: 46,\n columnNumber: 7\n }, undefined);\n});\n_c1 = Button;\nButton.displayName = \"Button\";\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Button$React.forwardRef\");\n$RefreshReg$(_c1, \"Button\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvYnV0dG9uLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBK0I7QUFDYTtBQUNzQjtBQUVqQztBQUVqQyxNQUFNSSxpQkFBaUJGLDZEQUFHQSxDQUN4QiwwUkFDQTtJQUNFRyxVQUFVO1FBQ1JDLFNBQVM7WUFDUEMsU0FBUztZQUNUQyxhQUNFO1lBQ0ZDLFNBQ0U7WUFDRkMsV0FDRTtZQUNGQyxPQUFPO1lBQ1BDLE1BQU07UUFDUjtRQUNBQyxNQUFNO1lBQ0pOLFNBQVM7WUFDVE8sSUFBSTtZQUNKQyxJQUFJO1lBQ0pDLE1BQU07UUFDUjtJQUNGO0lBQ0FDLGlCQUFpQjtRQUNmWCxTQUFTO1FBQ1RPLE1BQU07SUFDUjtBQUNGO0FBU0YsTUFBTUssdUJBQVNsQiw2Q0FBZ0IsTUFDN0IsUUFBMERvQjtRQUF6RCxFQUFFQyxTQUFTLEVBQUVmLE9BQU8sRUFBRU8sSUFBSSxFQUFFUyxVQUFVLEtBQUssRUFBRSxHQUFHQyxPQUFPO0lBQ3RELE1BQU1DLE9BQU9GLFVBQVVyQixzREFBSUEsR0FBRztJQUM5QixxQkFDRSw4REFBQ3VCO1FBQ0NILFdBQVdsQiw4Q0FBRUEsQ0FBQ0MsZUFBZTtZQUFFRTtZQUFTTztZQUFNUTtRQUFVO1FBQ3hERCxLQUFLQTtRQUNKLEdBQUdHLEtBQUs7Ozs7OztBQUdmOztBQUVGTCxPQUFPTyxXQUFXLEdBQUc7QUFFYSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9jb21wb25lbnRzL3VpL2J1dHRvbi50c3g/ODk0NCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IFNsb3QgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3Qtc2xvdCc7XHJcbmltcG9ydCB7IGN2YSwgdHlwZSBWYXJpYW50UHJvcHMgfSBmcm9tICdjbGFzcy12YXJpYW5jZS1hdXRob3JpdHknO1xyXG5cclxuaW1wb3J0IHsgY24gfSBmcm9tICdAL2xpYi91dGlscyc7XHJcblxyXG5jb25zdCBidXR0b25WYXJpYW50cyA9IGN2YShcclxuICAnaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHdoaXRlc3BhY2Utbm93cmFwIHJvdW5kZWQtbWQgdGV4dC1zbSBmb250LW1lZGl1bSByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tY29sb3JzIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMiBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOm9wYWNpdHktNTAnLFxyXG4gIHtcclxuICAgIHZhcmlhbnRzOiB7XHJcbiAgICAgIHZhcmlhbnQ6IHtcclxuICAgICAgICBkZWZhdWx0OiAnYmctcHJpbWFyeSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBob3ZlcjpiZy1wcmltYXJ5LzkwJyxcclxuICAgICAgICBkZXN0cnVjdGl2ZTpcclxuICAgICAgICAgICdiZy1kZXN0cnVjdGl2ZSB0ZXh0LWRlc3RydWN0aXZlLWZvcmVncm91bmQgaG92ZXI6YmctZGVzdHJ1Y3RpdmUvOTAnLFxyXG4gICAgICAgIG91dGxpbmU6XHJcbiAgICAgICAgICAnYm9yZGVyIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIGhvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJyxcclxuICAgICAgICBzZWNvbmRhcnk6XHJcbiAgICAgICAgICAnYmctc2Vjb25kYXJ5IHRleHQtc2Vjb25kYXJ5LWZvcmVncm91bmQgaG92ZXI6Ymctc2Vjb25kYXJ5LzgwJyxcclxuICAgICAgICBnaG9zdDogJ2hvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJyxcclxuICAgICAgICBsaW5rOiAndGV4dC1wcmltYXJ5IHVuZGVybGluZS1vZmZzZXQtNCBob3Zlcjp1bmRlcmxpbmUnLFxyXG4gICAgICB9LFxyXG4gICAgICBzaXplOiB7XHJcbiAgICAgICAgZGVmYXVsdDogJ2gtMTAgcHgtNCBweS0yJyxcclxuICAgICAgICBzbTogJ2gtOSByb3VuZGVkLW1kIHB4LTMnLFxyXG4gICAgICAgIGxnOiAnaC0xMSByb3VuZGVkLW1kIHB4LTgnLFxyXG4gICAgICAgIGljb246ICdoLTEwIHctMTAnLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGRlZmF1bHRWYXJpYW50czoge1xyXG4gICAgICB2YXJpYW50OiAnZGVmYXVsdCcsXHJcbiAgICAgIHNpemU6ICdkZWZhdWx0JyxcclxuICAgIH0sXHJcbiAgfVxyXG4pO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCdXR0b25Qcm9wc1xyXG4gIGV4dGVuZHMgUmVhY3QuQnV0dG9uSFRNTEF0dHJpYnV0ZXM8SFRNTEJ1dHRvbkVsZW1lbnQ+LFxyXG4gICAgVmFyaWFudFByb3BzPHR5cGVvZiBidXR0b25WYXJpYW50cz4ge1xyXG4gIGFzQ2hpbGQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5jb25zdCBCdXR0b24gPSBSZWFjdC5mb3J3YXJkUmVmPEhUTUxCdXR0b25FbGVtZW50LCBCdXR0b25Qcm9wcz4oXHJcbiAgKHsgY2xhc3NOYW1lLCB2YXJpYW50LCBzaXplLCBhc0NoaWxkID0gZmFsc2UsIC4uLnByb3BzIH0sIHJlZikgPT4ge1xyXG4gICAgY29uc3QgQ29tcCA9IGFzQ2hpbGQgPyBTbG90IDogJ2J1dHRvbic7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Q29tcFxyXG4gICAgICAgIGNsYXNzTmFtZT17Y24oYnV0dG9uVmFyaWFudHMoeyB2YXJpYW50LCBzaXplLCBjbGFzc05hbWUgfSkpfVxyXG4gICAgICAgIHJlZj17cmVmfVxyXG4gICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgLz5cclxuICAgICk7XHJcbiAgfVxyXG4pO1xyXG5CdXR0b24uZGlzcGxheU5hbWUgPSAnQnV0dG9uJztcclxuXHJcbmV4cG9ydCB7IEJ1dHRvbiwgYnV0dG9uVmFyaWFudHMgfTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU2xvdCIsImN2YSIsImNuIiwiYnV0dG9uVmFyaWFudHMiLCJ2YXJpYW50cyIsInZhcmlhbnQiLCJkZWZhdWx0IiwiZGVzdHJ1Y3RpdmUiLCJvdXRsaW5lIiwic2Vjb25kYXJ5IiwiZ2hvc3QiLCJsaW5rIiwic2l6ZSIsInNtIiwibGciLCJpY29uIiwiZGVmYXVsdFZhcmlhbnRzIiwiQnV0dG9uIiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsImFzQ2hpbGQiLCJwcm9wcyIsIkNvbXAiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/button.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/ui/card-hover-effect.tsx":
|
||
/*!*********************************************!*\
|
||
!*** ./components/ui/card-hover-effect.tsx ***!
|
||
\*********************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Card: function() { return /* binding */ Card; },\n/* harmony export */ CardDescription: function() { return /* binding */ CardDescription; },\n/* harmony export */ CardTitle: function() { return /* binding */ CardTitle; },\n/* harmony export */ HoverEffect: function() { return /* binding */ HoverEffect; }\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 _lib_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* harmony import */ var motion_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion/react */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\");\n/* harmony import */ var motion_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion/react */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lib_colors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/colors */ \"(app-pages-browser)/./lib/colors.ts\");\n\nvar _s = $RefreshSig$();\n\n\n\n\nconst HoverEffect = (param)=>{\n let { items, className } = param;\n _s();\n let [hoveredIndex, setHoveredIndex] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_1__.cn)(\"grid grid-cols-1 md:grid-cols-2 gap-6\", className),\n children: items.map((item, idx)=>{\n var _item_link, _ref;\n const key = (_ref = (_item_link = item === null || item === void 0 ? void 0 : item.link) !== null && _item_link !== void 0 ? _item_link : item.title) !== null && _ref !== void 0 ? _ref : idx;\n const cardContent = /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(motion_react__WEBPACK_IMPORTED_MODULE_4__.AnimatePresence, {\n children: hoveredIndex === idx && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(motion_react__WEBPACK_IMPORTED_MODULE_5__.motion.span, {\n className: \"absolute inset-0 h-full w-full block rounded-3xl\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary, \"33\")\n },\n layoutId: \"hoverBackground\",\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1,\n transition: {\n duration: 0.15\n }\n },\n exit: {\n opacity: 0,\n transition: {\n duration: 0.15,\n delay: 0.2\n }\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\card-hover-effect.tsx\",\n lineNumber: 33,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\card-hover-effect.tsx\",\n lineNumber: 31,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Card, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(CardTitle, {\n children: item.title\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\card-hover-effect.tsx\",\n lineNumber: 50,\n columnNumber: 15\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(CardDescription, {\n children: item.description\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\card-hover-effect.tsx\",\n lineNumber: 51,\n columnNumber: 15\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\card-hover-effect.tsx\",\n lineNumber: 49,\n columnNumber: 13\n }, undefined)\n ]\n }, void 0, true);\n if (item === null || item === void 0 ? void 0 : item.link) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: item.link,\n className: \"relative group block p-2 h-full w-full\",\n onMouseEnter: ()=>setHoveredIndex(idx),\n onMouseLeave: ()=>setHoveredIndex(null),\n children: cardContent\n }, key, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\card-hover-effect.tsx\",\n lineNumber: 58,\n columnNumber: 13\n }, undefined);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative group block p-2 h-full w-full\",\n onMouseEnter: ()=>setHoveredIndex(idx),\n onMouseLeave: ()=>setHoveredIndex(null),\n children: cardContent\n }, key, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\card-hover-effect.tsx\",\n lineNumber: 71,\n columnNumber: 11\n }, undefined);\n })\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\card-hover-effect.tsx\",\n lineNumber: 21,\n columnNumber: 5\n }, undefined);\n};\n_s(HoverEffect, \"9iVkaaUbrFxVCU6MuI1jK6905pI=\");\n_c = HoverEffect;\nconst Card = (param)=>{\n let { className, children } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_1__.cn)(\"rounded-3xl h-full w-full overflow-hidden border backdrop-blur-sm transition-all duration-300 group-hover:-translate-y-1 group-hover:shadow-lg relative z-20\", className),\n style: {\n background: \"linear-gradient(135deg, \".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"F2, \").concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary, \"26)\"),\n borderColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary, \"55\")\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative z-50 p-6\",\n children: children\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\card-hover-effect.tsx\",\n lineNumber: 103,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\card-hover-effect.tsx\",\n lineNumber: 93,\n columnNumber: 5\n }, undefined);\n};\n_c1 = Card;\nconst CardTitle = (param)=>{\n let { className, children } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_1__.cn)(\"text-xl font-semibold tracking-wide\", className),\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: children\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\card-hover-effect.tsx\",\n lineNumber: 117,\n columnNumber: 5\n }, undefined);\n};\n_c2 = CardTitle;\nconst CardDescription = (param)=>{\n let { className, children } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_1__.cn)(\"mt-3 leading-relaxed text-base\", className),\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: children\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\card-hover-effect.tsx\",\n lineNumber: 133,\n columnNumber: 5\n }, undefined);\n};\n_c3 = CardDescription;\nvar _c, _c1, _c2, _c3;\n$RefreshReg$(_c, \"HoverEffect\");\n$RefreshReg$(_c1, \"Card\");\n$RefreshReg$(_c2, \"CardTitle\");\n$RefreshReg$(_c3, \"CardDescription\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvY2FyZC1ob3Zlci1lZmZlY3QudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBaUM7QUFDc0I7QUFFdEI7QUFDSztBQUUvQixNQUFNSyxjQUFjO1FBQUMsRUFDMUJDLEtBQUssRUFDTEMsU0FBUyxFQVFWOztJQUNDLElBQUksQ0FBQ0MsY0FBY0MsZ0JBQWdCLEdBQUdOLCtDQUFRQSxDQUFnQjtJQUU5RCxxQkFDRSw4REFBQ087UUFDQ0gsV0FBV1AsOENBQUVBLENBQ1gseUNBQ0FPO2tCQUdERCxNQUFNSyxHQUFHLENBQUMsQ0FBQ0MsTUFBTUM7Z0JBQ0pELFlBQUFBO1lBQVosTUFBTUUsTUFBTUYsQ0FBQUEsT0FBQUEsQ0FBQUEsYUFBQUEsaUJBQUFBLDJCQUFBQSxLQUFNRyxJQUFJLGNBQVZILHdCQUFBQSxhQUFjQSxLQUFLSSxLQUFLLGNBQXhCSixrQkFBQUEsT0FBNEJDO1lBQ3hDLE1BQU1JLDRCQUNKOztrQ0FDRSw4REFBQ2hCLHlEQUFlQTtrQ0FDYk8saUJBQWlCSyxxQkFDaEIsOERBQUNYLGdEQUFNQSxDQUFDZ0IsSUFBSTs0QkFDVlgsV0FBVTs0QkFDVlksT0FBTztnQ0FBRUMsaUJBQWlCLEdBQW9CLE9BQWpCaEIsK0NBQU1BLENBQUNpQixTQUFTLEVBQUM7NEJBQUk7NEJBQ2xEQyxVQUFTOzRCQUNUQyxTQUFTO2dDQUFFQyxTQUFTOzRCQUFFOzRCQUN0QkMsU0FBUztnQ0FDUEQsU0FBUztnQ0FDVEUsWUFBWTtvQ0FBRUMsVUFBVTtnQ0FBSzs0QkFDL0I7NEJBQ0FDLE1BQU07Z0NBQ0pKLFNBQVM7Z0NBQ1RFLFlBQVk7b0NBQUVDLFVBQVU7b0NBQU1FLE9BQU87Z0NBQUk7NEJBQzNDOzs7Ozs7Ozs7OztrQ0FJTiw4REFBQ0M7OzBDQUNDLDhEQUFDQzswQ0FBV25CLEtBQUtJLEtBQUs7Ozs7OzswQ0FDdEIsOERBQUNnQjswQ0FBaUJwQixLQUFLcUIsV0FBVzs7Ozs7Ozs7Ozs7Ozs7WUFLeEMsSUFBSXJCLGlCQUFBQSwyQkFBQUEsS0FBTUcsSUFBSSxFQUFFO2dCQUNkLHFCQUNFLDhEQUFDbUI7b0JBRUNDLE1BQU12QixLQUFLRyxJQUFJO29CQUNmUixXQUFVO29CQUNWNkIsY0FBYyxJQUFNM0IsZ0JBQWdCSTtvQkFDcEN3QixjQUFjLElBQU01QixnQkFBZ0I7OEJBRW5DUTttQkFOSUg7Ozs7O1lBU1g7WUFFQSxxQkFDRSw4REFBQ0o7Z0JBRUNILFdBQVU7Z0JBQ1Y2QixjQUFjLElBQU0zQixnQkFBZ0JJO2dCQUNwQ3dCLGNBQWMsSUFBTTVCLGdCQUFnQjswQkFFbkNRO2VBTElIOzs7OztRQVFYOzs7Ozs7QUFHTixFQUFFO0dBNUVXVDtLQUFBQTtBQThFTixNQUFNeUIsT0FBTztRQUFDLEVBQ25CdkIsU0FBUyxFQUNUK0IsUUFBUSxFQUlUO0lBQ0MscUJBQ0UsOERBQUM1QjtRQUNDSCxXQUFXUCw4Q0FBRUEsQ0FDWCxnS0FDQU87UUFFRlksT0FBTztZQUNMb0IsWUFBWSwyQkFBbURuQyxPQUF4QkEsK0NBQU1BLENBQUNtQyxVQUFVLEVBQUMsUUFBdUIsT0FBakJuQywrQ0FBTUEsQ0FBQ2lCLFNBQVMsRUFBQztZQUNoRm1CLGFBQWEsR0FBb0IsT0FBakJwQywrQ0FBTUEsQ0FBQ2lCLFNBQVMsRUFBQztRQUNuQztrQkFFQSw0RUFBQ1g7WUFBSUgsV0FBVTtzQkFDWitCOzs7Ozs7Ozs7OztBQUlULEVBQUU7TUF2QldSO0FBd0JOLE1BQU1DLFlBQVk7UUFBQyxFQUN4QnhCLFNBQVMsRUFDVCtCLFFBQVEsRUFJVDtJQUNDLHFCQUNFLDhEQUFDRztRQUNDbEMsV0FBV1AsOENBQUVBLENBQUMsdUNBQXVDTztRQUNyRFksT0FBTztZQUFFdUIsT0FBT3RDLCtDQUFNQSxDQUFDdUMsT0FBTztRQUFDO2tCQUU5Qkw7Ozs7OztBQUdQLEVBQUU7TUFmV1A7QUFnQk4sTUFBTUMsa0JBQWtCO1FBQUMsRUFDOUJ6QixTQUFTLEVBQ1QrQixRQUFRLEVBSVQ7SUFDQyxxQkFDRSw4REFBQ007UUFDQ3JDLFdBQVdQLDhDQUFFQSxDQUNYLGtDQUNBTztRQUVGWSxPQUFPO1lBQUV1QixPQUFPdEMsK0NBQU1BLENBQUNpQixTQUFTO1FBQUM7a0JBRWhDaUI7Ozs7OztBQUdQLEVBQUU7TUFsQldOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2NvbXBvbmVudHMvdWkvY2FyZC1ob3Zlci1lZmZlY3QudHN4PzJmYTEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY24gfSBmcm9tIFwiQC9saWIvdXRpbHNcIjtcclxuaW1wb3J0IHsgQW5pbWF0ZVByZXNlbmNlLCBtb3Rpb24gfSBmcm9tIFwibW90aW9uL3JlYWN0XCI7XHJcblxyXG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tIFwiQC9saWIvY29sb3JzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgSG92ZXJFZmZlY3QgPSAoe1xyXG4gIGl0ZW1zLFxyXG4gIGNsYXNzTmFtZSxcclxufToge1xyXG4gIGl0ZW1zOiB7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIGxpbms/OiBzdHJpbmc7XHJcbiAgfVtdO1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxufSkgPT4ge1xyXG4gIGxldCBbaG92ZXJlZEluZGV4LCBzZXRIb3ZlcmVkSW5kZXhdID0gdXNlU3RhdGU8bnVtYmVyIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzTmFtZT17Y24oXHJcbiAgICAgICAgXCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGdhcC02XCIsXHJcbiAgICAgICAgY2xhc3NOYW1lXHJcbiAgICAgICl9XHJcbiAgICA+XHJcbiAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGlkeCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IGl0ZW0/LmxpbmsgPz8gaXRlbS50aXRsZSA/PyBpZHg7XHJcbiAgICAgICAgY29uc3QgY2FyZENvbnRlbnQgPSAoXHJcbiAgICAgICAgICA8PlxyXG4gICAgICAgICAgICA8QW5pbWF0ZVByZXNlbmNlPlxyXG4gICAgICAgICAgICAgIHtob3ZlcmVkSW5kZXggPT09IGlkeCAmJiAoXHJcbiAgICAgICAgICAgICAgICA8bW90aW9uLnNwYW5cclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCBoLWZ1bGwgdy1mdWxsIGJsb2NrIHJvdW5kZWQtM3hsXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBgJHtjb2xvcnMuc2Vjb25kYXJ5fTMzYCB9fVxyXG4gICAgICAgICAgICAgICAgICBsYXlvdXRJZD1cImhvdmVyQmFja2dyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCB9fVxyXG4gICAgICAgICAgICAgICAgICBhbmltYXRlPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSxcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB7IGR1cmF0aW9uOiAwLjE1IH0sXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIGV4aXQ9e3tcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHsgZHVyYXRpb246IDAuMTUsIGRlbGF5OiAwLjIgfSxcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9BbmltYXRlUHJlc2VuY2U+XHJcbiAgICAgICAgICAgIDxDYXJkPlxyXG4gICAgICAgICAgICAgIDxDYXJkVGl0bGU+e2l0ZW0udGl0bGV9PC9DYXJkVGl0bGU+XHJcbiAgICAgICAgICAgICAgPENhcmREZXNjcmlwdGlvbj57aXRlbS5kZXNjcmlwdGlvbn08L0NhcmREZXNjcmlwdGlvbj5cclxuICAgICAgICAgICAgPC9DYXJkPlxyXG4gICAgICAgICAgPC8+XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKGl0ZW0/LmxpbmspIHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAga2V5PXtrZXl9XHJcbiAgICAgICAgICAgICAgaHJlZj17aXRlbS5saW5rfVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIGdyb3VwIGJsb2NrIHAtMiBoLWZ1bGwgdy1mdWxsXCJcclxuICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHNldEhvdmVyZWRJbmRleChpZHgpfVxyXG4gICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17KCkgPT4gc2V0SG92ZXJlZEluZGV4KG51bGwpfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge2NhcmRDb250ZW50fVxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAga2V5PXtrZXl9XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIGdyb3VwIGJsb2NrIHAtMiBoLWZ1bGwgdy1mdWxsXCJcclxuICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBzZXRIb3ZlcmVkSW5kZXgoaWR4KX1cclxuICAgICAgICAgICAgb25Nb3VzZUxlYXZlPXsoKSA9PiBzZXRIb3ZlcmVkSW5kZXgobnVsbCl9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtjYXJkQ29udGVudH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pfVxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBDYXJkID0gKHtcclxuICBjbGFzc05hbWUsXHJcbiAgY2hpbGRyZW4sXHJcbn06IHtcclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcclxufSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzTmFtZT17Y24oXHJcbiAgICAgICAgXCJyb3VuZGVkLTN4bCBoLWZ1bGwgdy1mdWxsIG92ZXJmbG93LWhpZGRlbiBib3JkZXIgYmFja2Ryb3AtYmx1ci1zbSB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgZ3JvdXAtaG92ZXI6LXRyYW5zbGF0ZS15LTEgZ3JvdXAtaG92ZXI6c2hhZG93LWxnIHJlbGF0aXZlIHotMjBcIixcclxuICAgICAgICBjbGFzc05hbWVcclxuICAgICAgKX1cclxuICAgICAgc3R5bGU9e3tcclxuICAgICAgICBiYWNrZ3JvdW5kOiBgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgJHtjb2xvcnMuYmFja2dyb3VuZH1GMiwgJHtjb2xvcnMuc2Vjb25kYXJ5fTI2KWAsXHJcbiAgICAgICAgYm9yZGVyQ29sb3I6IGAke2NvbG9ycy5zZWNvbmRhcnl9NTVgLFxyXG4gICAgICB9fVxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHotNTAgcC02XCI+XHJcbiAgICAgICAge2NoaWxkcmVufVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcbmV4cG9ydCBjb25zdCBDYXJkVGl0bGUgPSAoe1xyXG4gIGNsYXNzTmFtZSxcclxuICBjaGlsZHJlbixcclxufToge1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xyXG59KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxoNFxyXG4gICAgICBjbGFzc05hbWU9e2NuKFwidGV4dC14bCBmb250LXNlbWlib2xkIHRyYWNraW5nLXdpZGVcIiwgY2xhc3NOYW1lKX1cclxuICAgICAgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19XHJcbiAgICA+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvaDQ+XHJcbiAgKTtcclxufTtcclxuZXhwb3J0IGNvbnN0IENhcmREZXNjcmlwdGlvbiA9ICh7XHJcbiAgY2xhc3NOYW1lLFxyXG4gIGNoaWxkcmVuLFxyXG59OiB7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XHJcbn0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPHBcclxuICAgICAgY2xhc3NOYW1lPXtjbihcclxuICAgICAgICBcIm10LTMgbGVhZGluZy1yZWxheGVkIHRleHQtYmFzZVwiLFxyXG4gICAgICAgIGNsYXNzTmFtZVxyXG4gICAgICApfVxyXG4gICAgICBzdHlsZT17eyBjb2xvcjogY29sb3JzLnNlY29uZGFyeSB9fVxyXG4gICAgPlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICA8L3A+XHJcbiAgKTtcclxufTtcclxuIl0sIm5hbWVzIjpbImNuIiwiQW5pbWF0ZVByZXNlbmNlIiwibW90aW9uIiwidXNlU3RhdGUiLCJjb2xvcnMiLCJIb3ZlckVmZmVjdCIsIml0ZW1zIiwiY2xhc3NOYW1lIiwiaG92ZXJlZEluZGV4Iiwic2V0SG92ZXJlZEluZGV4IiwiZGl2IiwibWFwIiwiaXRlbSIsImlkeCIsImtleSIsImxpbmsiLCJ0aXRsZSIsImNhcmRDb250ZW50Iiwic3BhbiIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwic2Vjb25kYXJ5IiwibGF5b3V0SWQiLCJpbml0aWFsIiwib3BhY2l0eSIsImFuaW1hdGUiLCJ0cmFuc2l0aW9uIiwiZHVyYXRpb24iLCJleGl0IiwiZGVsYXkiLCJDYXJkIiwiQ2FyZFRpdGxlIiwiQ2FyZERlc2NyaXB0aW9uIiwiZGVzY3JpcHRpb24iLCJhIiwiaHJlZiIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsImNoaWxkcmVuIiwiYmFja2dyb3VuZCIsImJvcmRlckNvbG9yIiwiaDQiLCJjb2xvciIsInByaW1hcnkiLCJwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/card-hover-effect.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/ui/checkbox.tsx":
|
||
/*!************************************!*\
|
||
!*** ./components/ui/checkbox.tsx ***!
|
||
\************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Checkbox: function() { return /* binding */ Checkbox; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-checkbox */ \"(app-pages-browser)/./node_modules/@radix-ui/react-checkbox/dist/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_Check_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Check!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Checkbox auto */ \n\n\n\n\nconst Checkbox = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>/*#__PURE__*/ {\n let { className, ...props } = param;\n return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\", className),\n ...props,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__.Indicator, {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex items-center justify-center text-current\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\checkbox.tsx\",\n lineNumber: 24,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\checkbox.tsx\",\n lineNumber: 21,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\checkbox.tsx\",\n lineNumber: 13,\n columnNumber: 3\n }, undefined);\n});\n_c1 = Checkbox;\nCheckbox.displayName = _radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__.Root.displayName;\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Checkbox$React.forwardRef\");\n$RefreshReg$(_c1, \"Checkbox\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvY2hlY2tib3gudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRStCO0FBQytCO0FBQ3pCO0FBRUo7QUFFakMsTUFBTUkseUJBQVdKLDZDQUFnQixNQUcvQixRQUEwQk07UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87V0FDeEIsOERBQUNQLDBEQUFzQjtRQUNyQkssS0FBS0E7UUFDTEMsV0FBV0osOENBQUVBLENBQ1gsa1RBQ0FJO1FBRUQsR0FBR0MsS0FBSztrQkFFVCw0RUFBQ1AsK0RBQTJCO1lBQzFCTSxXQUFXSiw4Q0FBRUEsQ0FBQztzQkFFZCw0RUFBQ0QsaUZBQUtBO2dCQUFDSyxXQUFVOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUc7O0FBRTFCSCxTQUFTTyxXQUFXLEdBQUdWLDBEQUFzQixDQUFDVSxXQUFXO0FBRXJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2NvbXBvbmVudHMvdWkvY2hlY2tib3gudHN4PzQxZTIiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xyXG5cclxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgKiBhcyBDaGVja2JveFByaW1pdGl2ZSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBDaGVjayB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XHJcblxyXG5pbXBvcnQgeyBjbiB9IGZyb20gJ0AvbGliL3V0aWxzJztcclxuXHJcbmNvbnN0IENoZWNrYm94ID0gUmVhY3QuZm9yd2FyZFJlZjxcclxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBDaGVja2JveFByaW1pdGl2ZS5Sb290PixcclxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIENoZWNrYm94UHJpbWl0aXZlLlJvb3Q+XHJcbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcclxuICA8Q2hlY2tib3hQcmltaXRpdmUuUm9vdFxyXG4gICAgcmVmPXtyZWZ9XHJcbiAgICBjbGFzc05hbWU9e2NuKFxyXG4gICAgICAncGVlciBoLTQgdy00IHNocmluay0wIHJvdW5kZWQtc20gYm9yZGVyIGJvcmRlci1wcmltYXJ5IHJpbmctb2Zmc2V0LWJhY2tncm91bmQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBkaXNhYmxlZDpvcGFjaXR5LTUwIGRhdGEtW3N0YXRlPWNoZWNrZWRdOmJnLXByaW1hcnkgZGF0YS1bc3RhdGU9Y2hlY2tlZF06dGV4dC1wcmltYXJ5LWZvcmVncm91bmQnLFxyXG4gICAgICBjbGFzc05hbWVcclxuICAgICl9XHJcbiAgICB7Li4ucHJvcHN9XHJcbiAgPlxyXG4gICAgPENoZWNrYm94UHJpbWl0aXZlLkluZGljYXRvclxyXG4gICAgICBjbGFzc05hbWU9e2NuKCdmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LWN1cnJlbnQnKX1cclxuICAgID5cclxuICAgICAgPENoZWNrIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPlxyXG4gICAgPC9DaGVja2JveFByaW1pdGl2ZS5JbmRpY2F0b3I+XHJcbiAgPC9DaGVja2JveFByaW1pdGl2ZS5Sb290PlxyXG4pKTtcclxuQ2hlY2tib3guZGlzcGxheU5hbWUgPSBDaGVja2JveFByaW1pdGl2ZS5Sb290LmRpc3BsYXlOYW1lO1xyXG5cclxuZXhwb3J0IHsgQ2hlY2tib3ggfTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiQ2hlY2tib3hQcmltaXRpdmUiLCJDaGVjayIsImNuIiwiQ2hlY2tib3giLCJmb3J3YXJkUmVmIiwicmVmIiwiY2xhc3NOYW1lIiwicHJvcHMiLCJSb290IiwiSW5kaWNhdG9yIiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/checkbox.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/ui/collapsible.tsx":
|
||
/*!***************************************!*\
|
||
!*** ./components/ui/collapsible.tsx ***!
|
||
\***************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Collapsible: function() { return /* binding */ Collapsible; },\n/* harmony export */ CollapsibleContent: function() { return /* binding */ CollapsibleContent; },\n/* harmony export */ CollapsibleTrigger: function() { return /* binding */ CollapsibleTrigger; }\n/* harmony export */ });\n/* harmony import */ var _radix_ui_react_collapsible__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @radix-ui/react-collapsible */ \"(app-pages-browser)/./node_modules/@radix-ui/react-collapsible/dist/index.mjs\");\n/* __next_internal_client_entry_do_not_use__ Collapsible,CollapsibleTrigger,CollapsibleContent auto */ \nconst Collapsible = _radix_ui_react_collapsible__WEBPACK_IMPORTED_MODULE_0__.Root;\nconst CollapsibleTrigger = _radix_ui_react_collapsible__WEBPACK_IMPORTED_MODULE_0__.CollapsibleTrigger;\nconst CollapsibleContent = _radix_ui_react_collapsible__WEBPACK_IMPORTED_MODULE_0__.CollapsibleContent;\n\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvY29sbGFwc2libGUudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7dUdBRW9FO0FBRXBFLE1BQU1DLGNBQWNELDZEQUF5QjtBQUU3QyxNQUFNRyxxQkFBcUJILDJFQUF1QztBQUVsRSxNQUFNSSxxQkFBcUJKLDJFQUF1QztBQUVIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2NvbXBvbmVudHMvdWkvY29sbGFwc2libGUudHN4PzE0YzEiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xyXG5cclxuaW1wb3J0ICogYXMgQ29sbGFwc2libGVQcmltaXRpdmUgZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbGxhcHNpYmxlJztcclxuXHJcbmNvbnN0IENvbGxhcHNpYmxlID0gQ29sbGFwc2libGVQcmltaXRpdmUuUm9vdDtcclxuXHJcbmNvbnN0IENvbGxhcHNpYmxlVHJpZ2dlciA9IENvbGxhcHNpYmxlUHJpbWl0aXZlLkNvbGxhcHNpYmxlVHJpZ2dlcjtcclxuXHJcbmNvbnN0IENvbGxhcHNpYmxlQ29udGVudCA9IENvbGxhcHNpYmxlUHJpbWl0aXZlLkNvbGxhcHNpYmxlQ29udGVudDtcclxuXHJcbmV4cG9ydCB7IENvbGxhcHNpYmxlLCBDb2xsYXBzaWJsZVRyaWdnZXIsIENvbGxhcHNpYmxlQ29udGVudCB9O1xyXG4iXSwibmFtZXMiOlsiQ29sbGFwc2libGVQcmltaXRpdmUiLCJDb2xsYXBzaWJsZSIsIlJvb3QiLCJDb2xsYXBzaWJsZVRyaWdnZXIiLCJDb2xsYXBzaWJsZUNvbnRlbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/collapsible.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/ui/container-scroll-animation-demo.tsx":
|
||
/*!***********************************************************!*\
|
||
!*** ./components/ui/container-scroll-animation-demo.tsx ***!
|
||
\***********************************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ HeroScrollDemo; }\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 _components_ui_container_scroll_animation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ui/container-scroll-animation */ \"(app-pages-browser)/./components/ui/container-scroll-animation.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\nfunction HeroScrollDemo() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col overflow-hidden\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_container_scroll_animation__WEBPACK_IMPORTED_MODULE_1__.ContainerScroll, {\n titleComponent: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-base font-medium uppercase tracking-[0.3em] text-neutral-500 dark:text-neutral-400\",\n children: \"Strategieberatung & Konzeption\"\n }, void 0, false, void 0, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-4xl font-semibold text-black dark:text-white\",\n children: \"Gemeinsam entwickeln wir die richtige digitale Strategie f\\xfcr Ihr Unternehmen\"\n }, void 0, false, void 0, void 0)\n ]\n }, void 0, true),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: \"/Domain-Einrichtung%20%26%20Verwaltung.gif\",\n alt: \"Domain-Einrichtung und Verwaltung\",\n height: 720,\n width: 1400,\n className: \"mx-auto h-full max-h-[540px] w-full rounded-2xl object-cover object-center\",\n draggable: false\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\container-scroll-animation-demo.tsx\",\n lineNumber: 20,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\container-scroll-animation-demo.tsx\",\n lineNumber: 8,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\container-scroll-animation-demo.tsx\",\n lineNumber: 7,\n columnNumber: 5\n }, this);\n}\n_c = HeroScrollDemo;\nvar _c;\n$RefreshReg$(_c, \"HeroScrollDemo\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvY29udGFpbmVyLXNjcm9sbC1hbmltYXRpb24tZGVtby50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUU2RTtBQUU5RCxTQUFTQztJQUN0QixxQkFDRSw4REFBQ0M7UUFBSUMsV0FBVTtrQkFDYiw0RUFBQ0gsc0ZBQWVBO1lBQ2RJLDhCQUNFOztrQ0FDRSw4REFBQ0M7d0JBQUVGLFdBQVU7a0NBQTBGOztrQ0FHdkcsOERBQUNHO3dCQUFHSCxXQUFVO2tDQUFvRDs7OztzQkFNdEUsNEVBQUNJO2dCQUNDQyxLQUFJO2dCQUNKQyxLQUFJO2dCQUNKQyxRQUFRO2dCQUNSQyxPQUFPO2dCQUNQUixXQUFVO2dCQUNWUyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7O0FBS3JCO0tBMUJ3QlgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy91aS9jb250YWluZXItc2Nyb2xsLWFuaW1hdGlvbi1kZW1vLnRzeD8yZjEyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5cclxuaW1wb3J0IHsgQ29udGFpbmVyU2Nyb2xsIH0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9jb250YWluZXItc2Nyb2xsLWFuaW1hdGlvblwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSGVyb1Njcm9sbERlbW8oKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgPENvbnRhaW5lclNjcm9sbFxyXG4gICAgICAgIHRpdGxlQ29tcG9uZW50PXtcclxuICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtYmFzZSBmb250LW1lZGl1bSB1cHBlcmNhc2UgdHJhY2tpbmctWzAuM2VtXSB0ZXh0LW5ldXRyYWwtNTAwIGRhcms6dGV4dC1uZXV0cmFsLTQwMFwiPlxyXG4gICAgICAgICAgICAgIFN0cmF0ZWdpZWJlcmF0dW5nICYgS29uemVwdGlvblxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTR4bCBmb250LXNlbWlib2xkIHRleHQtYmxhY2sgZGFyazp0ZXh0LXdoaXRlXCI+XHJcbiAgICAgICAgICAgICAgR2VtZWluc2FtIGVudHdpY2tlbG4gd2lyIGRpZSByaWNodGlnZSBkaWdpdGFsZSBTdHJhdGVnaWUgZsO8ciBJaHIgVW50ZXJuZWhtZW5cclxuICAgICAgICAgICAgPC9oMT5cclxuICAgICAgICAgIDwvPlxyXG4gICAgICAgIH1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgIHNyYz1cIi9Eb21haW4tRWlucmljaHR1bmclMjAlMjYlMjBWZXJ3YWx0dW5nLmdpZlwiXHJcbiAgICAgICAgICBhbHQ9XCJEb21haW4tRWlucmljaHR1bmcgdW5kIFZlcndhbHR1bmdcIlxyXG4gICAgICAgICAgaGVpZ2h0PXs3MjB9XHJcbiAgICAgICAgICB3aWR0aD17MTQwMH1cclxuICAgICAgICAgIGNsYXNzTmFtZT1cIm14LWF1dG8gaC1mdWxsIG1heC1oLVs1NDBweF0gdy1mdWxsIHJvdW5kZWQtMnhsIG9iamVjdC1jb3ZlciBvYmplY3QtY2VudGVyXCJcclxuICAgICAgICAgIGRyYWdnYWJsZT17ZmFsc2V9XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9Db250YWluZXJTY3JvbGw+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG4iXSwibmFtZXMiOlsiQ29udGFpbmVyU2Nyb2xsIiwiSGVyb1Njcm9sbERlbW8iLCJkaXYiLCJjbGFzc05hbWUiLCJ0aXRsZUNvbXBvbmVudCIsInAiLCJoMSIsImltZyIsInNyYyIsImFsdCIsImhlaWdodCIsIndpZHRoIiwiZHJhZ2dhYmxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/container-scroll-animation-demo.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/ui/container-scroll-animation.tsx":
|
||
/*!******************************************************!*\
|
||
!*** ./components/ui/container-scroll-animation.tsx ***!
|
||
\******************************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Card: function() { return /* binding */ Card; },\n/* harmony export */ ContainerScroll: function() { return /* binding */ ContainerScroll; },\n/* harmony export */ Header: function() { return /* binding */ Header; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var motion_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion/react */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-scroll.mjs\");\n/* harmony import */ var motion_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion/react */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-transform.mjs\");\n/* harmony import */ var motion_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion/react */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\");\n/* __next_internal_client_entry_do_not_use__ ContainerScroll,Header,Card auto */ \nvar _s = $RefreshSig$();\n\n\nconst ContainerScroll = (param)=>{\n let { titleComponent, children } = param;\n _s();\n const containerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const { scrollYProgress } = (0,motion_react__WEBPACK_IMPORTED_MODULE_2__.useScroll)({\n target: containerRef\n });\n const [isMobile, setIsMobile] = react__WEBPACK_IMPORTED_MODULE_1___default().useState(false);\n react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(()=>{\n const checkMobile = ()=>{\n setIsMobile(window.innerWidth <= 768);\n };\n checkMobile();\n window.addEventListener(\"resize\", checkMobile);\n return ()=>{\n window.removeEventListener(\"resize\", checkMobile);\n };\n }, []);\n const scaleDimensions = ()=>{\n return isMobile ? [\n 0.7,\n 0.9\n ] : [\n 1.05,\n 1\n ];\n };\n const rotate = (0,motion_react__WEBPACK_IMPORTED_MODULE_3__.useTransform)(scrollYProgress, [\n 0,\n 1\n ], [\n 20,\n 0\n ]);\n const scale = (0,motion_react__WEBPACK_IMPORTED_MODULE_3__.useTransform)(scrollYProgress, [\n 0,\n 1\n ], scaleDimensions());\n const translate = (0,motion_react__WEBPACK_IMPORTED_MODULE_3__.useTransform)(scrollYProgress, [\n 0,\n 1\n ], [\n 0,\n -100\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative flex h-[60rem] items-center justify-center p-2 md:h-[80rem] md:p-20\",\n ref: containerRef,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full py-10 md:py-40\",\n style: {\n perspective: \"1000px\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Header, {\n translate: translate,\n titleComponent: titleComponent\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\container-scroll-animation.tsx\",\n lineNumber: 49,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Card, {\n rotate: rotate,\n translate: translate,\n scale: scale,\n children: children\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\container-scroll-animation.tsx\",\n lineNumber: 50,\n columnNumber: 9\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\container-scroll-animation.tsx\",\n lineNumber: 43,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\container-scroll-animation.tsx\",\n lineNumber: 39,\n columnNumber: 5\n }, undefined);\n};\n_s(ContainerScroll, \"ASbD8gX0RUr8mvLoxB2H8s3CAs0=\", false, function() {\n return [\n motion_react__WEBPACK_IMPORTED_MODULE_2__.useScroll,\n motion_react__WEBPACK_IMPORTED_MODULE_3__.useTransform,\n motion_react__WEBPACK_IMPORTED_MODULE_3__.useTransform,\n motion_react__WEBPACK_IMPORTED_MODULE_3__.useTransform\n ];\n});\n_c = ContainerScroll;\nconst Header = (param)=>{\n let { translate, titleComponent } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(motion_react__WEBPACK_IMPORTED_MODULE_4__.motion.div, {\n style: {\n translateY: translate\n },\n className: \"div mx-auto max-w-5xl text-center\",\n children: titleComponent\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\container-scroll-animation.tsx\",\n lineNumber: 60,\n columnNumber: 5\n }, undefined);\n};\n_c1 = Header;\nconst Card = (param)=>{\n let { rotate, scale, children } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(motion_react__WEBPACK_IMPORTED_MODULE_4__.motion.div, {\n style: {\n rotateX: rotate,\n scale,\n boxShadow: \"0 0 #0000004d, 0 9px 20px #0000004a, 0 37px 37px #00000042, 0 84px 50px #00000026, 0 149px 60px #0000000a, 0 233px 65px #00000003\"\n },\n className: \"mx-auto -mt-12 h-[30rem] w-full max-w-5xl rounded-[30px] border-4 border-[#6C6C6C] bg-[#222222] p-2 shadow-2xl md:h-[40rem] md:p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \" h-full w-full overflow-hidden rounded-2xl bg-gray-100 p-3 dark:bg-zinc-900 md:rounded-2xl md:p-4 \",\n children: children\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\container-scroll-animation.tsx\",\n lineNumber: 91,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\container-scroll-animation.tsx\",\n lineNumber: 82,\n columnNumber: 5\n }, undefined);\n};\n_c2 = Card;\nvar _c, _c1, _c2;\n$RefreshReg$(_c, \"ContainerScroll\");\n$RefreshReg$(_c1, \"Header\");\n$RefreshReg$(_c2, \"Card\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvY29udGFpbmVyLXNjcm9sbC1hbmltYXRpb24udHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBRXNDO0FBQ3NDO0FBRXJFLE1BQU1LLGtCQUFrQjtRQUFDLEVBQzlCQyxjQUFjLEVBQ2RDLFFBQVEsRUFJVDs7SUFDQyxNQUFNQyxlQUFlUCw2Q0FBTUEsQ0FBaUI7SUFDNUMsTUFBTSxFQUFFUSxlQUFlLEVBQUUsR0FBR04sdURBQVNBLENBQUM7UUFDcENPLFFBQVFGO0lBQ1Y7SUFDQSxNQUFNLENBQUNHLFVBQVVDLFlBQVksR0FBR1oscURBQWMsQ0FBQztJQUUvQ0Esc0RBQWUsQ0FBQztRQUNkLE1BQU1lLGNBQWM7WUFDbEJILFlBQVlJLE9BQU9DLFVBQVUsSUFBSTtRQUNuQztRQUNBRjtRQUNBQyxPQUFPRSxnQkFBZ0IsQ0FBQyxVQUFVSDtRQUNsQyxPQUFPO1lBQ0xDLE9BQU9HLG1CQUFtQixDQUFDLFVBQVVKO1FBQ3ZDO0lBQ0YsR0FBRyxFQUFFO0lBRUwsTUFBTUssa0JBQWtCO1FBQ3RCLE9BQU9ULFdBQVc7WUFBQztZQUFLO1NBQUksR0FBRztZQUFDO1lBQU07U0FBRTtJQUMxQztJQUVBLE1BQU1VLFNBQVNqQiwwREFBWUEsQ0FBQ0ssaUJBQWlCO1FBQUM7UUFBRztLQUFFLEVBQUU7UUFBQztRQUFJO0tBQUU7SUFDNUQsTUFBTWEsUUFBUWxCLDBEQUFZQSxDQUFDSyxpQkFBaUI7UUFBQztRQUFHO0tBQUUsRUFBRVc7SUFDcEQsTUFBTUcsWUFBWW5CLDBEQUFZQSxDQUFDSyxpQkFBaUI7UUFBQztRQUFHO0tBQUUsRUFBRTtRQUFDO1FBQUcsQ0FBQztLQUFJO0lBRWpFLHFCQUNFLDhEQUFDZTtRQUNDQyxXQUFVO1FBQ1ZDLEtBQUtsQjtrQkFFTCw0RUFBQ2dCO1lBQ0NDLFdBQVU7WUFDVkUsT0FBTztnQkFDTEMsYUFBYTtZQUNmOzs4QkFFQSw4REFBQ0M7b0JBQU9OLFdBQVdBO29CQUFXakIsZ0JBQWdCQTs7Ozs7OzhCQUM5Qyw4REFBQ3dCO29CQUFLVCxRQUFRQTtvQkFBUUUsV0FBV0E7b0JBQVdELE9BQU9BOzhCQUNoRGY7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS1gsRUFBRTtHQWxEV0Y7O1FBUWlCRixtREFBU0E7UUFvQnRCQyxzREFBWUE7UUFDYkEsc0RBQVlBO1FBQ1JBLHNEQUFZQTs7O0tBOUJuQkM7QUFvRE4sTUFBTXdCLFNBQVM7UUFBQyxFQUFFTixTQUFTLEVBQUVqQixjQUFjLEVBQU87SUFDdkQscUJBQ0UsOERBQUNKLGdEQUFNQSxDQUFDc0IsR0FBRztRQUNURyxPQUFPO1lBQ0xJLFlBQVlSO1FBQ2Q7UUFDQUUsV0FBVTtrQkFFVG5COzs7Ozs7QUFHUCxFQUFFO01BWFd1QjtBQWFOLE1BQU1DLE9BQU87UUFBQyxFQUNuQlQsTUFBTSxFQUNOQyxLQUFLLEVBQ0xmLFFBQVEsRUFNVDtJQUNDLHFCQUNFLDhEQUFDTCxnREFBTUEsQ0FBQ3NCLEdBQUc7UUFDVEcsT0FBTztZQUNMSyxTQUFTWDtZQUNUQztZQUNBVyxXQUNFO1FBQ0o7UUFDQVIsV0FBVTtrQkFFViw0RUFBQ0Q7WUFBSUMsV0FBVTtzQkFDWmxCOzs7Ozs7Ozs7OztBQUlULEVBQUU7TUF6Qld1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9jb21wb25lbnRzL3VpL2NvbnRhaW5lci1zY3JvbGwtYW5pbWF0aW9uLnRzeD83YjY0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5cclxuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBtb3Rpb24sIE1vdGlvblZhbHVlLCB1c2VTY3JvbGwsIHVzZVRyYW5zZm9ybSB9IGZyb20gXCJtb3Rpb24vcmVhY3RcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBDb250YWluZXJTY3JvbGwgPSAoe1xyXG4gIHRpdGxlQ29tcG9uZW50LFxyXG4gIGNoaWxkcmVuLFxyXG59OiB7XHJcbiAgdGl0bGVDb21wb25lbnQ6IHN0cmluZyB8IFJlYWN0LlJlYWN0Tm9kZTtcclxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xyXG59KSA9PiB7XHJcbiAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcclxuICBjb25zdCB7IHNjcm9sbFlQcm9ncmVzcyB9ID0gdXNlU2Nyb2xsKHtcclxuICAgIHRhcmdldDogY29udGFpbmVyUmVmLFxyXG4gIH0pO1xyXG4gIGNvbnN0IFtpc01vYmlsZSwgc2V0SXNNb2JpbGVdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xyXG5cclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3QgY2hlY2tNb2JpbGUgPSAoKSA9PiB7XHJcbiAgICAgIHNldElzTW9iaWxlKHdpbmRvdy5pbm5lcldpZHRoIDw9IDc2OCk7XHJcbiAgICB9O1xyXG4gICAgY2hlY2tNb2JpbGUoKTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNoZWNrTW9iaWxlKTtcclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNoZWNrTW9iaWxlKTtcclxuICAgIH07XHJcbiAgfSwgW10pO1xyXG5cclxuICBjb25zdCBzY2FsZURpbWVuc2lvbnMgPSAoKSA9PiB7XHJcbiAgICByZXR1cm4gaXNNb2JpbGUgPyBbMC43LCAwLjldIDogWzEuMDUsIDFdO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IHJvdGF0ZSA9IHVzZVRyYW5zZm9ybShzY3JvbGxZUHJvZ3Jlc3MsIFswLCAxXSwgWzIwLCAwXSk7XHJcbiAgY29uc3Qgc2NhbGUgPSB1c2VUcmFuc2Zvcm0oc2Nyb2xsWVByb2dyZXNzLCBbMCwgMV0sIHNjYWxlRGltZW5zaW9ucygpKTtcclxuICBjb25zdCB0cmFuc2xhdGUgPSB1c2VUcmFuc2Zvcm0oc2Nyb2xsWVByb2dyZXNzLCBbMCwgMV0sIFswLCAtMTAwXSk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIGZsZXggaC1bNjByZW1dIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBwLTIgbWQ6aC1bODByZW1dIG1kOnAtMjBcIlxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgID5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIHctZnVsbCBweS0xMCBtZDpweS00MFwiXHJcbiAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgIHBlcnNwZWN0aXZlOiBcIjEwMDBweFwiLFxyXG4gICAgICAgIH19XHJcbiAgICAgID5cclxuICAgICAgICA8SGVhZGVyIHRyYW5zbGF0ZT17dHJhbnNsYXRlfSB0aXRsZUNvbXBvbmVudD17dGl0bGVDb21wb25lbnR9IC8+XHJcbiAgICAgICAgPENhcmQgcm90YXRlPXtyb3RhdGV9IHRyYW5zbGF0ZT17dHJhbnNsYXRlfSBzY2FsZT17c2NhbGV9PlxyXG4gICAgICAgICAge2NoaWxkcmVufVxyXG4gICAgICAgIDwvQ2FyZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEhlYWRlciA9ICh7IHRyYW5zbGF0ZSwgdGl0bGVDb21wb25lbnQgfTogYW55KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxtb3Rpb24uZGl2XHJcbiAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgdHJhbnNsYXRlWTogdHJhbnNsYXRlLFxyXG4gICAgICB9fVxyXG4gICAgICBjbGFzc05hbWU9XCJkaXYgbXgtYXV0byBtYXgtdy01eGwgdGV4dC1jZW50ZXJcIlxyXG4gICAgPlxyXG4gICAgICB7dGl0bGVDb21wb25lbnR9XHJcbiAgICA8L21vdGlvbi5kaXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBDYXJkID0gKHtcclxuICByb3RhdGUsXHJcbiAgc2NhbGUsXHJcbiAgY2hpbGRyZW4sXHJcbn06IHtcclxuICByb3RhdGU6IE1vdGlvblZhbHVlPG51bWJlcj47XHJcbiAgc2NhbGU6IE1vdGlvblZhbHVlPG51bWJlcj47XHJcbiAgdHJhbnNsYXRlOiBNb3Rpb25WYWx1ZTxudW1iZXI+O1xyXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XHJcbn0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPG1vdGlvbi5kaXZcclxuICAgICAgc3R5bGU9e3tcclxuICAgICAgICByb3RhdGVYOiByb3RhdGUsXHJcbiAgICAgICAgc2NhbGUsXHJcbiAgICAgICAgYm94U2hhZG93OlxyXG4gICAgICAgICAgXCIwIDAgIzAwMDAwMDRkLCAwIDlweCAyMHB4ICMwMDAwMDA0YSwgMCAzN3B4IDM3cHggIzAwMDAwMDQyLCAwIDg0cHggNTBweCAjMDAwMDAwMjYsIDAgMTQ5cHggNjBweCAjMDAwMDAwMGEsIDAgMjMzcHggNjVweCAjMDAwMDAwMDNcIixcclxuICAgICAgfX1cclxuICAgICAgY2xhc3NOYW1lPVwibXgtYXV0byAtbXQtMTIgaC1bMzByZW1dIHctZnVsbCBtYXgtdy01eGwgcm91bmRlZC1bMzBweF0gYm9yZGVyLTQgYm9yZGVyLVsjNkM2QzZDXSBiZy1bIzIyMjIyMl0gcC0yIHNoYWRvdy0yeGwgbWQ6aC1bNDByZW1dIG1kOnAtNlwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiIGgtZnVsbCB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtMnhsIGJnLWdyYXktMTAwIHAtMyBkYXJrOmJnLXppbmMtOTAwIG1kOnJvdW5kZWQtMnhsIG1kOnAtNCBcIj5cclxuICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tb3Rpb24uZGl2PlxyXG4gICk7XHJcbn07XHJcblxyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VSZWYiLCJtb3Rpb24iLCJ1c2VTY3JvbGwiLCJ1c2VUcmFuc2Zvcm0iLCJDb250YWluZXJTY3JvbGwiLCJ0aXRsZUNvbXBvbmVudCIsImNoaWxkcmVuIiwiY29udGFpbmVyUmVmIiwic2Nyb2xsWVByb2dyZXNzIiwidGFyZ2V0IiwiaXNNb2JpbGUiLCJzZXRJc01vYmlsZSIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiY2hlY2tNb2JpbGUiLCJ3aW5kb3ciLCJpbm5lcldpZHRoIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJzY2FsZURpbWVuc2lvbnMiLCJyb3RhdGUiLCJzY2FsZSIsInRyYW5zbGF0ZSIsImRpdiIsImNsYXNzTmFtZSIsInJlZiIsInN0eWxlIiwicGVyc3BlY3RpdmUiLCJIZWFkZXIiLCJDYXJkIiwidHJhbnNsYXRlWSIsInJvdGF0ZVgiLCJib3hTaGFkb3ciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/container-scroll-animation.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/ui/input.tsx":
|
||
/*!*********************************!*\
|
||
!*** ./components/ui/input.tsx ***!
|
||
\*********************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Input: function() { return /* binding */ Input; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\n\nconst Input = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, type, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: type,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\", className),\n ref: ref,\n ...props\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\input.tsx\",\n lineNumber: 11,\n columnNumber: 7\n }, undefined);\n});\n_c1 = Input;\nInput.displayName = \"Input\";\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Input$React.forwardRef\");\n$RefreshReg$(_c1, \"Input\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvaW5wdXQudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUErQjtBQUVFO0FBS2pDLE1BQU1FLHNCQUFRRiw2Q0FBZ0IsTUFDNUIsUUFBZ0NJO1FBQS9CLEVBQUVDLFNBQVMsRUFBRUMsSUFBSSxFQUFFLEdBQUdDLE9BQU87SUFDNUIscUJBQ0UsOERBQUNDO1FBQ0NGLE1BQU1BO1FBQ05ELFdBQVdKLDhDQUFFQSxDQUNYLHFYQUNBSTtRQUVGRCxLQUFLQTtRQUNKLEdBQUdHLEtBQUs7Ozs7OztBQUdmOztBQUVGTCxNQUFNTyxXQUFXLEdBQUc7QUFFSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9jb21wb25lbnRzL3VpL2lucHV0LnRzeD9kYTc5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuXHJcbmltcG9ydCB7IGNuIH0gZnJvbSAnQC9saWIvdXRpbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbnB1dFByb3BzXHJcbiAgZXh0ZW5kcyBSZWFjdC5JbnB1dEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQ+IHt9XHJcblxyXG5jb25zdCBJbnB1dCA9IFJlYWN0LmZvcndhcmRSZWY8SFRNTElucHV0RWxlbWVudCwgSW5wdXRQcm9wcz4oXHJcbiAgKHsgY2xhc3NOYW1lLCB0eXBlLCAuLi5wcm9wcyB9LCByZWYpID0+IHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9e3R5cGV9XHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbihcclxuICAgICAgICAgICdmbGV4IGgtMTAgdy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIHB4LTMgcHktMiB0ZXh0LXNtIHJpbmctb2Zmc2V0LWJhY2tncm91bmQgZmlsZTpib3JkZXItMCBmaWxlOmJnLXRyYW5zcGFyZW50IGZpbGU6dGV4dC1zbSBmaWxlOmZvbnQtbWVkaXVtIGZpbGU6dGV4dC1mb3JlZ3JvdW5kIHBsYWNlaG9sZGVyOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZyBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LTIgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTAnLFxyXG4gICAgICAgICAgY2xhc3NOYW1lXHJcbiAgICAgICAgKX1cclxuICAgICAgICByZWY9e3JlZn1cclxuICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgIC8+XHJcbiAgICApO1xyXG4gIH1cclxuKTtcclxuSW5wdXQuZGlzcGxheU5hbWUgPSAnSW5wdXQnO1xyXG5cclxuZXhwb3J0IHsgSW5wdXQgfTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiY24iLCJJbnB1dCIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJ0eXBlIiwicHJvcHMiLCJpbnB1dCIsImRpc3BsYXlOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/input.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/ui/textarea.tsx":
|
||
/*!************************************!*\
|
||
!*** ./components/ui/textarea.tsx ***!
|
||
\************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Textarea: function() { return /* binding */ Textarea; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\n\nconst Textarea = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"textarea\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\", className),\n ref: ref,\n ...props\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\textarea.tsx\",\n lineNumber: 11,\n columnNumber: 7\n }, undefined);\n});\n_c1 = Textarea;\nTextarea.displayName = \"Textarea\";\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Textarea$React.forwardRef\");\n$RefreshReg$(_c1, \"Textarea\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvdGV4dGFyZWEudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUErQjtBQUVFO0FBS2pDLE1BQU1FLHlCQUFXRiw2Q0FBZ0IsTUFDL0IsUUFBMEJJO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO0lBQ3RCLHFCQUNFLDhEQUFDQztRQUNDRixXQUFXSiw4Q0FBRUEsQ0FDWCx3U0FDQUk7UUFFRkQsS0FBS0E7UUFDSixHQUFHRSxLQUFLOzs7Ozs7QUFHZjs7QUFFRkosU0FBU00sV0FBVyxHQUFHO0FBRUgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy91aS90ZXh0YXJlYS50c3g/YjgwMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcblxyXG5pbXBvcnQgeyBjbiB9IGZyb20gJ0AvbGliL3V0aWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGV4dGFyZWFQcm9wc1xyXG4gIGV4dGVuZHMgUmVhY3QuVGV4dGFyZWFIVE1MQXR0cmlidXRlczxIVE1MVGV4dEFyZWFFbGVtZW50PiB7fVxyXG5cclxuY29uc3QgVGV4dGFyZWEgPSBSZWFjdC5mb3J3YXJkUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQsIFRleHRhcmVhUHJvcHM+KFxyXG4gICh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8dGV4dGFyZWFcclxuICAgICAgICBjbGFzc05hbWU9e2NuKFxyXG4gICAgICAgICAgJ2ZsZXggbWluLWgtWzgwcHhdIHctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItaW5wdXQgYmctYmFja2dyb3VuZCBweC0zIHB5LTIgdGV4dC1zbSByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIHBsYWNlaG9sZGVyOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZyBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LTIgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTAnLFxyXG4gICAgICAgICAgY2xhc3NOYW1lXHJcbiAgICAgICAgKX1cclxuICAgICAgICByZWY9e3JlZn1cclxuICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgIC8+XHJcbiAgICApO1xyXG4gIH1cclxuKTtcclxuVGV4dGFyZWEuZGlzcGxheU5hbWUgPSAnVGV4dGFyZWEnO1xyXG5cclxuZXhwb3J0IHsgVGV4dGFyZWEgfTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiY24iLCJUZXh0YXJlYSIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJwcm9wcyIsInRleHRhcmVhIiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/textarea.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/ui/timeline-demo.tsx":
|
||
/*!*****************************************!*\
|
||
!*** ./components/ui/timeline-demo.tsx ***!
|
||
\*****************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ TimelineDemo; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_ui_timeline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/timeline */ \"(app-pages-browser)/./components/ui/timeline.tsx\");\n/* harmony import */ var _lib_colors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/colors */ \"(app-pages-browser)/./lib/colors.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\nfunction TimelineDemo() {\n const data = [\n {\n title: \"01\",\n content: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-2xl p-6 transition-transform duration-300 hover:-translate-y-1\",\n style: {\n background: \"linear-gradient(135deg, \".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"F5, \").concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"E0)\"),\n minHeight: \"260px\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: \"Kennenlernen & Beratung\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 19,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-4 text-sm leading-relaxed\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: \"Wir lernen Sie und Ihr Unternehmen kennen, sprechen \\xfcber Ziele und W\\xfcnsche und schaffen eine klare Basis f\\xfcr das gemeinsame Projekt.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 25,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 12,\n columnNumber: 9\n }, this)\n },\n {\n title: \"02\",\n content: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-2xl p-6 transition-transform duration-300 hover:-translate-y-1\",\n style: {\n background: \"linear-gradient(135deg, \".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"F5, \").concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"E0)\"),\n minHeight: \"260px\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: \"Konzept & Struktur\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 45,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-4 text-sm leading-relaxed\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: \"Wir entwickeln Struktur, Sitemap und Content-Plan, damit jede Seite logisch aufgebaut ist und Nutzer:innen schnell die passenden Informationen finden.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 51,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 38,\n columnNumber: 9\n }, this)\n },\n {\n title: \"03\",\n content: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-2xl p-6 transition-transform duration-300 hover:-translate-y-1\",\n style: {\n background: \"linear-gradient(135deg, \".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"F5, \").concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"E0)\"),\n minHeight: \"260px\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: \"Design & Umsetzung\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 71,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-4 text-sm leading-relaxed\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: \"Wir gestalten Ihr digitales Erscheinungsbild und setzen das technische Fundament um – ganz nach Ihren Vorstellungen und abgestimmt auf Ihre Marke.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 77,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 64,\n columnNumber: 9\n }, this)\n },\n {\n title: \"04\",\n content: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-2xl p-6 transition-transform duration-300 hover:-translate-y-1\",\n style: {\n background: \"linear-gradient(135deg, \".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"F5, \").concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"E0)\"),\n minHeight: \"260px\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: \"Feinschliff & Go-Live\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 97,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-4 text-sm leading-relaxed\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: \"Wir finalisieren Inhalte, testen Performance und Sicherheit und begleiten Sie beim Launch, damit alles reibungslos l\\xe4uft.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 103,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 90,\n columnNumber: 9\n }, this)\n },\n {\n title: \"05\",\n content: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-2xl p-6 transition-transform duration-300 hover:-translate-y-1\",\n style: {\n background: \"linear-gradient(135deg, \".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"F5, \").concat(_lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.background, \"E0)\"),\n minHeight: \"260px\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.primary\n },\n children: \"Support & Pflege\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 123,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-4 text-sm leading-relaxed\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_3__.colors.secondary\n },\n children: \"Auch nach dem Launch bleiben wir an Ihrer Seite und k\\xfcmmern uns um Updates, Wartung und Optimierungen – f\\xfcr nachhaltigen Erfolg.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 129,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 116,\n columnNumber: 9\n }, this)\n }\n ];\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full overflow-clip\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_timeline__WEBPACK_IMPORTED_MODULE_2__.Timeline, {\n data: data\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 143,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline-demo.tsx\",\n lineNumber: 142,\n columnNumber: 5\n }, this);\n}\n_c = TimelineDemo;\nvar _c;\n$RefreshReg$(_c, \"TimelineDemo\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvdGltZWxpbmUtZGVtby50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUUwQjtBQUMwQjtBQUNkO0FBRXZCLFNBQVNHO0lBQ3RCLE1BQU1DLE9BQU87UUFDWDtZQUNFQyxPQUFPO1lBQ1BDLHVCQUNFLDhEQUFDQztnQkFDQ0MsV0FBVTtnQkFDVkMsT0FBTztvQkFDTEMsWUFBWSwyQkFBbURSLE9BQXhCQSwrQ0FBTUEsQ0FBQ1EsVUFBVSxFQUFDLFFBQXdCLE9BQWxCUiwrQ0FBTUEsQ0FBQ1EsVUFBVSxFQUFDO29CQUNqRkMsV0FBVztnQkFDYjs7a0NBRUEsOERBQUNDO3dCQUNDSixXQUFVO3dCQUNWQyxPQUFPOzRCQUFFSSxPQUFPWCwrQ0FBTUEsQ0FBQ1ksT0FBTzt3QkFBQztrQ0FDaEM7Ozs7OztrQ0FHRCw4REFBQ0M7d0JBQ0NQLFdBQVU7d0JBQ1ZDLE9BQU87NEJBQUVJLE9BQU9YLCtDQUFNQSxDQUFDYyxTQUFTO3dCQUFDO2tDQUNsQzs7Ozs7Ozs7Ozs7O1FBTVA7UUFDQTtZQUNFWCxPQUFPO1lBQ1BDLHVCQUNFLDhEQUFDQztnQkFDQ0MsV0FBVTtnQkFDVkMsT0FBTztvQkFDTEMsWUFBWSwyQkFBbURSLE9BQXhCQSwrQ0FBTUEsQ0FBQ1EsVUFBVSxFQUFDLFFBQXdCLE9BQWxCUiwrQ0FBTUEsQ0FBQ1EsVUFBVSxFQUFDO29CQUNqRkMsV0FBVztnQkFDYjs7a0NBRUEsOERBQUNDO3dCQUNDSixXQUFVO3dCQUNWQyxPQUFPOzRCQUFFSSxPQUFPWCwrQ0FBTUEsQ0FBQ1ksT0FBTzt3QkFBQztrQ0FDaEM7Ozs7OztrQ0FHRCw4REFBQ0M7d0JBQ0NQLFdBQVU7d0JBQ1ZDLE9BQU87NEJBQUVJLE9BQU9YLCtDQUFNQSxDQUFDYyxTQUFTO3dCQUFDO2tDQUNsQzs7Ozs7Ozs7Ozs7O1FBTVA7UUFDQTtZQUNFWCxPQUFPO1lBQ1BDLHVCQUNFLDhEQUFDQztnQkFDQ0MsV0FBVTtnQkFDVkMsT0FBTztvQkFDTEMsWUFBWSwyQkFBbURSLE9BQXhCQSwrQ0FBTUEsQ0FBQ1EsVUFBVSxFQUFDLFFBQXdCLE9BQWxCUiwrQ0FBTUEsQ0FBQ1EsVUFBVSxFQUFDO29CQUNqRkMsV0FBVztnQkFDYjs7a0NBRUEsOERBQUNDO3dCQUNDSixXQUFVO3dCQUNWQyxPQUFPOzRCQUFFSSxPQUFPWCwrQ0FBTUEsQ0FBQ1ksT0FBTzt3QkFBQztrQ0FDaEM7Ozs7OztrQ0FHRCw4REFBQ0M7d0JBQ0NQLFdBQVU7d0JBQ1ZDLE9BQU87NEJBQUVJLE9BQU9YLCtDQUFNQSxDQUFDYyxTQUFTO3dCQUFDO2tDQUNsQzs7Ozs7Ozs7Ozs7O1FBTVA7UUFDQTtZQUNFWCxPQUFPO1lBQ1BDLHVCQUNFLDhEQUFDQztnQkFDQ0MsV0FBVTtnQkFDVkMsT0FBTztvQkFDTEMsWUFBWSwyQkFBbURSLE9BQXhCQSwrQ0FBTUEsQ0FBQ1EsVUFBVSxFQUFDLFFBQXdCLE9BQWxCUiwrQ0FBTUEsQ0FBQ1EsVUFBVSxFQUFDO29CQUNqRkMsV0FBVztnQkFDYjs7a0NBRUEsOERBQUNDO3dCQUNDSixXQUFVO3dCQUNWQyxPQUFPOzRCQUFFSSxPQUFPWCwrQ0FBTUEsQ0FBQ1ksT0FBTzt3QkFBQztrQ0FDaEM7Ozs7OztrQ0FHRCw4REFBQ0M7d0JBQ0NQLFdBQVU7d0JBQ1ZDLE9BQU87NEJBQUVJLE9BQU9YLCtDQUFNQSxDQUFDYyxTQUFTO3dCQUFDO2tDQUNsQzs7Ozs7Ozs7Ozs7O1FBTVA7UUFDQTtZQUNFWCxPQUFPO1lBQ1BDLHVCQUNFLDhEQUFDQztnQkFDQ0MsV0FBVTtnQkFDVkMsT0FBTztvQkFDTEMsWUFBWSwyQkFBbURSLE9BQXhCQSwrQ0FBTUEsQ0FBQ1EsVUFBVSxFQUFDLFFBQXdCLE9BQWxCUiwrQ0FBTUEsQ0FBQ1EsVUFBVSxFQUFDO29CQUNqRkMsV0FBVztnQkFDYjs7a0NBRUEsOERBQUNDO3dCQUNDSixXQUFVO3dCQUNWQyxPQUFPOzRCQUFFSSxPQUFPWCwrQ0FBTUEsQ0FBQ1ksT0FBTzt3QkFBQztrQ0FDaEM7Ozs7OztrQ0FHRCw4REFBQ0M7d0JBQ0NQLFdBQVU7d0JBQ1ZDLE9BQU87NEJBQUVJLE9BQU9YLCtDQUFNQSxDQUFDYyxTQUFTO3dCQUFDO2tDQUNsQzs7Ozs7Ozs7Ozs7O1FBTVA7S0FDRDtJQUVELHFCQUNFLDhEQUFDVDtRQUFJQyxXQUFVO2tCQUNiLDRFQUFDUCw2REFBUUE7WUFBQ0csTUFBTUE7Ozs7Ozs7Ozs7O0FBR3RCO0tBM0l3QkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy91aS90aW1lbGluZS1kZW1vLnRzeD80NjViIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBUaW1lbGluZSB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvdGltZWxpbmVcIjtcclxuaW1wb3J0IHsgY29sb3JzIH0gZnJvbSBcIkAvbGliL2NvbG9yc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gVGltZWxpbmVEZW1vKCkge1xyXG4gIGNvbnN0IGRhdGEgPSBbXHJcbiAgICB7XHJcbiAgICAgIHRpdGxlOiBcIjAxXCIsXHJcbiAgICAgIGNvbnRlbnQ6IChcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJyb3VuZGVkLTJ4bCBwLTYgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIGhvdmVyOi10cmFuc2xhdGUteS0xXCJcclxuICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAke2NvbG9ycy5iYWNrZ3JvdW5kfUY1LCAke2NvbG9ycy5iYWNrZ3JvdW5kfUUwKWAsXHJcbiAgICAgICAgICAgIG1pbkhlaWdodDogXCIyNjBweFwiLFxyXG4gICAgICAgICAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aDNcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkXCJcclxuICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIEtlbm5lbmxlcm5lbiAmIEJlcmF0dW5nXHJcbiAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgPHBcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibXQtNCB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZFwiXHJcbiAgICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIFdpciBsZXJuZW4gU2llIHVuZCBJaHIgVW50ZXJuZWhtZW4ga2VubmVuLCBzcHJlY2hlbiDDvGJlciBaaWVsZSB1bmQgV8O8bnNjaGUgdW5kIHNjaGFmZmVuXHJcbiAgICAgICAgICAgIGVpbmUga2xhcmUgQmFzaXMgZsO8ciBkYXMgZ2VtZWluc2FtZSBQcm9qZWt0LlxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGl0bGU6IFwiMDJcIixcclxuICAgICAgY29udGVudDogKFxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT1cInJvdW5kZWQtMnhsIHAtNiB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgaG92ZXI6LXRyYW5zbGF0ZS15LTFcIlxyXG4gICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogYGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICR7Y29sb3JzLmJhY2tncm91bmR9RjUsICR7Y29sb3JzLmJhY2tncm91bmR9RTApYCxcclxuICAgICAgICAgICAgbWluSGVpZ2h0OiBcIjI2MHB4XCIsXHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxoM1xyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIlxyXG4gICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgS29uemVwdCAmIFN0cnVrdHVyXHJcbiAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgPHBcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibXQtNCB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZFwiXHJcbiAgICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIFdpciBlbnR3aWNrZWxuIFN0cnVrdHVyLCBTaXRlbWFwIHVuZCBDb250ZW50LVBsYW4sIGRhbWl0IGplZGUgU2VpdGUgbG9naXNjaCBhdWZnZWJhdXQgaXN0XHJcbiAgICAgICAgICAgIHVuZCBOdXR6ZXI6aW5uZW4gc2NobmVsbCBkaWUgcGFzc2VuZGVuIEluZm9ybWF0aW9uZW4gZmluZGVuLlxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGl0bGU6IFwiMDNcIixcclxuICAgICAgY29udGVudDogKFxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT1cInJvdW5kZWQtMnhsIHAtNiB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgaG92ZXI6LXRyYW5zbGF0ZS15LTFcIlxyXG4gICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogYGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICR7Y29sb3JzLmJhY2tncm91bmR9RjUsICR7Y29sb3JzLmJhY2tncm91bmR9RTApYCxcclxuICAgICAgICAgICAgbWluSGVpZ2h0OiBcIjI2MHB4XCIsXHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxoM1xyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIlxyXG4gICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgRGVzaWduICYgVW1zZXR6dW5nXHJcbiAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgPHBcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibXQtNCB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZFwiXHJcbiAgICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMuc2Vjb25kYXJ5IH19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIFdpciBnZXN0YWx0ZW4gSWhyIGRpZ2l0YWxlcyBFcnNjaGVpbnVuZ3NiaWxkIHVuZCBzZXR6ZW4gZGFzIHRlY2huaXNjaGUgRnVuZGFtZW50IHVtIOKAkyBnYW56XHJcbiAgICAgICAgICAgIG5hY2ggSWhyZW4gVm9yc3RlbGx1bmdlbiB1bmQgYWJnZXN0aW1tdCBhdWYgSWhyZSBNYXJrZS5cclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRpdGxlOiBcIjA0XCIsXHJcbiAgICAgIGNvbnRlbnQ6IChcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJyb3VuZGVkLTJ4bCBwLTYgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIGhvdmVyOi10cmFuc2xhdGUteS0xXCJcclxuICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAke2NvbG9ycy5iYWNrZ3JvdW5kfUY1LCAke2NvbG9ycy5iYWNrZ3JvdW5kfUUwKWAsXHJcbiAgICAgICAgICAgIG1pbkhlaWdodDogXCIyNjBweFwiLFxyXG4gICAgICAgICAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aDNcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkXCJcclxuICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5wcmltYXJ5IH19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIEZlaW5zY2hsaWZmICYgR28tTGl2ZVxyXG4gICAgICAgICAgPC9oMz5cclxuICAgICAgICAgIDxwXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cIm10LTQgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWRcIlxyXG4gICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogY29sb3JzLnNlY29uZGFyeSB9fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBXaXIgZmluYWxpc2llcmVuIEluaGFsdGUsIHRlc3RlbiBQZXJmb3JtYW5jZSB1bmQgU2ljaGVyaGVpdCB1bmQgYmVnbGVpdGVuIFNpZSBiZWltIExhdW5jaCxcclxuICAgICAgICAgICAgZGFtaXQgYWxsZXMgcmVpYnVuZ3Nsb3MgbMOkdWZ0LlxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGl0bGU6IFwiMDVcIixcclxuICAgICAgY29udGVudDogKFxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT1cInJvdW5kZWQtMnhsIHAtNiB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgaG92ZXI6LXRyYW5zbGF0ZS15LTFcIlxyXG4gICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogYGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICR7Y29sb3JzLmJhY2tncm91bmR9RjUsICR7Y29sb3JzLmJhY2tncm91bmR9RTApYCxcclxuICAgICAgICAgICAgbWluSGVpZ2h0OiBcIjI2MHB4XCIsXHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxoM1xyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIlxyXG4gICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgU3VwcG9ydCAmIFBmbGVnZVxyXG4gICAgICAgICAgPC9oMz5cclxuICAgICAgICAgIDxwXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cIm10LTQgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWRcIlxyXG4gICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogY29sb3JzLnNlY29uZGFyeSB9fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBBdWNoIG5hY2ggZGVtIExhdW5jaCBibGVpYmVuIHdpciBhbiBJaHJlciBTZWl0ZSB1bmQga8O8bW1lcm4gdW5zIHVtIFVwZGF0ZXMsIFdhcnR1bmcgdW5kXHJcbiAgICAgICAgICAgIE9wdGltaWVydW5nZW4g4oCTIGbDvHIgbmFjaGhhbHRpZ2VuIEVyZm9sZy5cclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKSxcclxuICAgIH0sXHJcbiAgXTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgdy1mdWxsIG92ZXJmbG93LWNsaXBcIj5cclxuICAgICAgPFRpbWVsaW5lIGRhdGE9e2RhdGF9IC8+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJUaW1lbGluZSIsImNvbG9ycyIsIlRpbWVsaW5lRGVtbyIsImRhdGEiLCJ0aXRsZSIsImNvbnRlbnQiLCJkaXYiLCJjbGFzc05hbWUiLCJzdHlsZSIsImJhY2tncm91bmQiLCJtaW5IZWlnaHQiLCJoMyIsImNvbG9yIiwicHJpbWFyeSIsInAiLCJzZWNvbmRhcnkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/timeline-demo.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/ui/timeline.tsx":
|
||
/*!************************************!*\
|
||
!*** ./components/ui/timeline.tsx ***!
|
||
\************************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Timeline: function() { return /* binding */ Timeline; }\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 motion_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion/react */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-scroll.mjs\");\n/* harmony import */ var motion_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion/react */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-transform.mjs\");\n/* harmony import */ var motion_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion/react */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_colors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/colors */ \"(app-pages-browser)/./lib/colors.ts\");\n/* __next_internal_client_entry_do_not_use__ Timeline auto */ \nvar _s = $RefreshSig$();\n\n\n\nconst Timeline = (param)=>{\n let { data } = param;\n _s();\n const ref = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const containerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const [height, setHeight] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (ref.current) {\n const rect = ref.current.getBoundingClientRect();\n setHeight(rect.height);\n }\n }, [\n ref\n ]);\n const { scrollYProgress } = (0,motion_react__WEBPACK_IMPORTED_MODULE_3__.useScroll)({\n target: containerRef,\n offset: [\n \"start 10%\",\n \"end 50%\"\n ]\n });\n const heightTransform = (0,motion_react__WEBPACK_IMPORTED_MODULE_4__.useTransform)(scrollYProgress, [\n 0,\n 1\n ], [\n 0,\n height\n ]);\n const opacityTransform = (0,motion_react__WEBPACK_IMPORTED_MODULE_4__.useTransform)(scrollYProgress, [\n 0,\n 0.1\n ], [\n 0,\n 1\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full font-sans md:px-10\",\n ref: containerRef,\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.background\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-7xl mx-auto py-20 px-4 md:px-8 lg:px-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-lg md:text-4xl mb-4 max-w-4xl\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.primary\n },\n children: \"Unser Projektfahrplan im \\xdcberblick\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline.tsx\",\n lineNumber: 39,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm md:text-base max-w-sm\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.secondary\n },\n children: \"Schritt f\\xfcr Schritt zur erfolgreichen Website – transparent, strukturiert und begleitet von unserem Team.\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline.tsx\",\n lineNumber: 45,\n columnNumber: 9\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline.tsx\",\n lineNumber: 38,\n columnNumber: 7\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n className: \"relative max-w-7xl mx-auto pb-20\",\n children: [\n data.map((item, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-start pt-10 md:pt-40 md:gap-10 min-h-[320px]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sticky flex flex-col md:flex-row z-40 items-center top-40 self-start max-w-xs lg:max-w-sm md:w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-10 absolute left-3 md:left-3 w-10 rounded-full flex items-center justify-center\",\n style: {\n backgroundColor: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.background\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-4 w-4 rounded-full border\",\n style: {\n backgroundColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.secondary, \"4D\"),\n borderColor: \"\".concat(_lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.secondary, \"66\")\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline.tsx\",\n lineNumber: 65,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline.tsx\",\n lineNumber: 61,\n columnNumber: 15\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"hidden md:block text-xl md:pl-20 md:text-5xl font-bold\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.primary\n },\n children: item.title\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline.tsx\",\n lineNumber: 73,\n columnNumber: 15\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline.tsx\",\n lineNumber: 60,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative pl-20 pr-4 md:pl-4 w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"md:hidden block text-2xl mb-4 text-left font-bold\",\n style: {\n color: _lib_colors__WEBPACK_IMPORTED_MODULE_2__.colors.primary\n },\n children: item.title\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline.tsx\",\n lineNumber: 82,\n columnNumber: 15\n }, undefined),\n item.content,\n \" \"\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline.tsx\",\n lineNumber: 81,\n columnNumber: 13\n }, undefined)\n ]\n }, index, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline.tsx\",\n lineNumber: 56,\n columnNumber: 11\n }, undefined)),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n height: height + \"px\"\n },\n className: \"absolute md:left-8 left-8 top-0 overflow-hidden w-[2px] bg-[linear-gradient(to_bottom,var(--tw-gradient-stops))] from-transparent from-[0%] via-neutral-200 dark:via-neutral-700 to-transparent to-[99%] [mask-image:linear-gradient(to_bottom,transparent_0%,black_10%,black_90%,transparent_100%)] \",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(motion_react__WEBPACK_IMPORTED_MODULE_5__.motion.div, {\n style: {\n height: heightTransform,\n opacity: opacityTransform\n },\n className: \"absolute inset-x-0 top-0 w-[2px] bg-gradient-to-t from-purple-500 via-blue-500 to-transparent from-[0%] via-[10%] rounded-full\"\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline.tsx\",\n lineNumber: 98,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline.tsx\",\n lineNumber: 92,\n columnNumber: 9\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline.tsx\",\n lineNumber: 54,\n columnNumber: 7\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\timeline.tsx\",\n lineNumber: 33,\n columnNumber: 5\n }, undefined);\n};\n_s(Timeline, \"kFz0QophyXZS+E0JAkQ+z6t2Fe0=\", false, function() {\n return [\n motion_react__WEBPACK_IMPORTED_MODULE_3__.useScroll,\n motion_react__WEBPACK_IMPORTED_MODULE_4__.useTransform,\n motion_react__WEBPACK_IMPORTED_MODULE_4__.useTransform\n ];\n});\n_c = Timeline;\nvar _c;\n$RefreshReg$(_c, \"Timeline\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvdGltZWxpbmUudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFFK0Q7QUFDSjtBQUNyQjtBQU8vQixNQUFNUSxXQUFXO1FBQUMsRUFBRUMsSUFBSSxFQUE2Qjs7SUFDMUQsTUFBTUMsTUFBTUwsNkNBQU1BLENBQWlCO0lBQ25DLE1BQU1NLGVBQWVOLDZDQUFNQSxDQUFpQjtJQUM1QyxNQUFNLENBQUNPLFFBQVFDLFVBQVUsR0FBR1AsK0NBQVFBLENBQUM7SUFFckNGLGdEQUFTQSxDQUFDO1FBQ1IsSUFBSU0sSUFBSUksT0FBTyxFQUFFO1lBQ2YsTUFBTUMsT0FBT0wsSUFBSUksT0FBTyxDQUFDRSxxQkFBcUI7WUFDOUNILFVBQVVFLEtBQUtILE1BQU07UUFDdkI7SUFDRixHQUFHO1FBQUNGO0tBQUk7SUFFUixNQUFNLEVBQUVPLGVBQWUsRUFBRSxHQUFHakIsdURBQVNBLENBQUM7UUFDcENrQixRQUFRUDtRQUNSUSxRQUFRO1lBQUM7WUFBYTtTQUFVO0lBQ2xDO0lBRUEsTUFBTUMsa0JBQWtCbkIsMERBQVlBLENBQUNnQixpQkFBaUI7UUFBQztRQUFHO0tBQUUsRUFBRTtRQUFDO1FBQUdMO0tBQU87SUFDekUsTUFBTVMsbUJBQW1CcEIsMERBQVlBLENBQUNnQixpQkFBaUI7UUFBQztRQUFHO0tBQUksRUFBRTtRQUFDO1FBQUc7S0FBRTtJQUV2RSxxQkFDRSw4REFBQ0s7UUFDQ0MsV0FBVTtRQUNWYixLQUFLQztRQUNMYSxPQUFPO1lBQUVDLGlCQUFpQmxCLCtDQUFNQSxDQUFDbUIsVUFBVTtRQUFDOzswQkFFNUMsOERBQUNKO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ0k7d0JBQ0NKLFdBQVU7d0JBQ1ZDLE9BQU87NEJBQUVJLE9BQU9yQiwrQ0FBTUEsQ0FBQ3NCLE9BQU87d0JBQUM7a0NBQ2hDOzs7Ozs7a0NBR0QsOERBQUNDO3dCQUNDUCxXQUFVO3dCQUNWQyxPQUFPOzRCQUFFSSxPQUFPckIsK0NBQU1BLENBQUN3QixTQUFTO3dCQUFDO2tDQUNsQzs7Ozs7Ozs7Ozs7OzBCQU1ILDhEQUFDVDtnQkFBSVosS0FBS0E7Z0JBQUthLFdBQVU7O29CQUN0QmQsS0FBS3VCLEdBQUcsQ0FBQyxDQUFDQyxNQUFNQyxzQkFDZiw4REFBQ1o7NEJBRUNDLFdBQVU7OzhDQUVWLDhEQUFDRDtvQ0FBSUMsV0FBVTs7c0RBQ2IsOERBQUNEOzRDQUNDQyxXQUFVOzRDQUNWQyxPQUFPO2dEQUFFQyxpQkFBaUJsQiwrQ0FBTUEsQ0FBQ21CLFVBQVU7NENBQUM7c0RBRTVDLDRFQUFDSjtnREFDQ0MsV0FBVTtnREFDVkMsT0FBTztvREFDTEMsaUJBQWlCLEdBQW9CLE9BQWpCbEIsK0NBQU1BLENBQUN3QixTQUFTLEVBQUM7b0RBQ3JDSSxhQUFhLEdBQW9CLE9BQWpCNUIsK0NBQU1BLENBQUN3QixTQUFTLEVBQUM7Z0RBQ25DOzs7Ozs7Ozs7OztzREFHSiw4REFBQ0s7NENBQ0NiLFdBQVU7NENBQ1ZDLE9BQU87Z0RBQUVJLE9BQU9yQiwrQ0FBTUEsQ0FBQ3NCLE9BQU87NENBQUM7c0RBRTlCSSxLQUFLSSxLQUFLOzs7Ozs7Ozs7Ozs7OENBSWYsOERBQUNmO29DQUFJQyxXQUFVOztzREFDYiw4REFBQ2E7NENBQ0NiLFdBQVU7NENBQ1ZDLE9BQU87Z0RBQUVJLE9BQU9yQiwrQ0FBTUEsQ0FBQ3NCLE9BQU87NENBQUM7c0RBRTlCSSxLQUFLSSxLQUFLOzs7Ozs7d0NBRVpKLEtBQUtLLE9BQU87d0NBQUU7Ozs7Ozs7OzJCQS9CWko7Ozs7O2tDQW1DVCw4REFBQ1o7d0JBQ0NFLE9BQU87NEJBQ0xaLFFBQVFBLFNBQVM7d0JBQ25CO3dCQUNBVyxXQUFVO2tDQUVWLDRFQUFDckIsZ0RBQU1BLENBQUNvQixHQUFHOzRCQUNURSxPQUFPO2dDQUNMWixRQUFRUTtnQ0FDUm1CLFNBQVNsQjs0QkFDWDs0QkFDQUUsV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNdEIsRUFBRTtHQWpHV2Y7O1FBWWlCUixtREFBU0E7UUFLYkMsc0RBQVlBO1FBQ1hBLHNEQUFZQTs7O0tBbEIxQk8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy91aS90aW1lbGluZS50c3g/OGMxMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuXHJcbmltcG9ydCB7IHVzZVNjcm9sbCwgdXNlVHJhbnNmb3JtLCBtb3Rpb24gfSBmcm9tIFwibW90aW9uL3JlYWN0XCI7XHJcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgY29sb3JzIH0gZnJvbSBcIkAvbGliL2NvbG9yc1wiO1xyXG5cclxuaW50ZXJmYWNlIFRpbWVsaW5lRW50cnkge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgY29udGVudDogUmVhY3QuUmVhY3ROb2RlO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgVGltZWxpbmUgPSAoeyBkYXRhIH06IHsgZGF0YTogVGltZWxpbmVFbnRyeVtdIH0pID0+IHtcclxuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xyXG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XHJcbiAgY29uc3QgW2hlaWdodCwgc2V0SGVpZ2h0XSA9IHVzZVN0YXRlKDApO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHJlZi5jdXJyZW50KSB7XHJcbiAgICAgIGNvbnN0IHJlY3QgPSByZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgc2V0SGVpZ2h0KHJlY3QuaGVpZ2h0KTtcclxuICAgIH1cclxuICB9LCBbcmVmXSk7XHJcblxyXG4gIGNvbnN0IHsgc2Nyb2xsWVByb2dyZXNzIH0gPSB1c2VTY3JvbGwoe1xyXG4gICAgdGFyZ2V0OiBjb250YWluZXJSZWYsXHJcbiAgICBvZmZzZXQ6IFtcInN0YXJ0IDEwJVwiLCBcImVuZCA1MCVcIl0sXHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0IGhlaWdodFRyYW5zZm9ybSA9IHVzZVRyYW5zZm9ybShzY3JvbGxZUHJvZ3Jlc3MsIFswLCAxXSwgWzAsIGhlaWdodF0pO1xyXG4gIGNvbnN0IG9wYWNpdHlUcmFuc2Zvcm0gPSB1c2VUcmFuc2Zvcm0oc2Nyb2xsWVByb2dyZXNzLCBbMCwgMC4xXSwgWzAsIDFdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXZcclxuICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGZvbnQtc2FucyBtZDpweC0xMFwiXHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kIH19XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWF4LXctN3hsIG14LWF1dG8gcHktMjAgcHgtNCBtZDpweC04IGxnOnB4LTEwXCI+XHJcbiAgICAgICAgPGgyXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWxnIG1kOnRleHQtNHhsIG1iLTQgbWF4LXctNHhsXCJcclxuICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiBjb2xvcnMucHJpbWFyeSB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIFVuc2VyIFByb2pla3RmYWhycGxhbiBpbSDDnGJlcmJsaWNrXHJcbiAgICAgICAgPC9oMj5cclxuICAgICAgICA8cFxyXG4gICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1zbSBtZDp0ZXh0LWJhc2UgbWF4LXctc21cIlxyXG4gICAgICAgICAgc3R5bGU9e3sgY29sb3I6IGNvbG9ycy5zZWNvbmRhcnkgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICBTY2hyaXR0IGbDvHIgU2Nocml0dCB6dXIgZXJmb2xncmVpY2hlbiBXZWJzaXRlIOKAkyB0cmFuc3BhcmVudCxcclxuICAgICAgICAgIHN0cnVrdHVyaWVydCB1bmQgYmVnbGVpdGV0IHZvbiB1bnNlcmVtIFRlYW0uXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgcmVmPXtyZWZ9IGNsYXNzTmFtZT1cInJlbGF0aXZlIG1heC13LTd4bCBteC1hdXRvIHBiLTIwXCI+XHJcbiAgICAgICAge2RhdGEubWFwKChpdGVtLCBpbmRleCkgPT4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktc3RhcnQgcHQtMTAgbWQ6cHQtNDAgbWQ6Z2FwLTEwIG1pbi1oLVszMjBweF1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0aWNreSBmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IHotNDAgaXRlbXMtY2VudGVyIHRvcC00MCBzZWxmLXN0YXJ0IG1heC13LXhzIGxnOm1heC13LXNtIG1kOnctZnVsbFwiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtMTAgYWJzb2x1dGUgbGVmdC0zIG1kOmxlZnQtMyB3LTEwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9ycy5iYWNrZ3JvdW5kIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTQgdy00IHJvdW5kZWQtZnVsbCBib3JkZXJcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3JzLnNlY29uZGFyeX00RGAsXHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGAke2NvbG9ycy5zZWNvbmRhcnl9NjZgLFxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8aDNcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhpZGRlbiBtZDpibG9jayB0ZXh0LXhsIG1kOnBsLTIwIG1kOnRleHQtNXhsIGZvbnQtYm9sZFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7aXRlbS50aXRsZX1cclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgcGwtMjAgcHItNCBtZDpwbC00IHctZnVsbFwiPlxyXG4gICAgICAgICAgICAgIDxoM1xyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibWQ6aGlkZGVuIGJsb2NrIHRleHQtMnhsIG1iLTQgdGV4dC1sZWZ0IGZvbnQtYm9sZFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogY29sb3JzLnByaW1hcnkgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7aXRlbS50aXRsZX1cclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgIHtpdGVtLmNvbnRlbnR9e1wiIFwifVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICkpfVxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0ICsgXCJweFwiLFxyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIG1kOmxlZnQtOCBsZWZ0LTggdG9wLTAgb3ZlcmZsb3ctaGlkZGVuIHctWzJweF0gYmctW2xpbmVhci1ncmFkaWVudCh0b19ib3R0b20sdmFyKC0tdHctZ3JhZGllbnQtc3RvcHMpKV0gZnJvbS10cmFuc3BhcmVudCBmcm9tLVswJV0gdmlhLW5ldXRyYWwtMjAwIGRhcms6dmlhLW5ldXRyYWwtNzAwIHRvLXRyYW5zcGFyZW50IHRvLVs5OSVdICBbbWFzay1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG9fYm90dG9tLHRyYW5zcGFyZW50XzAlLGJsYWNrXzEwJSxibGFja185MCUsdHJhbnNwYXJlbnRfMTAwJSldIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1vdGlvbi5kaXZcclxuICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICBoZWlnaHQ6IGhlaWdodFRyYW5zZm9ybSxcclxuICAgICAgICAgICAgICBvcGFjaXR5OiBvcGFjaXR5VHJhbnNmb3JtLFxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC14LTAgdG9wLTAgIHctWzJweF0gYmctZ3JhZGllbnQtdG8tdCBmcm9tLXB1cnBsZS01MDAgdmlhLWJsdWUtNTAwIHRvLXRyYW5zcGFyZW50IGZyb20tWzAlXSB2aWEtWzEwJV0gcm91bmRlZC1mdWxsXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufTtcclxuXHJcbiJdLCJuYW1lcyI6WyJ1c2VTY3JvbGwiLCJ1c2VUcmFuc2Zvcm0iLCJtb3Rpb24iLCJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiY29sb3JzIiwiVGltZWxpbmUiLCJkYXRhIiwicmVmIiwiY29udGFpbmVyUmVmIiwiaGVpZ2h0Iiwic2V0SGVpZ2h0IiwiY3VycmVudCIsInJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJzY3JvbGxZUHJvZ3Jlc3MiLCJ0YXJnZXQiLCJvZmZzZXQiLCJoZWlnaHRUcmFuc2Zvcm0iLCJvcGFjaXR5VHJhbnNmb3JtIiwiZGl2IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwiaDIiLCJjb2xvciIsInByaW1hcnkiLCJwIiwic2Vjb25kYXJ5IiwibWFwIiwiaXRlbSIsImluZGV4IiwiYm9yZGVyQ29sb3IiLCJoMyIsInRpdGxlIiwiY29udGVudCIsIm9wYWNpdHkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/timeline.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./components/ui/tooltip.tsx":
|
||
/*!***********************************!*\
|
||
!*** ./components/ui/tooltip.tsx ***!
|
||
\***********************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Tooltip: function() { return /* binding */ Tooltip; },\n/* harmony export */ TooltipContent: function() { return /* binding */ TooltipContent; },\n/* harmony export */ TooltipProvider: function() { return /* binding */ TooltipProvider; },\n/* harmony export */ TooltipTrigger: function() { return /* binding */ TooltipTrigger; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-tooltip */ \"(app-pages-browser)/./node_modules/@radix-ui/react-tooltip/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Tooltip,TooltipTrigger,TooltipContent,TooltipProvider auto */ \n\n\n\nconst TooltipProvider = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Provider;\nconst Tooltip = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Root;\nconst TooltipTrigger = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Trigger;\nconst TooltipContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>/*#__PURE__*/ {\n let { className, sideOffset = 4, ...props } = param;\n return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Content, {\n ref: ref,\n sideOffset: sideOffset,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\ui\\\\tooltip.tsx\",\n lineNumber: 18,\n columnNumber: 3\n }, undefined);\n});\n_c1 = TooltipContent;\nTooltipContent.displayName = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Content.displayName;\n\nvar _c, _c1;\n$RefreshReg$(_c, \"TooltipContent$React.forwardRef\");\n$RefreshReg$(_c1, \"TooltipContent\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvdG9vbHRpcC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUUrQjtBQUM2QjtBQUUzQjtBQUVqQyxNQUFNRyxrQkFBa0JGLDZEQUF5QjtBQUVqRCxNQUFNSSxVQUFVSix5REFBcUI7QUFFckMsTUFBTU0saUJBQWlCTiw0REFBd0I7QUFFL0MsTUFBTVEsK0JBQWlCVCw2Q0FBZ0IsTUFHckMsUUFBMENXO1FBQXpDLEVBQUVDLFNBQVMsRUFBRUMsYUFBYSxDQUFDLEVBQUUsR0FBR0MsT0FBTztXQUN4Qyw4REFBQ2IsNERBQXdCO1FBQ3ZCVSxLQUFLQTtRQUNMRSxZQUFZQTtRQUNaRCxXQUFXViw4Q0FBRUEsQ0FDWCxzWUFDQVU7UUFFRCxHQUFHRSxLQUFLOzs7Ozs7QUFDVjs7QUFFSEwsZUFBZU8sV0FBVyxHQUFHZiw0REFBd0IsQ0FBQ2UsV0FBVztBQUVHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2NvbXBvbmVudHMvdWkvdG9vbHRpcC50c3g/OWZjOSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XHJcblxyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCAqIGFzIFRvb2x0aXBQcmltaXRpdmUgZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXRvb2x0aXAnO1xyXG5cclxuaW1wb3J0IHsgY24gfSBmcm9tICdAL2xpYi91dGlscyc7XHJcblxyXG5jb25zdCBUb29sdGlwUHJvdmlkZXIgPSBUb29sdGlwUHJpbWl0aXZlLlByb3ZpZGVyO1xyXG5cclxuY29uc3QgVG9vbHRpcCA9IFRvb2x0aXBQcmltaXRpdmUuUm9vdDtcclxuXHJcbmNvbnN0IFRvb2x0aXBUcmlnZ2VyID0gVG9vbHRpcFByaW1pdGl2ZS5UcmlnZ2VyO1xyXG5cclxuY29uc3QgVG9vbHRpcENvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxyXG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFRvb2x0aXBQcmltaXRpdmUuQ29udGVudD4sXHJcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBUb29sdGlwUHJpbWl0aXZlLkNvbnRlbnQ+XHJcbj4oKHsgY2xhc3NOYW1lLCBzaWRlT2Zmc2V0ID0gNCwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXHJcbiAgPFRvb2x0aXBQcmltaXRpdmUuQ29udGVudFxyXG4gICAgcmVmPXtyZWZ9XHJcbiAgICBzaWRlT2Zmc2V0PXtzaWRlT2Zmc2V0fVxyXG4gICAgY2xhc3NOYW1lPXtjbihcclxuICAgICAgJ3otNTAgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbWQgYm9yZGVyIGJnLXBvcG92ZXIgcHgtMyBweS0xLjUgdGV4dC1zbSB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWQgYW5pbWF0ZS1pbiBmYWRlLWluLTAgem9vbS1pbi05NSBkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0IGRhdGEtW3N0YXRlPWNsb3NlZF06ZmFkZS1vdXQtMCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnpvb20tb3V0LTk1IGRhdGEtW3NpZGU9Ym90dG9tXTpzbGlkZS1pbi1mcm9tLXRvcC0yIGRhdGEtW3NpZGU9bGVmdF06c2xpZGUtaW4tZnJvbS1yaWdodC0yIGRhdGEtW3NpZGU9cmlnaHRdOnNsaWRlLWluLWZyb20tbGVmdC0yIGRhdGEtW3NpZGU9dG9wXTpzbGlkZS1pbi1mcm9tLWJvdHRvbS0yJyxcclxuICAgICAgY2xhc3NOYW1lXHJcbiAgICApfVxyXG4gICAgey4uLnByb3BzfVxyXG4gIC8+XHJcbikpO1xyXG5Ub29sdGlwQ29udGVudC5kaXNwbGF5TmFtZSA9IFRvb2x0aXBQcmltaXRpdmUuQ29udGVudC5kaXNwbGF5TmFtZTtcclxuXHJcbmV4cG9ydCB7IFRvb2x0aXAsIFRvb2x0aXBUcmlnZ2VyLCBUb29sdGlwQ29udGVudCwgVG9vbHRpcFByb3ZpZGVyIH07XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlRvb2x0aXBQcmltaXRpdmUiLCJjbiIsIlRvb2x0aXBQcm92aWRlciIsIlByb3ZpZGVyIiwiVG9vbHRpcCIsIlJvb3QiLCJUb29sdGlwVHJpZ2dlciIsIlRyaWdnZXIiLCJUb29sdGlwQ29udGVudCIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJzaWRlT2Zmc2V0IiwicHJvcHMiLCJDb250ZW50IiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/tooltip.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./hooks/useAuth.ts":
|
||
/*!**************************!*\
|
||
!*** ./hooks/useAuth.ts ***!
|
||
\**************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useAuth: function() { return /* binding */ useAuth; }\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/* harmony import */ var _lib_supabase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/lib/supabase */ \"(app-pages-browser)/./lib/supabase.ts\");\n/* __next_internal_client_entry_do_not_use__ useAuth auto */ \n\nfunction useAuth() {\n const [user, setUser] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n // Get initial session\n _lib_supabase__WEBPACK_IMPORTED_MODULE_1__.supabase.auth.getSession().then((param)=>{\n let { data: { session } } = param;\n var _session_user;\n setUser((_session_user = session === null || session === void 0 ? void 0 : session.user) !== null && _session_user !== void 0 ? _session_user : null);\n setLoading(false);\n });\n // Listen for auth changes\n const { data: { subscription } } = _lib_supabase__WEBPACK_IMPORTED_MODULE_1__.supabase.auth.onAuthStateChange((_event, session)=>{\n var _session_user;\n setUser((_session_user = session === null || session === void 0 ? void 0 : session.user) !== null && _session_user !== void 0 ? _session_user : null);\n setLoading(false);\n });\n return ()=>subscription.unsubscribe();\n }, []);\n return {\n user,\n loading\n };\n}\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2hvb2tzL3VzZUF1dGgudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs2REFFMkM7QUFDRjtBQUdsQyxTQUFTRztJQUNkLE1BQU0sQ0FBQ0MsTUFBTUMsUUFBUSxHQUFHTCwrQ0FBUUEsQ0FBYztJQUM5QyxNQUFNLENBQUNNLFNBQVNDLFdBQVcsR0FBR1AsK0NBQVFBLENBQUM7SUFFdkNDLGdEQUFTQSxDQUFDO1FBQ1Isc0JBQXNCO1FBQ3RCQyxtREFBUUEsQ0FBQ00sSUFBSSxDQUFDQyxVQUFVLEdBQUdDLElBQUksQ0FBQztnQkFBQyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRSxFQUFFO2dCQUM1Q0E7WUFBUlAsUUFBUU8sQ0FBQUEsZ0JBQUFBLG9CQUFBQSw4QkFBQUEsUUFBU1IsSUFBSSxjQUFiUSwyQkFBQUEsZ0JBQWlCO1lBQ3pCTCxXQUFXO1FBQ2I7UUFFQSwwQkFBMEI7UUFDMUIsTUFBTSxFQUFFSSxNQUFNLEVBQUVFLFlBQVksRUFBRSxFQUFFLEdBQUdYLG1EQUFRQSxDQUFDTSxJQUFJLENBQUNNLGlCQUFpQixDQUFDLENBQUNDLFFBQVFIO2dCQUNsRUE7WUFBUlAsUUFBUU8sQ0FBQUEsZ0JBQUFBLG9CQUFBQSw4QkFBQUEsUUFBU1IsSUFBSSxjQUFiUSwyQkFBQUEsZ0JBQWlCO1lBQ3pCTCxXQUFXO1FBQ2I7UUFFQSxPQUFPLElBQU1NLGFBQWFHLFdBQVc7SUFDdkMsR0FBRyxFQUFFO0lBRUwsT0FBTztRQUFFWjtRQUFNRTtJQUFRO0FBQ3pCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2hvb2tzL3VzZUF1dGgudHM/OWM3NiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxyXG5cclxuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xyXG5pbXBvcnQgeyBzdXBhYmFzZSB9IGZyb20gJ0AvbGliL3N1cGFiYXNlJ1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnQHN1cGFiYXNlL3N1cGFiYXNlLWpzJ1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZUF1dGgoKSB7XHJcbiAgY29uc3QgW3VzZXIsIHNldFVzZXJdID0gdXNlU3RhdGU8VXNlciB8IG51bGw+KG51bGwpXHJcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSlcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIC8vIEdldCBpbml0aWFsIHNlc3Npb25cclxuICAgIHN1cGFiYXNlLmF1dGguZ2V0U2Vzc2lvbigpLnRoZW4oKHsgZGF0YTogeyBzZXNzaW9uIH0gfSkgPT4ge1xyXG4gICAgICBzZXRVc2VyKHNlc3Npb24/LnVzZXIgPz8gbnVsbClcclxuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcclxuICAgIH0pXHJcblxyXG4gICAgLy8gTGlzdGVuIGZvciBhdXRoIGNoYW5nZXNcclxuICAgIGNvbnN0IHsgZGF0YTogeyBzdWJzY3JpcHRpb24gfSB9ID0gc3VwYWJhc2UuYXV0aC5vbkF1dGhTdGF0ZUNoYW5nZSgoX2V2ZW50LCBzZXNzaW9uKSA9PiB7XHJcbiAgICAgIHNldFVzZXIoc2Vzc2lvbj8udXNlciA/PyBudWxsKVxyXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4gKCkgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcclxuICB9LCBbXSlcclxuXHJcbiAgcmV0dXJuIHsgdXNlciwgbG9hZGluZyB9XHJcbn0gIl0sIm5hbWVzIjpbInVzZVN0YXRlIiwidXNlRWZmZWN0Iiwic3VwYWJhc2UiLCJ1c2VBdXRoIiwidXNlciIsInNldFVzZXIiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsImF1dGgiLCJnZXRTZXNzaW9uIiwidGhlbiIsImRhdGEiLCJzZXNzaW9uIiwic3Vic2NyaXB0aW9uIiwib25BdXRoU3RhdGVDaGFuZ2UiLCJfZXZlbnQiLCJ1bnN1YnNjcmliZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./hooks/useAuth.ts\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./lib/colors.ts":
|
||
/*!***********************!*\
|
||
!*** ./lib/colors.ts ***!
|
||
\***********************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ colors: function() { return /* binding */ colors; }\n/* harmony export */ });\n// Centralized color system\nconst colors = {\n // Main brand colors\n primary: \"#0A400C\",\n secondary: \"#819067\",\n tertiary: \"#B1AB86\",\n background: \"#FEFAE0\",\n // Derived colors for better contrast\n primaryLight: \"#0F5010\",\n primaryDark: \"#052006\",\n secondaryLight: \"#9AA67F\",\n secondaryDark: \"#6B7A58\",\n // Neutral colors\n white: \"#FFFFFF\",\n black: \"#000000\",\n gray: {\n 100: \"#F5F5F5\",\n 200: \"#E5E5E5\",\n 300: \"#D4D4D4\",\n 400: \"#A3A3A3\",\n 500: \"#737373\",\n 600: \"#525252\",\n 700: \"#404040\",\n 800: \"#262626\",\n 900: \"#171717\"\n }\n};\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi9jb2xvcnMudHMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDJCQUEyQjtBQUNwQixNQUFNQSxTQUFTO0lBQ3BCLG9CQUFvQjtJQUNwQkMsU0FBUztJQUNUQyxXQUFXO0lBQ1hDLFVBQVU7SUFDVkMsWUFBWTtJQUVaLHFDQUFxQztJQUNyQ0MsY0FBYztJQUNkQyxhQUFhO0lBQ2JDLGdCQUFnQjtJQUNoQkMsZUFBZTtJQUVmLGlCQUFpQjtJQUNqQkMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLE1BQU07UUFDSixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7SUFDUDtBQUNGLEVBQVciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbGliL2NvbG9ycy50cz9jMzJhIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENlbnRyYWxpemVkIGNvbG9yIHN5c3RlbVxyXG5leHBvcnQgY29uc3QgY29sb3JzID0ge1xyXG4gIC8vIE1haW4gYnJhbmQgY29sb3JzXHJcbiAgcHJpbWFyeTogJyMwQTQwMEMnLCAgICAgIC8vIERhcmsgZ3JlZW5cclxuICBzZWNvbmRhcnk6ICcjODE5MDY3JywgICAgLy8gTWVkaXVtIGdyZWVuICBcclxuICB0ZXJ0aWFyeTogJyNCMUFCODYnLCAgICAgLy8gTGlnaHQgZ3JlZW4tYmVpZ2VcclxuICBiYWNrZ3JvdW5kOiAnI0ZFRkFFMCcsICAgLy8gQ3JlYW0gYmFja2dyb3VuZFxyXG4gIFxyXG4gIC8vIERlcml2ZWQgY29sb3JzIGZvciBiZXR0ZXIgY29udHJhc3RcclxuICBwcmltYXJ5TGlnaHQ6ICcjMEY1MDEwJyxcclxuICBwcmltYXJ5RGFyazogJyMwNTIwMDYnLFxyXG4gIHNlY29uZGFyeUxpZ2h0OiAnIzlBQTY3RicsXHJcbiAgc2Vjb25kYXJ5RGFyazogJyM2QjdBNTgnLFxyXG4gIFxyXG4gIC8vIE5ldXRyYWwgY29sb3JzXHJcbiAgd2hpdGU6ICcjRkZGRkZGJyxcclxuICBibGFjazogJyMwMDAwMDAnLFxyXG4gIGdyYXk6IHtcclxuICAgIDEwMDogJyNGNUY1RjUnLFxyXG4gICAgMjAwOiAnI0U1RTVFNScsXHJcbiAgICAzMDA6ICcjRDRENEQ0JyxcclxuICAgIDQwMDogJyNBM0EzQTMnLFxyXG4gICAgNTAwOiAnIzczNzM3MycsXHJcbiAgICA2MDA6ICcjNTI1MjUyJyxcclxuICAgIDcwMDogJyM0MDQwNDAnLFxyXG4gICAgODAwOiAnIzI2MjYyNicsXHJcbiAgICA5MDA6ICcjMTcxNzE3JyxcclxuICB9XHJcbn0gYXMgY29uc3Q7XHJcblxyXG5leHBvcnQgdHlwZSBDb2xvcktleSA9IGtleW9mIHR5cGVvZiBjb2xvcnM7Il0sIm5hbWVzIjpbImNvbG9ycyIsInByaW1hcnkiLCJzZWNvbmRhcnkiLCJ0ZXJ0aWFyeSIsImJhY2tncm91bmQiLCJwcmltYXJ5TGlnaHQiLCJwcmltYXJ5RGFyayIsInNlY29uZGFyeUxpZ2h0Iiwic2Vjb25kYXJ5RGFyayIsIndoaXRlIiwiYmxhY2siLCJncmF5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/colors.ts\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./lib/supabase.ts":
|
||
/*!*************************!*\
|
||
!*** ./lib/supabase.ts ***!
|
||
\*************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supabase: function() { return /* binding */ supabase; }\n/* harmony export */ });\n/* harmony import */ var _supabase_supabase_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/supabase-js */ \"(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/index.js\");\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n\nconst supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL || \"https://pkaijflgerfyspupyoex.supabase.co\";\nconst supabaseAnonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY || \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InBrYWlqZmxnZXJmeXNwdXB5b2V4Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTM5MTQwOTgsImV4cCI6MjA2OTQ5MDA5OH0.WuxgIsfJ4Fffkv7NaMRV4do7G_uy7S5m46632ploB58\";\nconst supabase = (0,_supabase_supabase_js__WEBPACK_IMPORTED_MODULE_0__.createClient)(supabaseUrl, supabaseAnonKey, {\n auth: {\n autoRefreshToken: true,\n persistSession: true,\n detectSessionInUrl: true\n }\n});\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi9zdXBhYmFzZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBb0Q7QUFFcEQsTUFBTUMsY0FBY0MsT0FBT0EsQ0FBQ0MsR0FBRyxDQUFDQyx3QkFBd0IsSUFBSTtBQUM1RCxNQUFNQyxrQkFBa0JILE9BQU9BLENBQUNDLEdBQUcsQ0FBQ0csNkJBQTZCLElBQUk7QUFFOUQsTUFBTUMsV0FBV1AsbUVBQVlBLENBQUNDLGFBQWFJLGlCQUFpQjtJQUNqRUcsTUFBTTtRQUNKQyxrQkFBa0I7UUFDbEJDLGdCQUFnQjtRQUNoQkMsb0JBQW9CO0lBQ3RCO0FBQ0YsR0FBRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9saWIvc3VwYWJhc2UudHM/Yzk5ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVDbGllbnQgfSBmcm9tICdAc3VwYWJhc2Uvc3VwYWJhc2UtanMnXHJcblxyXG5jb25zdCBzdXBhYmFzZVVybCA9IHByb2Nlc3MuZW52Lk5FWFRfUFVCTElDX1NVUEFCQVNFX1VSTCB8fCAnaHR0cHM6Ly9wa2FpamZsZ2VyZnlzcHVweW9leC5zdXBhYmFzZS5jbydcclxuY29uc3Qgc3VwYWJhc2VBbm9uS2V5ID0gcHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfU1VQQUJBU0VfQU5PTl9LRVkgfHwgJ2V5SmhiR2NpT2lKSVV6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS5leUpwYzNNaU9pSnpkWEJoWW1GelpTSXNJbkpsWmlJNkluQnJZV2xxWm14blpYSm1lWE53ZFhCNWIyVjRJaXdpY205c1pTSTZJbUZ1YjI0aUxDSnBZWFFpT2pFM05UTTVNVFF3T1Rnc0ltVjRjQ0k2TWpBMk9UUTVNREE1T0gwLld1eGdJc2ZKNEZmZmt2N05hTVJWNGRvN0dfdXk3UzVtNDY2MzJwbG9CNTgnXHJcblxyXG5leHBvcnQgY29uc3Qgc3VwYWJhc2UgPSBjcmVhdGVDbGllbnQoc3VwYWJhc2VVcmwsIHN1cGFiYXNlQW5vbktleSwge1xyXG4gIGF1dGg6IHtcclxuICAgIGF1dG9SZWZyZXNoVG9rZW46IHRydWUsXHJcbiAgICBwZXJzaXN0U2Vzc2lvbjogdHJ1ZSxcclxuICAgIGRldGVjdFNlc3Npb25JblVybDogdHJ1ZVxyXG4gIH1cclxufSkgIl0sIm5hbWVzIjpbImNyZWF0ZUNsaWVudCIsInN1cGFiYXNlVXJsIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUFVCTElDX1NVUEFCQVNFX1VSTCIsInN1cGFiYXNlQW5vbktleSIsIk5FWFRfUFVCTElDX1NVUEFCQVNFX0FOT05fS0VZIiwic3VwYWJhc2UiLCJhdXRoIiwiYXV0b1JlZnJlc2hUb2tlbiIsInBlcnNpc3RTZXNzaW9uIiwiZGV0ZWN0U2Vzc2lvbkluVXJsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/supabase.ts\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./lib/supabaseClient.ts":
|
||
/*!*******************************!*\
|
||
!*** ./lib/supabaseClient.ts ***!
|
||
\*******************************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supabase: function() { return /* binding */ supabase; }\n/* harmony export */ });\n/* harmony import */ var _supabase_supabase_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @supabase/supabase-js */ \"(app-pages-browser)/./node_modules/@supabase/supabase-js/dist/module/index.js\");\n\nconst supabaseUrl = \"https://pkaijflgerfyspupyoex.supabase.co\";\nconst supabaseAnonKey = \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InBrYWlqZmxnZXJmeXNwdXB5b2V4Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTM5MTQwOTgsImV4cCI6MjA2OTQ5MDA5OH0.WuxgIsfJ4Fffkv7NaMRV4do7G_uy7S5m46632ploB58\";\nconst supabase = (0,_supabase_supabase_js__WEBPACK_IMPORTED_MODULE_0__.createClient)(supabaseUrl, supabaseAnonKey);\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi9zdXBhYmFzZUNsaWVudC50cyIsIm1hcHBpbmdzIjoiOzs7OztBQUFxRDtBQUVyRCxNQUFNQyxjQUFjO0FBQ25CLE1BQU1DLGtCQUFrQjtBQUVsQixNQUFNQyxXQUFXSCxtRUFBWUEsQ0FBQ0MsYUFBYUMsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2xpYi9zdXBhYmFzZUNsaWVudC50cz8zYTdkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNsaWVudCB9IGZyb20gJ0BzdXBhYmFzZS9zdXBhYmFzZS1qcyc7XHJcblxyXG5jb25zdCBzdXBhYmFzZVVybCA9ICdodHRwczovL3BrYWlqZmxnZXJmeXNwdXB5b2V4LnN1cGFiYXNlLmNvJztcclxuIGNvbnN0IHN1cGFiYXNlQW5vbktleSA9ICdleUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKcGMzTWlPaUp6ZFhCaFltRnpaU0lzSW5KbFppSTZJbkJyWVdscVpteG5aWEptZVhOd2RYQjViMlY0SWl3aWNtOXNaU0k2SW1GdWIyNGlMQ0pwWVhRaU9qRTNOVE01TVRRd09UZ3NJbVY0Y0NJNk1qQTJPVFE1TURBNU9IMC5XdXhnSXNmSjRGZmZrdjdOYU1SVjRkbzdHX3V5N1M1bTQ2NjMycGxvQjU4JztcclxuXHJcbmV4cG9ydCBjb25zdCBzdXBhYmFzZSA9IGNyZWF0ZUNsaWVudChzdXBhYmFzZVVybCwgc3VwYWJhc2VBbm9uS2V5KTsgIl0sIm5hbWVzIjpbImNyZWF0ZUNsaWVudCIsInN1cGFiYXNlVXJsIiwic3VwYWJhc2VBbm9uS2V5Iiwic3VwYWJhc2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/supabaseClient.ts\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./lib/utils.ts":
|
||
/*!**********************!*\
|
||
!*** ./lib/utils.ts ***!
|
||
\**********************/
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cn: function() { return /* binding */ cn; }\n/* harmony export */ });\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clsx */ \"(app-pages-browser)/./node_modules/clsx/dist/clsx.mjs\");\n/* harmony import */ var tailwind_merge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tailwind-merge */ \"(app-pages-browser)/./node_modules/tailwind-merge/dist/bundle-mjs.mjs\");\n\n\nfunction cn() {\n for(var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++){\n inputs[_key] = arguments[_key];\n }\n return (0,tailwind_merge__WEBPACK_IMPORTED_MODULE_1__.twMerge)((0,clsx__WEBPACK_IMPORTED_MODULE_0__.clsx)(inputs));\n}\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi91dGlscy50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNkM7QUFDSjtBQUVsQyxTQUFTRTtJQUFHO1FBQUdDLE9BQUgsdUJBQXVCO0lBQUQ7SUFDdkMsT0FBT0YsdURBQU9BLENBQUNELDBDQUFJQSxDQUFDRztBQUN0QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9saWIvdXRpbHMudHM/Zjc0NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbHN4LCB0eXBlIENsYXNzVmFsdWUgfSBmcm9tICdjbHN4JztcclxuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjbiguLi5pbnB1dHM6IENsYXNzVmFsdWVbXSkge1xyXG4gIHJldHVybiB0d01lcmdlKGNsc3goaW5wdXRzKSk7XHJcbn1cclxuIl0sIm5hbWVzIjpbImNsc3giLCJ0d01lcmdlIiwiY24iLCJpbnB1dHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/utils.ts\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/client/add-locale.js":
|
||
/*!*****************************************************!*\
|
||
!*** ./node_modules/next/dist/client/add-locale.js ***!
|
||
\*****************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(app-pages-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst addLocale = function(path) {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n if (false) {}\n return path;\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=add-locale.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2FkZC1sb2NhbGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0ZILDZDQUE0QztJQUN4Q0ksWUFBWTtJQUNaQyxLQUFLO1FBQ0QsT0FBT0M7SUFDWDtBQUNKLENBQUMsRUFBQztBQUNGLE1BQU1DLDBCQUEwQkMsbUJBQU9BLENBQUMsbUhBQTRCO0FBQ3BFLE1BQU1GLFlBQVksU0FBU0csSUFBSTtJQUMzQixJQUFJLElBQUlDLE9BQU9DLFVBQVVDLE1BQU0sRUFBRUMsT0FBTyxJQUFJQyxNQUFNSixPQUFPLElBQUlBLE9BQU8sSUFBSSxJQUFJSyxPQUFPLEdBQUdBLE9BQU9MLE1BQU1LLE9BQU87UUFDdEdGLElBQUksQ0FBQ0UsT0FBTyxFQUFFLEdBQUdKLFNBQVMsQ0FBQ0ksS0FBSztJQUNwQztJQUNBLElBQUlDLEtBQStCLEVBQUUsRUFFcEM7SUFDRCxPQUFPUDtBQUNYO0FBRUEsSUFBSSxDQUFDLE9BQU9QLFFBQVFrQixPQUFPLEtBQUssY0FBZSxPQUFPbEIsUUFBUWtCLE9BQU8sS0FBSyxZQUFZbEIsUUFBUWtCLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT2xCLFFBQVFrQixPQUFPLENBQUNDLFVBQVUsS0FBSyxhQUFhO0lBQ3JLckIsT0FBT0MsY0FBYyxDQUFDQyxRQUFRa0IsT0FBTyxFQUFFLGNBQWM7UUFBRWpCLE9BQU87SUFBSztJQUNuRUgsT0FBT3NCLE1BQU0sQ0FBQ3BCLFFBQVFrQixPQUFPLEVBQUVsQjtJQUMvQnFCLE9BQU9yQixPQUFPLEdBQUdBLFFBQVFrQixPQUFPO0FBQ2xDLEVBRUEsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2FkZC1sb2NhbGUuanM/ZTJkOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XHJcbiAgICB2YWx1ZTogdHJ1ZVxyXG59KTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiYWRkTG9jYWxlXCIsIHtcclxuICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBhZGRMb2NhbGU7XHJcbiAgICB9XHJcbn0pO1xyXG5jb25zdCBfbm9ybWFsaXpldHJhaWxpbmdzbGFzaCA9IHJlcXVpcmUoXCIuL25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaFwiKTtcclxuY29uc3QgYWRkTG9jYWxlID0gZnVuY3Rpb24ocGF0aCkge1xyXG4gICAgZm9yKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKXtcclxuICAgICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcclxuICAgIH1cclxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XHJcbiAgICAgICAgcmV0dXJuICgwLCBfbm9ybWFsaXpldHJhaWxpbmdzbGFzaC5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCkocmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGVcIikuYWRkTG9jYWxlKHBhdGgsIC4uLmFyZ3MpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYXRoO1xyXG59O1xyXG5cclxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcclxuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcclxufVxyXG5cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWRkLWxvY2FsZS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiYWRkTG9jYWxlIiwiX25vcm1hbGl6ZXRyYWlsaW5nc2xhc2giLCJyZXF1aXJlIiwicGF0aCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/add-locale.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/client/get-domain-locale.js":
|
||
/*!************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/get-domain-locale.js ***!
|
||
\************************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getDomainLocale\", ({\n enumerable: true,\n get: function() {\n return getDomainLocale;\n }\n}));\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(app-pages-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst basePath = false || \"\";\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) {} else {\n return false;\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=get-domain-locale.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2dldC1kb21haW4tbG9jYWxlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGSCxtREFBa0Q7SUFDOUNJLFlBQVk7SUFDWkMsS0FBSztRQUNELE9BQU9DO0lBQ1g7QUFDSixDQUFDLEVBQUM7QUFDRixNQUFNQywwQkFBMEJDLG1CQUFPQSxDQUFDLG1IQUE0QjtBQUNwRSxNQUFNQyxXQUFXQyxNQUFrQyxJQUFJO0FBQ3ZELFNBQVNKLGdCQUFnQk8sSUFBSSxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsYUFBYTtJQUN6RCxJQUFJTixLQUErQixFQUFFLEVBV3BDLE1BQU07UUFDSCxPQUFPO0lBQ1g7QUFDSjtBQUVBLElBQUksQ0FBQyxPQUFPUixRQUFRMkIsT0FBTyxLQUFLLGNBQWUsT0FBTzNCLFFBQVEyQixPQUFPLEtBQUssWUFBWTNCLFFBQVEyQixPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU8zQixRQUFRMkIsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNySzlCLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUTJCLE9BQU8sRUFBRSxjQUFjO1FBQUUxQixPQUFPO0lBQUs7SUFDbkVILE9BQU8rQixNQUFNLENBQUM3QixRQUFRMkIsT0FBTyxFQUFFM0I7SUFDL0I4QixPQUFPOUIsT0FBTyxHQUFHQSxRQUFRMkIsT0FBTztBQUNsQyxFQUVBLDZDQUE2QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9nZXQtZG9tYWluLWxvY2FsZS5qcz81YzI3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcclxuICAgIHZhbHVlOiB0cnVlXHJcbn0pO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJnZXREb21haW5Mb2NhbGVcIiwge1xyXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgIGdldDogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIGdldERvbWFpbkxvY2FsZTtcclxuICAgIH1cclxufSk7XHJcbmNvbnN0IF9ub3JtYWxpemV0cmFpbGluZ3NsYXNoID0gcmVxdWlyZShcIi4vbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoXCIpO1xyXG5jb25zdCBiYXNlUGF0aCA9IHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEggfHwgXCJcIjtcclxuZnVuY3Rpb24gZ2V0RG9tYWluTG9jYWxlKHBhdGgsIGxvY2FsZSwgbG9jYWxlcywgZG9tYWluTG9jYWxlcykge1xyXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcclxuICAgICAgICBjb25zdCBub3JtYWxpemVMb2NhbGVQYXRoID0gcmVxdWlyZShcIi4vbm9ybWFsaXplLWxvY2FsZS1wYXRoXCIpLm5vcm1hbGl6ZUxvY2FsZVBhdGg7XHJcbiAgICAgICAgY29uc3QgZGV0ZWN0RG9tYWluTG9jYWxlID0gcmVxdWlyZShcIi4vZGV0ZWN0LWRvbWFpbi1sb2NhbGVcIikuZGV0ZWN0RG9tYWluTG9jYWxlO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGxvY2FsZSB8fCBub3JtYWxpemVMb2NhbGVQYXRoKHBhdGgsIGxvY2FsZXMpLmRldGVjdGVkTG9jYWxlO1xyXG4gICAgICAgIGNvbnN0IGRvbWFpbiA9IGRldGVjdERvbWFpbkxvY2FsZShkb21haW5Mb2NhbGVzLCB1bmRlZmluZWQsIHRhcmdldCk7XHJcbiAgICAgICAgaWYgKGRvbWFpbikge1xyXG4gICAgICAgICAgICBjb25zdCBwcm90byA9IFwiaHR0cFwiICsgKGRvbWFpbi5odHRwID8gXCJcIiA6IFwic1wiKSArIFwiOi8vXCI7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbmFsTG9jYWxlID0gdGFyZ2V0ID09PSBkb21haW4uZGVmYXVsdExvY2FsZSA/IFwiXCIgOiBcIi9cIiArIHRhcmdldDtcclxuICAgICAgICAgICAgcmV0dXJuIFwiXCIgKyBwcm90byArIGRvbWFpbi5kb21haW4gKyAoMCwgX25vcm1hbGl6ZXRyYWlsaW5nc2xhc2gubm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2gpKFwiXCIgKyBiYXNlUGF0aCArIGZpbmFsTG9jYWxlICsgcGF0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG59XHJcblxyXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XHJcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xyXG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xyXG59XHJcblxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtZG9tYWluLWxvY2FsZS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiZ2V0RG9tYWluTG9jYWxlIiwiX25vcm1hbGl6ZXRyYWlsaW5nc2xhc2giLCJyZXF1aXJlIiwiYmFzZVBhdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1JPVVRFUl9CQVNFUEFUSCIsInBhdGgiLCJsb2NhbGUiLCJsb2NhbGVzIiwiZG9tYWluTG9jYWxlcyIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwidGFyZ2V0IiwiZGV0ZWN0ZWRMb2NhbGUiLCJkb21haW4iLCJ1bmRlZmluZWQiLCJwcm90byIsImh0dHAiLCJmaW5hbExvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/get-domain-locale.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/client/link.js":
|
||
/*!***********************************************!*\
|
||
!*** ./node_modules/next/dist/client/link.js ***!
|
||
\***********************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nvar _s = $RefreshSig$();\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\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 _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"));\nconst _resolvehref = __webpack_require__(/*! ./resolve-href */ \"(app-pages-browser)/./node_modules/next/dist/client/resolve-href.js\");\nconst _islocalurl = __webpack_require__(/*! ../shared/lib/router/utils/is-local-url */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _formaturl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"(app-pages-browser)/./node_modules/next/dist/client/add-locale.js\");\nconst _routercontextsharedruntime = __webpack_require__(/*! ../shared/lib/router-context.shared-runtime */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../shared/lib/app-router-context.shared-runtime */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js\");\nconst _useintersection = __webpack_require__(/*! ./use-intersection */ \"(app-pages-browser)/./node_modules/next/dist/client/use-intersection.js\");\nconst _getdomainlocale = __webpack_require__(/*! ./get-domain-locale */ \"(app-pages-browser)/./node_modules/next/dist/client/get-domain-locale.js\");\nconst _addbasepath = __webpack_require__(/*! ./add-base-path */ \"(app-pages-browser)/./node_modules/next/dist/client/add-base-path.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./components/router-reducer/router-reducer-types */ \"(app-pages-browser)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst prefetched = new Set();\nfunction prefetch(router, href, as, options, appOptions, isAppRouter) {\n if (false) {}\n // app-router supports external urls out of the box so it shouldn't short-circuit here as support for e.g. `replace` is added in the app-router.\n if (!isAppRouter && !(0, _islocalurl.isLocalURL)(href)) {\n return;\n }\n // We should only dedupe requests when experimental.optimisticClientCache is\n // disabled.\n if (!options.bypassPrefetchedCheck) {\n const locale = typeof options.locale !== \"undefined\" ? options.locale : \"locale\" in router ? router.locale : undefined;\n const prefetchedKey = href + \"%\" + as + \"%\" + locale;\n // If we've already fetched the key, then don't prefetch it again!\n if (prefetched.has(prefetchedKey)) {\n return;\n }\n // Mark this URL as prefetched.\n prefetched.add(prefetchedKey);\n }\n const prefetchPromise = isAppRouter ? router.prefetch(href, appOptions) : router.prefetch(href, as, options);\n // Prefetch the JSON page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n Promise.resolve(prefetchPromise).catch((err)=>{\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n}\nfunction isModifiedEvent(event) {\n const eventTarget = event.currentTarget;\n const target = eventTarget.getAttribute(\"target\");\n return target && target !== \"_self\" || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || // triggers resource download\n event.nativeEvent && event.nativeEvent.which === 2;\n}\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale, isAppRouter, prefetchEnabled) {\n const { nodeName } = e.currentTarget;\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === \"A\";\n if (isAnchorNodeName && (isModifiedEvent(e) || // app-router supports external urls out of the box so it shouldn't short-circuit here as support for e.g. `replace` is added in the app-router.\n !isAppRouter && !(0, _islocalurl.isLocalURL)(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n e.preventDefault();\n const navigate = ()=>{\n // If the router is an NextRouter instance it will have `beforePopState`\n const routerScroll = scroll != null ? scroll : true;\n if (\"beforePopState\" in router) {\n router[replace ? \"replace\" : \"push\"](href, as, {\n shallow,\n locale,\n scroll: routerScroll\n });\n } else {\n router[replace ? \"replace\" : \"push\"](as || href, {\n forceOptimisticNavigation: !prefetchEnabled,\n scroll: routerScroll\n });\n }\n };\n if (isAppRouter) {\n _react.default.startTransition(navigate);\n } else {\n navigate();\n }\n}\nfunction formatStringOrUrl(urlObjOrString) {\n if (typeof urlObjOrString === \"string\") {\n return urlObjOrString;\n }\n return (0, _formaturl.formatUrl)(urlObjOrString);\n}\n/**\r\n * React Component that enables client-side transitions between routes.\r\n */ const Link = /*#__PURE__*/ _s(_react.default.forwardRef(_c = _s(function LinkComponent(props, forwardedRef) {\n _s();\n let children;\n const { href: hrefProp, as: asProp, children: childrenProp, prefetch: prefetchProp = null, passHref, replace, shallow, scroll, locale, onClick, onMouseEnter: onMouseEnterProp, onTouchStart: onTouchStartProp, legacyBehavior = false, ...restProps } = props;\n children = childrenProp;\n if (legacyBehavior && (typeof children === \"string\" || typeof children === \"number\")) {\n children = /*#__PURE__*/ _react.default.createElement(\"a\", null, children);\n }\n const pagesRouter = _react.default.useContext(_routercontextsharedruntime.RouterContext);\n const appRouter = _react.default.useContext(_approutercontextsharedruntime.AppRouterContext);\n const router = pagesRouter != null ? pagesRouter : appRouter;\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter;\n const prefetchEnabled = prefetchProp !== false;\n /**\r\n * The possible states for prefetch are:\r\n * - null: this is the default \"auto\" mode, where we will prefetch partially if the link is in the viewport\r\n * - true: we will prefetch if the link is visible and prefetch the full page, not just partially\r\n * - false: we will not prefetch if in the viewport at all\r\n */ const appPrefetchKind = prefetchProp === null ? _routerreducertypes.PrefetchKind.AUTO : _routerreducertypes.PrefetchKind.FULL;\n if (true) {\n function createPropError(args) {\n return new Error(\"Failed prop type: The prop `\" + args.key + \"` expects a \" + args.expected + \" in `<Link>`, but got `\" + args.actual + \"` instead.\" + ( true ? \"\\nOpen your browser's console to view the Component stack trace.\" : 0));\n }\n // TypeScript trick for type-guarding:\n const requiredPropsGuard = {\n href: true\n };\n const requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach((key)=>{\n if (key === \"href\") {\n if (props[key] == null || typeof props[key] !== \"string\" && typeof props[key] !== \"object\") {\n throw createPropError({\n key,\n expected: \"`string` or `object`\",\n actual: props[key] === null ? \"null\" : typeof props[key]\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // TypeScript trick for type-guarding:\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach((key)=>{\n const valType = typeof props[key];\n if (key === \"as\") {\n if (props[key] && valType !== \"string\" && valType !== \"object\") {\n throw createPropError({\n key,\n expected: \"`string` or `object`\",\n actual: valType\n });\n }\n } else if (key === \"locale\") {\n if (props[key] && valType !== \"string\") {\n throw createPropError({\n key,\n expected: \"`string`\",\n actual: valType\n });\n }\n } else if (key === \"onClick\" || key === \"onMouseEnter\" || key === \"onTouchStart\") {\n if (props[key] && valType !== \"function\") {\n throw createPropError({\n key,\n expected: \"`function`\",\n actual: valType\n });\n }\n } else if (key === \"replace\" || key === \"scroll\" || key === \"shallow\" || key === \"passHref\" || key === \"prefetch\" || key === \"legacyBehavior\") {\n if (props[key] != null && valType !== \"boolean\") {\n throw createPropError({\n key,\n expected: \"`boolean`\",\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // This hook is in a conditional but that is ok because `process.env.NODE_ENV` never changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const hasWarned = _react.default.useRef(false);\n if (props.prefetch && !hasWarned.current && !isAppRouter) {\n hasWarned.current = true;\n console.warn(\"Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated\");\n }\n }\n if (true) {\n if (isAppRouter && !asProp) {\n let href;\n if (typeof hrefProp === \"string\") {\n href = hrefProp;\n } else if (typeof hrefProp === \"object\" && typeof hrefProp.pathname === \"string\") {\n href = hrefProp.pathname;\n }\n if (href) {\n const hasDynamicSegment = href.split(\"/\").some((segment)=>segment.startsWith(\"[\") && segment.endsWith(\"]\"));\n if (hasDynamicSegment) {\n throw new Error(\"Dynamic href `\" + href + \"` found in <Link> while using the `/app` router, this is not supported. Read more: https://nextjs.org/docs/messages/app-dir-dynamic-href\");\n }\n }\n }\n }\n const { href, as } = _react.default.useMemo(()=>{\n if (!pagesRouter) {\n const resolvedHref = formatStringOrUrl(hrefProp);\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref\n };\n }\n const [resolvedHref, resolvedAs] = (0, _resolvehref.resolveHref)(pagesRouter, hrefProp, true);\n return {\n href: resolvedHref,\n as: asProp ? (0, _resolvehref.resolveHref)(pagesRouter, asProp) : resolvedAs || resolvedHref\n };\n }, [\n pagesRouter,\n hrefProp,\n asProp\n ]);\n const previousHref = _react.default.useRef(href);\n const previousAs = _react.default.useRef(as);\n // This will return the first child, if multiple are provided it will throw an error\n let child;\n if (legacyBehavior) {\n if (true) {\n if (onClick) {\n console.warn('\"onClick\" was passed to <Link> with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link');\n }\n if (onMouseEnterProp) {\n console.warn('\"onMouseEnter\" was passed to <Link> with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link');\n }\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n if (!children) {\n throw new Error(\"No children were passed to <Link> with `href` of `\" + hrefProp + \"` but one child is required https://nextjs.org/docs/messages/link-no-children\");\n }\n throw new Error(\"Multiple children were passed to <Link> with `href` of `\" + hrefProp + \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\" + ( true ? \" \\nOpen your browser's console to view the Component stack trace.\" : 0));\n }\n } else {}\n } else {\n if (true) {\n if ((children == null ? void 0 : children.type) === \"a\") {\n throw new Error(\"Invalid <Link> with <a> child. Please remove <a> or use <Link legacyBehavior>.\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor\");\n }\n }\n }\n const childRef = legacyBehavior ? child && typeof child === \"object\" && child.ref : forwardedRef;\n const [setIntersectionRef, isVisible, resetVisible] = (0, _useintersection.useIntersection)({\n rootMargin: \"200px\"\n });\n const setRef = _react.default.useCallback((el)=>{\n // Before the link getting observed, check if visible state need to be reset\n if (previousAs.current !== as || previousHref.current !== href) {\n resetVisible();\n previousAs.current = as;\n previousHref.current = href;\n }\n setIntersectionRef(el);\n if (childRef) {\n if (typeof childRef === \"function\") childRef(el);\n else if (typeof childRef === \"object\") {\n childRef.current = el;\n }\n }\n }, [\n as,\n childRef,\n href,\n resetVisible,\n setIntersectionRef\n ]);\n // Prefetch the URL if we haven't already and it's visible.\n _react.default.useEffect(()=>{\n // in dev, we only prefetch on hover to avoid wasting resources as the prefetch will trigger compiling the page.\n if (true) {\n return;\n }\n if (!router) {\n return;\n }\n // If we don't need to prefetch the URL, don't do prefetch.\n if (!isVisible || !prefetchEnabled) {\n return;\n }\n // Prefetch the URL.\n prefetch(router, href, as, {\n locale\n }, {\n kind: appPrefetchKind\n }, isAppRouter);\n }, [\n as,\n href,\n isVisible,\n locale,\n prefetchEnabled,\n pagesRouter == null ? void 0 : pagesRouter.locale,\n router,\n isAppRouter,\n appPrefetchKind\n ]);\n const childProps = {\n ref: setRef,\n onClick (e) {\n if (true) {\n if (!e) {\n throw new Error('Component rendered inside next/link has to pass click event to \"onClick\" prop.');\n }\n }\n if (!legacyBehavior && typeof onClick === \"function\") {\n onClick(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onClick === \"function\") {\n child.props.onClick(e);\n }\n if (!router) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n linkClicked(e, router, href, as, replace, shallow, scroll, locale, isAppRouter, prefetchEnabled);\n },\n onMouseEnter (e) {\n if (!legacyBehavior && typeof onMouseEnterProp === \"function\") {\n onMouseEnterProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onMouseEnter === \"function\") {\n child.props.onMouseEnter(e);\n }\n if (!router) {\n return;\n }\n if ((!prefetchEnabled || \"development\" === \"development\") && isAppRouter) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n }, {\n kind: appPrefetchKind\n }, isAppRouter);\n },\n onTouchStart (e) {\n if (!legacyBehavior && typeof onTouchStartProp === \"function\") {\n onTouchStartProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onTouchStart === \"function\") {\n child.props.onTouchStart(e);\n }\n if (!router) {\n return;\n }\n if (!prefetchEnabled && isAppRouter) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n }, {\n kind: appPrefetchKind\n }, isAppRouter);\n }\n };\n // If child is an <a> tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user.\n // If the url is absolute, we can bypass the logic to prepend the domain and locale.\n if ((0, _utils.isAbsoluteUrl)(as)) {\n childProps.href = as;\n } else if (!legacyBehavior || passHref || child.type === \"a\" && !(\"href\" in child.props)) {\n const curLocale = typeof locale !== \"undefined\" ? locale : pagesRouter == null ? void 0 : pagesRouter.locale;\n // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n const localeDomain = (pagesRouter == null ? void 0 : pagesRouter.isLocaleDomain) && (0, _getdomainlocale.getDomainLocale)(as, curLocale, pagesRouter == null ? void 0 : pagesRouter.locales, pagesRouter == null ? void 0 : pagesRouter.domainLocales);\n childProps.href = localeDomain || (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, curLocale, pagesRouter == null ? void 0 : pagesRouter.defaultLocale));\n }\n return legacyBehavior ? /*#__PURE__*/ _react.default.cloneElement(child, childProps) : /*#__PURE__*/ _react.default.createElement(\"a\", {\n ...restProps,\n ...childProps\n }, children);\n}, \"wKD5mb5mk47bkaStGb/Fvd6RWZE=\")), \"wKD5mb5mk47bkaStGb/Fvd6RWZE=\");\n_c1 = Link;\nconst _default = Link;\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=link.js.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Link$_react.default.forwardRef\");\n$RefreshReg$(_c1, \"Link\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2xpbmsuanMiLCJtYXBwaW5ncyI6InFEQUVhOztBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsMkNBQTBDO0lBQ3RDSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsMkJBQTJCQyxtQkFBT0EsQ0FBQyxnSUFBeUM7QUFDbEYsTUFBTUMsU0FBUyxXQUFXLEdBQUdGLHlCQUF5QkcsQ0FBQyxDQUFDRixtQkFBT0EsQ0FBQyxtRkFBTztBQUN2RSxNQUFNRyxlQUFlSCxtQkFBT0EsQ0FBQywyRkFBZ0I7QUFDN0MsTUFBTUksY0FBY0osbUJBQU9BLENBQUMscUlBQXlDO0FBQ3JFLE1BQU1LLGFBQWFMLG1CQUFPQSxDQUFDLGlJQUF1QztBQUNsRSxNQUFNTSxTQUFTTixtQkFBT0EsQ0FBQyw2RkFBcUI7QUFDNUMsTUFBTU8sYUFBYVAsbUJBQU9BLENBQUMsdUZBQWM7QUFDekMsTUFBTVEsOEJBQThCUixtQkFBT0EsQ0FBQyw2SUFBNkM7QUFDekYsTUFBTVMsaUNBQWlDVCxtQkFBT0EsQ0FBQyxxSkFBaUQ7QUFDaEcsTUFBTVUsbUJBQW1CVixtQkFBT0EsQ0FBQyxtR0FBb0I7QUFDckQsTUFBTVcsbUJBQW1CWCxtQkFBT0EsQ0FBQyxxR0FBcUI7QUFDdEQsTUFBTVksZUFBZVosbUJBQU9BLENBQUMsNkZBQWlCO0FBQzlDLE1BQU1hLHNCQUFzQmIsbUJBQU9BLENBQUMsK0pBQWtEO0FBQ3RGLE1BQU1jLGFBQWEsSUFBSUM7QUFDdkIsU0FBU0MsU0FBU0MsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLEVBQUUsRUFBRUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLFdBQVc7SUFDaEUsSUFBSSxLQUE2QixFQUFFLEVBRWxDO0lBQ0QsZ0pBQWdKO0lBQ2hKLElBQUksQ0FBQ0EsZUFBZSxDQUFDLENBQUMs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UUFBUXFFLE9BQU8sRUFBRSxjQUFjO1FBQUVwRSxPQUFPO0lBQUs7SUFDbkVILE9BQU9zSyxNQUFNLENBQUNwSyxRQUFRcUUsT0FBTyxFQUFFckU7SUFDL0JxSyxPQUFPckssT0FBTyxHQUFHQSxRQUFRcUUsT0FBTztBQUNsQyxFQUVBLGdDQUFnQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzP2U0ZjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcblxyXG5cInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XHJcbiAgICB2YWx1ZTogdHJ1ZVxyXG59KTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZGVmYXVsdFwiLCB7XHJcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gX2RlZmF1bHQ7XHJcbiAgICB9XHJcbn0pO1xyXG5jb25zdCBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0XCIpO1xyXG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5fKHJlcXVpcmUoXCJyZWFjdFwiKSk7XHJcbmNvbnN0IF9yZXNvbHZlaHJlZiA9IHJlcXVpcmUoXCIuL3Jlc29sdmUtaHJlZlwiKTtcclxuY29uc3QgX2lzbG9jYWx1cmwgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtbG9jYWwtdXJsXCIpO1xyXG5jb25zdCBfZm9ybWF0dXJsID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmxcIik7XHJcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3V0aWxzXCIpO1xyXG5jb25zdCBfYWRkbG9jYWxlID0gcmVxdWlyZShcIi4vYWRkLWxvY2FsZVwiKTtcclxuY29uc3QgX3JvdXRlcmNvbnRleHRzaGFyZWRydW50aW1lID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWVcIik7XHJcbmNvbnN0IF9hcHByb3V0ZXJjb250ZXh0c2hhcmVkcnVudGltZSA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZVwiKTtcclxuY29uc3QgX3VzZWludGVyc2VjdGlvbiA9IHJlcXVpcmUoXCIuL3VzZS1pbnRlcnNlY3Rpb25cIik7XHJcbmNvbnN0IF9nZXRkb21haW5sb2NhbGUgPSByZXF1aXJlKFwiLi9nZXQtZG9tYWluLWxvY2FsZVwiKTtcclxuY29uc3QgX2FkZGJhc2VwYXRoID0gcmVxdWlyZShcIi4vYWRkLWJhc2UtcGF0aFwiKTtcclxuY29uc3QgX3JvdXRlcnJlZHVjZXJ0eXBlcyA9IHJlcXVpcmUoXCIuL2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXNcIik7XHJcbmNvbnN0IHByZWZldGNoZWQgPSBuZXcgU2V0KCk7XHJcbmZ1bmN0aW9uIHByZWZldGNoKHJvdXRlciwgaHJlZiwgYXMsIG9wdGlvbnMsIGFwcE9wdGlvbnMsIGlzQXBwUm91dGVyKSB7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIGFwcC1yb3V0ZXIgc3VwcG9ydHMgZXh0ZXJuYWwgdXJscyBvdXQgb2YgdGhlIGJveCBzbyBpdCBzaG91bGRuJ3Qgc2hvcnQtY2lyY3VpdCBoZXJlIGFzIHN1cHBvcnQgZm9yIGUuZy4gYHJlcGxhY2VgIGlzIGFkZGVkIGluIHRoZSBhcHAtcm91dGVyLlxyXG4gICAgaWYgKCFpc0FwcFJvdXRlciAmJiAhKDAsIF9pc2xvY2FsdXJsLmlzTG9jYWxVUkwpKGhyZWYpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gV2Ugc2hvdWxkIG9ubHkgZGVkdXBlIHJlcXVlc3RzIHdoZW4gZXhwZXJpbWVudGFsLm9wdGltaXN0aWNDbGllbnRDYWNoZSBpc1xyXG4gICAgLy8gZGlzYWJsZWQuXHJcbiAgICBpZiAoIW9wdGlvbnMuYnlwYXNzUHJlZmV0Y2hlZENoZWNrKSB7XHJcbiAgICAgICAgY29uc3QgbG9jYWxlID0gLy8gTGV0IHRoZSBsaW5rJ3MgbG9jYWxlIHByb3Agb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcm91dGVyIGxvY2FsZS5cclxuICAgICAgICB0eXBlb2Ygb3B0aW9ucy5sb2NhbGUgIT09IFwidW5kZWZpbmVkXCIgPyBvcHRpb25zLmxvY2FsZSA6IFwibG9jYWxlXCIgaW4gcm91dGVyID8gcm91dGVyLmxvY2FsZSA6IHVuZGVmaW5lZDtcclxuICAgICAgICBjb25zdCBwcmVmZXRjaGVkS2V5ID0gaHJlZiArIFwiJVwiICsgYXMgKyBcIiVcIiArIGxvY2FsZTtcclxuICAgICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGZldGNoZWQgdGhlIGtleSwgdGhlbiBkb24ndCBwcmVmZXRjaCBpdCBhZ2FpbiFcclxuICAgICAgICBpZiAocHJlZmV0Y2hlZC5oYXMocHJlZmV0Y2hlZEtleSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBNYXJrIHRoaXMgVVJMIGFzIHByZWZldGNoZWQuXHJcbiAgICAgICAgcHJlZmV0Y2hlZC5hZGQocHJlZmV0Y2hlZEtleSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwcmVmZXRjaFByb21pc2UgPSBpc0FwcFJvdXRlciA/IHJvdXRlci5wcmVmZXRjaChocmVmLCBhcHBPcHRpb25zKSA6IHJvdXRlci5wcmVmZXRjaChocmVmLCBhcywgb3B0aW9ucyk7XHJcbiAgICAvLyBQcmVmZXRjaCB0aGUgSlNPTiBwYWdlIGlmIGFza2VkIChvbmx5IGluIHRoZSBjbGllbnQpXHJcbiAgICAvLyBXZSBuZWVkIHRvIGhhbmRsZSBhIHByZWZldGNoIGVycm9yIGhlcmUgc2luY2Ugd2UgbWF5IGJlXHJcbiAgICAvLyBsb2FkaW5nIHdpdGggcHJpb3JpdHkgd2hpY2ggY2FuIHJlamVjdCBidXQgd2UgZG9uJ3RcclxuICAgIC8vIHdhbnQgdG8gZm9yY2UgbmF2aWdhdGlvbiBzaW5jZSB0aGlzIGlzIG9ubHkgYSBwcmVmZXRjaFxyXG4gICAgUHJvbWlzZS5yZXNvbHZlKHByZWZldGNoUHJvbWlzZSkuY2F0Y2goKGVycik9PntcclxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XHJcbiAgICAgICAgICAgIC8vIHJldGhyb3cgdG8gc2hvdyBpbnZhbGlkIFVSTCBlcnJvcnNcclxuICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG59XHJcbmZ1bmN0aW9uIGlzTW9kaWZpZWRFdmVudChldmVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUYXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0O1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKFwidGFyZ2V0XCIpO1xyXG4gICAgcmV0dXJuIHRhcmdldCAmJiB0YXJnZXQgIT09IFwiX3NlbGZcIiB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQuYWx0S2V5IHx8IC8vIHRyaWdnZXJzIHJlc291cmNlIGRvd25sb2FkXHJcbiAgICBldmVudC5uYXRpdmVFdmVudCAmJiBldmVudC5uYXRpdmVFdmVudC53aGljaCA9PT0gMjtcclxufVxyXG5mdW5jdGlvbiBsaW5rQ2xpY2tlZChlLCByb3V0ZXIsIGhyZWYsIGFzLCByZXBsYWNlLCBzaGFsbG93LCBzY3JvbGwsIGxvY2FsZSwgaXNBcHBSb3V0ZXIsIHByZWZldGNoRW5hYmxlZCkge1xyXG4gICAgY29uc3QgeyBub2RlTmFtZSB9ID0gZS5jdXJyZW50VGFyZ2V0O1xyXG4gICAgLy8gYW5jaG9ycyBpbnNpZGUgYW4gc3ZnIGhhdmUgYSBsb3dlcmNhc2Ugbm9kZU5hbWVcclxuICAgIGNvbnN0IGlzQW5jaG9yTm9kZU5hbWUgPSBub2RlTmFtZS50b1VwcGVyQ2FzZSgpID09PSBcIkFcIjtcclxuICAgIGlmIChpc0FuY2hvck5vZGVOYW1lICYmIChpc01vZGlmaWVkRXZlbnQoZSkgfHwgLy8gYXBwLXJvdXRlciBzdXBwb3J0cyBleHRlcm5hbCB1cmxzIG91dCBvZiB0aGUgYm94IHNvIGl0IHNob3VsZG4ndCBzaG9ydC1jaXJjdWl0IGhlcmUgYXMgc3VwcG9ydCBmb3IgZS5nLiBgcmVwbGFjZWAgaXMgYWRkZWQgaW4gdGhlIGFwcC1yb3V0ZXIuXHJcbiAgICAhaXNBcHBSb3V0ZXIgJiYgISgwLCBfaXNsb2NhbHVybC5pc0xvY2FsVVJMKShocmVmKSkpIHtcclxuICAgICAgICAvLyBpZ25vcmUgY2xpY2sgZm9yIGJyb3dzZXLigJlzIGRlZmF1bHQgYmVoYXZpb3JcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCBuYXZpZ2F0ZSA9ICgpPT57XHJcbiAgICAgICAgLy8gSWYgdGhlIHJvdXRlciBpcyBhbiBOZXh0Um91dGVyIGluc3RhbmNlIGl0IHdpbGwgaGF2ZSBgYmVmb3JlUG9wU3RhdGVgXHJcbiAgICAgICAgY29uc3Qgcm91dGVyU2Nyb2xsID0gc2Nyb2xsICE9IG51bGwgPyBzY3JvbGwgOiB0cnVlO1xyXG4gICAgICAgIGlmIChcImJlZm9yZVBvcFN0YXRlXCIgaW4gcm91dGVyKSB7XHJcbiAgICAgICAgICAgIHJvdXRlcltyZXBsYWNlID8gXCJyZXBsYWNlXCIgOiBcInB1c2hcIl0oaHJlZiwgYXMsIHtcclxuICAgICAgICAgICAgICAgIHNoYWxsb3csXHJcbiAgICAgICAgICAgICAgICBsb2NhbGUsXHJcbiAgICAgICAgICAgICAgICBzY3JvbGw6IHJvdXRlclNjcm9sbFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByb3V0ZXJbcmVwbGFjZSA/IFwicmVwbGFjZVwiIDogXCJwdXNoXCJdKGFzIHx8IGhyZWYsIHtcclxuICAgICAgICAgICAgICAgIGZvcmNlT3B0aW1pc3RpY05hdmlnYXRpb246ICFwcmVmZXRjaEVuYWJsZWQsXHJcbiAgICAgICAgICAgICAgICBzY3JvbGw6IHJvdXRlclNjcm9sbFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKGlzQXBwUm91dGVyKSB7XHJcbiAgICAgICAgX3JlYWN0LmRlZmF1bHQuc3RhcnRUcmFuc2l0aW9uKG5hdmlnYXRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmF2aWdhdGUoKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBmb3JtYXRTdHJpbmdPclVybCh1cmxPYmpPclN0cmluZykge1xyXG4gICAgaWYgKHR5cGVvZiB1cmxPYmpPclN0cmluZyA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIHJldHVybiB1cmxPYmpPclN0cmluZztcclxuICAgIH1cclxuICAgIHJldHVybiAoMCwgX2Zvcm1hdHVybC5mb3JtYXRVcmwpKHVybE9iak9yU3RyaW5nKTtcclxufVxyXG4vKipcclxuICogUmVhY3QgQ29tcG9uZW50IHRoYXQgZW5hYmxlcyBjbGllbnQtc2lkZSB0cmFuc2l0aW9ucyBiZXR3ZWVuIHJvdXRlcy5cclxuICovIGNvbnN0IExpbmsgPSAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmZvcndhcmRSZWYoZnVuY3Rpb24gTGlua0NvbXBvbmVudChwcm9wcywgZm9yd2FyZGVkUmVmKSB7XHJcbiAgICBsZXQgY2hpbGRyZW47XHJcbiAgICBjb25zdCB7IGhyZWY6IGhyZWZQcm9wLCBhczogYXNQcm9wLCBjaGlsZHJlbjogY2hpbGRyZW5Qcm9wLCBwcmVmZXRjaDogcHJlZmV0Y2hQcm9wID0gbnVsbCwgcGFzc0hyZWYsIHJlcGxhY2UsIHNoYWxsb3csIHNjcm9sbCwgbG9jYWxlLCBvbkNsaWNrLCBvbk1vdXNlRW50ZXI6IG9uTW91c2VFbnRlclByb3AsIG9uVG91Y2hTdGFydDogb25Ub3VjaFN0YXJ0UHJvcCwgbGVnYWN5QmVoYXZpb3IgPSBmYWxzZSwgLi4ucmVzdFByb3BzIH0gPSBwcm9wcztcclxuICAgIGNoaWxkcmVuID0gY2hpbGRyZW5Qcm9wO1xyXG4gICAgaWYgKGxlZ2FjeUJlaGF2aW9yICYmICh0eXBlb2YgY2hpbGRyZW4gPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIGNoaWxkcmVuID09PSBcIm51bWJlclwiKSkge1xyXG4gICAgICAgIGNoaWxkcmVuID0gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBudWxsLCBjaGlsZHJlbik7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYWdlc1JvdXRlciA9IF9yZWFjdC5kZWZhdWx0LnVzZUNvbnRleHQoX3JvdXRlcmNvbnRleHRzaGFyZWRydW50aW1lLlJvdXRlckNvbnRleHQpO1xyXG4gICAgY29uc3QgYXBwUm91dGVyID0gX3JlYWN0LmRlZmF1bHQudXNlQ29udGV4dChfYXBwcm91dGVyY29udGV4dHNoYXJlZHJ1bnRpbWUuQXBwUm91dGVyQ29udGV4dCk7XHJcbiAgICBjb25zdCByb3V0ZXIgPSBwYWdlc1JvdXRlciAhPSBudWxsID8gcGFnZXNSb3V0ZXIgOiBhcHBSb3V0ZXI7XHJcbiAgICAvLyBXZSdyZSBpbiB0aGUgYXBwIGRpcmVjdG9yeSBpZiB0aGVyZSBpcyBubyBwYWdlcyByb3V0ZXIuXHJcbiAgICBjb25zdCBpc0FwcFJvdXRlciA9ICFwYWdlc1JvdXRlcjtcclxuICAgIGNvbnN0IHByZWZldGNoRW5hYmxlZCA9IHByZWZldGNoUHJvcCAhPT0gZmFsc2U7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBwb3NzaWJsZSBzdGF0ZXMgZm9yIHByZWZldGNoIGFyZTpcclxuICAgICAqIC0gbnVsbDogdGhpcyBpcyB0aGUgZGVmYXVsdCBcImF1dG9cIiBtb2RlLCB3aGVyZSB3ZSB3aWxsIHByZWZldGNoIHBhcnRpYWxseSBpZiB0aGUgbGluayBpcyBpbiB0aGUgdmlld3BvcnRcclxuICAgICAqIC0gdHJ1ZTogd2Ugd2lsbCBwcmVmZXRjaCBpZiB0aGUgbGluayBpcyB2aXNpYmxlIGFuZCBwcmVmZXRjaCB0aGUgZnVsbCBwYWdlLCBub3QganVzdCBwYXJ0aWFsbHlcclxuICAgICAqIC0gZmFsc2U6IHdlIHdpbGwgbm90IHByZWZldGNoIGlmIGluIHRoZSB2aWV3cG9ydCBhdCBhbGxcclxuICAgICAqLyBjb25zdCBhcHBQcmVmZXRjaEtpbmQgPSBwcmVmZXRjaFByb3AgPT09IG51bGwgPyBfcm91dGVycmVkdWNlcnR5cGVzLlByZWZldGNoS2luZC5BVVRPIDogX3JvdXRlcnJlZHVjZXJ0eXBlcy5QcmVmZXRjaEtpbmQuRlVMTDtcclxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcclxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVQcm9wRXJyb3IoYXJncykge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKFwiRmFpbGVkIHByb3AgdHlwZTogVGhlIHByb3AgYFwiICsgYXJncy5rZXkgKyBcImAgZXhwZWN0cyBhIFwiICsgYXJncy5leHBlY3RlZCArIFwiIGluIGA8TGluaz5gLCBidXQgZ290IGBcIiArIGFyZ3MuYWN0dWFsICsgXCJgIGluc3RlYWQuXCIgKyAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IFwiXFxuT3BlbiB5b3VyIGJyb3dzZXIncyBjb25zb2xlIHRvIHZpZXcgdGhlIENvbXBvbmVudCBzdGFjayB0cmFjZS5cIiA6IFwiXCIpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcclxuICAgICAgICBjb25zdCByZXF1aXJlZFByb3BzR3VhcmQgPSB7XHJcbiAgICAgICAgICAgIGhyZWY6IHRydWVcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUHJvcHMgPSBPYmplY3Qua2V5cyhyZXF1aXJlZFByb3BzR3VhcmQpO1xyXG4gICAgICAgIHJlcXVpcmVkUHJvcHMuZm9yRWFjaCgoa2V5KT0+e1xyXG4gICAgICAgICAgICBpZiAoa2V5ID09PSBcImhyZWZcIikge1xyXG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gPT0gbnVsbCB8fCB0eXBlb2YgcHJvcHNba2V5XSAhPT0gXCJzdHJpbmdcIiAmJiB0eXBlb2YgcHJvcHNba2V5XSAhPT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFwiYHN0cmluZ2Agb3IgYG9iamVjdGBcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiBwcm9wc1trZXldID09PSBudWxsID8gXCJudWxsXCIgOiB0eXBlb2YgcHJvcHNba2V5XVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcclxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcclxuICAgICAgICAgICAgICAgIGNvbnN0IF8gPSBrZXk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxyXG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHNHdWFyZCA9IHtcclxuICAgICAgICAgICAgYXM6IHRydWUsXHJcbiAgICAgICAgICAgIHJlcGxhY2U6IHRydWUsXHJcbiAgICAgICAgICAgIHNjcm9sbDogdHJ1ZSxcclxuICAgICAgICAgICAgc2hhbGxvdzogdHJ1ZSxcclxuICAgICAgICAgICAgcGFzc0hyZWY6IHRydWUsXHJcbiAgICAgICAgICAgIHByZWZldGNoOiB0cnVlLFxyXG4gICAgICAgICAgICBsb2NhbGU6IHRydWUsXHJcbiAgICAgICAgICAgIG9uQ2xpY2s6IHRydWUsXHJcbiAgICAgICAgICAgIG9uTW91c2VFbnRlcjogdHJ1ZSxcclxuICAgICAgICAgICAgb25Ub3VjaFN0YXJ0OiB0cnVlLFxyXG4gICAgICAgICAgICBsZWdhY3lCZWhhdmlvcjogdHJ1ZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uYWxQcm9wcyA9IE9iamVjdC5rZXlzKG9wdGlvbmFsUHJvcHNHdWFyZCk7XHJcbiAgICAgICAgb3B0aW9uYWxQcm9wcy5mb3JFYWNoKChrZXkpPT57XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgcHJvcHNba2V5XTtcclxuICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJhc1wiKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSBcInN0cmluZ1wiICYmIHZhbFR5cGUgIT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBcImBzdHJpbmdgIG9yIGBvYmplY3RgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJsb2NhbGVcIikge1xyXG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gJiYgdmFsVHlwZSAhPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFwiYHN0cmluZ2BcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIm9uQ2xpY2tcIiB8fCBrZXkgPT09IFwib25Nb3VzZUVudGVyXCIgfHwga2V5ID09PSBcIm9uVG91Y2hTdGFydFwiKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBcImBmdW5jdGlvbmBcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcInJlcGxhY2VcIiB8fCBrZXkgPT09IFwic2Nyb2xsXCIgfHwga2V5ID09PSBcInNoYWxsb3dcIiB8fCBrZXkgPT09IFwicGFzc0hyZWZcIiB8fCBrZXkgPT09IFwicHJlZmV0Y2hcIiB8fCBrZXkgPT09IFwibGVnYWN5QmVoYXZpb3JcIikge1xyXG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gIT0gbnVsbCAmJiB2YWxUeXBlICE9PSBcImJvb2xlYW5cIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFwiYGJvb2xlYW5gXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcclxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcclxuICAgICAgICAgICAgICAgIGNvbnN0IF8gPSBrZXk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBUaGlzIGhvb2sgaXMgaW4gYSBjb25kaXRpb25hbCBidXQgdGhhdCBpcyBvayBiZWNhdXNlIGBwcm9jZXNzLmVudi5OT0RFX0VOVmAgbmV2ZXIgY2hhbmdlc1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xyXG4gICAgICAgIGNvbnN0IGhhc1dhcm5lZCA9IF9yZWFjdC5kZWZhdWx0LnVzZVJlZihmYWxzZSk7XHJcbiAgICAgICAgaWYgKHByb3BzLnByZWZldGNoICYmICFoYXNXYXJuZWQuY3VycmVudCAmJiAhaXNBcHBSb3V0ZXIpIHtcclxuICAgICAgICAgICAgaGFzV2FybmVkLmN1cnJlbnQgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJOZXh0LmpzIGF1dG8tcHJlZmV0Y2hlcyBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHZpZXdwb3J0LiBUaGUgcHJlZmV0Y2ggYXR0cmlidXRlIGlzIG5vIGxvbmdlciBuZWVkZWQuIE1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ByZWZldGNoLXRydWUtZGVwcmVjYXRlZFwiKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XHJcbiAgICAgICAgaWYgKGlzQXBwUm91dGVyICYmICFhc1Byb3ApIHtcclxuICAgICAgICAgICAgbGV0IGhyZWY7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaHJlZlByb3AgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgICAgIGhyZWYgPSBocmVmUHJvcDtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaHJlZlByb3AgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIGhyZWZQcm9wLnBhdGhuYW1lID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgICAgICBocmVmID0gaHJlZlByb3AucGF0aG5hbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGhyZWYpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc0R5bmFtaWNTZWdtZW50ID0gaHJlZi5zcGxpdChcIi9cIikuc29tZSgoc2VnbWVudCk9PnNlZ21lbnQuc3RhcnRzV2l0aChcIltcIikgJiYgc2VnbWVudC5lbmRzV2l0aChcIl1cIikpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGhhc0R5bmFtaWNTZWdtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRHluYW1pYyBocmVmIGBcIiArIGhyZWYgKyBcImAgZm91bmQgaW4gPExpbms+IHdoaWxlIHVzaW5nIHRoZSBgL2FwcGAgcm91dGVyLCB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvYXBwLWRpci1keW5hbWljLWhyZWZcIik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IGhyZWYsIGFzIH0gPSBfcmVhY3QuZGVmYXVsdC51c2VNZW1vKCgpPT57XHJcbiAgICAgICAgaWYgKCFwYWdlc1JvdXRlcikge1xyXG4gICAgICAgICAgICBjb25zdCByZXNvbHZlZEhyZWYgPSBmb3JtYXRTdHJpbmdPclVybChocmVmUHJvcCk7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBocmVmOiByZXNvbHZlZEhyZWYsXHJcbiAgICAgICAgICAgICAgICBhczogYXNQcm9wID8gZm9ybWF0U3RyaW5nT3JVcmwoYXNQcm9wKSA6IHJlc29sdmVkSHJlZlxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBbcmVzb2x2ZWRIcmVmLCByZXNvbHZlZEFzXSA9ICgwLCBfcmVzb2x2ZWhyZWYucmVzb2x2ZUhyZWYpKHBhZ2VzUm91dGVyLCBocmVmUHJvcCwgdHJ1ZSk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaHJlZjogcmVzb2x2ZWRIcmVmLFxyXG4gICAgICAgICAgICBhczogYXNQcm9wID8gKDAsIF9yZXNvbHZlaHJlZi5yZXNvbHZlSHJlZikocGFnZXNSb3V0ZXIsIGFzUHJvcCkgOiByZXNvbHZlZEFzIHx8IHJlc29sdmVkSHJlZlxyXG4gICAgICAgIH07XHJcbiAgICB9LCBbXHJcbiAgICAgICAgcGFnZXNSb3V0ZXIsXHJcbiAgICAgICAgaHJlZlByb3AsXHJcbiAgICAgICAgYXNQcm9wXHJcbiAgICBdKTtcclxuICAgIGNvbnN0IHByZXZpb3VzSHJlZiA9IF9yZWFjdC5kZWZhdWx0LnVzZVJlZihocmVmKTtcclxuICAgIGNvbnN0IHByZXZpb3VzQXMgPSBfcmVhY3QuZGVmYXVsdC51c2VSZWYoYXMpO1xyXG4gICAgLy8gVGhpcyB3aWxsIHJldHVybiB0aGUgZmlyc3QgY2hpbGQsIGlmIG11bHRpcGxlIGFyZSBwcm92aWRlZCBpdCB3aWxsIHRocm93IGFuIGVycm9yXHJcbiAgICBsZXQgY2hpbGQ7XHJcbiAgICBpZiAobGVnYWN5QmVoYXZpb3IpIHtcclxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xyXG4gICAgICAgICAgICBpZiAob25DbGljaykge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdcIm9uQ2xpY2tcIiB3YXMgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIGBocmVmYCBvZiBgJyArIGhyZWZQcm9wICsgJ2AgYnV0IFwibGVnYWN5QmVoYXZpb3JcIiB3YXMgc2V0LiBUaGUgbGVnYWN5IGJlaGF2aW9yIHJlcXVpcmVzIG9uQ2xpY2sgYmUgc2V0IG9uIHRoZSBjaGlsZCBvZiBuZXh0L2xpbmsnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAob25Nb3VzZUVudGVyUHJvcCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdcIm9uTW91c2VFbnRlclwiIHdhcyBwYXNzZWQgdG8gPExpbms+IHdpdGggYGhyZWZgIG9mIGAnICsgaHJlZlByb3AgKyAnYCBidXQgXCJsZWdhY3lCZWhhdmlvclwiIHdhcyBzZXQuIFRoZSBsZWdhY3kgYmVoYXZpb3IgcmVxdWlyZXMgb25Nb3VzZUVudGVyIGJlIHNldCBvbiB0aGUgY2hpbGQgb2YgbmV4dC9saW5rJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNoaWxkID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIGNoaWxkcmVuIHdlcmUgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIGBocmVmYCBvZiBgXCIgKyBocmVmUHJvcCArIFwiYCBidXQgb25lIGNoaWxkIGlzIHJlcXVpcmVkIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2xpbmstbm8tY2hpbGRyZW5cIik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNdWx0aXBsZSBjaGlsZHJlbiB3ZXJlIHBhc3NlZCB0byA8TGluaz4gd2l0aCBgaHJlZmAgb2YgYFwiICsgaHJlZlByb3AgKyBcImAgYnV0IG9ubHkgb25lIGNoaWxkIGlzIHN1cHBvcnRlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW11bHRpcGxlLWNoaWxkcmVuXCIgKyAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IFwiIFxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiBcIlwiKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZCA9IF9yZWFjdC5kZWZhdWx0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pO1xyXG4gICAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpIHtcclxuICAgICAgICAgICAgaWYgKChjaGlsZHJlbiA9PSBudWxsID8gdm9pZCAwIDogY2hpbGRyZW4udHlwZSkgPT09IFwiYVwiKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIDxMaW5rPiB3aXRoIDxhPiBjaGlsZC4gUGxlYXNlIHJlbW92ZSA8YT4gb3IgdXNlIDxMaW5rIGxlZ2FjeUJlaGF2aW9yPi5cXG5MZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9pbnZhbGlkLW5ldy1saW5rLXdpdGgtZXh0cmEtYW5jaG9yXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgY2hpbGRSZWYgPSBsZWdhY3lCZWhhdmlvciA/IGNoaWxkICYmIHR5cGVvZiBjaGlsZCA9PT0gXCJvYmplY3RcIiAmJiBjaGlsZC5yZWYgOiBmb3J3YXJkZWRSZWY7XHJcbiAgICBjb25zdCBbc2V0SW50ZXJzZWN0aW9uUmVmLCBpc1Zpc2libGUsIHJlc2V0VmlzaWJsZV0gPSAoMCwgX3VzZWludGVyc2VjdGlvbi51c2VJbnRlcnNlY3Rpb24pKHtcclxuICAgICAgICByb290TWFyZ2luOiBcIjIwMHB4XCJcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgc2V0UmVmID0gX3JlYWN0LmRlZmF1bHQudXNlQ2FsbGJhY2soKGVsKT0+e1xyXG4gICAgICAgIC8vIEJlZm9yZSB0aGUgbGluayBnZXR0aW5nIG9ic2VydmVkLCBjaGVjayBpZiB2aXNpYmxlIHN0YXRlIG5lZWQgdG8gYmUgcmVzZXRcclxuICAgICAgICBpZiAocHJldmlvdXNBcy5jdXJyZW50ICE9PSBhcyB8fCBwcmV2aW91c0hyZWYuY3VycmVudCAhPT0gaHJlZikge1xyXG4gICAgICAgICAgICByZXNldFZpc2libGUoKTtcclxuICAgICAgICAgICAgcHJldmlvdXNBcy5jdXJyZW50ID0gYXM7XHJcbiAgICAgICAgICAgIHByZXZpb3VzSHJlZi5jdXJyZW50ID0gaHJlZjtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2V0SW50ZXJzZWN0aW9uUmVmKGVsKTtcclxuICAgICAgICBpZiAoY2hpbGRSZWYpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZFJlZiA9PT0gXCJmdW5jdGlvblwiKSBjaGlsZFJlZihlbCk7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjaGlsZFJlZiA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICAgICAgY2hpbGRSZWYuY3VycmVudCA9IGVsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW1xyXG4gICAgICAgIGFzLFxyXG4gICAgICAgIGNoaWxkUmVmLFxyXG4gICAgICAgIGhyZWYsXHJcbiAgICAgICAgcmVzZXRWaXNpYmxlLFxyXG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZlxyXG4gICAgXSk7XHJcbiAgICAvLyBQcmVmZXRjaCB0aGUgVVJMIGlmIHdlIGhhdmVuJ3QgYWxyZWFkeSBhbmQgaXQncyB2aXNpYmxlLlxyXG4gICAgX3JlYWN0LmRlZmF1bHQudXNlRWZmZWN0KCgpPT57XHJcbiAgICAgICAgLy8gaW4gZGV2LCB3ZSBvbmx5IHByZWZldGNoIG9uIGhvdmVyIHRvIGF2b2lkIHdhc3RpbmcgcmVzb3VyY2VzIGFzIHRoZSBwcmVmZXRjaCB3aWxsIHRyaWdnZXIgY29tcGlsaW5nIHRoZSBwYWdlLlxyXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXJvdXRlcikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHdlIGRvbid0IG5lZWQgdG8gcHJlZmV0Y2ggdGhlIFVSTCwgZG9uJ3QgZG8gcHJlZmV0Y2guXHJcbiAgICAgICAgaWYgKCFpc1Zpc2libGUgfHwgIXByZWZldGNoRW5hYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZWZldGNoIHRoZSBVUkwuXHJcbiAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywge1xyXG4gICAgICAgICAgICBsb2NhbGVcclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICAgIGtpbmQ6IGFwcFByZWZldGNoS2luZFxyXG4gICAgICAgIH0sIGlzQXBwUm91dGVyKTtcclxuICAgIH0sIFtcclxuICAgICAgICBhcyxcclxuICAgICAgICBocmVmLFxyXG4gICAgICAgIGlzVmlzaWJsZSxcclxuICAgICAgICBsb2NhbGUsXHJcbiAgICAgICAgcHJlZmV0Y2hFbmFibGVkLFxyXG4gICAgICAgIHBhZ2VzUm91dGVyID09IG51bGwgPyB2b2lkIDAgOiBwYWdlc1JvdXRlci5sb2NhbGUsXHJcbiAgICAgICAgcm91dGVyLFxyXG4gICAgICAgIGlzQXBwUm91dGVyLFxyXG4gICAgICAgIGFwcFByZWZldGNoS2luZFxyXG4gICAgXSk7XHJcbiAgICBjb25zdCBjaGlsZFByb3BzID0ge1xyXG4gICAgICAgIHJlZjogc2V0UmVmLFxyXG4gICAgICAgIG9uQ2xpY2sgKGUpIHtcclxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb21wb25lbnQgcmVuZGVyZWQgaW5zaWRlIG5leHQvbGluayBoYXMgdG8gcGFzcyBjbGljayBldmVudCB0byBcIm9uQ2xpY2tcIiBwcm9wLicpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghbGVnYWN5QmVoYXZpb3IgJiYgdHlwZW9mIG9uQ2xpY2sgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgICAgICAgb25DbGljayhlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAobGVnYWN5QmVoYXZpb3IgJiYgY2hpbGQucHJvcHMgJiYgdHlwZW9mIGNoaWxkLnByb3BzLm9uQ2xpY2sgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgICAgICAgY2hpbGQucHJvcHMub25DbGljayhlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIXJvdXRlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChlLmRlZmF1bHRQcmV2ZW50ZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsaW5rQ2xpY2tlZChlLCByb3V0ZXIsIGhyZWYsIGFzLCByZXBsYWNlLCBzaGFsbG93LCBzY3JvbGwsIGxvY2FsZSwgaXNBcHBSb3V0ZXIsIHByZWZldGNoRW5hYmxlZCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbk1vdXNlRW50ZXIgKGUpIHtcclxuICAgICAgICAgICAgaWYgKCFsZWdhY3lCZWhhdmlvciAmJiB0eXBlb2Ygb25Nb3VzZUVudGVyUHJvcCA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXJQcm9wKGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChsZWdhY3lCZWhhdmlvciAmJiBjaGlsZC5wcm9wcyAmJiB0eXBlb2YgY2hpbGQucHJvcHMub25Nb3VzZUVudGVyID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcihlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIXJvdXRlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICgoIXByZWZldGNoRW5hYmxlZCB8fCBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKSAmJiBpc0FwcFJvdXRlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHByZWZldGNoKHJvdXRlciwgaHJlZiwgYXMsIHtcclxuICAgICAgICAgICAgICAgIGxvY2FsZSxcclxuICAgICAgICAgICAgICAgIHByaW9yaXR5OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgLy8gQHNlZSB7aHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2Rpc2N1c3Npb25zLzQwMjY4P3NvcnQ9dG9wI2Rpc2N1c3Npb25jb21tZW50LTM1NzI2NDJ9XHJcbiAgICAgICAgICAgICAgICBieXBhc3NQcmVmZXRjaGVkQ2hlY2s6IHRydWVcclxuICAgICAgICAgICAgfSwge1xyXG4gICAgICAgICAgICAgICAga2luZDogYXBwUHJlZmV0Y2hLaW5kXHJcbiAgICAgICAgICAgIH0sIGlzQXBwUm91dGVyKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uVG91Y2hTdGFydCAoZSkge1xyXG4gICAgICAgICAgICBpZiAoIWxlZ2FjeUJlaGF2aW9yICYmIHR5cGVvZiBvblRvdWNoU3RhcnRQcm9wID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgICAgICAgIG9uVG91Y2hTdGFydFByb3AoZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGxlZ2FjeUJlaGF2aW9yICYmIGNoaWxkLnByb3BzICYmIHR5cGVvZiBjaGlsZC5wcm9wcy5vblRvdWNoU3RhcnQgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgICAgICAgY2hpbGQucHJvcHMub25Ub3VjaFN0YXJ0KGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghcm91dGVyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFwcmVmZXRjaEVuYWJsZWQgJiYgaXNBcHBSb3V0ZXIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XHJcbiAgICAgICAgICAgICAgICBsb2NhbGUsXHJcbiAgICAgICAgICAgICAgICBwcmlvcml0eTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIC8vIEBzZWUge2h0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9kaXNjdXNzaW9ucy80MDI2OD9zb3J0PXRvcCNkaXNjdXNzaW9uY29tbWVudC0zNTcyNjQyfVxyXG4gICAgICAgICAgICAgICAgYnlwYXNzUHJlZmV0Y2hlZENoZWNrOiB0cnVlXHJcbiAgICAgICAgICAgIH0sIHtcclxuICAgICAgICAgICAgICAgIGtpbmQ6IGFwcFByZWZldGNoS2luZFxyXG4gICAgICAgICAgICB9LCBpc0FwcFJvdXRlcik7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8vIElmIGNoaWxkIGlzIGFuIDxhPiB0YWcgYW5kIGRvZXNuJ3QgaGF2ZSBhIGhyZWYgYXR0cmlidXRlLCBvciBpZiB0aGUgJ3Bhc3NIcmVmJyBwcm9wZXJ0eSBpc1xyXG4gICAgLy8gZGVmaW5lZCwgd2Ugc3BlY2lmeSB0aGUgY3VycmVudCAnaHJlZicsIHNvIHRoYXQgcmVwZXRpdGlvbiBpcyBub3QgbmVlZGVkIGJ5IHRoZSB1c2VyLlxyXG4gICAgLy8gSWYgdGhlIHVybCBpcyBhYnNvbHV0ZSwgd2UgY2FuIGJ5cGFzcyB0aGUgbG9naWMgdG8gcHJlcGVuZCB0aGUgZG9tYWluIGFuZCBsb2NhbGUuXHJcbiAgICBpZiAoKDAsIF91dGlscy5pc0Fic29sdXRlVXJsKShhcykpIHtcclxuICAgICAgICBjaGlsZFByb3BzLmhyZWYgPSBhcztcclxuICAgIH0gZWxzZSBpZiAoIWxlZ2FjeUJlaGF2aW9yIHx8IHBhc3NIcmVmIHx8IGNoaWxkLnR5cGUgPT09IFwiYVwiICYmICEoXCJocmVmXCIgaW4gY2hpbGQucHJvcHMpKSB7XHJcbiAgICAgICAgY29uc3QgY3VyTG9jYWxlID0gdHlwZW9mIGxvY2FsZSAhPT0gXCJ1bmRlZmluZWRcIiA/IGxvY2FsZSA6IHBhZ2VzUm91dGVyID09IG51bGwgPyB2b2lkIDAgOiBwYWdlc1JvdXRlci5sb2NhbGU7XHJcbiAgICAgICAgLy8gd2Ugb25seSByZW5kZXIgZG9tYWluIGxvY2FsZXMgaWYgd2UgYXJlIGN1cnJlbnRseSBvbiBhIGRvbWFpbiBsb2NhbGVcclxuICAgICAgICAvLyBzbyB0aGF0IGxvY2FsZSBsaW5rcyBhcmUgc3RpbGwgdmlzaXRhYmxlIGluIGRldmVsb3BtZW50L3ByZXZpZXcgZW52c1xyXG4gICAgICAgIGNvbnN0IGxvY2FsZURvbWFpbiA9IChwYWdlc1JvdXRlciA9PSBudWxsID8gdm9pZCAwIDogcGFnZXNSb3V0ZXIuaXNMb2NhbGVEb21haW4pICYmICgwLCBfZ2V0ZG9tYWlubG9jYWxlLmdldERvbWFpbkxvY2FsZSkoYXMsIGN1ckxvY2FsZSwgcGFnZXNSb3V0ZXIgPT0gbnVsbCA/IHZvaWQgMCA6IHBhZ2VzUm91dGVyLmxvY2FsZXMsIHBhZ2VzUm91dGVyID09IG51bGwgPyB2b2lkIDAgOiBwYWdlc1JvdXRlci5kb21haW5Mb2NhbGVzKTtcclxuICAgICAgICBjaGlsZFByb3BzLmhyZWYgPSBsb2NhbGVEb21haW4gfHwgKDAsIF9hZGRiYXNlcGF0aC5hZGRCYXNlUGF0aCkoKDAsIF9hZGRsb2NhbGUuYWRkTG9jYWxlKShhcywgY3VyTG9jYWxlLCBwYWdlc1JvdXRlciA9PSBudWxsID8gdm9pZCAwIDogcGFnZXNSb3V0ZXIuZGVmYXVsdExvY2FsZSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxlZ2FjeUJlaGF2aW9yID8gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jbG9uZUVsZW1lbnQoY2hpbGQsIGNoaWxkUHJvcHMpIDogLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7XHJcbiAgICAgICAgLi4ucmVzdFByb3BzLFxyXG4gICAgICAgIC4uLmNoaWxkUHJvcHNcclxuICAgIH0sIGNoaWxkcmVuKTtcclxufSk7XHJcbmNvbnN0IF9kZWZhdWx0ID0gTGluaztcclxuXHJcbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XHJcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XHJcbn1cclxuXHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmsuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZW51bWVyYWJsZSIsImdldCIsIl9kZWZhdWx0IiwiX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdCIsIl8iLCJfcmVzb2x2ZWhyZWYiLCJfaXNsb2NhbHVybCIsIl9mb3JtYXR1cmwiLCJfdXRpbHMiLCJfYWRkbG9jYWxlIiwiX3JvdXRlcmNvbnRleHRzaGFyZWRydW50aW1lIiwiX2FwcHJvdXRlcmNvbnRleHRzaGFyZWRydW50aW1lIiwiX3VzZWludGVyc2VjdGlvbiIsIl9nZXRkb21haW5sb2NhbGUiLCJfYWRkYmFzZXBhdGgiLCJfcm91dGVycmVkdWNlcnR5cGVzIiwicHJlZmV0Y2hlZCIsIlNldCIsInByZWZldGNoIiwicm91dGVyIiwiaHJlZiIsImFzIiwib3B0aW9ucyIsImFwcE9wdGlvbnMiLCJpc0FwcFJvdXRlciIsImlzTG9jYWxVUkwiLCJieXBhc3NQcmVmZXRjaGVkQ2hlY2siLCJsb2NhbGUiLCJ1bmRlZmluZWQiLCJwcmVmZXRjaGVkS2V5IiwiaGFzIiwiYWRkIiwicHJlZmV0Y2hQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJjYXRjaCIsImVyciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImlzTW9kaWZpZWRFdmVudCIsImV2ZW50IiwiZXZlbnRUYXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwidGFyZ2V0IiwiZ2V0QXR0cmlidXRlIiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsIm5hdGl2ZUV2ZW50Iiwid2hpY2giLCJsaW5rQ2xpY2tlZCIsImUiLCJyZXBsYWNlIiwic2hhbGxvdyIsInNjcm9sbCIsInByZWZldGNoRW5hYmxlZCIsIm5vZGVOYW1lIiwiaXNBbmNob3JOb2RlTmFtZSIsInRvVXBwZXJDYXNlIiwicHJldmVudERlZmF1bHQiLCJuYXZpZ2F0ZSIsInJvdXRlclNjcm9sbCIsImZvcmNlT3B0aW1pc3RpY05hdmlnYXRpb24iLCJkZWZhdWx0Iiwic3RhcnRUcmFuc2l0aW9uIiwiZm9ybWF0U3RyaW5nT3JVcmwiLCJ1cmxPYmpPclN0cmluZyIsImZvcm1hdFVybCIsIkxpbmsiLCJmb3J3YXJkUmVmIiwiTGlua0NvbXBvbmVudCIsInByb3BzIiwiZm9yd2FyZGVkUmVmIiwiY2hpbGRyZW4iLCJocmVmUHJvcCIsImFzUHJvcCIsImNoaWxkcmVuUHJvcCIsInByZWZldGNoUHJvcCIsInBhc3NIcmVmIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VFbnRlclByb3AiLCJvblRvdWNoU3RhcnQiLCJvblRvdWNoU3RhcnRQcm9wIiwibGVnYWN5QmVoYXZpb3IiLCJyZXN0UHJvcHMiLCJjcmVhdGVFbGVtZW50IiwicGFnZXNSb3V0ZXIiLCJ1c2VDb250ZXh0IiwiUm91dGVyQ29udGV4dCIsImFwcFJvdXRlciIsIkFwcFJvdXRlckNvbnRleHQiLCJhcHBQcmVmZXRjaEtpbmQiLCJQcmVmZXRjaEtpbmQiLCJBVVRPIiwiRlVMTCIsImNyZWF0ZVByb3BFcnJvciIsImFyZ3MiLCJFcnJvciIsImtleSIsImV4cGVjdGVkIiwiYWN0dWFsIiwicmVxdWlyZWRQcm9wc0d1YXJkIiwicmVxdWlyZWRQcm9wcyIsImtleXMiLCJmb3JFYWNoIiwib3B0aW9uYWxQcm9wc0d1YXJkIiwib3B0aW9uYWxQcm9wcyIsInZhbFR5cGUiLCJoYXNXYXJuZWQiLCJ1c2VSZWYiLCJjdXJyZW50IiwiY29uc29sZSIsIndhcm4iLCJwYXRobmFtZSIsImhhc0R5bmFtaWNTZWdtZW50Iiwic3BsaXQiLCJzb21lIiwic2VnbWVudCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInVzZU1lbW8iLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwicmVzb2x2ZUhyZWYiLCJwcmV2aW91c0hyZWYiLCJwcmV2aW91c0FzIiwiY2hpbGQiLCJDaGlsZHJlbiIsIm9ubHkiLCJ0eXBlIiwiY2hpbGRSZWYiLCJyZWYiLCJzZXRJbnRlcnNlY3Rpb25SZWYiLCJpc1Zpc2libGUiLCJyZXNldFZpc2libGUiLCJ1c2VJbnRlcnNlY3Rpb24iLCJyb290TWFyZ2luIiwic2V0UmVmIiwidXNlQ2FsbGJhY2siLCJlbCIsInVzZUVmZmVjdCIsImtpbmQiLCJjaGlsZFByb3BzIiwiZGVmYXVsdFByZXZlbnRlZCIsInByaW9yaXR5IiwiaXNBYnNvbHV0ZVVybCIsImN1ckxvY2FsZSIsImxvY2FsZURvbWFpbiIsImlzTG9jYWxlRG9tYWluIiwiZ2V0RG9tYWluTG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJhZGRCYXNlUGF0aCIsImFkZExvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJjbG9uZUVsZW1lbnQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/link.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/client/request-idle-callback.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/request-idle-callback.js ***!
|
||
\****************************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
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 requestIdleCallback: function() {\n return requestIdleCallback;\n },\n cancelIdleCallback: function() {\n return cancelIdleCallback;\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;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlcXVlc3QtaWRsZS1jYWxsYmFjay5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRixLQUFNQyxDQUFBQSxDQUdOO0FBQ0EsU0FBU0csUUFBUUMsTUFBTSxFQUFFQyxHQUFHO0lBQ3hCLElBQUksSUFBSUMsUUFBUUQsSUFBSVQsT0FBT0MsY0FBYyxDQUFDTyxRQUFRRSxNQUFNO1FBQ3BEQyxZQUFZO1FBQ1pDLEtBQUtILEdBQUcsQ0FBQ0MsS0FBSztJQUNsQjtBQUNKO0FBQ0FILFFBQVFMLFNBQVM7SUFDYkcscUJBQXFCO1FBQ2pCLE9BQU9BO0lBQ1g7SUFDQUMsb0JBQW9CO1FBQ2hCLE9BQU9BO0lBQ1g7QUFDSjtBQUNBLE1BQU1ELHNCQUFzQixPQUFPUSxTQUFTLGVBQWVBLEtBQUtSLG1CQUFtQixJQUFJUSxLQUFLUixtQkFBbUIsQ0FBQ1MsSUFBSSxDQUFDQyxXQUFXLFNBQVNDLEVBQUU7SUFDdkksSUFBSUMsUUFBUUMsS0FBS0MsR0FBRztJQUNwQixPQUFPTixLQUFLTyxVQUFVLENBQUM7UUFDbkJKLEdBQUc7WUFDQ0ssWUFBWTtZQUNaQyxlQUFlO2dCQUNYLE9BQU9DLEtBQUtDLEdBQUcsQ0FBQyxHQUFHLEtBQU1OLENBQUFBLEtBQUtDLEdBQUcsS0FBS0YsS0FBSTtZQUM5QztRQUNKO0lBQ0osR0FBRztBQUNQO0FBQ0EsTUFBTVgscUJBQXFCLE9BQU9PLFNBQVMsZUFBZUEsS0FBS1Asa0JBQWtCLElBQUlPLEtBQUtQLGtCQUFrQixDQUFDUSxJQUFJLENBQUNDLFdBQVcsU0FBU1UsRUFBRTtJQUNwSSxPQUFPQyxhQUFhRDtBQUN4QjtBQUVBLElBQUksQ0FBQyxPQUFPdkIsUUFBUXlCLE9BQU8sS0FBSyxjQUFlLE9BQU96QixRQUFReUIsT0FBTyxLQUFLLFlBQVl6QixRQUFReUIsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPekIsUUFBUXlCLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcks1QixPQUFPQyxjQUFjLENBQUNDLFFBQVF5QixPQUFPLEVBQUUsY0FBYztRQUFFeEIsT0FBTztJQUFLO0lBQ25FSCxPQUFPNkIsTUFBTSxDQUFDM0IsUUFBUXlCLE9BQU8sRUFBRXpCO0lBQy9CRSxPQUFPRixPQUFPLEdBQUdBLFFBQVF5QixPQUFPO0FBQ2xDLEVBRUEsaURBQWlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlcXVlc3QtaWRsZS1jYWxsYmFjay5qcz8xZTIwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcclxuICAgIHZhbHVlOiB0cnVlXHJcbn0pO1xyXG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2s6IG51bGwsXHJcbiAgICBjYW5jZWxJZGxlQ2FsbGJhY2s6IG51bGxcclxufSk7XHJcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcclxuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xyXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cclxuICAgIH0pO1xyXG59XHJcbl9leHBvcnQoZXhwb3J0cywge1xyXG4gICAgcmVxdWVzdElkbGVDYWxsYmFjazogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlcXVlc3RJZGxlQ2FsbGJhY2s7XHJcbiAgICB9LFxyXG4gICAgY2FuY2VsSWRsZUNhbGxiYWNrOiBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gY2FuY2VsSWRsZUNhbGxiYWNrO1xyXG4gICAgfVxyXG59KTtcclxuY29uc3QgcmVxdWVzdElkbGVDYWxsYmFjayA9IHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiICYmIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjayAmJiBzZWxmLnJlcXVlc3RJZGxlQ2FsbGJhY2suYmluZCh3aW5kb3cpIHx8IGZ1bmN0aW9uKGNiKSB7XHJcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xyXG4gICAgcmV0dXJuIHNlbGYuc2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuICAgICAgICBjYih7XHJcbiAgICAgICAgICAgIGRpZFRpbWVvdXQ6IGZhbHNlLFxyXG4gICAgICAgICAgICB0aW1lUmVtYWluaW5nOiBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCA1MCAtIChEYXRlLm5vdygpIC0gc3RhcnQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSwgMSk7XHJcbn07XHJcbmNvbnN0IGNhbmNlbElkbGVDYWxsYmFjayA9IHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiICYmIHNlbGYuY2FuY2VsSWRsZUNhbGxiYWNrICYmIHNlbGYuY2FuY2VsSWRsZUNhbGxiYWNrLmJpbmQod2luZG93KSB8fCBmdW5jdGlvbihpZCkge1xyXG4gICAgcmV0dXJuIGNsZWFyVGltZW91dChpZCk7XHJcbn07XHJcblxyXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XHJcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xyXG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xyXG59XHJcblxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXF1ZXN0LWlkbGUtY2FsbGJhY2suanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwibW9kdWxlIiwicmVxdWVzdElkbGVDYWxsYmFjayIsImNhbmNlbElkbGVDYWxsYmFjayIsIl9leHBvcnQiLCJ0YXJnZXQiLCJhbGwiLCJuYW1lIiwiZW51bWVyYWJsZSIsImdldCIsInNlbGYiLCJiaW5kIiwid2luZG93IiwiY2IiLCJzdGFydCIsIkRhdGUiLCJub3ciLCJzZXRUaW1lb3V0IiwiZGlkVGltZW91dCIsInRpbWVSZW1haW5pbmciLCJNYXRoIiwibWF4IiwiaWQiLCJjbGVhclRpbWVvdXQiLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/request-idle-callback.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/client/resolve-href.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/next/dist/client/resolve-href.js ***!
|
||
\*******************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"resolveHref\", ({\n enumerable: true,\n get: function() {\n return resolveHref;\n }\n}));\nconst _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nconst _formaturl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _omit = __webpack_require__(/*! ../shared/lib/router/utils/omit */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/omit.js\");\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(app-pages-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst _islocalurl = __webpack_require__(/*! ../shared/lib/router/utils/is-local-url */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _utils1 = __webpack_require__(/*! ../shared/lib/router/utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _interpolateas = __webpack_require__(/*! ../shared/lib/router/utils/interpolate-as */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\");\nfunction resolveHref(router, href, resolveAs) {\n // we use a dummy base url for relative urls\n let base;\n let urlAsString = typeof href === \"string\" ? href : (0, _formaturl.formatWithValidation)(href);\n // repeated slashes and backslashes in the URL are considered\n // invalid and will never match a Next.js page/file\n const urlProtoMatch = urlAsString.match(/^[a-zA-Z]{1,}:\\/\\//);\n const urlAsStringNoProto = urlProtoMatch ? urlAsString.slice(urlProtoMatch[0].length) : urlAsString;\n const urlParts = urlAsStringNoProto.split(\"?\");\n if ((urlParts[0] || \"\").match(/(\\/\\/|\\\\)/)) {\n console.error(\"Invalid href '\" + urlAsString + \"' passed to next/router in page: '\" + router.pathname + \"'. Repeated forward-slashes (//) or backslashes \\\\ are not valid in the href.\");\n const normalizedUrl = (0, _utils.normalizeRepeatedSlashes)(urlAsStringNoProto);\n urlAsString = (urlProtoMatch ? urlProtoMatch[0] : \"\") + normalizedUrl;\n }\n // Return because it cannot be routed by the Next.js router\n if (!(0, _islocalurl.isLocalURL)(urlAsString)) {\n return resolveAs ? [\n urlAsString\n ] : urlAsString;\n }\n try {\n base = new URL(urlAsString.startsWith(\"#\") ? router.asPath : router.pathname, \"http://n\");\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n base = new URL(\"/\", \"http://n\");\n }\n try {\n const finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizetrailingslash.normalizePathTrailingSlash)(finalUrl.pathname);\n let interpolatedAs = \"\";\n if ((0, _utils1.isDynamicRoute)(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n const query = (0, _querystring.searchParamsToUrlQuery)(finalUrl.searchParams);\n const { result, params } = (0, _interpolateas.interpolateAs)(finalUrl.pathname, finalUrl.pathname, query);\n if (result) {\n interpolatedAs = (0, _formaturl.formatWithValidation)({\n pathname: result,\n hash: finalUrl.hash,\n query: (0, _omit.omit)(query, params)\n });\n }\n }\n // if the origin didn't change, it means we received a relative href\n const resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [\n resolvedHref,\n interpolatedAs || resolvedHref\n ] : resolvedHref;\n } catch (_) {\n return resolveAs ? [\n urlAsString\n ] : urlAsString;\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=resolve-href.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3Jlc29sdmUtaHJlZi5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsK0NBQThDO0lBQzFDSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsZUFBZUMsbUJBQU9BLENBQUMsbUlBQXdDO0FBQ3JFLE1BQU1DLGFBQWFELG1CQUFPQSxDQUFDLGlJQUF1QztBQUNsRSxNQUFNRSxRQUFRRixtQkFBT0EsQ0FBQyxxSEFBaUM7QUFDdkQsTUFBTUcsU0FBU0gsbUJBQU9BLENBQUMsNkZBQXFCO0FBQzVDLE1BQU1JLDBCQUEwQkosbUJBQU9BLENBQUMsbUhBQTRCO0FBQ3BFLE1BQU1LLGNBQWNMLG1CQUFPQSxDQUFDLHFJQUF5QztBQUNyRSxNQUFNTSxVQUFVTixtQkFBT0EsQ0FBQyxpSEFBNEI7QUFDcEQsTUFBTU8saUJBQWlCUCxtQkFBT0EsQ0FBQyx5SUFBMkM7QUFDMUUsU0FBU0YsWUFBWVUsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFNBQVM7SUFDeEMsNENBQTRDO0lBQzVDLElBQUlDO0lBQ0osSUFBSUMsY0FBYyxPQUFPSCxTQUFTLFdBQVdBLE9BQU8sQ0FBQyxHQUFHUixXQUFXWSxvQkFBb0IsRUFBRUo7SUFDekYsNkRBQTZEO0lBQzdELG1EQUFtRDtJQUNuRCxNQUFNSyxnQkFBZ0JGLFlBQVlHLEtBQUssQ0FBQztJQUN4QyxNQUFNQyxxQkFBcUJGLGdCQUFnQkYsWUFBWUssS0FBSyxDQUFDSCxhQUFhLENBQUMsRUFBRSxDQUFDSSxNQUFNLElBQUlOO0lBQ3hGLE1BQU1PLFdBQVdILG1CQUFtQkksS0FBSyxDQUFDO0lBQzFDLElBQUksQ0FBQ0QsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFDLEVBQUdKLEtBQUssQ0FBQyxjQUFjO1FBQ3hDTSxRQUFRQyxLQUFLLENBQUMsbUJBQW1CVixjQUFjLHVDQUF1Q0osT0FBT2UsUUFBUSxHQUFHO1FBQ3hHLE1BQU1DLGdCQUFnQixDQUFDLEdBQUdyQixPQUFPc0Isd0JBQXdCLEVBQUVUO1FBQzNESixjQUFjLENBQUNFLGdCQUFnQkEsYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFDLElBQUtVO0lBQzVEO0lBQ0EsMkRBQTJEO0lBQzNELElBQUksQ0FBQyxDQUFDLEdBQUduQixZQUFZcUIsVUFBVSxFQUFFZCxjQUFjO1FBQzNDLE9BQU9GLFlBQVk7WUFDZkU7U0FDSCxHQUFHQTtJQUNSO0lBQ0EsSUFBSTtRQUNBRCxPQUFPLElBQUlnQixJQUFJZixZQUFZZ0IsVUFBVSxDQUFDLE9BQU9wQixPQUFPcUIsTUFBTSxHQUFHckIsT0FBT2UsUUFBUSxFQUFFO0lBQ2xGLEVBQUUsT0FBT08sR0FBRztRQUNSLGtEQUFrRDtRQUNsRG5CLE9BQU8sSUFBSWdCLElBQUksS0FBSztJQUN4QjtJQUNBLElBQUk7UUFDQSxNQUFNSSxXQUFXLElBQUlKLElBQUlmLGFBQWFEO1FBQ3RDb0IsU0FBU1IsUUFBUSxHQUFHLENBQUMsR0FBR25CLHdCQUF3QjRCLDBCQUEwQixFQUFFRCxTQUFTUixRQUFRO1FBQzdGLElBQUlVLGlCQUFpQjtRQUNyQixJQUFJLENBQUMsR0FBRzNCLFFBQVE0QixjQUFjLEVBQUVILFNBQVNSLFFBQVEsS0FBS1EsU0FBU0ksWUFBWSxJQUFJekIsV0FBVztZQUN0RixNQUFNMEIsUUFBUSxDQUFDLEdBQUdyQyxhQUFhc0Msc0JBQXNCLEVBQUVOLFNBQVNJLFlBQVk7WUFDNUUsTUFBTSxFQUFFRyxNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBR2hDLGVBQWVpQyxhQUFhLEVBQUVULFNBQVNSLFFBQVEsRUFBRVEsU0FBU1IsUUFBUSxFQUFFYTtZQUNuRyxJQUFJRSxRQUFRO2dCQUNSTCxpQkFBaUIsQ0FBQyxHQUFHaEMsV0FBV1ksb0JBQW9CLEVBQUU7b0JBQ2xEVSxVQUFVZTtvQkFDVkcsTUFBTVYsU0FBU1UsSUFBSTtvQkFDbkJMLE9BQU8sQ0FBQyxHQUFHbEMsTUFBTXdDLElBQUksRUFBRU4sT0FBT0c7Z0JBQ2xDO1lBQ0o7UUFDSjtRQUNBLG9FQUFvRTtRQUNwRSxNQUFNSSxlQUFlWixTQUFTYSxNQUFNLEtBQUtqQyxLQUFLaUMsTUFBTSxHQUFHYixTQUFTdEIsSUFBSSxDQUFDUSxLQUFLLENBQUNjLFNBQVNhLE1BQU0sQ0FBQzFCLE1BQU0sSUFBSWEsU0FBU3RCLElBQUk7UUFDbEgsT0FBT0MsWUFBWTtZQUNmaUM7WUFDQVYsa0JBQWtCVTtTQUNyQixHQUFHQTtJQUNSLEVBQUUsT0FBT2IsR0FBRztRQUNSLE9BQU9wQixZQUFZO1lBQ2ZFO1NBQ0gsR0FBR0E7SUFDUjtBQUNKO0FBRUEsSUFBSSxDQUFDLE9BQU9sQixRQUFRbUQsT0FBTyxLQUFLLGNBQWUsT0FBT25ELFFBQVFtRCxPQUFPLEtBQUssWUFBWW5ELFFBQVFtRCxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9uRCxRQUFRbUQsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNyS3RELE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUW1ELE9BQU8sRUFBRSxjQUFjO1FBQUVsRCxPQUFPO0lBQUs7SUFDbkVILE9BQU91RCxNQUFNLENBQUNyRCxRQUFRbUQsT0FBTyxFQUFFbkQ7SUFDL0JzRCxPQUFPdEQsT0FBTyxHQUFHQSxRQUFRbUQsT0FBTztBQUNsQyxFQUVBLHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZXNvbHZlLWhyZWYuanM/MmY5ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XHJcbiAgICB2YWx1ZTogdHJ1ZVxyXG59KTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwicmVzb2x2ZUhyZWZcIiwge1xyXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgIGdldDogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlc29sdmVIcmVmO1xyXG4gICAgfVxyXG59KTtcclxuY29uc3QgX3F1ZXJ5c3RyaW5nID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nXCIpO1xyXG5jb25zdCBfZm9ybWF0dXJsID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmxcIik7XHJcbmNvbnN0IF9vbWl0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL29taXRcIik7XHJcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3V0aWxzXCIpO1xyXG5jb25zdCBfbm9ybWFsaXpldHJhaWxpbmdzbGFzaCA9IHJlcXVpcmUoXCIuL25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaFwiKTtcclxuY29uc3QgX2lzbG9jYWx1cmwgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtbG9jYWwtdXJsXCIpO1xyXG5jb25zdCBfdXRpbHMxID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzXCIpO1xyXG5jb25zdCBfaW50ZXJwb2xhdGVhcyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pbnRlcnBvbGF0ZS1hc1wiKTtcclxuZnVuY3Rpb24gcmVzb2x2ZUhyZWYocm91dGVyLCBocmVmLCByZXNvbHZlQXMpIHtcclxuICAgIC8vIHdlIHVzZSBhIGR1bW15IGJhc2UgdXJsIGZvciByZWxhdGl2ZSB1cmxzXHJcbiAgICBsZXQgYmFzZTtcclxuICAgIGxldCB1cmxBc1N0cmluZyA9IHR5cGVvZiBocmVmID09PSBcInN0cmluZ1wiID8gaHJlZiA6ICgwLCBfZm9ybWF0dXJsLmZvcm1hdFdpdGhWYWxpZGF0aW9uKShocmVmKTtcclxuICAgIC8vIHJlcGVhdGVkIHNsYXNoZXMgYW5kIGJhY2tzbGFzaGVzIGluIHRoZSBVUkwgYXJlIGNvbnNpZGVyZWRcclxuICAgIC8vIGludmFsaWQgYW5kIHdpbGwgbmV2ZXIgbWF0Y2ggYSBOZXh0LmpzIHBhZ2UvZmlsZVxyXG4gICAgY29uc3QgdXJsUHJvdG9NYXRjaCA9IHVybEFzU3RyaW5nLm1hdGNoKC9eW2EtekEtWl17MSx9OlxcL1xcLy8pO1xyXG4gICAgY29uc3QgdXJsQXNTdHJpbmdOb1Byb3RvID0gdXJsUHJvdG9NYXRjaCA/IHVybEFzU3RyaW5nLnNsaWNlKHVybFByb3RvTWF0Y2hbMF0ubGVuZ3RoKSA6IHVybEFzU3RyaW5nO1xyXG4gICAgY29uc3QgdXJsUGFydHMgPSB1cmxBc1N0cmluZ05vUHJvdG8uc3BsaXQoXCI/XCIpO1xyXG4gICAgaWYgKCh1cmxQYXJ0c1swXSB8fCBcIlwiKS5tYXRjaCgvKFxcL1xcL3xcXFxcKS8pKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkludmFsaWQgaHJlZiAnXCIgKyB1cmxBc1N0cmluZyArIFwiJyBwYXNzZWQgdG8gbmV4dC9yb3V0ZXIgaW4gcGFnZTogJ1wiICsgcm91dGVyLnBhdGhuYW1lICsgXCInLiBSZXBlYXRlZCBmb3J3YXJkLXNsYXNoZXMgKC8vKSBvciBiYWNrc2xhc2hlcyBcXFxcIGFyZSBub3QgdmFsaWQgaW4gdGhlIGhyZWYuXCIpO1xyXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRVcmwgPSAoMCwgX3V0aWxzLm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcykodXJsQXNTdHJpbmdOb1Byb3RvKTtcclxuICAgICAgICB1cmxBc1N0cmluZyA9ICh1cmxQcm90b01hdGNoID8gdXJsUHJvdG9NYXRjaFswXSA6IFwiXCIpICsgbm9ybWFsaXplZFVybDtcclxuICAgIH1cclxuICAgIC8vIFJldHVybiBiZWNhdXNlIGl0IGNhbm5vdCBiZSByb3V0ZWQgYnkgdGhlIE5leHQuanMgcm91dGVyXHJcbiAgICBpZiAoISgwLCBfaXNsb2NhbHVybC5pc0xvY2FsVVJMKSh1cmxBc1N0cmluZykpIHtcclxuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzID8gW1xyXG4gICAgICAgICAgICB1cmxBc1N0cmluZ1xyXG4gICAgICAgIF0gOiB1cmxBc1N0cmluZztcclxuICAgIH1cclxuICAgIHRyeSB7XHJcbiAgICAgICAgYmFzZSA9IG5ldyBVUkwodXJsQXNTdHJpbmcuc3RhcnRzV2l0aChcIiNcIikgPyByb3V0ZXIuYXNQYXRoIDogcm91dGVyLnBhdGhuYW1lLCBcImh0dHA6Ly9uXCIpO1xyXG4gICAgfSBjYXRjaCAoXykge1xyXG4gICAgICAgIC8vIGZhbGxiYWNrIHRvIC8gZm9yIGludmFsaWQgYXNQYXRoIHZhbHVlcyBlLmcuIC8vXHJcbiAgICAgICAgYmFzZSA9IG5ldyBVUkwoXCIvXCIsIFwiaHR0cDovL25cIik7XHJcbiAgICB9XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IGZpbmFsVXJsID0gbmV3IFVSTCh1cmxBc1N0cmluZywgYmFzZSk7XHJcbiAgICAgICAgZmluYWxVcmwucGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZXRyYWlsaW5nc2xhc2gubm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2gpKGZpbmFsVXJsLnBhdGhuYW1lKTtcclxuICAgICAgICBsZXQgaW50ZXJwb2xhdGVkQXMgPSBcIlwiO1xyXG4gICAgICAgIGlmICgoMCwgX3V0aWxzMS5pc0R5bmFtaWNSb3V0ZSkoZmluYWxVcmwucGF0aG5hbWUpICYmIGZpbmFsVXJsLnNlYXJjaFBhcmFtcyAmJiByZXNvbHZlQXMpIHtcclxuICAgICAgICAgICAgY29uc3QgcXVlcnkgPSAoMCwgX3F1ZXJ5c3RyaW5nLnNlYXJjaFBhcmFtc1RvVXJsUXVlcnkpKGZpbmFsVXJsLnNlYXJjaFBhcmFtcyk7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgcmVzdWx0LCBwYXJhbXMgfSA9ICgwLCBfaW50ZXJwb2xhdGVhcy5pbnRlcnBvbGF0ZUFzKShmaW5hbFVybC5wYXRobmFtZSwgZmluYWxVcmwucGF0aG5hbWUsIHF1ZXJ5KTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgaW50ZXJwb2xhdGVkQXMgPSAoMCwgX2Zvcm1hdHVybC5mb3JtYXRXaXRoVmFsaWRhdGlvbikoe1xyXG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiByZXN1bHQsXHJcbiAgICAgICAgICAgICAgICAgICAgaGFzaDogZmluYWxVcmwuaGFzaCxcclxuICAgICAgICAgICAgICAgICAgICBxdWVyeTogKDAsIF9vbWl0Lm9taXQpKHF1ZXJ5LCBwYXJhbXMpXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBpZiB0aGUgb3JpZ2luIGRpZG4ndCBjaGFuZ2UsIGl0IG1lYW5zIHdlIHJlY2VpdmVkIGEgcmVsYXRpdmUgaHJlZlxyXG4gICAgICAgIGNvbnN0IHJlc29sdmVkSHJlZiA9IGZpbmFsVXJsLm9yaWdpbiA9PT0gYmFzZS5vcmlnaW4gPyBmaW5hbFVybC5ocmVmLnNsaWNlKGZpbmFsVXJsLm9yaWdpbi5sZW5ndGgpIDogZmluYWxVcmwuaHJlZjtcclxuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzID8gW1xyXG4gICAgICAgICAgICByZXNvbHZlZEhyZWYsXHJcbiAgICAgICAgICAgIGludGVycG9sYXRlZEFzIHx8IHJlc29sdmVkSHJlZlxyXG4gICAgICAgIF0gOiByZXNvbHZlZEhyZWY7XHJcbiAgICB9IGNhdGNoIChfKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBcyA/IFtcclxuICAgICAgICAgICAgdXJsQXNTdHJpbmdcclxuICAgICAgICBdIDogdXJsQXNTdHJpbmc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XHJcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XHJcbn1cclxuXHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtaHJlZi5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwicmVzb2x2ZUhyZWYiLCJfcXVlcnlzdHJpbmciLCJyZXF1aXJlIiwiX2Zvcm1hdHVybCIsIl9vbWl0IiwiX3V0aWxzIiwiX25vcm1hbGl6ZXRyYWlsaW5nc2xhc2giLCJfaXNsb2NhbHVybCIsIl91dGlsczEiLCJfaW50ZXJwb2xhdGVhcyIsInJvdXRlciIsImhyZWYiLCJyZXNvbHZlQXMiLCJiYXNlIiwidXJsQXNTdHJpbmciLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsInVybFByb3RvTWF0Y2giLCJtYXRjaCIsInVybEFzU3RyaW5nTm9Qcm90byIsInNsaWNlIiwibGVuZ3RoIiwidXJsUGFydHMiLCJzcGxpdCIsImNvbnNvbGUiLCJlcnJvciIsInBhdGhuYW1lIiwibm9ybWFsaXplZFVybCIsIm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyIsImlzTG9jYWxVUkwiLCJVUkwiLCJzdGFydHNXaXRoIiwiYXNQYXRoIiwiXyIsImZpbmFsVXJsIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJpbnRlcnBvbGF0ZWRBcyIsImlzRHluYW1pY1JvdXRlIiwic2VhcmNoUGFyYW1zIiwicXVlcnkiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwicmVzdWx0IiwicGFyYW1zIiwiaW50ZXJwb2xhdGVBcyIsImhhc2giLCJvbWl0IiwicmVzb2x2ZWRIcmVmIiwib3JpZ2luIiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/resolve-href.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/client/use-intersection.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/next/dist/client/use-intersection.js ***!
|
||
\***********************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useIntersection\", ({\n enumerable: true,\n get: function() {\n return useIntersection;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\nconst _requestidlecallback = __webpack_require__(/*! ./request-idle-callback */ \"(app-pages-browser)/./node_modules/next/dist/client/request-idle-callback.js\");\nconst hasIntersectionObserver = typeof IntersectionObserver === \"function\";\nconst observers = new Map();\nconst idList = [];\nfunction createObserver(options) {\n const id = {\n root: options.root || null,\n margin: options.rootMargin || \"\"\n };\n const existing = idList.find((obj)=>obj.root === id.root && obj.margin === id.margin);\n let instance;\n if (existing) {\n instance = observers.get(existing);\n if (instance) {\n return instance;\n }\n }\n const elements = new Map();\n const observer = new IntersectionObserver((entries)=>{\n entries.forEach((entry)=>{\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n instance = {\n id,\n observer,\n elements\n };\n idList.push(id);\n observers.set(id, instance);\n return instance;\n}\nfunction observe(element, callback, options) {\n const { id, observer, elements } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element);\n // Destroy observer when there's nothing left to watch:\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n const index = idList.findIndex((obj)=>obj.root === id.root && obj.margin === id.margin);\n if (index > -1) {\n idList.splice(index, 1);\n }\n }\n };\n}\nfunction useIntersection(param) {\n let { rootRef, rootMargin, disabled } = param;\n const isDisabled = disabled || !hasIntersectionObserver;\n const [visible, setVisible] = (0, _react.useState)(false);\n const elementRef = (0, _react.useRef)(null);\n const setElement = (0, _react.useCallback)((element)=>{\n elementRef.current = element;\n }, []);\n (0, _react.useEffect)(()=>{\n if (hasIntersectionObserver) {\n if (isDisabled || visible) return;\n const element = elementRef.current;\n if (element && element.tagName) {\n const unobserve = observe(element, (isVisible)=>isVisible && setVisible(isVisible), {\n root: rootRef == null ? void 0 : rootRef.current,\n rootMargin\n });\n return unobserve;\n }\n } else {\n if (!visible) {\n const idleCallback = (0, _requestidlecallback.requestIdleCallback)(()=>setVisible(true));\n return ()=>(0, _requestidlecallback.cancelIdleCallback)(idleCallback);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isDisabled,\n rootMargin,\n rootRef,\n visible,\n elementRef.current\n ]);\n const resetVisible = (0, _react.useCallback)(()=>{\n setVisible(false);\n }, []);\n return [\n setElement,\n visible,\n resetVisible\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=use-intersection.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3VzZS1pbnRlcnNlY3Rpb24uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0ZILG1EQUFrRDtJQUM5Q0ksWUFBWTtJQUNaQyxLQUFLO1FBQ0QsT0FBT0M7SUFDWDtBQUNKLENBQUMsRUFBQztBQUNGLE1BQU1DLFNBQVNDLG1CQUFPQSxDQUFDLG1GQUFPO0FBQzlCLE1BQU1DLHVCQUF1QkQsbUJBQU9BLENBQUMsNkdBQXlCO0FBQzlELE1BQU1FLDBCQUEwQixPQUFPQyx5QkFBeUI7QUFDaEUsTUFBTUMsWUFBWSxJQUFJQztBQUN0QixNQUFNQyxTQUFTLEVBQUU7QUFDakIsU0FBU0MsZUFBZUMsT0FBTztJQUMzQixNQUFNQyxLQUFLO1FBQ1BDLE1BQU1GLFFBQVFFLElBQUksSUFBSTtRQUN0QkMsUUFBUUgsUUFBUUksVUFBVSxJQUFJO0lBQ2xDO0lBQ0EsTUFBTUMsV0FBV1AsT0FBT1EsSUFBSSxDQUFDLENBQUNDLE1BQU1BLElBQUlMLElBQUksS0FBS0QsR0FBR0MsSUFBSSxJQUFJSyxJQUFJSixNQUFNLEtBQUtGLEdBQUdFLE1BQU07SUFDcEYsSUFBSUs7SUFDSixJQUFJSCxVQUFVO1FBQ1ZHLFdBQVdaLFVBQVVQLEdBQUcsQ0FBQ2dCO1FBQ3pCLElBQUlHLFVBQVU7WUFDVixPQUFPQTtRQUNYO0lBQ0o7SUFDQSxNQUFNQyxXQUFXLElBQUlaO0lBQ3JCLE1BQU1hLFdBQVcsSUFBSWYscUJBQXFCLENBQUNnQjtRQUN2Q0EsUUFBUUMsT0FBTyxDQUFDLENBQUNDO1lBQ2IsTUFBTUMsV0FBV0wsU0FBU3BCLEdBQUcsQ0FBQ3dCLE1BQU1FLE1BQU07WUFDMUMsTUFBTUMsWUFBWUgsTUFBTUksY0FBYyxJQUFJSixNQUFNSyxpQkFBaUIsR0FBRztZQUNwRSxJQUFJSixZQUFZRSxXQUFXO2dCQUN2QkYsU0FBU0U7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LFFBQVE4RCxPQUFPLEVBQUU5RDtJQUMvQmlFLE9BQU9qRSxPQUFPLEdBQUdBLFFBQVE4RCxPQUFPO0FBQ2xDLEVBRUEsNENBQTRDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3VzZS1pbnRlcnNlY3Rpb24uanM/ZmQ5NCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XHJcbiAgICB2YWx1ZTogdHJ1ZVxyXG59KTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwidXNlSW50ZXJzZWN0aW9uXCIsIHtcclxuICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiB1c2VJbnRlcnNlY3Rpb247XHJcbiAgICB9XHJcbn0pO1xyXG5jb25zdCBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XHJcbmNvbnN0IF9yZXF1ZXN0aWRsZWNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xyXG5jb25zdCBoYXNJbnRlcnNlY3Rpb25PYnNlcnZlciA9IHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciA9PT0gXCJmdW5jdGlvblwiO1xyXG5jb25zdCBvYnNlcnZlcnMgPSBuZXcgTWFwKCk7XHJcbmNvbnN0IGlkTGlzdCA9IFtdO1xyXG5mdW5jdGlvbiBjcmVhdGVPYnNlcnZlcihvcHRpb25zKSB7XHJcbiAgICBjb25zdCBpZCA9IHtcclxuICAgICAgICByb290OiBvcHRpb25zLnJvb3QgfHwgbnVsbCxcclxuICAgICAgICBtYXJnaW46IG9wdGlvbnMucm9vdE1hcmdpbiB8fCBcIlwiXHJcbiAgICB9O1xyXG4gICAgY29uc3QgZXhpc3RpbmcgPSBpZExpc3QuZmluZCgob2JqKT0+b2JqLnJvb3QgPT09IGlkLnJvb3QgJiYgb2JqLm1hcmdpbiA9PT0gaWQubWFyZ2luKTtcclxuICAgIGxldCBpbnN0YW5jZTtcclxuICAgIGlmIChleGlzdGluZykge1xyXG4gICAgICAgIGluc3RhbmNlID0gb2JzZXJ2ZXJzLmdldChleGlzdGluZyk7XHJcbiAgICAgICAgaWYgKGluc3RhbmNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBlbGVtZW50cyA9IG5ldyBNYXAoKTtcclxuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzKT0+e1xyXG4gICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpPT57XHJcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gZWxlbWVudHMuZ2V0KGVudHJ5LnRhcmdldCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IGVudHJ5LmlzSW50ZXJzZWN0aW5nIHx8IGVudHJ5LmludGVyc2VjdGlvblJhdGlvID4gMDtcclxuICAgICAgICAgICAgaWYgKGNhbGxiYWNrICYmIGlzVmlzaWJsZSkge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soaXNWaXNpYmxlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSwgb3B0aW9ucyk7XHJcbiAgICBpbnN0YW5jZSA9IHtcclxuICAgICAgICBpZCxcclxuICAgICAgICBvYnNlcnZlcixcclxuICAgICAgICBlbGVtZW50c1xyXG4gICAgfTtcclxuICAgIGlkTGlzdC5wdXNoKGlkKTtcclxuICAgIG9ic2VydmVycy5zZXQoaWQsIGluc3RhbmNlKTtcclxuICAgIHJldHVybiBpbnN0YW5jZTtcclxufVxyXG5mdW5jdGlvbiBvYnNlcnZlKGVsZW1lbnQsIGNhbGxiYWNrLCBvcHRpb25zKSB7XHJcbiAgICBjb25zdCB7IGlkLCBvYnNlcnZlciwgZWxlbWVudHMgfSA9IGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpO1xyXG4gICAgZWxlbWVudHMuc2V0KGVsZW1lbnQsIGNhbGxiYWNrKTtcclxuICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gdW5vYnNlcnZlKCkge1xyXG4gICAgICAgIGVsZW1lbnRzLmRlbGV0ZShlbGVtZW50KTtcclxuICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XHJcbiAgICAgICAgLy8gRGVzdHJveSBvYnNlcnZlciB3aGVuIHRoZXJlJ3Mgbm90aGluZyBsZWZ0IHRvIHdhdGNoOlxyXG4gICAgICAgIGlmIChlbGVtZW50cy5zaXplID09PSAwKSB7XHJcbiAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICAgICAgb2JzZXJ2ZXJzLmRlbGV0ZShpZCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gaWRMaXN0LmZpbmRJbmRleCgob2JqKT0+b2JqLnJvb3QgPT09IGlkLnJvb3QgJiYgb2JqLm1hcmdpbiA9PT0gaWQubWFyZ2luKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIGlkTGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiB1c2VJbnRlcnNlY3Rpb24ocGFyYW0pIHtcclxuICAgIGxldCB7IHJvb3RSZWYsIHJvb3RNYXJnaW4sIGRpc2FibGVkIH0gPSBwYXJhbTtcclxuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBkaXNhYmxlZCB8fCAhaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XHJcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSAoMCwgX3JlYWN0LnVzZVN0YXRlKShmYWxzZSk7XHJcbiAgICBjb25zdCBlbGVtZW50UmVmID0gKDAsIF9yZWFjdC51c2VSZWYpKG51bGwpO1xyXG4gICAgY29uc3Qgc2V0RWxlbWVudCA9ICgwLCBfcmVhY3QudXNlQ2FsbGJhY2spKChlbGVtZW50KT0+e1xyXG4gICAgICAgIGVsZW1lbnRSZWYuY3VycmVudCA9IGVsZW1lbnQ7XHJcbiAgICB9LCBbXSk7XHJcbiAgICAoMCwgX3JlYWN0LnVzZUVmZmVjdCkoKCk9PntcclxuICAgICAgICBpZiAoaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpIHtcclxuICAgICAgICAgICAgaWYgKGlzRGlzYWJsZWQgfHwgdmlzaWJsZSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudFJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LnRhZ05hbWUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHVub2JzZXJ2ZSA9IG9ic2VydmUoZWxlbWVudCwgKGlzVmlzaWJsZSk9PmlzVmlzaWJsZSAmJiBzZXRWaXNpYmxlKGlzVmlzaWJsZSksIHtcclxuICAgICAgICAgICAgICAgICAgICByb290OiByb290UmVmID09IG51bGwgPyB2b2lkIDAgOiByb290UmVmLmN1cnJlbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vdE1hcmdpblxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5vYnNlcnZlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCF2aXNpYmxlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpZGxlQ2FsbGJhY2sgPSAoMCwgX3JlcXVlc3RpZGxlY2FsbGJhY2sucmVxdWVzdElkbGVDYWxsYmFjaykoKCk9PnNldFZpc2libGUodHJ1ZSkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICgpPT4oMCwgX3JlcXVlc3RpZGxlY2FsbGJhY2suY2FuY2VsSWRsZUNhbGxiYWNrKShpZGxlQ2FsbGJhY2spO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xyXG4gICAgfSwgW1xyXG4gICAgICAgIGlzRGlzYWJsZWQsXHJcbiAgICAgICAgcm9vdE1hcmdpbixcclxuICAgICAgICByb290UmVmLFxyXG4gICAgICAgIHZpc2libGUsXHJcbiAgICAgICAgZWxlbWVudFJlZi5jdXJyZW50XHJcbiAgICBdKTtcclxuICAgIGNvbnN0IHJlc2V0VmlzaWJsZSA9ICgwLCBfcmVhY3QudXNlQ2FsbGJhY2spKCgpPT57XHJcbiAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7XHJcbiAgICB9LCBbXSk7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICAgIHNldEVsZW1lbnQsXHJcbiAgICAgICAgdmlzaWJsZSxcclxuICAgICAgICByZXNldFZpc2libGVcclxuICAgIF07XHJcbn1cclxuXHJcbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XHJcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XHJcbn1cclxuXHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1pbnRlcnNlY3Rpb24uanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZW51bWVyYWJsZSIsImdldCIsInVzZUludGVyc2VjdGlvbiIsIl9yZWFjdCIsInJlcXVpcmUiLCJfcmVxdWVzdGlkbGVjYWxsYmFjayIsImhhc0ludGVyc2VjdGlvbk9ic2VydmVyIiwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJvYnNlcnZlcnMiLCJNYXAiLCJpZExpc3QiLCJjcmVhdGVPYnNlcnZlciIsIm9wdGlvbnMiLCJpZCIsInJvb3QiLCJtYXJnaW4iLCJyb290TWFyZ2luIiwiZXhpc3RpbmciLCJmaW5kIiwib2JqIiwiaW5zdGFuY2UiLCJlbGVtZW50cyIsIm9ic2VydmVyIiwiZW50cmllcyIsImZvckVhY2giLCJlbnRyeSIsImNhbGxiYWNrIiwidGFyZ2V0IiwiaXNWaXNpYmxlIiwiaXNJbnRlcnNlY3RpbmciLCJpbnRlcnNlY3Rpb25SYXRpbyIsInB1c2giLCJzZXQiLCJvYnNlcnZlIiwiZWxlbWVudCIsInVub2JzZXJ2ZSIsImRlbGV0ZSIsInNpemUiLCJkaXNjb25uZWN0IiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJzcGxpY2UiLCJwYXJhbSIsInJvb3RSZWYiLCJkaXNhYmxlZCIsImlzRGlzYWJsZWQiLCJ2aXNpYmxlIiwic2V0VmlzaWJsZSIsInVzZVN0YXRlIiwiZWxlbWVudFJlZiIsInVzZVJlZiIsInNldEVsZW1lbnQiLCJ1c2VDYWxsYmFjayIsImN1cnJlbnQiLCJ1c2VFZmZlY3QiLCJ0YWdOYW1lIiwiaWRsZUNhbGxiYWNrIiwicmVxdWVzdElkbGVDYWxsYmFjayIsImNhbmNlbElkbGVDYWxsYmFjayIsInJlc2V0VmlzaWJsZSIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/use-intersection.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/escape-regexp.js":
|
||
/*!************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/escape-regexp.js ***!
|
||
\************************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("// regexp is based on https://github.com/sindresorhus/escape-string-regexp\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"escapeStringRegexp\", ({\n enumerable: true,\n get: function() {\n return escapeStringRegexp;\n }\n}));\nconst reHasRegExp = /[|\\\\{}()[\\]^$+*?.-]/;\nconst reReplaceRegExp = /[|\\\\{}()[\\]^$+*?.-]/g;\nfunction escapeStringRegexp(str) {\n // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23\n if (reHasRegExp.test(str)) {\n return str.replace(reReplaceRegExp, \"\\\\$&\");\n }\n return str;\n} //# sourceMappingURL=escape-regexp.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9lc2NhcGUtcmVnZXhwLmpzIiwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUM3RDtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsc0RBQXFEO0lBQ2pESSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsY0FBYztBQUNwQixNQUFNQyxrQkFBa0I7QUFDeEIsU0FBU0YsbUJBQW1CRyxHQUFHO0lBQzNCLCtHQUErRztJQUMvRyxJQUFJRixZQUFZRyxJQUFJLENBQUNELE1BQU07UUFDdkIsT0FBT0EsSUFBSUUsT0FBTyxDQUFDSCxpQkFBaUI7SUFDeEM7SUFDQSxPQUFPQztBQUNYLEVBRUEseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9lc2NhcGUtcmVnZXhwLmpzP2RiZmIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcmVnZXhwIGlzIGJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvZXNjYXBlLXN0cmluZy1yZWdleHBcclxuXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xyXG4gICAgdmFsdWU6IHRydWVcclxufSk7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImVzY2FwZVN0cmluZ1JlZ2V4cFwiLCB7XHJcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gZXNjYXBlU3RyaW5nUmVnZXhwO1xyXG4gICAgfVxyXG59KTtcclxuY29uc3QgcmVIYXNSZWdFeHAgPSAvW3xcXFxce30oKVtcXF1eJCsqPy4tXS87XHJcbmNvbnN0IHJlUmVwbGFjZVJlZ0V4cCA9IC9bfFxcXFx7fSgpW1xcXV4kKyo/Li1dL2c7XHJcbmZ1bmN0aW9uIGVzY2FwZVN0cmluZ1JlZ2V4cChzdHIpIHtcclxuICAgIC8vIHNlZSBhbHNvOiBodHRwczovL2dpdGh1Yi5jb20vbG9kYXNoL2xvZGFzaC9ibG9iLzJkYTAyNGMzYjRmOTk0N2E0ODUxNzYzOWRlNzU2MDQ1N2NkNGVjNmMvZXNjYXBlUmVnRXhwLmpzI0wyM1xyXG4gICAgaWYgKHJlSGFzUmVnRXhwLnRlc3Qoc3RyKSkge1xyXG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZShyZVJlcGxhY2VSZWdFeHAsIFwiXFxcXCQmXCIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0cjtcclxufVxyXG5cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNjYXBlLXJlZ2V4cC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiZXNjYXBlU3RyaW5nUmVnZXhwIiwicmVIYXNSZWdFeHAiLCJyZVJlcGxhY2VSZWdFeHAiLCJzdHIiLCJ0ZXN0IiwicmVwbGFjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/escape-regexp.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router-context.shared-runtime.js ***!
|
||
\****************************************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouterContext\", ({\n enumerable: true,\n get: function() {\n return RouterContext;\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 _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"));\nconst RouterContext = _react.default.createContext(null);\nif (true) {\n RouterContext.displayName = \"RouterContext\";\n} //# sourceMappingURL=router-context.shared-runtime.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsaURBQWdEO0lBQzVDSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsMkJBQTJCQyxtQkFBT0EsQ0FBQyxnSUFBeUM7QUFDbEYsTUFBTUMsU0FBUyxXQUFXLEdBQUdGLHlCQUF5QkcsQ0FBQyxDQUFDRixtQkFBT0EsQ0FBQyxtRkFBTztBQUN2RSxNQUFNRixnQkFBZ0JHLE9BQU9FLE9BQU8sQ0FBQ0MsYUFBYSxDQUFDO0FBQ25ELElBQUlDLElBQXFDLEVBQUU7SUFDdkNQLGNBQWNVLFdBQVcsR0FBRztBQUNoQyxFQUVBLHlEQUF5RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanM/OGZhMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XHJcbiAgICB2YWx1ZTogdHJ1ZVxyXG59KTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUm91dGVyQ29udGV4dFwiLCB7XHJcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gUm91dGVyQ29udGV4dDtcclxuICAgIH1cclxufSk7XHJcbmNvbnN0IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvXy9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHRcIik7XHJcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0Ll8ocmVxdWlyZShcInJlYWN0XCIpKTtcclxuY29uc3QgUm91dGVyQ29udGV4dCA9IF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUNvbnRleHQobnVsbCk7XHJcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcclxuICAgIFJvdXRlckNvbnRleHQuZGlzcGxheU5hbWUgPSBcIlJvdXRlckNvbnRleHRcIjtcclxufVxyXG5cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZW51bWVyYWJsZSIsImdldCIsIlJvdXRlckNvbnRleHQiLCJfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiXyIsImRlZmF1bHQiLCJjcmVhdGVDb250ZXh0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***!
|
||
\**********************************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("// Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\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 formatUrl: function() {\n return formatUrl;\n },\n urlObjectKeys: function() {\n return urlObjectKeys;\n },\n formatWithValidation: function() {\n return formatWithValidation;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(app-pages-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _querystring = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./querystring */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\nconst slashedProtocols = /https?|ftp|gopher|file/;\nfunction formatUrl(urlObj) {\n let { auth, hostname } = urlObj;\n let protocol = urlObj.protocol || \"\";\n let pathname = urlObj.pathname || \"\";\n let hash = urlObj.hash || \"\";\n let query = urlObj.query || \"\";\n let host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, \":\") + \"@\" : \"\";\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(\":\") ? \"[\" + hostname + \"]\" : hostname);\n if (urlObj.port) {\n host += \":\" + urlObj.port;\n }\n }\n if (query && typeof query === \"object\") {\n query = String(_querystring.urlQueryToSearchParams(query));\n }\n let search = urlObj.search || query && \"?\" + query || \"\";\n if (protocol && !protocol.endsWith(\":\")) protocol += \":\";\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = \"//\" + (host || \"\");\n if (pathname && pathname[0] !== \"/\") pathname = \"/\" + pathname;\n } else if (!host) {\n host = \"\";\n }\n if (hash && hash[0] !== \"#\") hash = \"#\" + hash;\n if (search && search[0] !== \"?\") search = \"?\" + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace(\"#\", \"%23\");\n return \"\" + protocol + host + pathname + search + hash;\n}\nconst urlObjectKeys = [\n \"auth\",\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"slashes\"\n];\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === \"object\") {\n Object.keys(url).forEach((key)=>{\n if (!urlObjectKeys.includes(key)) {\n console.warn(\"Unknown key passed via urlObject into url.format: \" + key);\n }\n });\n }\n }\n return formatUrl(url);\n} //# sourceMappingURL=format-url.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybC5qcyIsIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUM7QUFDdkMsc0RBQXNEO0FBQ3RELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsZ0VBQWdFO0FBQ2hFLHNFQUFzRTtBQUN0RSxzRUFBc0U7QUFDdEUsNEVBQTRFO0FBQzVFLHFFQUFxRTtBQUNyRSx3QkFBd0I7QUFDeEIsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSw2REFBNkQ7QUFDN0QsNEVBQTRFO0FBQzVFLDJFQUEyRTtBQUMzRSx3RUFBd0U7QUFDeEUsNEVBQTRFO0FBQzVFLHlDQUF5QztBQUM1QjtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRixLQUFNQyxDQUFBQSxDQUlOO0FBQ0EsU0FBU0ksUUFBUUMsTUFBTSxFQUFFQyxHQUFHO0lBQ3hCLElBQUksSUFBSUMsUUFBUUQsSUFBSVYsT0FBT0MsY0FBYyxDQUFDUSxRQUFRRSxNQUFNO1FBQ3BEQyxZQUFZO1FBQ1pDLEtBQUtILEdBQUcsQ0FBQ0MsS0FBSztJQUNsQjtBQUNKO0FBQ0FILFFBQVFOLFNBQVM7SUFDYkcsV0FBVztRQUNQLE9BQU9BO0lBQ1g7SUFDQUMsZUFBZTtRQUNYLE9BQU9BO0lBQ1g7SUFDQUMsc0JBQXNCO1FBQ2xCLE9BQU9BO0lBQ1g7QUFDSjtBQUNBLE1BQU1PLDRCQUE0QkMsbUJBQU9BLENBQUMsa0lBQTBDO0FBQ3BGLE1BQU1DLGVBQWUsV0FBVyxHQUFHRiwwQkFBMEJHLENBQUMsQ0FBQ0YsbUJBQU9BLENBQUMsMEdBQWU7QUFDdEYsTUFBTUcsbUJBQW1CO0FBQ3pCLFNBQVNiLFVBQVVjLE1BQU07SUFDckIsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsRUFBRSxHQUFHRjtJQUN6QixJQUFJRyxXQUFXSCxPQUFPRyxRQUFRLElBQUk7SUFDbEMsSUFBSUMsV0FBV0osT0FBT0ksUUFBUSxJQUFJO0lBQ2xDLElBQUlDLE9BQU9MLE9BQU9LLElBQUksSUFBSTtJQUMxQixJQUFJQyxRQUFRTixPQUFPTSxLQUFLLElBQUk7SUFDNUIsSUFBSUMsT0FBTztJQUNYTixPQUFPQSxPQUFPTyxtQkFBbUJQLE1BQU1RLE9BQU8sQ0FBQyxRQUFRLE9BQU8sTUFBTTtJQUNwRSxJQUFJVCxPQUFPTyxJQUFJLEVBQUU7UUFDYkEsT0FBT04sT0FBT0QsT0FBT08sSUFBSTtJQUM3QixPQUFPLElBQUlMLFVBQVU7UUFDakJLLE9BQU9OLE9BQVEsRUFBQ0MsU0FBU1EsT0FBTyxDQUFDLE9BQU8sTUFBTVIsV0FBVyxNQUFNQSxRQUFPO1FBQ3RFLElBQUlGLE9BQU9XLElBQUksRUFBRTtZQUNiSixRQUFRLE1BQU1QLE9BQU9XLElBQUk7UUFDN0I7SUFDSjtJQUNBLElBQUlMLFNBQVMsT0FBT0EsVUFBVSxVQUFVO1FBQ3BDQSxRQUFRTSxPQUFPZixhQUFhZ0Isc0JBQXNCLENBQUNQO0lBQ3ZEO0lBQ0EsSUFBSVEsU0FBU2QsT0FBT2MsTUFBTSxJQUFJUixTQUFTLE1BQU1BLFNBQVM7SUFDdEQsSUFBSUgsWUFBWSxDQUFDQSxTQUFTWSxRQUFRLENBQUMsTUFBTVosWUFBWTtJQUNyRCxJQUFJSCxPQUFPZ0IsT0FBTyxJQUFJLENBQUMsQ0FBQ2IsWUFBWUosaUJBQWlCa0IsSUFBSSxDQUFDZCxTQUFRLEtBQU1JLFNBQVMsT0FBTztRQUNwRkEsT0FBTyxPQUFRQSxDQUFBQSxRQUFRLEVBQUM7UUFDeEIsSUFBSUgsWUFBWUEsUUFBUSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxXQUFXLE1BQU1BO0lBQzFELE9BQU8sSUFBSSxDQUFDRyxNQUFNO1FBQ2RBLE9BQU87SUFDWDtJQUNBLElBQUlGLFFBQVFBLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBS0EsT0FBTyxNQUFNQTtJQUMxQyxJQUFJUyxVQUFVQSxNQUFNLENBQUMsRUFBRSxLQUFLLEtBQUtBLFNBQVMsTUFBTUE7SUFDaERWLFdBQVdBLFNBQVNLLE9BQU8sQ0FBQyxTQUFTRDtJQUNyQ00sU0FBU0EsT0FBT0wsT0FBTyxDQUFDLEtBQUs7SUFDN0IsT0FBTyxLQUFLTixXQUFXSSxPQUFPSCxXQUFXVSxTQUFTVDtBQUN0RDtBQUNBLE1BQU1sQixnQkFBZ0I7SUFDbEI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0g7QUFDRCxTQUFTQyxxQkFBcUI4QixHQUFHO0lBQzdCLElBQUlDLElBQXNDLEVBQUU7UUFDeEMsSUFBSUQsUUFBUSxRQUFRLE9BQU9BLFFBQVEsVUFBVTtZQUN6Q3JDLE9BQU95QyxJQUFJLENBQUNKLEtBQUtLLE9BQU8sQ0FBQyxDQUFDQztnQkFDdEIsSUFBSSxDQUFDckMsY0FBY3NDLFFBQVEsQ0FBQ0QsTUFBTTtvQkFDOUJFLFFBQVFDLElBQUksQ0FBQyx1REFBdURIO2dCQUN4RTtZQUNKO1FBQ0o7SUFDSjtJQUNBLE9BQU90QyxVQUFVZ0M7QUFDckIsRUFFQSxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsLmpzPzdiNTMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRm9ybWF0IGZ1bmN0aW9uIG1vZGlmaWVkIGZyb20gbm9kZWpzXHJcbi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxyXG4vL1xyXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxyXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXHJcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xyXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXHJcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcclxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXHJcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxyXG4vL1xyXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxyXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cclxuLy9cclxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xyXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXHJcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cclxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXHJcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxyXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXHJcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXHJcblwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcclxuICAgIHZhbHVlOiB0cnVlXHJcbn0pO1xyXG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGZvcm1hdFVybDogbnVsbCxcclxuICAgIHVybE9iamVjdEtleXM6IG51bGwsXHJcbiAgICBmb3JtYXRXaXRoVmFsaWRhdGlvbjogbnVsbFxyXG59KTtcclxuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xyXG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XHJcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxyXG4gICAgfSk7XHJcbn1cclxuX2V4cG9ydChleHBvcnRzLCB7XHJcbiAgICBmb3JtYXRVcmw6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBmb3JtYXRVcmw7XHJcbiAgICB9LFxyXG4gICAgdXJsT2JqZWN0S2V5czogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHVybE9iamVjdEtleXM7XHJcbiAgICB9LFxyXG4gICAgZm9ybWF0V2l0aFZhbGlkYXRpb246IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBmb3JtYXRXaXRoVmFsaWRhdGlvbjtcclxuICAgIH1cclxufSk7XHJcbmNvbnN0IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZFwiKTtcclxuY29uc3QgX3F1ZXJ5c3RyaW5nID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLl8ocmVxdWlyZShcIi4vcXVlcnlzdHJpbmdcIikpO1xyXG5jb25zdCBzbGFzaGVkUHJvdG9jb2xzID0gL2h0dHBzP3xmdHB8Z29waGVyfGZpbGUvO1xyXG5mdW5jdGlvbiBmb3JtYXRVcmwodXJsT2JqKSB7XHJcbiAgICBsZXQgeyBhdXRoLCBob3N0bmFtZSB9ID0gdXJsT2JqO1xyXG4gICAgbGV0IHByb3RvY29sID0gdXJsT2JqLnByb3RvY29sIHx8IFwiXCI7XHJcbiAgICBsZXQgcGF0aG5hbWUgPSB1cmxPYmoucGF0aG5hbWUgfHwgXCJcIjtcclxuICAgIGxldCBoYXNoID0gdXJsT2JqLmhhc2ggfHwgXCJcIjtcclxuICAgIGxldCBxdWVyeSA9IHVybE9iai5xdWVyeSB8fCBcIlwiO1xyXG4gICAgbGV0IGhvc3QgPSBmYWxzZTtcclxuICAgIGF1dGggPSBhdXRoID8gZW5jb2RlVVJJQ29tcG9uZW50KGF1dGgpLnJlcGxhY2UoLyUzQS9pLCBcIjpcIikgKyBcIkBcIiA6IFwiXCI7XHJcbiAgICBpZiAodXJsT2JqLmhvc3QpIHtcclxuICAgICAgICBob3N0ID0gYXV0aCArIHVybE9iai5ob3N0O1xyXG4gICAgfSBlbHNlIGlmIChob3N0bmFtZSkge1xyXG4gICAgICAgIGhvc3QgPSBhdXRoICsgKH5ob3N0bmFtZS5pbmRleE9mKFwiOlwiKSA/IFwiW1wiICsgaG9zdG5hbWUgKyBcIl1cIiA6IGhvc3RuYW1lKTtcclxuICAgICAgICBpZiAodXJsT2JqLnBvcnQpIHtcclxuICAgICAgICAgICAgaG9zdCArPSBcIjpcIiArIHVybE9iai5wb3J0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChxdWVyeSAmJiB0eXBlb2YgcXVlcnkgPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICBxdWVyeSA9IFN0cmluZyhfcXVlcnlzdHJpbmcudXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhxdWVyeSkpO1xyXG4gICAgfVxyXG4gICAgbGV0IHNlYXJjaCA9IHVybE9iai5zZWFyY2ggfHwgcXVlcnkgJiYgXCI/XCIgKyBxdWVyeSB8fCBcIlwiO1xyXG4gICAgaWYgKHByb3RvY29sICYmICFwcm90b2NvbC5lbmRzV2l0aChcIjpcIikpIHByb3RvY29sICs9IFwiOlwiO1xyXG4gICAgaWYgKHVybE9iai5zbGFzaGVzIHx8ICghcHJvdG9jb2wgfHwgc2xhc2hlZFByb3RvY29scy50ZXN0KHByb3RvY29sKSkgJiYgaG9zdCAhPT0gZmFsc2UpIHtcclxuICAgICAgICBob3N0ID0gXCIvL1wiICsgKGhvc3QgfHwgXCJcIik7XHJcbiAgICAgICAgaWYgKHBhdGhuYW1lICYmIHBhdGhuYW1lWzBdICE9PSBcIi9cIikgcGF0aG5hbWUgPSBcIi9cIiArIHBhdGhuYW1lO1xyXG4gICAgfSBlbHNlIGlmICghaG9zdCkge1xyXG4gICAgICAgIGhvc3QgPSBcIlwiO1xyXG4gICAgfVxyXG4gICAgaWYgKGhhc2ggJiYgaGFzaFswXSAhPT0gXCIjXCIpIGhhc2ggPSBcIiNcIiArIGhhc2g7XHJcbiAgICBpZiAoc2VhcmNoICYmIHNlYXJjaFswXSAhPT0gXCI/XCIpIHNlYXJjaCA9IFwiP1wiICsgc2VhcmNoO1xyXG4gICAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC9bPyNdL2csIGVuY29kZVVSSUNvbXBvbmVudCk7XHJcbiAgICBzZWFyY2ggPSBzZWFyY2gucmVwbGFjZShcIiNcIiwgXCIlMjNcIik7XHJcbiAgICByZXR1cm4gXCJcIiArIHByb3RvY29sICsgaG9zdCArIHBhdGhuYW1lICsgc2VhcmNoICsgaGFzaDtcclxufVxyXG5jb25zdCB1cmxPYmplY3RLZXlzID0gW1xyXG4gICAgXCJhdXRoXCIsXHJcbiAgICBcImhhc2hcIixcclxuICAgIFwiaG9zdFwiLFxyXG4gICAgXCJob3N0bmFtZVwiLFxyXG4gICAgXCJocmVmXCIsXHJcbiAgICBcInBhdGhcIixcclxuICAgIFwicGF0aG5hbWVcIixcclxuICAgIFwicG9ydFwiLFxyXG4gICAgXCJwcm90b2NvbFwiLFxyXG4gICAgXCJxdWVyeVwiLFxyXG4gICAgXCJzZWFyY2hcIixcclxuICAgIFwic2xhc2hlc1wiXHJcbl07XHJcbmZ1bmN0aW9uIGZvcm1hdFdpdGhWYWxpZGF0aW9uKHVybCkge1xyXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpIHtcclxuICAgICAgICBpZiAodXJsICE9PSBudWxsICYmIHR5cGVvZiB1cmwgPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgT2JqZWN0LmtleXModXJsKS5mb3JFYWNoKChrZXkpPT57XHJcbiAgICAgICAgICAgICAgICBpZiAoIXVybE9iamVjdEtleXMuaW5jbHVkZXMoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIlVua25vd24ga2V5IHBhc3NlZCB2aWEgdXJsT2JqZWN0IGludG8gdXJsLmZvcm1hdDogXCIgKyBrZXkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybWF0VXJsKHVybCk7XHJcbn1cclxuXHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZvcm1hdC11cmwuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwibW9kdWxlIiwiZm9ybWF0VXJsIiwidXJsT2JqZWN0S2V5cyIsImZvcm1hdFdpdGhWYWxpZGF0aW9uIiwiX2V4cG9ydCIsInRhcmdldCIsImFsbCIsIm5hbWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZCIsInJlcXVpcmUiLCJfcXVlcnlzdHJpbmciLCJfIiwic2xhc2hlZFByb3RvY29scyIsInVybE9iaiIsImF1dGgiLCJob3N0bmFtZSIsInByb3RvY29sIiwicGF0aG5hbWUiLCJoYXNoIiwicXVlcnkiLCJob3N0IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVwbGFjZSIsImluZGV4T2YiLCJwb3J0IiwiU3RyaW5nIiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsInNlYXJjaCIsImVuZHNXaXRoIiwic2xhc2hlcyIsInRlc3QiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImluY2x1ZGVzIiwiY29uc29sZSIsIndhcm4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/index.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/index.js ***!
|
||
\*****************************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
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 getSortedRoutes: function() {\n return _sortedroutes.getSortedRoutes;\n },\n isDynamicRoute: function() {\n return _isdynamic.isDynamicRoute;\n }\n});\nconst _sortedroutes = __webpack_require__(/*! ./sorted-routes */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\");\nconst _isdynamic = __webpack_require__(/*! ./is-dynamic */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\"); //# sourceMappingURL=index.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0YsS0FBTUMsQ0FBQUEsQ0FHTjtBQUNBLFNBQVNHLFFBQVFDLE1BQU0sRUFBRUMsR0FBRztJQUN4QixJQUFJLElBQUlDLFFBQVFELElBQUlULE9BQU9DLGNBQWMsQ0FBQ08sUUFBUUUsTUFBTTtRQUNwREMsWUFBWTtRQUNaQyxLQUFLSCxHQUFHLENBQUNDLEtBQUs7SUFDbEI7QUFDSjtBQUNBSCxRQUFRTCxTQUFTO0lBQ2JHLGlCQUFpQjtRQUNiLE9BQU9RLGNBQWNSLGVBQWU7SUFDeEM7SUFDQUMsZ0JBQWdCO1FBQ1osT0FBT1EsV0FBV1IsY0FBYztJQUNwQztBQUNKO0FBQ0EsTUFBTU8sZ0JBQWdCRSxtQkFBT0EsQ0FBQyw4R0FBaUI7QUFDL0MsTUFBTUQsYUFBYUMsbUJBQU9BLENBQUMsd0dBQWMsR0FFekMsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW5kZXguanM/ZjUyNSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XHJcbiAgICB2YWx1ZTogdHJ1ZVxyXG59KTtcclxuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBnZXRTb3J0ZWRSb3V0ZXM6IG51bGwsXHJcbiAgICBpc0R5bmFtaWNSb3V0ZTogbnVsbFxyXG59KTtcclxuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xyXG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XHJcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxyXG4gICAgfSk7XHJcbn1cclxuX2V4cG9ydChleHBvcnRzLCB7XHJcbiAgICBnZXRTb3J0ZWRSb3V0ZXM6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBfc29ydGVkcm91dGVzLmdldFNvcnRlZFJvdXRlcztcclxuICAgIH0sXHJcbiAgICBpc0R5bmFtaWNSb3V0ZTogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIF9pc2R5bmFtaWMuaXNEeW5hbWljUm91dGU7XHJcbiAgICB9XHJcbn0pO1xyXG5jb25zdCBfc29ydGVkcm91dGVzID0gcmVxdWlyZShcIi4vc29ydGVkLXJvdXRlc1wiKTtcclxuY29uc3QgX2lzZHluYW1pYyA9IHJlcXVpcmUoXCIuL2lzLWR5bmFtaWNcIik7XHJcblxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtb2R1bGUiLCJnZXRTb3J0ZWRSb3V0ZXMiLCJpc0R5bmFtaWNSb3V0ZSIsIl9leHBvcnQiLCJ0YXJnZXQiLCJhbGwiLCJuYW1lIiwiZW51bWVyYWJsZSIsImdldCIsIl9zb3J0ZWRyb3V0ZXMiLCJfaXNkeW5hbWljIiwicmVxdWlyZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/index.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js ***!
|
||
\**************************************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interpolateAs\", ({\n enumerable: true,\n get: function() {\n return interpolateAs;\n }\n}));\nconst _routematcher = __webpack_require__(/*! ./route-matcher */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\nconst _routeregex = __webpack_require__(/*! ./route-regex */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nfunction interpolateAs(route, asPathname, query) {\n let interpolatedRoute = \"\";\n const dynamicRegex = (0, _routeregex.getRouteRegex)(route);\n const dynamicGroups = dynamicRegex.groups;\n const dynamicMatches = (asPathname !== route ? (0, _routematcher.getRouteMatcher)(dynamicRegex)(asPathname) : \"\") || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n const params = Object.keys(dynamicGroups);\n if (!params.every((param)=>{\n let value = dynamicMatches[param] || \"\";\n const { repeat, optional } = dynamicGroups[param];\n // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n let replaced = \"[\" + (repeat ? \"...\" : \"\") + param + \"]\";\n if (optional) {\n replaced = (!value ? \"/\" : \"\") + \"[\" + replaced + \"]\";\n }\n if (repeat && !Array.isArray(value)) value = [\n value\n ];\n return (optional || param in dynamicMatches) && // Interpolate group into data URL if present\n (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map(// path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n (segment)=>encodeURIComponent(segment)).join(\"/\") : encodeURIComponent(value)) || \"/\");\n })) {\n interpolatedRoute = \"\" // did not satisfy all requirements\n ;\n // n.b. We ignore this error because we handle warning for this case in\n // development in the `<Link>` component directly.\n }\n return {\n params,\n result: interpolatedRoute\n };\n} //# sourceMappingURL=interpolate-as.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJwb2xhdGUtYXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0ZILGlEQUFnRDtJQUM1Q0ksWUFBWTtJQUNaQyxLQUFLO1FBQ0QsT0FBT0M7SUFDWDtBQUNKLENBQUMsRUFBQztBQUNGLE1BQU1DLGdCQUFnQkMsbUJBQU9BLENBQUMsOEdBQWlCO0FBQy9DLE1BQU1DLGNBQWNELG1CQUFPQSxDQUFDLDBHQUFlO0FBQzNDLFNBQVNGLGNBQWNJLEtBQUssRUFBRUMsVUFBVSxFQUFFQyxLQUFLO0lBQzNDLElBQUlDLG9CQUFvQjtJQUN4QixNQUFNQyxlQUFlLENBQUMsR0FBR0wsWUFBWU0sYUFBYSxFQUFFTDtJQUNwRCxNQUFNTSxnQkFBZ0JGLGFBQWFHLE1BQU07SUFDekMsTUFBTUMsaUJBQ04sQ0FBQ1AsZUFBZUQsUUFBUSxDQUFDLEdBQUdILGNBQWNZLGVBQWUsRUFBRUwsY0FBY0gsY0FBYyxFQUFDLEtBQU0sZ0RBQWdEO0lBQzlJLHNFQUFzRTtJQUN0RUM7SUFDQUMsb0JBQW9CSDtJQUNwQixNQUFNVSxTQUFTcEIsT0FBT3FCLElBQUksQ0FBQ0w7SUFDM0IsSUFBSSxDQUFDSSxPQUFPRSxLQUFLLENBQUMsQ0FBQ0M7UUFDZixJQUFJcEIsUUFBUWUsY0FBYyxDQUFDSyxNQUFNLElBQUk7UUFDckMsTUFBTSxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRSxHQUFHVCxhQUFhLENBQUNPLE1BQU07UUFDakQsaUNBQWlDO1FBQ2pDLDBEQUEwRDtRQUMxRCxJQUFJRyxXQUFXLE1BQU9GLENBQUFBLFNBQVMsUUFBUSxFQUFDLElBQUtELFFBQVE7UUFDckQsSUFBSUUsVUFBVTtZQUNWQyxXQUFXLENBQUMsQ0FBQ3ZCLFFBQVEsTUFBTSxFQUFDLElBQUssTUFBTXVCLFdBQVc7UUFDdEQ7UUFDQSxJQUFJRixVQUFVLENBQUNHLE1BQU1DLE9BQU8sQ0FBQ3pCLFFBQVFBLFFBQVE7WUFDekNBO1NBQ0g7UUFDRCxPQUFPLENBQUNzQixZQUFZRixTQUFTTCxjQUFhLEtBQU0sNkNBQTZDO1FBQzVGTCxDQUFBQSxvQkFBb0JBLGtCQUFrQmdCLE9BQU8sQ0FBQ0gsVUFBVUYsU0FBU3JCLE1BQU0yQixHQUFHLENBQzNFLHVEQUF1RDtRQUN2RCxrREFBa0Q7UUFDbEQsb0NBQW9DO1FBQ3BDLENBQUNDLFVBQVVDLG1CQUFtQkQsVUFBVUUsSUFBSSxDQUFDLE9BQU9ELG1CQUFtQjdCLFdBQVcsR0FBRTtJQUN4RixJQUFJO1FBQ0FVLG9CQUFvQixHQUFHLG1DQUFtQzs7SUFFOUQsdUVBQXVFO0lBQ3ZFLGtEQUFrRDtJQUNsRDtJQUNBLE9BQU87UUFDSE87UUFDQWMsUUFBUXJCO0lBQ1o7QUFDSixFQUVBLDBDQUEwQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVycG9sYXRlLWFzLmpzP2QwZTQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xyXG4gICAgdmFsdWU6IHRydWVcclxufSk7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImludGVycG9sYXRlQXNcIiwge1xyXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgIGdldDogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIGludGVycG9sYXRlQXM7XHJcbiAgICB9XHJcbn0pO1xyXG5jb25zdCBfcm91dGVtYXRjaGVyID0gcmVxdWlyZShcIi4vcm91dGUtbWF0Y2hlclwiKTtcclxuY29uc3QgX3JvdXRlcmVnZXggPSByZXF1aXJlKFwiLi9yb3V0ZS1yZWdleFwiKTtcclxuZnVuY3Rpb24gaW50ZXJwb2xhdGVBcyhyb3V0ZSwgYXNQYXRobmFtZSwgcXVlcnkpIHtcclxuICAgIGxldCBpbnRlcnBvbGF0ZWRSb3V0ZSA9IFwiXCI7XHJcbiAgICBjb25zdCBkeW5hbWljUmVnZXggPSAoMCwgX3JvdXRlcmVnZXguZ2V0Um91dGVSZWdleCkocm91dGUpO1xyXG4gICAgY29uc3QgZHluYW1pY0dyb3VwcyA9IGR5bmFtaWNSZWdleC5ncm91cHM7XHJcbiAgICBjb25zdCBkeW5hbWljTWF0Y2hlcyA9IC8vIFRyeSB0byBtYXRjaCB0aGUgZHluYW1pYyByb3V0ZSBhZ2FpbnN0IHRoZSBhc1BhdGhcclxuICAgIChhc1BhdGhuYW1lICE9PSByb3V0ZSA/ICgwLCBfcm91dGVtYXRjaGVyLmdldFJvdXRlTWF0Y2hlcikoZHluYW1pY1JlZ2V4KShhc1BhdGhuYW1lKSA6IFwiXCIpIHx8IC8vIEZhbGwgYmFjayB0byByZWFkaW5nIHRoZSB2YWx1ZXMgZnJvbSB0aGUgaHJlZlxyXG4gICAgLy8gVE9ETzogc2hvdWxkIHRoaXMgdGFrZSBwcmlvcml0eTsgYWxzbyBuZWVkIHRvIGNoYW5nZSBpbiB0aGUgcm91dGVyLlxyXG4gICAgcXVlcnk7XHJcbiAgICBpbnRlcnBvbGF0ZWRSb3V0ZSA9IHJvdXRlO1xyXG4gICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmtleXMoZHluYW1pY0dyb3Vwcyk7XHJcbiAgICBpZiAoIXBhcmFtcy5ldmVyeSgocGFyYW0pPT57XHJcbiAgICAgICAgbGV0IHZhbHVlID0gZHluYW1pY01hdGNoZXNbcGFyYW1dIHx8IFwiXCI7XHJcbiAgICAgICAgY29uc3QgeyByZXBlYXQsIG9wdGlvbmFsIH0gPSBkeW5hbWljR3JvdXBzW3BhcmFtXTtcclxuICAgICAgICAvLyBzdXBwb3J0IHNpbmdsZS1sZXZlbCBjYXRjaC1hbGxcclxuICAgICAgICAvLyBUT0RPOiBtb3JlIHJvYnVzdCBoYW5kbGluZyBmb3IgdXNlci1lcnJvciAocGFzc2luZyBgL2ApXHJcbiAgICAgICAgbGV0IHJlcGxhY2VkID0gXCJbXCIgKyAocmVwZWF0ID8gXCIuLi5cIiA6IFwiXCIpICsgcGFyYW0gKyBcIl1cIjtcclxuICAgICAgICBpZiAob3B0aW9uYWwpIHtcclxuICAgICAgICAgICAgcmVwbGFjZWQgPSAoIXZhbHVlID8gXCIvXCIgOiBcIlwiKSArIFwiW1wiICsgcmVwbGFjZWQgKyBcIl1cIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJlcGVhdCAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHZhbHVlID0gW1xyXG4gICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIChvcHRpb25hbCB8fCBwYXJhbSBpbiBkeW5hbWljTWF0Y2hlcykgJiYgLy8gSW50ZXJwb2xhdGUgZ3JvdXAgaW50byBkYXRhIFVSTCBpZiBwcmVzZW50XHJcbiAgICAgICAgKGludGVycG9sYXRlZFJvdXRlID0gaW50ZXJwb2xhdGVkUm91dGUucmVwbGFjZShyZXBsYWNlZCwgcmVwZWF0ID8gdmFsdWUubWFwKC8vIHRoZXNlIHZhbHVlcyBzaG91bGQgYmUgZnVsbHkgZW5jb2RlZCBpbnN0ZWFkIG9mIGp1c3RcclxuICAgICAgICAvLyBwYXRoIGRlbGltaXRlciBlc2NhcGVkIHNpbmNlIHRoZXkgYXJlIGJlaW5nIGluc2VydGVkXHJcbiAgICAgICAgLy8gaW50byB0aGUgVVJMIGFuZCB3ZSBleHBlY3QgVVJMIGVuY29kZWQgc2VnbWVudHNcclxuICAgICAgICAvLyB3aGVuIHBhcnNpbmcgZHluYW1pYyByb3V0ZSBwYXJhbXNcclxuICAgICAgICAoc2VnbWVudCk9PmVuY29kZVVSSUNvbXBvbmVudChzZWdtZW50KSkuam9pbihcIi9cIikgOiBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpKSB8fCBcIi9cIik7XHJcbiAgICB9KSkge1xyXG4gICAgICAgIGludGVycG9sYXRlZFJvdXRlID0gXCJcIiAvLyBkaWQgbm90IHNhdGlzZnkgYWxsIHJlcXVpcmVtZW50c1xyXG4gICAgICAgIDtcclxuICAgIC8vIG4uYi4gV2UgaWdub3JlIHRoaXMgZXJyb3IgYmVjYXVzZSB3ZSBoYW5kbGUgd2FybmluZyBmb3IgdGhpcyBjYXNlIGluXHJcbiAgICAvLyBkZXZlbG9wbWVudCBpbiB0aGUgYDxMaW5rPmAgY29tcG9uZW50IGRpcmVjdGx5LlxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgcmVzdWx0OiBpbnRlcnBvbGF0ZWRSb3V0ZVxyXG4gICAgfTtcclxufVxyXG5cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50ZXJwb2xhdGUtYXMuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZW51bWVyYWJsZSIsImdldCIsImludGVycG9sYXRlQXMiLCJfcm91dGVtYXRjaGVyIiwicmVxdWlyZSIsIl9yb3V0ZXJlZ2V4Iiwicm91dGUiLCJhc1BhdGhuYW1lIiwicXVlcnkiLCJpbnRlcnBvbGF0ZWRSb3V0ZSIsImR5bmFtaWNSZWdleCIsImdldFJvdXRlUmVnZXgiLCJkeW5hbWljR3JvdXBzIiwiZ3JvdXBzIiwiZHluYW1pY01hdGNoZXMiLCJnZXRSb3V0ZU1hdGNoZXIiLCJwYXJhbXMiLCJrZXlzIiwiZXZlcnkiLCJwYXJhbSIsInJlcGVhdCIsIm9wdGlvbmFsIiwicmVwbGFjZWQiLCJBcnJheSIsImlzQXJyYXkiLCJyZXBsYWNlIiwibWFwIiwic2VnbWVudCIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJyZXN1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js ***!
|
||
\**********************************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("// Identify /[param]/ in route string\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isDynamicRoute\", ({\n enumerable: true,\n get: function() {\n return isDynamicRoute;\n }\n}));\nconst TEST_ROUTE = /\\/\\[[^/]+?\\](?=\\/|$)/;\nfunction isDynamicRoute(route) {\n return TEST_ROUTE.test(route);\n} //# sourceMappingURL=is-dynamic.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxxQ0FBcUM7QUFDeEI7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0ZILGtEQUFpRDtJQUM3Q0ksWUFBWTtJQUNaQyxLQUFLO1FBQ0QsT0FBT0M7SUFDWDtBQUNKLENBQUMsRUFBQztBQUNGLE1BQU1DLGFBQWE7QUFDbkIsU0FBU0QsZUFBZUUsS0FBSztJQUN6QixPQUFPRCxXQUFXRSxJQUFJLENBQUNEO0FBQzNCLEVBRUEsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy5qcz80NmY5Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIElkZW50aWZ5IC9bcGFyYW1dLyBpbiByb3V0ZSBzdHJpbmdcclxuXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xyXG4gICAgdmFsdWU6IHRydWVcclxufSk7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzRHluYW1pY1JvdXRlXCIsIHtcclxuICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBpc0R5bmFtaWNSb3V0ZTtcclxuICAgIH1cclxufSk7XHJcbmNvbnN0IFRFU1RfUk9VVEUgPSAvXFwvXFxbW14vXSs/XFxdKD89XFwvfCQpLztcclxuZnVuY3Rpb24gaXNEeW5hbWljUm91dGUocm91dGUpIHtcclxuICAgIHJldHVybiBURVNUX1JPVVRFLnRlc3Qocm91dGUpO1xyXG59XHJcblxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1keW5hbWljLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJpc0R5bmFtaWNSb3V0ZSIsIlRFU1RfUk9VVEUiLCJyb3V0ZSIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/is-local-url.js ***!
|
||
\************************************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isLocalURL\", ({\n enumerable: true,\n get: function() {\n return isLocalURL;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _hasbasepath = __webpack_require__(/*! ../../../../client/has-base-path */ \"(app-pages-browser)/./node_modules/next/dist/client/has-base-path.js\");\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (!(0, _utils.isAbsoluteUrl)(url)) return true;\n try {\n // absolute urls can be local if they are on the same origin\n const locationOrigin = (0, _utils.getLocationOrigin)();\n const resolved = new URL(url, locationOrigin);\n return resolved.origin === locationOrigin && (0, _hasbasepath.hasBasePath)(resolved.pathname);\n } catch (_) {\n return false;\n }\n} //# sourceMappingURL=is-local-url.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtbG9jYWwtdXJsLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGSCw4Q0FBNkM7SUFDekNJLFlBQVk7SUFDWkMsS0FBSztRQUNELE9BQU9DO0lBQ1g7QUFDSixDQUFDLEVBQUM7QUFDRixNQUFNQyxTQUFTQyxtQkFBT0EsQ0FBQyxxRkFBYTtBQUNwQyxNQUFNQyxlQUFlRCxtQkFBT0EsQ0FBQyw4R0FBa0M7QUFDL0QsU0FBU0YsV0FBV0ksR0FBRztJQUNuQixnRUFBZ0U7SUFDaEUsSUFBSSxDQUFDLENBQUMsR0FBR0gsT0FBT0ksYUFBYSxFQUFFRCxNQUFNLE9BQU87SUFDNUMsSUFBSTtRQUNBLDREQUE0RDtRQUM1RCxNQUFNRSxpQkFBaUIsQ0FBQyxHQUFHTCxPQUFPTSxpQkFBaUI7UUFDbkQsTUFBTUMsV0FBVyxJQUFJQyxJQUFJTCxLQUFLRTtRQUM5QixPQUFPRSxTQUFTRSxNQUFNLEtBQUtKLGtCQUFrQixDQUFDLEdBQUdILGFBQWFRLFdBQVcsRUFBRUgsU0FBU0ksUUFBUTtJQUNoRyxFQUFFLE9BQU9DLEdBQUc7UUFDUixPQUFPO0lBQ1g7QUFDSixFQUVBLHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWxvY2FsLXVybC5qcz81ZDI4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcclxuICAgIHZhbHVlOiB0cnVlXHJcbn0pO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpc0xvY2FsVVJMXCIsIHtcclxuICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBpc0xvY2FsVVJMO1xyXG4gICAgfVxyXG59KTtcclxuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzXCIpO1xyXG5jb25zdCBfaGFzYmFzZXBhdGggPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vY2xpZW50L2hhcy1iYXNlLXBhdGhcIik7XHJcbmZ1bmN0aW9uIGlzTG9jYWxVUkwodXJsKSB7XHJcbiAgICAvLyBwcmV2ZW50IGEgaHlkcmF0aW9uIG1pc21hdGNoIG9uIGhyZWYgZm9yIHVybCB3aXRoIGFuY2hvciByZWZzXHJcbiAgICBpZiAoISgwLCBfdXRpbHMuaXNBYnNvbHV0ZVVybCkodXJsKSkgcmV0dXJuIHRydWU7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIC8vIGFic29sdXRlIHVybHMgY2FuIGJlIGxvY2FsIGlmIHRoZXkgYXJlIG9uIHRoZSBzYW1lIG9yaWdpblxyXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uT3JpZ2luID0gKDAsIF91dGlscy5nZXRMb2NhdGlvbk9yaWdpbikoKTtcclxuICAgICAgICBjb25zdCByZXNvbHZlZCA9IG5ldyBVUkwodXJsLCBsb2NhdGlvbk9yaWdpbik7XHJcbiAgICAgICAgcmV0dXJuIHJlc29sdmVkLm9yaWdpbiA9PT0gbG9jYXRpb25PcmlnaW4gJiYgKDAsIF9oYXNiYXNlcGF0aC5oYXNCYXNlUGF0aCkocmVzb2x2ZWQucGF0aG5hbWUpO1xyXG4gICAgfSBjYXRjaCAoXykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufVxyXG5cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtbG9jYWwtdXJsLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJpc0xvY2FsVVJMIiwiX3V0aWxzIiwicmVxdWlyZSIsIl9oYXNiYXNlcGF0aCIsInVybCIsImlzQWJzb2x1dGVVcmwiLCJsb2NhdGlvbk9yaWdpbiIsImdldExvY2F0aW9uT3JpZ2luIiwicmVzb2x2ZWQiLCJVUkwiLCJvcmlnaW4iLCJoYXNCYXNlUGF0aCIsInBhdGhuYW1lIiwiXyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/omit.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/omit.js ***!
|
||
\****************************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"omit\", ({\n enumerable: true,\n get: function() {\n return omit;\n }\n}));\nfunction omit(object, keys) {\n const omitted = {};\n Object.keys(object).forEach((key)=>{\n if (!keys.includes(key)) {\n omitted[key] = object[key];\n }\n });\n return omitted;\n} //# sourceMappingURL=omit.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvb21pdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsd0NBQXVDO0lBQ25DSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsU0FBU0EsS0FBS0MsTUFBTSxFQUFFQyxJQUFJO0lBQ3RCLE1BQU1DLFVBQVUsQ0FBQztJQUNqQlQsT0FBT1EsSUFBSSxDQUFDRCxRQUFRRyxPQUFPLENBQUMsQ0FBQ0M7UUFDekIsSUFBSSxDQUFDSCxLQUFLSSxRQUFRLENBQUNELE1BQU07WUFDckJGLE9BQU8sQ0FBQ0UsSUFBSSxHQUFHSixNQUFNLENBQUNJLElBQUk7UUFDOUI7SUFDSjtJQUNBLE9BQU9GO0FBQ1gsRUFFQSxnQ0FBZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9vbWl0LmpzP2ZiNzgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xyXG4gICAgdmFsdWU6IHRydWVcclxufSk7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIm9taXRcIiwge1xyXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgIGdldDogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIG9taXQ7XHJcbiAgICB9XHJcbn0pO1xyXG5mdW5jdGlvbiBvbWl0KG9iamVjdCwga2V5cykge1xyXG4gICAgY29uc3Qgb21pdHRlZCA9IHt9O1xyXG4gICAgT2JqZWN0LmtleXMob2JqZWN0KS5mb3JFYWNoKChrZXkpPT57XHJcbiAgICAgICAgaWYgKCFrZXlzLmluY2x1ZGVzKGtleSkpIHtcclxuICAgICAgICAgICAgb21pdHRlZFtrZXldID0gb2JqZWN0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gb21pdHRlZDtcclxufVxyXG5cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9b21pdC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0Iiwib21pdCIsIm9iamVjdCIsImtleXMiLCJvbWl0dGVkIiwiZm9yRWFjaCIsImtleSIsImluY2x1ZGVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/omit.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***!
|
||
\***********************************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
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 searchParamsToUrlQuery: function() {\n return searchParamsToUrlQuery;\n },\n urlQueryToSearchParams: function() {\n return urlQueryToSearchParams;\n },\n assign: function() {\n return assign;\n }\n});\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n searchParams.forEach((value, key)=>{\n if (typeof query[key] === \"undefined\") {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n query[key].push(value);\n } else {\n query[key] = [\n query[key],\n value\n ];\n }\n });\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === \"string\" || typeof param === \"number\" && !isNaN(param) || typeof param === \"boolean\") {\n return String(param);\n } else {\n return \"\";\n }\n}\nfunction urlQueryToSearchParams(urlQuery) {\n const result = new URLSearchParams();\n Object.entries(urlQuery).forEach((param)=>{\n let [key, value] = param;\n if (Array.isArray(value)) {\n value.forEach((item)=>result.append(key, stringifyUrlQueryParam(item)));\n } else {\n result.set(key, stringifyUrlQueryParam(value));\n }\n });\n return result;\n}\nfunction assign(target) {\n for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n searchParamsList[_key - 1] = arguments[_key];\n }\n searchParamsList.forEach((searchParams)=>{\n Array.from(searchParams.keys()).forEach((key)=>target.delete(key));\n searchParams.forEach((value, key)=>target.append(key, value));\n });\n return target;\n} //# sourceMappingURL=querystring.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0YsS0FBTUMsQ0FBQUEsQ0FJTjtBQUNBLFNBQVNJLFFBQVFDLE1BQU0sRUFBRUMsR0FBRztJQUN4QixJQUFJLElBQUlDLFFBQVFELElBQUlWLE9BQU9DLGNBQWMsQ0FBQ1EsUUFBUUUsTUFBTTtRQUNwREMsWUFBWTtRQUNaQyxLQUFLSCxHQUFHLENBQUNDLEtBQUs7SUFDbEI7QUFDSjtBQUNBSCxRQUFRTixTQUFTO0lBQ2JHLHdCQUF3QjtRQUNwQixPQUFPQTtJQUNYO0lBQ0FDLHdCQUF3QjtRQUNwQixPQUFPQTtJQUNYO0lBQ0FDLFFBQVE7UUFDSixPQUFPQTtJQUNYO0FBQ0o7QUFDQSxTQUFTRix1QkFBdUJTLFlBQVk7SUFDeEMsTUFBTUMsUUFBUSxDQUFDO0lBQ2ZELGFBQWFFLE9BQU8sQ0FBQyxDQUFDYixPQUFPYztRQUN6QixJQUFJLE9BQU9GLEtBQUssQ0FBQ0UsSUFBSSxLQUFLLGFBQWE7WUFDbkNGLEtBQUssQ0FBQ0UsSUFBSSxHQUFHZDtRQUNqQixPQUFPLElBQUllLE1BQU1DLE9BQU8sQ0FBQ0osS0FBSyxDQUFDRSxJQUFJLEdBQUc7WUFDbENGLEtBQUssQ0FBQ0UsSUFBSSxDQUFDRyxJQUFJLENBQUNqQjtRQUNwQixPQUFPO1lBQ0hZLEtBQUssQ0FBQ0UsSUFBSSxHQUFHO2dCQUNURixLQUFLLENBQUNFLElBQUk7Z0JBQ1ZkO2FBQ0g7UUFDTDtJQUNKO0lBQ0EsT0FBT1k7QUFDWDtBQUNBLFNBQVNNLHVCQUF1QkMsS0FBSztJQUNqQyxJQUFJLE9BQU9BLFVBQVUsWUFBWSxPQUFPQSxVQUFVLFlBQVksQ0FBQ0MsTUFBTUQsVUFBVSxPQUFPQSxVQUFVLFdBQVc7UUFDdkcsT0FBT0UsT0FBT0Y7SUFDbEIsT0FBTztRQUNILE9BQU87SUFDWDtBQUNKO0FBQ0EsU0FBU2hCLHVCQUF1Qm1CLFFBQVE7SUFDcEMsTUFBTUMsU0FBUyxJQUFJQztJQUNuQjNCLE9BQU80QixPQUFPLENBQUNILFVBQVVULE9BQU8sQ0FBQyxDQUFDTTtRQUM5QixJQUFJLENBQUNMLEtBQUtkLE1BQU0sR0FBR21CO1FBQ25CLElBQUlKLE1BQU1DLE9BQU8sQ0FBQ2hCLFFBQVE7WUFDdEJBLE1BQU1hLE9BQU8sQ0FBQyxDQUFDYSxPQUFPSCxPQUFPSSxNQUFNLENBQUNiLEtBQUtJLHVCQUF1QlE7UUFDcEUsT0FBTztZQUNISCxPQUFPSyxHQUFHLENBQUNkLEtBQUtJLHVCQUF1QmxCO1FBQzNDO0lBQ0o7SUFDQSxPQUFPdUI7QUFDWDtBQUNBLFNBQVNuQixPQUFPRSxNQUFNO0lBQ2xCLElBQUksSUFBSXVCLE9BQU9DLFVBQVVDLE1BQU0sRUFBRUMsbUJBQW1CLElBQUlqQixNQUFNYyxPQUFPLElBQUlBLE9BQU8sSUFBSSxJQUFJSSxPQUFPLEdBQUdBLE9BQU9KLE1BQU1JLE9BQU87UUFDbEhELGdCQUFnQixDQUFDQyxPQUFPLEVBQUUsR0FBR0gsU0FBUyxDQUFDRyxLQUFLO0lBQ2hEO0lBQ0FELGlCQUFpQm5CLE9BQU8sQ0FBQyxDQUFDRjtRQUN0QkksTUFBTW1CLElBQUksQ0FBQ3ZCLGFBQWF3QixJQUFJLElBQUl0QixPQUFPLENBQUMsQ0FBQ0MsTUFBTVIsT0FBTzhCLE1BQU0sQ0FBQ3RCO1FBQzdESCxhQUFhRSxPQUFPLENBQUMsQ0FBQ2IsT0FBT2MsTUFBTVIsT0FBT3FCLE1BQU0sQ0FBQ2IsS0FBS2Q7SUFDMUQ7SUFDQSxPQUFPTTtBQUNYLEVBRUEsdUNBQXVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcuanM/MDE0OSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XHJcbiAgICB2YWx1ZTogdHJ1ZVxyXG59KTtcclxuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5OiBudWxsLFxyXG4gICAgdXJsUXVlcnlUb1NlYXJjaFBhcmFtczogbnVsbCxcclxuICAgIGFzc2lnbjogbnVsbFxyXG59KTtcclxuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xyXG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XHJcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxyXG4gICAgfSk7XHJcbn1cclxuX2V4cG9ydChleHBvcnRzLCB7XHJcbiAgICBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5OiBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeTtcclxuICAgIH0sXHJcbiAgICB1cmxRdWVyeVRvU2VhcmNoUGFyYW1zOiBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdXJsUXVlcnlUb1NlYXJjaFBhcmFtcztcclxuICAgIH0sXHJcbiAgICBhc3NpZ246IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBhc3NpZ247XHJcbiAgICB9XHJcbn0pO1xyXG5mdW5jdGlvbiBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KHNlYXJjaFBhcmFtcykge1xyXG4gICAgY29uc3QgcXVlcnkgPSB7fTtcclxuICAgIHNlYXJjaFBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KT0+e1xyXG4gICAgICAgIGlmICh0eXBlb2YgcXVlcnlba2V5XSA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgICBxdWVyeVtrZXldID0gdmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHF1ZXJ5W2tleV0pKSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5W2tleV0ucHVzaCh2YWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcXVlcnlba2V5XSA9IFtcclxuICAgICAgICAgICAgICAgIHF1ZXJ5W2tleV0sXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHF1ZXJ5O1xyXG59XHJcbmZ1bmN0aW9uIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0ocGFyYW0pIHtcclxuICAgIGlmICh0eXBlb2YgcGFyYW0gPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIHBhcmFtID09PSBcIm51bWJlclwiICYmICFpc05hTihwYXJhbSkgfHwgdHlwZW9mIHBhcmFtID09PSBcImJvb2xlYW5cIikge1xyXG4gICAgICAgIHJldHVybiBTdHJpbmcocGFyYW0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiB1cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHVybFF1ZXJ5KSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XHJcbiAgICBPYmplY3QuZW50cmllcyh1cmxRdWVyeSkuZm9yRWFjaCgocGFyYW0pPT57XHJcbiAgICAgICAgbGV0IFtrZXksIHZhbHVlXSA9IHBhcmFtO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChpdGVtKT0+cmVzdWx0LmFwcGVuZChrZXksIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0oaXRlbSkpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXN1bHQuc2V0KGtleSwgc3RyaW5naWZ5VXJsUXVlcnlQYXJhbSh2YWx1ZSkpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5mdW5jdGlvbiBhc3NpZ24odGFyZ2V0KSB7XHJcbiAgICBmb3IodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBzZWFyY2hQYXJhbXNMaXN0ID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5Kyspe1xyXG4gICAgICAgIHNlYXJjaFBhcmFtc0xpc3RbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xyXG4gICAgfVxyXG4gICAgc2VhcmNoUGFyYW1zTGlzdC5mb3JFYWNoKChzZWFyY2hQYXJhbXMpPT57XHJcbiAgICAgICAgQXJyYXkuZnJvbShzZWFyY2hQYXJhbXMua2V5cygpKS5mb3JFYWNoKChrZXkpPT50YXJnZXQuZGVsZXRlKGtleSkpO1xyXG4gICAgICAgIHNlYXJjaFBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KT0+dGFyZ2V0LmFwcGVuZChrZXksIHZhbHVlKSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0YXJnZXQ7XHJcbn1cclxuXHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXF1ZXJ5c3RyaW5nLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIm1vZHVsZSIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwiYXNzaWduIiwiX2V4cG9ydCIsInRhcmdldCIsImFsbCIsIm5hbWUiLCJlbnVtZXJhYmxlIiwiZ2V0Iiwic2VhcmNoUGFyYW1zIiwicXVlcnkiLCJmb3JFYWNoIiwia2V5IiwiQXJyYXkiLCJpc0FycmF5IiwicHVzaCIsInN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0iLCJwYXJhbSIsImlzTmFOIiwiU3RyaW5nIiwidXJsUXVlcnkiLCJyZXN1bHQiLCJVUkxTZWFyY2hQYXJhbXMiLCJlbnRyaWVzIiwiaXRlbSIsImFwcGVuZCIsInNldCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzZWFyY2hQYXJhbXNMaXN0IiwiX2tleSIsImZyb20iLCJrZXlzIiwiZGVsZXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/route-matcher.js ***!
|
||
\*************************************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRouteMatcher\", ({\n enumerable: true,\n get: function() {\n return getRouteMatcher;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nfunction getRouteMatcher(param) {\n let { re, groups } = param;\n return (pathname)=>{\n const routeMatch = re.exec(pathname);\n if (!routeMatch) {\n return false;\n }\n const decode = (param)=>{\n try {\n return decodeURIComponent(param);\n } catch (_) {\n throw new _utils.DecodeError(\"failed to decode param\");\n }\n };\n const params = {};\n Object.keys(groups).forEach((slugName)=>{\n const g = groups[slugName];\n const m = routeMatch[g.pos];\n if (m !== undefined) {\n params[slugName] = ~m.indexOf(\"/\") ? m.split(\"/\").map((entry)=>decode(entry)) : g.repeat ? [\n decode(m)\n ] : decode(m);\n }\n });\n return params;\n };\n} //# sourceMappingURL=route-matcher.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsbURBQWtEO0lBQzlDSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsU0FBU0MsbUJBQU9BLENBQUMscUZBQWE7QUFDcEMsU0FBU0YsZ0JBQWdCRyxLQUFLO0lBQzFCLElBQUksRUFBRUMsRUFBRSxFQUFFQyxNQUFNLEVBQUUsR0FBR0Y7SUFDckIsT0FBTyxDQUFDRztRQUNKLE1BQU1DLGFBQWFILEdBQUdJLElBQUksQ0FBQ0Y7UUFDM0IsSUFBSSxDQUFDQyxZQUFZO1lBQ2IsT0FBTztRQUNYO1FBQ0EsTUFBTUUsU0FBUyxDQUFDTjtZQUNaLElBQUk7Z0JBQ0EsT0FBT08sbUJBQW1CUDtZQUM5QixFQUFFLE9BQU9RLEdBQUc7Z0JBQ1IsTUFBTSxJQUFJVixPQUFPVyxXQUFXLENBQUM7WUFDakM7UUFDSjtRQUNBLE1BQU1DLFNBQVMsQ0FBQztRQUNoQm5CLE9BQU9vQixJQUFJLENBQUNULFFBQVFVLE9BQU8sQ0FBQyxDQUFDQztZQUN6QixNQUFNQyxJQUFJWixNQUFNLENBQUNXLFNBQVM7WUFDMUIsTUFBTUUsSUFBSVgsVUFBVSxDQUFDVSxFQUFFRSxHQUFHLENBQUM7WUFDM0IsSUFBSUQsTUFBTUUsV0FBVztnQkFDakJQLE1BQU0sQ0FBQ0csU0FBUyxHQUFHLENBQUNFLEVBQUVHLE9BQU8sQ0FBQyxPQUFPSCxFQUFFSSxLQUFLLENBQUMsS0FBS0MsR0FBRyxDQUFDLENBQUNDLFFBQVFmLE9BQU9lLFVBQVVQLEVBQUVRLE1BQU0sR0FBRztvQkFDdkZoQixPQUFPUztpQkFDVixHQUFHVCxPQUFPUztZQUNmO1FBQ0o7UUFDQSxPQUFPTDtJQUNYO0FBQ0osRUFFQSx5Q0FBeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yb3V0ZS1tYXRjaGVyLmpzP2M4NmMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xyXG4gICAgdmFsdWU6IHRydWVcclxufSk7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImdldFJvdXRlTWF0Y2hlclwiLCB7XHJcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gZ2V0Um91dGVNYXRjaGVyO1xyXG4gICAgfVxyXG59KTtcclxuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzXCIpO1xyXG5mdW5jdGlvbiBnZXRSb3V0ZU1hdGNoZXIocGFyYW0pIHtcclxuICAgIGxldCB7IHJlLCBncm91cHMgfSA9IHBhcmFtO1xyXG4gICAgcmV0dXJuIChwYXRobmFtZSk9PntcclxuICAgICAgICBjb25zdCByb3V0ZU1hdGNoID0gcmUuZXhlYyhwYXRobmFtZSk7XHJcbiAgICAgICAgaWYgKCFyb3V0ZU1hdGNoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZGVjb2RlID0gKHBhcmFtKT0+e1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChwYXJhbSk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKF8pIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBfdXRpbHMuRGVjb2RlRXJyb3IoXCJmYWlsZWQgdG8gZGVjb2RlIHBhcmFtXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSB7fTtcclxuICAgICAgICBPYmplY3Qua2V5cyhncm91cHMpLmZvckVhY2goKHNsdWdOYW1lKT0+e1xyXG4gICAgICAgICAgICBjb25zdCBnID0gZ3JvdXBzW3NsdWdOYW1lXTtcclxuICAgICAgICAgICAgY29uc3QgbSA9IHJvdXRlTWF0Y2hbZy5wb3NdO1xyXG4gICAgICAgICAgICBpZiAobSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXNbc2x1Z05hbWVdID0gfm0uaW5kZXhPZihcIi9cIikgPyBtLnNwbGl0KFwiL1wiKS5tYXAoKGVudHJ5KT0+ZGVjb2RlKGVudHJ5KSkgOiBnLnJlcGVhdCA/IFtcclxuICAgICAgICAgICAgICAgICAgICBkZWNvZGUobSlcclxuICAgICAgICAgICAgICAgIF0gOiBkZWNvZGUobSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcGFyYW1zO1xyXG4gICAgfTtcclxufVxyXG5cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGUtbWF0Y2hlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiZ2V0Um91dGVNYXRjaGVyIiwiX3V0aWxzIiwicmVxdWlyZSIsInBhcmFtIiwicmUiLCJncm91cHMiLCJwYXRobmFtZSIsInJvdXRlTWF0Y2giLCJleGVjIiwiZGVjb2RlIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiXyIsIkRlY29kZUVycm9yIiwicGFyYW1zIiwia2V5cyIsImZvckVhY2giLCJzbHVnTmFtZSIsImciLCJtIiwicG9zIiwidW5kZWZpbmVkIiwiaW5kZXhPZiIsInNwbGl0IiwibWFwIiwiZW50cnkiLCJyZXBlYXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/route-regex.js ***!
|
||
\***********************************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
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 getRouteRegex: function() {\n return getRouteRegex;\n },\n getNamedRouteRegex: function() {\n return getNamedRouteRegex;\n },\n getNamedMiddlewareRegex: function() {\n return getNamedMiddlewareRegex;\n }\n});\nconst _interceptionroutes = __webpack_require__(/*! ../../../../server/future/helpers/interception-routes */ \"(app-pages-browser)/./node_modules/next/dist/server/future/helpers/interception-routes.js\");\nconst _escaperegexp = __webpack_require__(/*! ../../escape-regexp */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/escape-regexp.js\");\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst NEXT_QUERY_PARAM_PREFIX = \"nxtP\";\nconst NEXT_INTERCEPTION_MARKER_PREFIX = \"nxtI\";\n/**\r\n * Parses a given parameter from a route to a data structure that can be used\r\n * to generate the parametrized route. Examples:\r\n * - `[...slug]` -> `{ key: 'slug', repeat: true, optional: true }`\r\n * - `...slug` -> `{ key: 'slug', repeat: true, optional: false }`\r\n * - `[foo]` -> `{ key: 'foo', repeat: false, optional: true }`\r\n * - `bar` -> `{ key: 'bar', repeat: false, optional: false }`\r\n */ function parseParameter(param) {\n const optional = param.startsWith(\"[\") && param.endsWith(\"]\");\n if (optional) {\n param = param.slice(1, -1);\n }\n const repeat = param.startsWith(\"...\");\n if (repeat) {\n param = param.slice(3);\n }\n return {\n key: param,\n repeat,\n optional\n };\n}\nfunction getParametrizedRoute(route) {\n const segments = (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split(\"/\");\n const groups = {};\n let groupIndex = 1;\n return {\n parameterizedRoute: segments.map((segment)=>{\n const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n const paramMatches = segment.match(/\\[((?:\\[.*\\])|.+)\\]/) // Check for parameters\n ;\n if (markerMatch && paramMatches) {\n const { key, optional, repeat } = parseParameter(paramMatches[1]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n return \"/\" + (0, _escaperegexp.escapeStringRegexp)(markerMatch) + \"([^/]+?)\";\n } else if (paramMatches) {\n const { key, repeat, optional } = parseParameter(paramMatches[1]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n return repeat ? optional ? \"(?:/(.+?))?\" : \"/(.+?)\" : \"/([^/]+?)\";\n } else {\n return \"/\" + (0, _escaperegexp.escapeStringRegexp)(segment);\n }\n }).join(\"\"),\n groups\n };\n}\nfunction getRouteRegex(normalizedRoute) {\n const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute);\n return {\n re: new RegExp(\"^\" + parameterizedRoute + \"(?:/)?$\"),\n groups: groups\n };\n}\n/**\r\n * Builds a function to generate a minimal routeKey using only a-z and minimal\r\n * number of characters.\r\n */ function buildGetSafeRouteKey() {\n let i = 0;\n return ()=>{\n let routeKey = \"\";\n let j = ++i;\n while(j > 0){\n routeKey += String.fromCharCode(97 + (j - 1) % 26);\n j = Math.floor((j - 1) / 26);\n }\n return routeKey;\n };\n}\nfunction getSafeKeyFromSegment(param) {\n let { getSafeRouteKey, segment, routeKeys, keyPrefix } = param;\n const { key, optional, repeat } = parseParameter(segment);\n // replace any non-word characters since they can break\n // the named regex\n let cleanedKey = key.replace(/\\W/g, \"\");\n if (keyPrefix) {\n cleanedKey = \"\" + keyPrefix + cleanedKey;\n }\n let invalidKey = false;\n // check if the key is still invalid and fallback to using a known\n // safe key\n if (cleanedKey.length === 0 || cleanedKey.length > 30) {\n invalidKey = true;\n }\n if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) {\n invalidKey = true;\n }\n if (invalidKey) {\n cleanedKey = getSafeRouteKey();\n }\n if (keyPrefix) {\n routeKeys[cleanedKey] = \"\" + keyPrefix + key;\n } else {\n routeKeys[cleanedKey] = \"\" + key;\n }\n return repeat ? optional ? \"(?:/(?<\" + cleanedKey + \">.+?))?\" : \"/(?<\" + cleanedKey + \">.+?)\" : \"/(?<\" + cleanedKey + \">[^/]+?)\";\n}\nfunction getNamedParametrizedRoute(route, prefixRouteKeys) {\n const segments = (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split(\"/\");\n const getSafeRouteKey = buildGetSafeRouteKey();\n const routeKeys = {};\n return {\n namedParameterizedRoute: segments.map((segment)=>{\n const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m));\n const paramMatches = segment.match(/\\[((?:\\[.*\\])|.+)\\]/) // Check for parameters\n ;\n if (hasInterceptionMarker && paramMatches) {\n return getSafeKeyFromSegment({\n getSafeRouteKey,\n segment: paramMatches[1],\n routeKeys,\n keyPrefix: prefixRouteKeys ? NEXT_INTERCEPTION_MARKER_PREFIX : undefined\n });\n } else if (paramMatches) {\n return getSafeKeyFromSegment({\n getSafeRouteKey,\n segment: paramMatches[1],\n routeKeys,\n keyPrefix: prefixRouteKeys ? NEXT_QUERY_PARAM_PREFIX : undefined\n });\n } else {\n return \"/\" + (0, _escaperegexp.escapeStringRegexp)(segment);\n }\n }).join(\"\"),\n routeKeys\n };\n}\nfunction getNamedRouteRegex(normalizedRoute, prefixRouteKey) {\n const result = getNamedParametrizedRoute(normalizedRoute, prefixRouteKey);\n return {\n ...getRouteRegex(normalizedRoute),\n namedRegex: \"^\" + result.namedParameterizedRoute + \"(?:/)?$\",\n routeKeys: result.routeKeys\n };\n}\nfunction getNamedMiddlewareRegex(normalizedRoute, options) {\n const { parameterizedRoute } = getParametrizedRoute(normalizedRoute);\n const { catchAll = true } = options;\n if (parameterizedRoute === \"/\") {\n let catchAllRegex = catchAll ? \".*\" : \"\";\n return {\n namedRegex: \"^/\" + catchAllRegex + \"$\"\n };\n }\n const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false);\n let catchAllGroupedRegex = catchAll ? \"(?:(/.*)?)\" : \"\";\n return {\n namedRegex: \"^\" + namedParameterizedRoute + catchAllGroupedRegex + \"$\"\n };\n} //# sourceMappingURL=route-regex.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtcmVnZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0YsS0FBTUMsQ0FBQUEsQ0FJTjtBQUNBLFNBQVNJLFFBQVFDLE1BQU0sRUFBRUMsR0FBRztJQUN4QixJQUFJLElBQUlDLFFBQVFELElBQUlWLE9BQU9DLGNBQWMsQ0FBQ1EsUUFBUUUsTUFBTTtRQUNwREMsWUFBWTtRQUNaQyxLQUFLSCxHQUFHLENBQUNDLEtBQUs7SUFDbEI7QUFDSjtBQUNBSCxRQUFRTixTQUFTO0lBQ2JHLGVBQWU7UUFDWCxPQUFPQTtJQUNYO0lBQ0FDLG9CQUFvQjtRQUNoQixPQUFPQTtJQUNYO0lBQ0FDLHlCQUF5QjtRQUNyQixPQUFPQTtJQUNYO0FBQ0o7QUFDQSxNQUFNTyxzQkFBc0JDLG1CQUFPQSxDQUFDLHdKQUF1RDtBQUMzRixNQUFNQyxnQkFBZ0JELG1CQUFPQSxDQUFDLHFHQUFxQjtBQUNuRCxNQUFNRSx1QkFBdUJGLG1CQUFPQSxDQUFDLDhIQUF5QjtBQUM5RCxNQUFNRywwQkFBMEI7QUFDaEMsTUFBTUMsa0NBQWtDO0FBQ3hDOzs7Ozs7O0NBT0MsR0FBRyxTQUFTQyxlQUFlQyxLQUFLO0lBQzdCLE1BQU1DLFdBQVdELE1BQU1FLFVBQVUsQ0FBQyxRQUFRRixNQUFNRyxRQUFRLENBQUM7SUFDekQsSUFBSUYsVUFBVTtRQUNWRCxRQUFRQSxNQUFNSSxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQzVCO0lBQ0EsTUFBTUMsU0FBU0wsTUFBTUUsVUFBVSxDQUFDO0lBQ2hDLElBQUlHLFFBQVE7UUFDUkwsUUFBUUEsTUFBTUksS0FBSyxDQUFDO0lBQ3hCO0lBQ0EsT0FBTztRQUNIRSxLQUFLTjtRQUNMSztRQUNBSjtJQUNKO0FBQ0o7QUFDQSxTQUFTTSxxQkFBcUJDLEtBQUs7SUFD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QkFBdUIsR0FBRztRQUNuRFYsV0FBV2UsT0FBT2YsU0FBUztJQUMvQjtBQUNKO0FBQ0EsU0FBU3JELHdCQUF3QndDLGVBQWUsRUFBRThCLE9BQU87SUFDckQsTUFBTSxFQUFFMUMsa0JBQWtCLEVBQUUsR0FBR1AscUJBQXFCbUI7SUFDcEQsTUFBTSxFQUFFK0IsV0FBVyxJQUFJLEVBQUUsR0FBR0Q7SUFDNUIsSUFBSTFDLHVCQUF1QixLQUFLO1FBQzVCLElBQUk0QyxnQkFBZ0JELFdBQVcsT0FBTztRQUN0QyxPQUFPO1lBQ0hGLFlBQVksT0FBT0csZ0JBQWdCO1FBQ3ZDO0lBQ0o7SUFDQSxNQUFNLEVBQUVULHVCQUF1QixFQUFFLEdBQUdGLDBCQUEwQnJCLGlCQUFpQjtJQUMvRSxJQUFJaUMsdUJBQXVCRixXQUFXLGVBQWU7SUFDckQsT0FBTztRQUNIRixZQUFZLE1BQU1OLDBCQUEwQlUsdUJBQXVCO0lBQ3ZFO0FBQ0osRUFFQSx1Q0FBdUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yb3V0ZS1yZWdleC5qcz9lYWMyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcclxuICAgIHZhbHVlOiB0cnVlXHJcbn0pO1xyXG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGdldFJvdXRlUmVnZXg6IG51bGwsXHJcbiAgICBnZXROYW1lZFJvdXRlUmVnZXg6IG51bGwsXHJcbiAgICBnZXROYW1lZE1pZGRsZXdhcmVSZWdleDogbnVsbFxyXG59KTtcclxuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xyXG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XHJcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxyXG4gICAgfSk7XHJcbn1cclxuX2V4cG9ydChleHBvcnRzLCB7XHJcbiAgICBnZXRSb3V0ZVJlZ2V4OiBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gZ2V0Um91dGVSZWdleDtcclxuICAgIH0sXHJcbiAgICBnZXROYW1lZFJvdXRlUmVnZXg6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBnZXROYW1lZFJvdXRlUmVnZXg7XHJcbiAgICB9LFxyXG4gICAgZ2V0TmFtZWRNaWRkbGV3YXJlUmVnZXg6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBnZXROYW1lZE1pZGRsZXdhcmVSZWdleDtcclxuICAgIH1cclxufSk7XHJcbmNvbnN0IF9pbnRlcmNlcHRpb25yb3V0ZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vc2VydmVyL2Z1dHVyZS9oZWxwZXJzL2ludGVyY2VwdGlvbi1yb3V0ZXNcIik7XHJcbmNvbnN0IF9lc2NhcGVyZWdleHAgPSByZXF1aXJlKFwiLi4vLi4vZXNjYXBlLXJlZ2V4cFwiKTtcclxuY29uc3QgX3JlbW92ZXRyYWlsaW5nc2xhc2ggPSByZXF1aXJlKFwiLi9yZW1vdmUtdHJhaWxpbmctc2xhc2hcIik7XHJcbmNvbnN0IE5FWFRfUVVFUllfUEFSQU1fUFJFRklYID0gXCJueHRQXCI7XHJcbmNvbnN0IE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVggPSBcIm54dElcIjtcclxuLyoqXHJcbiAqIFBhcnNlcyBhIGdpdmVuIHBhcmFtZXRlciBmcm9tIGEgcm91dGUgdG8gYSBkYXRhIHN0cnVjdHVyZSB0aGF0IGNhbiBiZSB1c2VkXHJcbiAqIHRvIGdlbmVyYXRlIHRoZSBwYXJhbWV0cml6ZWQgcm91dGUuIEV4YW1wbGVzOlxyXG4gKiAgIC0gYFsuLi5zbHVnXWAgLT4gYHsga2V5OiAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfWBcclxuICogICAtIGAuLi5zbHVnYCAtPiBgeyBrZXk6ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogZmFsc2UgfWBcclxuICogICAtIGBbZm9vXWAgLT4gYHsga2V5OiAnZm9vJywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IHRydWUgfWBcclxuICogICAtIGBiYXJgIC0+IGB7IGtleTogJ2JhcicsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiBmYWxzZSB9YFxyXG4gKi8gZnVuY3Rpb24gcGFyc2VQYXJhbWV0ZXIocGFyYW0pIHtcclxuICAgIGNvbnN0IG9wdGlvbmFsID0gcGFyYW0uc3RhcnRzV2l0aChcIltcIikgJiYgcGFyYW0uZW5kc1dpdGgoXCJdXCIpO1xyXG4gICAgaWYgKG9wdGlvbmFsKSB7XHJcbiAgICAgICAgcGFyYW0gPSBwYXJhbS5zbGljZSgxLCAtMSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCByZXBlYXQgPSBwYXJhbS5zdGFydHNXaXRoKFwiLi4uXCIpO1xyXG4gICAgaWYgKHJlcGVhdCkge1xyXG4gICAgICAgIHBhcmFtID0gcGFyYW0uc2xpY2UoMyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGtleTogcGFyYW0sXHJcbiAgICAgICAgcmVwZWF0LFxyXG4gICAgICAgIG9wdGlvbmFsXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGdldFBhcmFtZXRyaXplZFJvdXRlKHJvdXRlKSB7XHJcbiAgICBjb25zdCBzZWdtZW50cyA9ICgwLCBfcmVtb3ZldHJhaWxpbmdzbGFzaC5yZW1vdmVUcmFpbGluZ1NsYXNoKShyb3V0ZSkuc2xpY2UoMSkuc3BsaXQoXCIvXCIpO1xyXG4gICAgY29uc3QgZ3JvdXBzID0ge307XHJcbiAgICBsZXQgZ3JvdXBJbmRleCA9IDE7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHBhcmFtZXRlcml6ZWRSb3V0ZTogc2VnbWVudHMubWFwKChzZWdtZW50KT0+e1xyXG4gICAgICAgICAgICBjb25zdCBtYXJrZXJNYXRjaCA9IF9pbnRlcmNlcHRpb25yb3V0ZXMuSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSk9PnNlZ21lbnQuc3RhcnRzV2l0aChtKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtTWF0Y2hlcyA9IHNlZ21lbnQubWF0Y2goL1xcWygoPzpcXFsuKlxcXSl8LispXFxdLykgLy8gQ2hlY2sgZm9yIHBhcmFtZXRlcnNcclxuICAgICAgICAgICAgO1xyXG4gICAgICAgICAgICBpZiAobWFya2VyTWF0Y2ggJiYgcGFyYW1NYXRjaGVzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGtleSwgb3B0aW9uYWwsIHJlcGVhdCB9ID0gcGFyc2VQYXJhbWV0ZXIocGFyYW1NYXRjaGVzWzFdKTtcclxuICAgICAgICAgICAgICAgIGdyb3Vwc1trZXldID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHBvczogZ3JvdXBJbmRleCsrLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcGVhdCxcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25hbFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIi9cIiArICgwLCBfZXNjYXBlcmVnZXhwLmVzY2FwZVN0cmluZ1JlZ2V4cCkobWFya2VyTWF0Y2gpICsgXCIoW14vXSs/KVwiO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtTWF0Y2hlcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBrZXksIHJlcGVhdCwgb3B0aW9uYWwgfSA9IHBhcnNlUGFyYW1ldGVyKHBhcmFtTWF0Y2hlc1sxXSk7XHJcbiAgICAgICAgICAgICAgICBncm91cHNba2V5XSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBwb3M6IGdyb3VwSW5kZXgrKyxcclxuICAgICAgICAgICAgICAgICAgICByZXBlYXQsXHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVwZWF0ID8gb3B0aW9uYWwgPyBcIig/Oi8oLis/KSk/XCIgOiBcIi8oLis/KVwiIDogXCIvKFteL10rPylcIjtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIi9cIiArICgwLCBfZXNjYXBlcmVnZXhwLmVzY2FwZVN0cmluZ1JlZ2V4cCkoc2VnbWVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KS5qb2luKFwiXCIpLFxyXG4gICAgICAgIGdyb3Vwc1xyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBnZXRSb3V0ZVJlZ2V4KG5vcm1hbGl6ZWRSb3V0ZSkge1xyXG4gICAgY29uc3QgeyBwYXJhbWV0ZXJpemVkUm91dGUsIGdyb3VwcyB9ID0gZ2V0UGFyYW1ldHJpemVkUm91dGUobm9ybWFsaXplZFJvdXRlKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcmU6IG5ldyBSZWdFeHAoXCJeXCIgKyBwYXJhbWV0ZXJpemVkUm91dGUgKyBcIig/Oi8pPyRcIiksXHJcbiAgICAgICAgZ3JvdXBzOiBncm91cHNcclxuICAgIH07XHJcbn1cclxuLyoqXHJcbiAqIEJ1aWxkcyBhIGZ1bmN0aW9uIHRvIGdlbmVyYXRlIGEgbWluaW1hbCByb3V0ZUtleSB1c2luZyBvbmx5IGEteiBhbmQgbWluaW1hbFxyXG4gKiBudW1iZXIgb2YgY2hhcmFjdGVycy5cclxuICovIGZ1bmN0aW9uIGJ1aWxkR2V0U2FmZVJvdXRlS2V5KCkge1xyXG4gICAgbGV0IGkgPSAwO1xyXG4gICAgcmV0dXJuICgpPT57XHJcbiAgICAgICAgbGV0IHJvdXRlS2V5ID0gXCJcIjtcclxuICAgICAgICBsZXQgaiA9ICsraTtcclxuICAgICAgICB3aGlsZShqID4gMCl7XHJcbiAgICAgICAgICAgIHJvdXRlS2V5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoOTcgKyAoaiAtIDEpICUgMjYpO1xyXG4gICAgICAgICAgICBqID0gTWF0aC5mbG9vcigoaiAtIDEpIC8gMjYpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcm91dGVLZXk7XHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGdldFNhZmVLZXlGcm9tU2VnbWVudChwYXJhbSkge1xyXG4gICAgbGV0IHsgZ2V0U2FmZVJvdXRlS2V5LCBzZWdtZW50LCByb3V0ZUtleXMsIGtleVByZWZpeCB9ID0gcGFyYW07XHJcbiAgICBjb25zdCB7IGtleSwgb3B0aW9uYWwsIHJlcGVhdCB9ID0gcGFyc2VQYXJhbWV0ZXIoc2VnbWVudCk7XHJcbiAgICAvLyByZXBsYWNlIGFueSBub24td29yZCBjaGFyYWN0ZXJzIHNpbmNlIHRoZXkgY2FuIGJyZWFrXHJcbiAgICAvLyB0aGUgbmFtZWQgcmVnZXhcclxuICAgIGxldCBjbGVhbmVkS2V5ID0ga2V5LnJlcGxhY2UoL1xcVy9nLCBcIlwiKTtcclxuICAgIGlmIChrZXlQcmVmaXgpIHtcclxuICAgICAgICBjbGVhbmVkS2V5ID0gXCJcIiArIGtleVByZWZpeCArIGNsZWFuZWRLZXk7XHJcbiAgICB9XHJcbiAgICBsZXQgaW52YWxpZEtleSA9IGZhbHNlO1xyXG4gICAgLy8gY2hlY2sgaWYgdGhlIGtleSBpcyBzdGlsbCBpbnZhbGlkIGFuZCBmYWxsYmFjayB0byB1c2luZyBhIGtub3duXHJcbiAgICAvLyBzYWZlIGtleVxyXG4gICAgaWYgKGNsZWFuZWRLZXkubGVuZ3RoID09PSAwIHx8IGNsZWFuZWRLZXkubGVuZ3RoID4gMzApIHtcclxuICAgICAgICBpbnZhbGlkS2V5ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmICghaXNOYU4ocGFyc2VJbnQoY2xlYW5lZEtleS5zbGljZSgwLCAxKSkpKSB7XHJcbiAgICAgICAgaW52YWxpZEtleSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW52YWxpZEtleSkge1xyXG4gICAgICAgIGNsZWFuZWRLZXkgPSBnZXRTYWZlUm91dGVLZXkoKTtcclxuICAgIH1cclxuICAgIGlmIChrZXlQcmVmaXgpIHtcclxuICAgICAgICByb3V0ZUtleXNbY2xlYW5lZEtleV0gPSBcIlwiICsga2V5UHJlZml4ICsga2V5O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByb3V0ZUtleXNbY2xlYW5lZEtleV0gPSBcIlwiICsga2V5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcGVhdCA/IG9wdGlvbmFsID8gXCIoPzovKD88XCIgKyBjbGVhbmVkS2V5ICsgXCI+Lis/KSk/XCIgOiBcIi8oPzxcIiArIGNsZWFuZWRLZXkgKyBcIj4uKz8pXCIgOiBcIi8oPzxcIiArIGNsZWFuZWRLZXkgKyBcIj5bXi9dKz8pXCI7XHJcbn1cclxuZnVuY3Rpb24gZ2V0TmFtZWRQYXJhbWV0cml6ZWRSb3V0ZShyb3V0ZSwgcHJlZml4Um91dGVLZXlzKSB7XHJcbiAgICBjb25zdCBzZWdtZW50cyA9ICgwLCBfcmVtb3ZldHJhaWxpbmdzbGFzaC5yZW1vdmVUcmFpbGluZ1NsYXNoKShyb3V0ZSkuc2xpY2UoMSkuc3BsaXQoXCIvXCIpO1xyXG4gICAgY29uc3QgZ2V0U2FmZVJvdXRlS2V5ID0gYnVpbGRHZXRTYWZlUm91dGVLZXkoKTtcclxuICAgIGNvbnN0IHJvdXRlS2V5cyA9IHt9O1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZTogc2VnbWVudHMubWFwKChzZWdtZW50KT0+e1xyXG4gICAgICAgICAgICBjb25zdCBoYXNJbnRlcmNlcHRpb25NYXJrZXIgPSBfaW50ZXJjZXB0aW9ucm91dGVzLklOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLnNvbWUoKG0pPT5zZWdtZW50LnN0YXJ0c1dpdGgobSkpO1xyXG4gICAgICAgICAgICBjb25zdCBwYXJhbU1hdGNoZXMgPSBzZWdtZW50Lm1hdGNoKC9cXFsoKD86XFxbLipcXF0pfC4rKVxcXS8pIC8vIENoZWNrIGZvciBwYXJhbWV0ZXJzXHJcbiAgICAgICAgICAgIDtcclxuICAgICAgICAgICAgaWYgKGhhc0ludGVyY2VwdGlvbk1hcmtlciAmJiBwYXJhbU1hdGNoZXMpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBnZXRTYWZlS2V5RnJvbVNlZ21lbnQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGdldFNhZmVSb3V0ZUtleSxcclxuICAgICAgICAgICAgICAgICAgICBzZWdtZW50OiBwYXJhbU1hdGNoZXNbMV0sXHJcbiAgICAgICAgICAgICAgICAgICAgcm91dGVLZXlzLFxyXG4gICAgICAgICAgICAgICAgICAgIGtleVByZWZpeDogcHJlZml4Um91dGVLZXlzID8gTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCA6IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyYW1NYXRjaGVzKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U2FmZUtleUZyb21TZWdtZW50KHtcclxuICAgICAgICAgICAgICAgICAgICBnZXRTYWZlUm91dGVLZXksXHJcbiAgICAgICAgICAgICAgICAgICAgc2VnbWVudDogcGFyYW1NYXRjaGVzWzFdLFxyXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlS2V5cyxcclxuICAgICAgICAgICAgICAgICAgICBrZXlQcmVmaXg6IHByZWZpeFJvdXRlS2V5cyA/IE5FWFRfUVVFUllfUEFSQU1fUFJFRklYIDogdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIi9cIiArICgwLCBfZXNjYXBlcmVnZXhwLmVzY2FwZVN0cmluZ1JlZ2V4cCkoc2VnbWVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KS5qb2luKFwiXCIpLFxyXG4gICAgICAgIHJvdXRlS2V5c1xyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBnZXROYW1lZFJvdXRlUmVnZXgobm9ybWFsaXplZFJvdXRlLCBwcmVmaXhSb3V0ZUtleSkge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gZ2V0TmFtZWRQYXJhbWV0cml6ZWRSb3V0ZShub3JtYWxpemVkUm91dGUsIHByZWZpeFJvdXRlS2V5KTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uZ2V0Um91dGVSZWdleChub3JtYWxpemVkUm91dGUpLFxyXG4gICAgICAgIG5hbWVkUmVnZXg6IFwiXlwiICsgcmVzdWx0Lm5hbWVkUGFyYW1ldGVyaXplZFJvdXRlICsgXCIoPzovKT8kXCIsXHJcbiAgICAgICAgcm91dGVLZXlzOiByZXN1bHQucm91dGVLZXlzXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGdldE5hbWVkTWlkZGxld2FyZVJlZ2V4KG5vcm1hbGl6ZWRSb3V0ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBwYXJhbWV0ZXJpemVkUm91dGUgfSA9IGdldFBhcmFtZXRyaXplZFJvdXRlKG5vcm1hbGl6ZWRSb3V0ZSk7XHJcbiAgICBjb25zdCB7IGNhdGNoQWxsID0gdHJ1ZSB9ID0gb3B0aW9ucztcclxuICAgIGlmIChwYXJhbWV0ZXJpemVkUm91dGUgPT09IFwiL1wiKSB7XHJcbiAgICAgICAgbGV0IGNhdGNoQWxsUmVnZXggPSBjYXRjaEFsbCA/IFwiLipcIiA6IFwiXCI7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmFtZWRSZWdleDogXCJeL1wiICsgY2F0Y2hBbGxSZWdleCArIFwiJFwiXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgbmFtZWRQYXJhbWV0ZXJpemVkUm91dGUgfSA9IGdldE5hbWVkUGFyYW1ldHJpemVkUm91dGUobm9ybWFsaXplZFJvdXRlLCBmYWxzZSk7XHJcbiAgICBsZXQgY2F0Y2hBbGxHcm91cGVkUmVnZXggPSBjYXRjaEFsbCA/IFwiKD86KC8uKik/KVwiIDogXCJcIjtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZWRSZWdleDogXCJeXCIgKyBuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZSArIGNhdGNoQWxsR3JvdXBlZFJlZ2V4ICsgXCIkXCJcclxuICAgIH07XHJcbn1cclxuXHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLXJlZ2V4LmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIm1vZHVsZSIsImdldFJvdXRlUmVnZXgiLCJnZXROYW1lZFJvdXRlUmVnZXgiLCJnZXROYW1lZE1pZGRsZXdhcmVSZWdleCIsIl9leHBvcnQiLCJ0YXJnZXQiLCJhbGwiLCJuYW1lIiwiZW51bWVyYWJsZSIsImdldCIsIl9pbnRlcmNlcHRpb25yb3V0ZXMiLCJyZXF1aXJlIiwiX2VzY2FwZXJlZ2V4cCIsIl9yZW1vdmV0cmFpbGluZ3NsYXNoIiwiTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgiLCJORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYIiwicGFyc2VQYXJhbWV0ZXIiLCJwYXJhbSIsIm9wdGlvbmFsIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwic2xpY2UiLCJyZXBlYXQiLCJrZXkiLCJnZXRQYXJhbWV0cml6ZWRSb3V0ZSIsInJvdXRlIiwic2VnbWVudHMiLCJyZW1vdmVUcmFpbGluZ1NsYXNoIiwic3BsaXQiLCJncm91cHMiLCJncm91cEluZGV4IiwicGFyYW1ldGVyaXplZFJvdXRlIiwibWFwIiwic2VnbWVudCIsIm1hcmtlck1hdGNoIiwiSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMiLCJmaW5kIiwibSIsInBhcmFtTWF0Y2hlcyIsIm1hdGNoIiwicG9zIiwiZXNjYXBlU3RyaW5nUmVnZXhwIiwiam9pbiIsIm5vcm1hbGl6ZWRSb3V0ZSIsInJlIiwiUmVnRXhwIiwiYnVpbGRHZXRTYWZlUm91dGVLZXkiLCJpIiwicm91dGVLZXkiLCJqIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwiTWF0aCIsImZsb29yIiwiZ2V0U2FmZUtleUZyb21TZWdtZW50IiwiZ2V0U2FmZVJvdXRlS2V5Iiwicm91dGVLZXlzIiwia2V5UHJlZml4IiwiY2xlYW5lZEtleSIsInJlcGxhY2UiLCJpbnZhbGlkS2V5IiwibGVuZ3RoIiwiaXNOYU4iLCJwYXJzZUludCIsImdldE5hbWVkUGFyYW1ldHJpemVkUm91dGUiLCJwcmVmaXhSb3V0ZUtleXMiLCJuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZSIsImhhc0ludGVyY2VwdGlvbk1hcmtlciIsInNvbWUiLCJ1bmRlZmluZWQiLCJwcmVmaXhSb3V0ZUtleSIsInJlc3VsdCIsIm5hbWVkUmVnZXgiLCJvcHRpb25zIiwiY2F0Y2hBbGwiLCJjYXRjaEFsbFJlZ2V4IiwiY2F0Y2hBbGxHcm91cGVkUmVnZXgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js ***!
|
||
\*************************************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getSortedRoutes\", ({\n enumerable: true,\n get: function() {\n return getSortedRoutes;\n }\n}));\nclass UrlNode {\n insert(urlPath) {\n this._insert(urlPath.split(\"/\").filter(Boolean), [], false);\n }\n smoosh() {\n return this._smoosh();\n }\n _smoosh(prefix) {\n if (prefix === void 0) prefix = \"/\";\n const childrenPaths = [\n ...this.children.keys()\n ].sort();\n if (this.slugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf(\"[]\"), 1);\n }\n if (this.restSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf(\"[...]\"), 1);\n }\n if (this.optionalRestSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf(\"[[...]]\"), 1);\n }\n const routes = childrenPaths.map((c)=>this.children.get(c)._smoosh(\"\" + prefix + c + \"/\")).reduce((prev, curr)=>[\n ...prev,\n ...curr\n ], []);\n if (this.slugName !== null) {\n routes.push(...this.children.get(\"[]\")._smoosh(prefix + \"[\" + this.slugName + \"]/\"));\n }\n if (!this.placeholder) {\n const r = prefix === \"/\" ? \"/\" : prefix.slice(0, -1);\n if (this.optionalRestSlugName != null) {\n throw new Error('You cannot define a route with the same specificity as a optional catch-all route (\"' + r + '\" and \"' + r + \"[[...\" + this.optionalRestSlugName + ']]\").');\n }\n routes.unshift(r);\n }\n if (this.restSlugName !== null) {\n routes.push(...this.children.get(\"[...]\")._smoosh(prefix + \"[...\" + this.restSlugName + \"]/\"));\n }\n if (this.optionalRestSlugName !== null) {\n routes.push(...this.children.get(\"[[...]]\")._smoosh(prefix + \"[[...\" + this.optionalRestSlugName + \"]]/\"));\n }\n return routes;\n }\n _insert(urlPaths, slugNames, isCatchAll) {\n if (urlPaths.length === 0) {\n this.placeholder = false;\n return;\n }\n if (isCatchAll) {\n throw new Error(\"Catch-all must be the last part of the URL.\");\n }\n // The next segment in the urlPaths list\n let nextSegment = urlPaths[0];\n // Check if the segment matches `[something]`\n if (nextSegment.startsWith(\"[\") && nextSegment.endsWith(\"]\")) {\n // Strip `[` and `]`, leaving only `something`\n let segmentName = nextSegment.slice(1, -1);\n let isOptional = false;\n if (segmentName.startsWith(\"[\") && segmentName.endsWith(\"]\")) {\n // Strip optional `[` and `]`, leaving only `something`\n segmentName = segmentName.slice(1, -1);\n isOptional = true;\n }\n if (segmentName.startsWith(\"...\")) {\n // Strip `...`, leaving only `something`\n segmentName = segmentName.substring(3);\n isCatchAll = true;\n }\n if (segmentName.startsWith(\"[\") || segmentName.endsWith(\"]\")) {\n throw new Error(\"Segment names may not start or end with extra brackets ('\" + segmentName + \"').\");\n }\n if (segmentName.startsWith(\".\")) {\n throw new Error(\"Segment names may not start with erroneous periods ('\" + segmentName + \"').\");\n }\n function handleSlug(previousSlug, nextSlug) {\n if (previousSlug !== null) {\n // If the specific segment already has a slug but the slug is not `something`\n // This prevents collisions like:\n // pages/[post]/index.js\n // pages/[id]/index.js\n // Because currently multiple dynamic params on the same segment level are not supported\n if (previousSlug !== nextSlug) {\n // TODO: This error seems to be confusing for users, needs an error link, the description can be based on above comment.\n throw new Error(\"You cannot use different slug names for the same dynamic path ('\" + previousSlug + \"' !== '\" + nextSlug + \"').\");\n }\n }\n slugNames.forEach((slug)=>{\n if (slug === nextSlug) {\n throw new Error('You cannot have the same slug name \"' + nextSlug + '\" repeat within a single dynamic path');\n }\n if (slug.replace(/\\W/g, \"\") === nextSegment.replace(/\\W/g, \"\")) {\n throw new Error('You cannot have the slug names \"' + slug + '\" and \"' + nextSlug + '\" differ only by non-word symbols within a single dynamic path');\n }\n });\n slugNames.push(nextSlug);\n }\n if (isCatchAll) {\n if (isOptional) {\n if (this.restSlugName != null) {\n throw new Error('You cannot use both an required and optional catch-all route at the same level (\"[...' + this.restSlugName + ']\" and \"' + urlPaths[0] + '\" ).');\n }\n handleSlug(this.optionalRestSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.optionalRestSlugName = segmentName;\n // nextSegment is overwritten to [[...]] so that it can later be sorted specifically\n nextSegment = \"[[...]]\";\n } else {\n if (this.optionalRestSlugName != null) {\n throw new Error('You cannot use both an optional and required catch-all route at the same level (\"[[...' + this.optionalRestSlugName + ']]\" and \"' + urlPaths[0] + '\").');\n }\n handleSlug(this.restSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.restSlugName = segmentName;\n // nextSegment is overwritten to [...] so that it can later be sorted specifically\n nextSegment = \"[...]\";\n }\n } else {\n if (isOptional) {\n throw new Error('Optional route parameters are not yet supported (\"' + urlPaths[0] + '\").');\n }\n handleSlug(this.slugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.slugName = segmentName;\n // nextSegment is overwritten to [] so that it can later be sorted specifically\n nextSegment = \"[]\";\n }\n }\n // If this UrlNode doesn't have the nextSegment yet we create a new child UrlNode\n if (!this.children.has(nextSegment)) {\n this.children.set(nextSegment, new UrlNode());\n }\n this.children.get(nextSegment)._insert(urlPaths.slice(1), slugNames, isCatchAll);\n }\n constructor(){\n this.placeholder = true;\n this.children = new Map();\n this.slugName = null;\n this.restSlugName = null;\n this.optionalRestSlugName = null;\n }\n}\nfunction getSortedRoutes(normalizedPages) {\n // First the UrlNode is created, and every UrlNode can have only 1 dynamic segment\n // Eg you can't have pages/[post]/abc.js and pages/[hello]/something-else.js\n // Only 1 dynamic segment per nesting level\n // So in the case that is test/integration/dynamic-routing it'll be this:\n // pages/[post]/comments.js\n // pages/blog/[post]/comment/[id].js\n // Both are fine because `pages/[post]` and `pages/blog` are on the same level\n // So in this case `UrlNode` created here has `this.slugName === 'post'`\n // And since your PR passed through `slugName` as an array basically it'd including it in too many possibilities\n // Instead what has to be passed through is the upwards path's dynamic names\n const root = new UrlNode();\n // Here the `root` gets injected multiple paths, and insert will break them up into sublevels\n normalizedPages.forEach((pagePath)=>root.insert(pagePath));\n // Smoosh will then sort those sublevels up to the point where you get the correct route definition priority\n return root.smoosh();\n} //# sourceMappingURL=sorted-routes.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvc29ydGVkLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRkgsbURBQWtEO0lBQzlDSSxZQUFZO0lBQ1pDLEtBQUs7UUFDRCxPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUM7SUFDRkMsT0FBT0MsT0FBTyxFQUFFO1FBQ1osSUFBSSxDQUFDQyxPQUFPLENBQUNELFFBQVFFLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUNDLFVBQVUsRUFBRSxFQUFFO0lBQ3pEO0lBQ0FDLFNBQVM7UUFDTCxPQUFPLElBQUksQ0FBQ0MsT0FBTztJQUN2QjtJQUNBQSxRQUFRQyxNQUFNLEVBQUU7UUFDWixJQUFJQSxXQUFXLEtBQUssR0FBR0EsU0FBUztRQUNoQyxNQUFNQyxnQkFBZ0I7ZUFDZixJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSTtTQUN4QixDQUFDQyxJQUFJO1FBQ04sSUFBSSxJQUFJLENBQUNDLFFBQVEsS0FBSyxNQUFNO1lBQ3hCSixjQUFjSyxNQUFNLENBQUNMLGNBQWNNLE9BQU8sQ0FBQyxPQUFPO1FBQ3REO1FBQ0EsSUFBSSxJQUFJLENBQUNDLFlBQVksS0FBSyxNQUFNO1lBQzVCUCxjQUFjSyxNQUFNLENBQUNMLGNBQWNNLE9BQU8sQ0FBQyxVQUFVO1FBQ3pEO1FBQ0EsSUFBSSxJQUFJLENBQUNFLG9CQUFvQixLQUFLLE1BQU07WUFDcENSLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLFlBQVk7UUFDM0Q7UUFDQSxNQUFNRyxTQUFTVCxjQUFjVSxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxJQUFJLENBQUNWLFFBQVEsQ0FBQ2IsR0FBRyxDQUFDdUIsR0FBR2IsT0FBTyxDQUFDLEtBQUtDLFNBQVNZLElBQUksTUFBTUMsTUFBTSxDQUFD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RkFBaUY7UUFDakYsSUFBSSxDQUFDLElBQUksQ0FBQ3hCLFFBQVEsQ0FBQ29DLEdBQUcsQ0FBQ1osY0FBYztZQUNqQyxJQUFJLENBQUN4QixRQUFRLENBQUNxQyxHQUFHLENBQUNiLGFBQWEsSUFBSW5DO1FBQ3ZDO1FBQ0EsSUFBSSxDQUFDVyxRQUFRLENBQUNiLEdBQUcsQ0FBQ3FDLGFBQWFoQyxPQUFPLENBQUM0QixTQUFTSCxLQUFLLENBQUMsSUFBSUksV0FBV0M7SUFDekU7SUFDQWdCLGFBQWE7UUFDVCxJQUFJLENBQUN2QixXQUFXLEdBQUc7UUFDbkIsSUFBSSxDQUFDZixRQUFRLEdBQUcsSUFBSXVDO1FBQ3BCLElBQUksQ0FBQ3BDLFFBQVEsR0FBRztRQUNoQixJQUFJLENBQUNHLFlBQVksR0FBRztRQUNwQixJQUFJLENBQUNDLG9CQUFvQixHQUFHO0lBQ2hDO0FBQ0o7QUFDQSxTQUFTbkIsZ0JBQWdCb0QsZUFBZTtJQUNwQyxrRkFBa0Y7SUFDbEYsNEVBQTRFO0lBQzVFLDJDQUEyQztJQUMzQyx5RUFBeUU7SUFDekUsMkJBQTJCO0lBQzNCLG9DQUFvQztJQUNwQyw4RUFBOEU7SUFDOUUsd0VBQXdFO0lBQ3hFLGdIQUFnSDtJQUNoSCw0RUFBNEU7SUFDNUUsTUFBTUMsT0FBTyxJQUFJcEQ7SUFDakIsNkZBQTZGO0lBQzdGbUQsZ0JBQWdCUCxPQUFPLENBQUMsQ0FBQ1MsV0FBV0QsS0FBS25ELE1BQU0sQ0FBQ29EO0lBQ2hELDRHQUE0RztJQUM1RyxPQUFPRCxLQUFLN0MsTUFBTTtBQUN0QixFQUVBLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3NvcnRlZC1yb3V0ZXMuanM/MmY3OCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XHJcbiAgICB2YWx1ZTogdHJ1ZVxyXG59KTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0U29ydGVkUm91dGVzXCIsIHtcclxuICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBnZXRTb3J0ZWRSb3V0ZXM7XHJcbiAgICB9XHJcbn0pO1xyXG5jbGFzcyBVcmxOb2RlIHtcclxuICAgIGluc2VydCh1cmxQYXRoKSB7XHJcbiAgICAgICAgdGhpcy5faW5zZXJ0KHVybFBhdGguc3BsaXQoXCIvXCIpLmZpbHRlcihCb29sZWFuKSwgW10sIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHNtb29zaCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc21vb3NoKCk7XHJcbiAgICB9XHJcbiAgICBfc21vb3NoKHByZWZpeCkge1xyXG4gICAgICAgIGlmIChwcmVmaXggPT09IHZvaWQgMCkgcHJlZml4ID0gXCIvXCI7XHJcbiAgICAgICAgY29uc3QgY2hpbGRyZW5QYXRocyA9IFtcclxuICAgICAgICAgICAgLi4udGhpcy5jaGlsZHJlbi5rZXlzKClcclxuICAgICAgICBdLnNvcnQoKTtcclxuICAgICAgICBpZiAodGhpcy5zbHVnTmFtZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjaGlsZHJlblBhdGhzLnNwbGljZShjaGlsZHJlblBhdGhzLmluZGV4T2YoXCJbXVwiKSwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnJlc3RTbHVnTmFtZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjaGlsZHJlblBhdGhzLnNwbGljZShjaGlsZHJlblBhdGhzLmluZGV4T2YoXCJbLi4uXVwiKSwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuUGF0aHMuc3BsaWNlKGNoaWxkcmVuUGF0aHMuaW5kZXhPZihcIltbLi4uXV1cIiksIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCByb3V0ZXMgPSBjaGlsZHJlblBhdGhzLm1hcCgoYyk9PnRoaXMuY2hpbGRyZW4uZ2V0KGMpLl9zbW9vc2goXCJcIiArIHByZWZpeCArIGMgKyBcIi9cIikpLnJlZHVjZSgocHJldiwgY3Vycik9PltcclxuICAgICAgICAgICAgICAgIC4uLnByZXYsXHJcbiAgICAgICAgICAgICAgICAuLi5jdXJyXHJcbiAgICAgICAgICAgIF0sIFtdKTtcclxuICAgICAgICBpZiAodGhpcy5zbHVnTmFtZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICByb3V0ZXMucHVzaCguLi50aGlzLmNoaWxkcmVuLmdldChcIltdXCIpLl9zbW9vc2gocHJlZml4ICsgXCJbXCIgKyB0aGlzLnNsdWdOYW1lICsgXCJdL1wiKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5wbGFjZWhvbGRlcikge1xyXG4gICAgICAgICAgICBjb25zdCByID0gcHJlZml4ID09PSBcIi9cIiA/IFwiL1wiIDogcHJlZml4LnNsaWNlKDAsIC0xKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IGRlZmluZSBhIHJvdXRlIHdpdGggdGhlIHNhbWUgc3BlY2lmaWNpdHkgYXMgYSBvcHRpb25hbCBjYXRjaC1hbGwgcm91dGUgKFwiJyArIHIgKyAnXCIgYW5kIFwiJyArIHIgKyBcIltbLi4uXCIgKyB0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lICsgJ11dXCIpLicpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJvdXRlcy51bnNoaWZ0KHIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5yZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgcm91dGVzLnB1c2goLi4udGhpcy5jaGlsZHJlbi5nZXQoXCJbLi4uXVwiKS5fc21vb3NoKHByZWZpeCArIFwiWy4uLlwiICsgdGhpcy5yZXN0U2x1Z05hbWUgKyBcIl0vXCIpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgcm91dGVzLnB1c2goLi4udGhpcy5jaGlsZHJlbi5nZXQoXCJbWy4uLl1dXCIpLl9zbW9vc2gocHJlZml4ICsgXCJbWy4uLlwiICsgdGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSArIFwiXV0vXCIpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJvdXRlcztcclxuICAgIH1cclxuICAgIF9pbnNlcnQodXJsUGF0aHMsIHNsdWdOYW1lcywgaXNDYXRjaEFsbCkge1xyXG4gICAgICAgIGlmICh1cmxQYXRocy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc0NhdGNoQWxsKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhdGNoLWFsbCBtdXN0IGJlIHRoZSBsYXN0IHBhcnQgb2YgdGhlIFVSTC5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFRoZSBuZXh0IHNlZ21lbnQgaW4gdGhlIHVybFBhdGhzIGxpc3RcclxuICAgICAgICBsZXQgbmV4dFNlZ21lbnQgPSB1cmxQYXRoc1swXTtcclxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgc2VnbWVudCBtYXRjaGVzIGBbc29tZXRoaW5nXWBcclxuICAgICAgICBpZiAobmV4dFNlZ21lbnQuc3RhcnRzV2l0aChcIltcIikgJiYgbmV4dFNlZ21lbnQuZW5kc1dpdGgoXCJdXCIpKSB7XHJcbiAgICAgICAgICAgIC8vIFN0cmlwIGBbYCBhbmQgYF1gLCBsZWF2aW5nIG9ubHkgYHNvbWV0aGluZ2BcclxuICAgICAgICAgICAgbGV0IHNlZ21lbnROYW1lID0gbmV4dFNlZ21lbnQuc2xpY2UoMSwgLTEpO1xyXG4gICAgICAgICAgICBsZXQgaXNPcHRpb25hbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aChcIltcIikgJiYgc2VnbWVudE5hbWUuZW5kc1dpdGgoXCJdXCIpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBTdHJpcCBvcHRpb25hbCBgW2AgYW5kIGBdYCwgbGVhdmluZyBvbmx5IGBzb21ldGhpbmdgXHJcbiAgICAgICAgICAgICAgICBzZWdtZW50TmFtZSA9IHNlZ21lbnROYW1lLnNsaWNlKDEsIC0xKTtcclxuICAgICAgICAgICAgICAgIGlzT3B0aW9uYWwgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChzZWdtZW50TmFtZS5zdGFydHNXaXRoKFwiLi4uXCIpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBTdHJpcCBgLi4uYCwgbGVhdmluZyBvbmx5IGBzb21ldGhpbmdgXHJcbiAgICAgICAgICAgICAgICBzZWdtZW50TmFtZSA9IHNlZ21lbnROYW1lLnN1YnN0cmluZygzKTtcclxuICAgICAgICAgICAgICAgIGlzQ2F0Y2hBbGwgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChzZWdtZW50TmFtZS5zdGFydHNXaXRoKFwiW1wiKSB8fCBzZWdtZW50TmFtZS5lbmRzV2l0aChcIl1cIikpIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNlZ21lbnQgbmFtZXMgbWF5IG5vdCBzdGFydCBvciBlbmQgd2l0aCBleHRyYSBicmFja2V0cyAoJ1wiICsgc2VnbWVudE5hbWUgKyBcIicpLlwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aChcIi5cIikpIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNlZ21lbnQgbmFtZXMgbWF5IG5vdCBzdGFydCB3aXRoIGVycm9uZW91cyBwZXJpb2RzICgnXCIgKyBzZWdtZW50TmFtZSArIFwiJykuXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGhhbmRsZVNsdWcocHJldmlvdXNTbHVnLCBuZXh0U2x1Zykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzU2x1ZyAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBzcGVjaWZpYyBzZWdtZW50IGFscmVhZHkgaGFzIGEgc2x1ZyBidXQgdGhlIHNsdWcgaXMgbm90IGBzb21ldGhpbmdgXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBwcmV2ZW50cyBjb2xsaXNpb25zIGxpa2U6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcGFnZXMvW3Bvc3RdL2luZGV4LmpzXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcGFnZXMvW2lkXS9pbmRleC5qc1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIEJlY2F1c2UgY3VycmVudGx5IG11bHRpcGxlIGR5bmFtaWMgcGFyYW1zIG9uIHRoZSBzYW1lIHNlZ21lbnQgbGV2ZWwgYXJlIG5vdCBzdXBwb3J0ZWRcclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTbHVnICE9PSBuZXh0U2x1Zykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIHNlZW1zIHRvIGJlIGNvbmZ1c2luZyBmb3IgdXNlcnMsIG5lZWRzIGFuIGVycm9yIGxpbmssIHRoZSBkZXNjcmlwdGlvbiBjYW4gYmUgYmFzZWQgb24gYWJvdmUgY29tbWVudC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiWW91IGNhbm5vdCB1c2UgZGlmZmVyZW50IHNsdWcgbmFtZXMgZm9yIHRoZSBzYW1lIGR5bmFtaWMgcGF0aCAoJ1wiICsgcHJldmlvdXNTbHVnICsgXCInICE9PSAnXCIgKyBuZXh0U2x1ZyArIFwiJykuXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHNsdWdOYW1lcy5mb3JFYWNoKChzbHVnKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChzbHVnID09PSBuZXh0U2x1Zykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3QgaGF2ZSB0aGUgc2FtZSBzbHVnIG5hbWUgXCInICsgbmV4dFNsdWcgKyAnXCIgcmVwZWF0IHdpdGhpbiBhIHNpbmdsZSBkeW5hbWljIHBhdGgnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNsdWcucmVwbGFjZSgvXFxXL2csIFwiXCIpID09PSBuZXh0U2VnbWVudC5yZXBsYWNlKC9cXFcvZywgXCJcIikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IGhhdmUgdGhlIHNsdWcgbmFtZXMgXCInICsgc2x1ZyArICdcIiBhbmQgXCInICsgbmV4dFNsdWcgKyAnXCIgZGlmZmVyIG9ubHkgYnkgbm9uLXdvcmQgc3ltYm9scyB3aXRoaW4gYSBzaW5nbGUgZHluYW1pYyBwYXRoJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBzbHVnTmFtZXMucHVzaChuZXh0U2x1Zyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGlzQ2F0Y2hBbGwpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc09wdGlvbmFsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucmVzdFNsdWdOYW1lICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHVzZSBib3RoIGFuIHJlcXVpcmVkIGFuZCBvcHRpb25hbCBjYXRjaC1hbGwgcm91dGUgYXQgdGhlIHNhbWUgbGV2ZWwgKFwiWy4uLicgKyB0aGlzLnJlc3RTbHVnTmFtZSArICddXCIgYW5kIFwiJyArIHVybFBhdGhzWzBdICsgJ1wiICkuJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZVNsdWcodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSwgc2VnbWVudE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHNsdWdOYW1lIGlzIGtlcHQgYXMgaXQgY2FuIG9ubHkgYmUgb25lIHBhcnRpY3VsYXIgc2x1Z05hbWVcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lID0gc2VnbWVudE5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gbmV4dFNlZ21lbnQgaXMgb3ZlcndyaXR0ZW4gdG8gW1suLi5dXSBzbyB0aGF0IGl0IGNhbiBsYXRlciBiZSBzb3J0ZWQgc3BlY2lmaWNhbGx5XHJcbiAgICAgICAgICAgICAgICAgICAgbmV4dFNlZ21lbnQgPSBcIltbLi4uXV1cIjtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3QgdXNlIGJvdGggYW4gb3B0aW9uYWwgYW5kIHJlcXVpcmVkIGNhdGNoLWFsbCByb3V0ZSBhdCB0aGUgc2FtZSBsZXZlbCAoXCJbWy4uLicgKyB0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lICsgJ11dXCIgYW5kIFwiJyArIHVybFBhdGhzWzBdICsgJ1wiKS4nKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2x1Zyh0aGlzLnJlc3RTbHVnTmFtZSwgc2VnbWVudE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHNsdWdOYW1lIGlzIGtlcHQgYXMgaXQgY2FuIG9ubHkgYmUgb25lIHBhcnRpY3VsYXIgc2x1Z05hbWVcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3RTbHVnTmFtZSA9IHNlZ21lbnROYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIG5leHRTZWdtZW50IGlzIG92ZXJ3cml0dGVuIHRvIFsuLi5dIHNvIHRoYXQgaXQgY2FuIGxhdGVyIGJlIHNvcnRlZCBzcGVjaWZpY2FsbHlcclxuICAgICAgICAgICAgICAgICAgICBuZXh0U2VnbWVudCA9IFwiWy4uLl1cIjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc09wdGlvbmFsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPcHRpb25hbCByb3V0ZSBwYXJhbWV0ZXJzIGFyZSBub3QgeWV0IHN1cHBvcnRlZCAoXCInICsgdXJsUGF0aHNbMF0gKyAnXCIpLicpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaGFuZGxlU2x1Zyh0aGlzLnNsdWdOYW1lLCBzZWdtZW50TmFtZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBzbHVnTmFtZSBpcyBrZXB0IGFzIGl0IGNhbiBvbmx5IGJlIG9uZSBwYXJ0aWN1bGFyIHNsdWdOYW1lXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNsdWdOYW1lID0gc2VnbWVudE5hbWU7XHJcbiAgICAgICAgICAgICAgICAvLyBuZXh0U2VnbWVudCBpcyBvdmVyd3JpdHRlbiB0byBbXSBzbyB0aGF0IGl0IGNhbiBsYXRlciBiZSBzb3J0ZWQgc3BlY2lmaWNhbGx5XHJcbiAgICAgICAgICAgICAgICBuZXh0U2VnbWVudCA9IFwiW11cIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiB0aGlzIFVybE5vZGUgZG9lc24ndCBoYXZlIHRoZSBuZXh0U2VnbWVudCB5ZXQgd2UgY3JlYXRlIGEgbmV3IGNoaWxkIFVybE5vZGVcclxuICAgICAgICBpZiAoIXRoaXMuY2hpbGRyZW4uaGFzKG5leHRTZWdtZW50KSkge1xyXG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuLnNldChuZXh0U2VnbWVudCwgbmV3IFVybE5vZGUoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZ2V0KG5leHRTZWdtZW50KS5faW5zZXJ0KHVybFBhdGhzLnNsaWNlKDEpLCBzbHVnTmFtZXMsIGlzQ2F0Y2hBbGwpO1xyXG4gICAgfVxyXG4gICAgY29uc3RydWN0b3IoKXtcclxuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoaWxkcmVuID0gbmV3IE1hcCgpO1xyXG4gICAgICAgIHRoaXMuc2x1Z05hbWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmVzdFNsdWdOYW1lID0gbnVsbDtcclxuICAgICAgICB0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lID0gbnVsbDtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBnZXRTb3J0ZWRSb3V0ZXMobm9ybWFsaXplZFBhZ2VzKSB7XHJcbiAgICAvLyBGaXJzdCB0aGUgVXJsTm9kZSBpcyBjcmVhdGVkLCBhbmQgZXZlcnkgVXJsTm9kZSBjYW4gaGF2ZSBvbmx5IDEgZHluYW1pYyBzZWdtZW50XHJcbiAgICAvLyBFZyB5b3UgY2FuJ3QgaGF2ZSBwYWdlcy9bcG9zdF0vYWJjLmpzIGFuZCBwYWdlcy9baGVsbG9dL3NvbWV0aGluZy1lbHNlLmpzXHJcbiAgICAvLyBPbmx5IDEgZHluYW1pYyBzZWdtZW50IHBlciBuZXN0aW5nIGxldmVsXHJcbiAgICAvLyBTbyBpbiB0aGUgY2FzZSB0aGF0IGlzIHRlc3QvaW50ZWdyYXRpb24vZHluYW1pYy1yb3V0aW5nIGl0J2xsIGJlIHRoaXM6XHJcbiAgICAvLyBwYWdlcy9bcG9zdF0vY29tbWVudHMuanNcclxuICAgIC8vIHBhZ2VzL2Jsb2cvW3Bvc3RdL2NvbW1lbnQvW2lkXS5qc1xyXG4gICAgLy8gQm90aCBhcmUgZmluZSBiZWNhdXNlIGBwYWdlcy9bcG9zdF1gIGFuZCBgcGFnZXMvYmxvZ2AgYXJlIG9uIHRoZSBzYW1lIGxldmVsXHJcbiAgICAvLyBTbyBpbiB0aGlzIGNhc2UgYFVybE5vZGVgIGNyZWF0ZWQgaGVyZSBoYXMgYHRoaXMuc2x1Z05hbWUgPT09ICdwb3N0J2BcclxuICAgIC8vIEFuZCBzaW5jZSB5b3VyIFBSIHBhc3NlZCB0aHJvdWdoIGBzbHVnTmFtZWAgYXMgYW4gYXJyYXkgYmFzaWNhbGx5IGl0J2QgaW5jbHVkaW5nIGl0IGluIHRvbyBtYW55IHBvc3NpYmlsaXRpZXNcclxuICAgIC8vIEluc3RlYWQgd2hhdCBoYXMgdG8gYmUgcGFzc2VkIHRocm91Z2ggaXMgdGhlIHVwd2FyZHMgcGF0aCdzIGR5bmFtaWMgbmFtZXNcclxuICAgIGNvbnN0IHJvb3QgPSBuZXcgVXJsTm9kZSgpO1xyXG4gICAgLy8gSGVyZSB0aGUgYHJvb3RgIGdldHMgaW5qZWN0ZWQgbXVsdGlwbGUgcGF0aHMsIGFuZCBpbnNlcnQgd2lsbCBicmVhayB0aGVtIHVwIGludG8gc3VibGV2ZWxzXHJcbiAgICBub3JtYWxpemVkUGFnZXMuZm9yRWFjaCgocGFnZVBhdGgpPT5yb290Lmluc2VydChwYWdlUGF0aCkpO1xyXG4gICAgLy8gU21vb3NoIHdpbGwgdGhlbiBzb3J0IHRob3NlIHN1YmxldmVscyB1cCB0byB0aGUgcG9pbnQgd2hlcmUgeW91IGdldCB0aGUgY29ycmVjdCByb3V0ZSBkZWZpbml0aW9uIHByaW9yaXR5XHJcbiAgICByZXR1cm4gcm9vdC5zbW9vc2goKTtcclxufVxyXG5cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c29ydGVkLXJvdXRlcy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiZ2V0U29ydGVkUm91dGVzIiwiVXJsTm9kZSIsImluc2VydCIsInVybFBhdGgiLCJfaW5zZXJ0Iiwic3BsaXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwic21vb3NoIiwiX3Ntb29zaCIsInByZWZpeCIsImNoaWxkcmVuUGF0aHMiLCJjaGlsZHJlbiIsImtleXMiLCJzb3J0Iiwic2x1Z05hbWUiLCJzcGxpY2UiLCJpbmRleE9mIiwicmVzdFNsdWdOYW1lIiwib3B0aW9uYWxSZXN0U2x1Z05hbWUiLCJyb3V0ZXMiLCJtYXAiLCJjIiwicmVkdWNlIiwicHJldiIsImN1cnIiLCJwdXNoIiwicGxhY2Vob2xkZXIiLCJyIiwic2xpY2UiLCJFcnJvciIsInVuc2hpZnQiLCJ1cmxQYXRocyIsInNsdWdOYW1lcyIsImlzQ2F0Y2hBbGwiLCJsZW5ndGgiLCJuZXh0U2VnbWVudCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInNlZ21lbnROYW1lIiwiaXNPcHRpb25hbCIsInN1YnN0cmluZyIsImhhbmRsZVNsdWciLCJwcmV2aW91c1NsdWciLCJuZXh0U2x1ZyIsImZvckVhY2giLCJzbHVnIiwicmVwbGFjZSIsImhhcyIsInNldCIsImNvbnN0cnVjdG9yIiwiTWFwIiwibm9ybWFsaXplZFBhZ2VzIiwicm9vdCIsInBhZ2VQYXRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/utils.js ***!
|
||
\****************************************************/
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
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 WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n isResSent: function() {\n return isResSent;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n DecodeError: function() {\n return DecodeError;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n \"CLS\",\n \"FCP\",\n \"FID\",\n \"INP\",\n \"LCP\",\n \"TTFB\"\n];\nfunction execOnce(fn) {\n let used = false;\n let result;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nconst isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);\nfunction getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? \":\" + port : \"\");\n}\nfunction getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nfunction getDisplayName(Component) {\n return typeof Component === \"string\" ? Component : Component.displayName || Component.name || \"Unknown\";\n}\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\nfunction normalizeRepeatedSlashes(url) {\n const urlParts = url.split(\"?\");\n const urlNoQuery = urlParts[0];\n return urlNoQuery // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, \"/\").replace(/\\/\\/+/g, \"/\") + (urlParts[1] ? \"?\" + urlParts.slice(1).join(\"?\") : \"\");\n}\nasync function loadGetInitialProps(App, ctx) {\n if (true) {\n var _App_prototype;\n if ((_App_prototype = App.prototype) == null ? void 0 : _App_prototype.getInitialProps) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';\n throw new Error(message);\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw new Error(message);\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== \"undefined\";\nconst ST = SP && [\n \"mark\",\n \"measure\",\n \"getEntriesByName\"\n].every((method)=>typeof performance[method] === \"function\");\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = \"ENOENT\";\n this.name = \"PageNotFoundError\";\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = \"ENOENT\";\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRixLQUFNQyxDQUFBQSxDQWtCTjtBQUNBLFNBQVNrQixRQUFRQyxNQUFNLEVBQUVDLEdBQUc7SUFDeEIsSUFBSSxJQUFJQyxRQUFRRCxJQUFJeEIsT0FBT0MsY0FBYyxDQUFDc0IsUUFBUUUsTUFBTTtRQUNwREMsWUFBWTtRQUNaQyxLQUFLSCxHQUFHLENBQUNDLEtBQUs7SUFDbEI7QUFDSjtBQUNBSCxRQUFRcEIsU0FBUztJQUNiRyxZQUFZO1FBQ1IsT0FBT0E7SUFDWDtJQUNBQyxVQUFVO1FBQ04sT0FBT0E7SUFDWDtJQUNBQyxlQUFlO1FBQ1gsT0FBT0E7SUFDWDtJQUNBQyxtQkFBbUI7UUFDZixPQUFPQTtJQUNYO0lBQ0FDLFFBQVE7UUFDSixPQUFPQTtJQUNYO0lBQ0FDLGdCQUFnQjtRQUNaLE9BQU9BO0lBQ1g7SUFDQUMsV0FBVztRQUNQLE9BQU9BO0lBQ1g7SUFDQUMsMEJBQTBCO1FBQ3RCLE9BQU9BO0lBQ1g7SUFDQUMscUJBQXFCO1FBQ2pCLE9BQU9BO0lBQ1g7SUFDQUMsSUFBSTtRQUNBLE9BQU9BO0lBQ1g7SUFDQUMsSUFBSTtRQUNBLE9BQU9BO0lBQ1g7SUFDQUMsYUFBYTtRQUNULE9BQU9BO0lBQ1g7SUFDQUMsZ0JBQWdCO1FBQ1osT0FBT0E7SUFDWDtJQUNBQyxtQkFBbUI7UUFDZixPQUFPQTtJQUNYO0lBQ0FDLG1CQUFtQjtRQUNmLE9BQU9BO0lBQ1g7SUFDQUMseUJBQXlCO1FBQ3JCLE9BQU9BO0lBQ1g7SUFDQUMsZ0JBQWdCO1FBQ1osT0FBT0E7SUFDWDtBQUNKO0FBQ0EsTUFBTWhCLGFBQWE7SUFDZjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDSDtBQUNELFNBQVNDLFNBQVNzQixFQUFFO0lBQ2hCLElBQUlD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RUFBRTtZQUM3Q1ksUUFBUUMsSUFBSSxDQUFDLEtBQUsvRCxlQUFlaUQsT0FBTztRQUM1QztJQUNKO0lBQ0EsT0FBT1c7QUFDWDtBQUNBLE1BQU14RCxLQUFLLE9BQU80RCxnQkFBZ0I7QUFDbEMsTUFBTTNELEtBQUtELE1BQU07SUFDYjtJQUNBO0lBQ0E7Q0FDSCxDQUFDNkQsS0FBSyxDQUFDLENBQUNDLFNBQVMsT0FBT0YsV0FBVyxDQUFDRSxPQUFPLEtBQUs7QUFDakQsTUFBTTVELG9CQUFvQm9EO0FBQzFCO0FBQ0EsTUFBTW5ELHVCQUF1Qm1EO0FBQzdCO0FBQ0EsTUFBTWxELDBCQUEwQmtEO0lBQzVCUyxZQUFZQyxJQUFJLENBQUM7UUFDYixLQUFLO1FBQ0wsSUFBSSxDQUFDQyxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUN0RCxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUMwQyxPQUFPLEdBQUcsa0NBQWtDVztJQUNyRDtBQUNKO0FBQ0EsTUFBTTNELDBCQUEwQmlEO0lBQzVCUyxZQUFZQyxJQUFJLEVBQUVYLE9BQU8sQ0FBQztRQUN0QixLQUFLO1FBQ0wsSUFBSSxDQUFDQSxPQUFPLEdBQUcsMENBQTBDVyxPQUFPLE1BQU1YO0lBQzFFO0FBQ0o7QUFDQSxNQUFNL0MsZ0NBQWdDZ0Q7SUFDbENTLGFBQWE7UUFDVCxLQUFLO1FBQ0wsSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNaLE9BQU8sR0FBRztJQUNuQjtBQUNKO0FBQ0EsU0FBUzlDLGVBQWUyRCxLQUFLO0lBQ3pCLE9BQU9DLEtBQUtDLFNBQVMsQ0FBQztRQUNsQmYsU0FBU2EsTUFBTWIsT0FBTztRQUN0QmdCLE9BQU9ILE1BQU1HLEtBQUs7SUFDdEI7QUFDSixFQUVBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMuanM/ZTdmZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XHJcbiAgICB2YWx1ZTogdHJ1ZVxyXG59KTtcclxuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBXRUJfVklUQUxTOiBudWxsLFxyXG4gICAgZXhlY09uY2U6IG51bGwsXHJcbiAgICBpc0Fic29sdXRlVXJsOiBudWxsLFxyXG4gICAgZ2V0TG9jYXRpb25PcmlnaW46IG51bGwsXHJcbiAgICBnZXRVUkw6IG51bGwsXHJcbiAgICBnZXREaXNwbGF5TmFtZTogbnVsbCxcclxuICAgIGlzUmVzU2VudDogbnVsbCxcclxuICAgIG5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlczogbnVsbCxcclxuICAgIGxvYWRHZXRJbml0aWFsUHJvcHM6IG51bGwsXHJcbiAgICBTUDogbnVsbCxcclxuICAgIFNUOiBudWxsLFxyXG4gICAgRGVjb2RlRXJyb3I6IG51bGwsXHJcbiAgICBOb3JtYWxpemVFcnJvcjogbnVsbCxcclxuICAgIFBhZ2VOb3RGb3VuZEVycm9yOiBudWxsLFxyXG4gICAgTWlzc2luZ1N0YXRpY1BhZ2U6IG51bGwsXHJcbiAgICBNaWRkbGV3YXJlTm90Rm91bmRFcnJvcjogbnVsbCxcclxuICAgIHN0cmluZ2lmeUVycm9yOiBudWxsXHJcbn0pO1xyXG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XHJcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcclxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgICAgIGdldDogYWxsW25hbWVdXHJcbiAgICB9KTtcclxufVxyXG5fZXhwb3J0KGV4cG9ydHMsIHtcclxuICAgIFdFQl9WSVRBTFM6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBXRUJfVklUQUxTO1xyXG4gICAgfSxcclxuICAgIGV4ZWNPbmNlOiBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gZXhlY09uY2U7XHJcbiAgICB9LFxyXG4gICAgaXNBYnNvbHV0ZVVybDogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIGlzQWJzb2x1dGVVcmw7XHJcbiAgICB9LFxyXG4gICAgZ2V0TG9jYXRpb25PcmlnaW46IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBnZXRMb2NhdGlvbk9yaWdpbjtcclxuICAgIH0sXHJcbiAgICBnZXRVUkw6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBnZXRVUkw7XHJcbiAgICB9LFxyXG4gICAgZ2V0RGlzcGxheU5hbWU6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZTtcclxuICAgIH0sXHJcbiAgICBpc1Jlc1NlbnQ6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBpc1Jlc1NlbnQ7XHJcbiAgICB9LFxyXG4gICAgbm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzOiBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gbm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzO1xyXG4gICAgfSxcclxuICAgIGxvYWRHZXRJbml0aWFsUHJvcHM6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBsb2FkR2V0SW5pdGlhbFByb3BzO1xyXG4gICAgfSxcclxuICAgIFNQOiBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gU1A7XHJcbiAgICB9LFxyXG4gICAgU1Q6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBTVDtcclxuICAgIH0sXHJcbiAgICBEZWNvZGVFcnJvcjogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIERlY29kZUVycm9yO1xyXG4gICAgfSxcclxuICAgIE5vcm1hbGl6ZUVycm9yOiBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gTm9ybWFsaXplRXJyb3I7XHJcbiAgICB9LFxyXG4gICAgUGFnZU5vdEZvdW5kRXJyb3I6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBQYWdlTm90Rm91bmRFcnJvcjtcclxuICAgIH0sXHJcbiAgICBNaXNzaW5nU3RhdGljUGFnZTogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIE1pc3NpbmdTdGF0aWNQYWdlO1xyXG4gICAgfSxcclxuICAgIE1pZGRsZXdhcmVOb3RGb3VuZEVycm9yOiBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gTWlkZGxld2FyZU5vdEZvdW5kRXJyb3I7XHJcbiAgICB9LFxyXG4gICAgc3RyaW5naWZ5RXJyb3I6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBzdHJpbmdpZnlFcnJvcjtcclxuICAgIH1cclxufSk7XHJcbmNvbnN0IFdFQl9WSVRBTFMgPSBbXHJcbiAgICBcIkNMU1wiLFxyXG4gICAgXCJGQ1BcIixcclxuICAgIFwiRklEXCIsXHJcbiAgICBcIklOUFwiLFxyXG4gICAgXCJMQ1BcIixcclxuICAgIFwiVFRGQlwiXHJcbl07XHJcbmZ1bmN0aW9uIGV4ZWNPbmNlKGZuKSB7XHJcbiAgICBsZXQgdXNlZCA9IGZhbHNlO1xyXG4gICAgbGV0IHJlc3VsdDtcclxuICAgIHJldHVybiBmdW5jdGlvbigpIHtcclxuICAgICAgICBmb3IodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKyl7XHJcbiAgICAgICAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdXNlZCkge1xyXG4gICAgICAgICAgICB1c2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgcmVzdWx0ID0gZm4oLi4uYXJncyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9O1xyXG59XHJcbi8vIFNjaGVtZTogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM5ODYjc2VjdGlvbi0zLjFcclxuLy8gQWJzb2x1dGUgVVJMOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTQuM1xyXG5jb25zdCBBQlNPTFVURV9VUkxfUkVHRVggPSAvXlthLXpBLVpdW2EtekEtWlxcZCtcXC0uXSo/Oi87XHJcbmNvbnN0IGlzQWJzb2x1dGVVcmwgPSAodXJsKT0+QUJTT0xVVEVfVVJMX1JFR0VYLnRlc3QodXJsKTtcclxuZnVuY3Rpb24gZ2V0TG9jYXRpb25PcmlnaW4oKSB7XHJcbiAgICBjb25zdCB7IHByb3RvY29sLCBob3N0bmFtZSwgcG9ydCB9ID0gd2luZG93LmxvY2F0aW9uO1xyXG4gICAgcmV0dXJuIHByb3RvY29sICsgXCIvL1wiICsgaG9zdG5hbWUgKyAocG9ydCA/IFwiOlwiICsgcG9ydCA6IFwiXCIpO1xyXG59XHJcbmZ1bmN0aW9uIGdldFVSTCgpIHtcclxuICAgIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93LmxvY2F0aW9uO1xyXG4gICAgY29uc3Qgb3JpZ2luID0gZ2V0TG9jYXRpb25PcmlnaW4oKTtcclxuICAgIHJldHVybiBocmVmLnN1YnN0cmluZyhvcmlnaW4ubGVuZ3RoKTtcclxufVxyXG5mdW5jdGlvbiBnZXREaXNwbGF5TmFtZShDb21wb25lbnQpIHtcclxuICAgIHJldHVybiB0eXBlb2YgQ29tcG9uZW50ID09PSBcInN0cmluZ1wiID8gQ29tcG9uZW50IDogQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lIHx8IFwiVW5rbm93blwiO1xyXG59XHJcbmZ1bmN0aW9uIGlzUmVzU2VudChyZXMpIHtcclxuICAgIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50O1xyXG59XHJcbmZ1bmN0aW9uIG5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyh1cmwpIHtcclxuICAgIGNvbnN0IHVybFBhcnRzID0gdXJsLnNwbGl0KFwiP1wiKTtcclxuICAgIGNvbnN0IHVybE5vUXVlcnkgPSB1cmxQYXJ0c1swXTtcclxuICAgIHJldHVybiB1cmxOb1F1ZXJ5Ly8gZmlyc3Qgd2UgcmVwbGFjZSBhbnkgbm9uLWVuY29kZWQgYmFja3NsYXNoZXMgd2l0aCBmb3J3YXJkXHJcbiAgICAvLyB0aGVuIG5vcm1hbGl6ZSByZXBlYXRlZCBmb3J3YXJkIHNsYXNoZXNcclxuICAgIC5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKS5yZXBsYWNlKC9cXC9cXC8rL2csIFwiL1wiKSArICh1cmxQYXJ0c1sxXSA/IFwiP1wiICsgdXJsUGFydHMuc2xpY2UoMSkuam9pbihcIj9cIikgOiBcIlwiKTtcclxufVxyXG5hc3luYyBmdW5jdGlvbiBsb2FkR2V0SW5pdGlhbFByb3BzKEFwcCwgY3R4KSB7XHJcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XHJcbiAgICAgICAgdmFyIF9BcHBfcHJvdG90eXBlO1xyXG4gICAgICAgIGlmICgoX0FwcF9wcm90b3R5cGUgPSBBcHAucHJvdG90eXBlKSA9PSBudWxsID8gdm9pZCAwIDogX0FwcF9wcm90b3R5cGUuZ2V0SW5pdGlhbFByb3BzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnXCInICsgZ2V0RGlzcGxheU5hbWUoQXBwKSArICcuZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nO1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gd2hlbiBjYWxsZWQgZnJvbSBfYXBwIGBjdHhgIGlzIG5lc3RlZCBpbiBgY3R4YFxyXG4gICAgY29uc3QgcmVzID0gY3R4LnJlcyB8fCBjdHguY3R4ICYmIGN0eC5jdHgucmVzO1xyXG4gICAgaWYgKCFBcHAuZ2V0SW5pdGlhbFByb3BzKSB7XHJcbiAgICAgICAgaWYgKGN0eC5jdHggJiYgY3R4LkNvbXBvbmVudCkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlIHBhZ2VQcm9wcyBkZWZhdWx0XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBwYWdlUHJvcHM6IGF3YWl0IGxvYWRHZXRJbml0aWFsUHJvcHMoY3R4LkNvbXBvbmVudCwgY3R4LmN0eClcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgfVxyXG4gICAgY29uc3QgcHJvcHMgPSBhd2FpdCBBcHAuZ2V0SW5pdGlhbFByb3BzKGN0eCk7XHJcbiAgICBpZiAocmVzICYmIGlzUmVzU2VudChyZXMpKSB7XHJcbiAgICAgICAgcmV0dXJuIHByb3BzO1xyXG4gICAgfVxyXG4gICAgaWYgKCFwcm9wcykge1xyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnXCInICsgZ2V0RGlzcGxheU5hbWUoQXBwKSArICcuZ2V0SW5pdGlhbFByb3BzKClcIiBzaG91bGQgcmVzb2x2ZSB0byBhbiBvYmplY3QuIEJ1dCBmb3VuZCBcIicgKyBwcm9wcyArICdcIiBpbnN0ZWFkLic7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xyXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhwcm9wcykubGVuZ3RoID09PSAwICYmICFjdHguY3R4KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIlwiICsgZ2V0RGlzcGxheU5hbWUoQXBwKSArIFwiIHJldHVybmVkIGFuIGVtcHR5IG9iamVjdCBmcm9tIGBnZXRJbml0aWFsUHJvcHNgLiBUaGlzIGRlLW9wdGltaXplcyBhbmQgcHJldmVudHMgYXV0b21hdGljIHN0YXRpYyBvcHRpbWl6YXRpb24uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2VtcHR5LW9iamVjdC1nZXRJbml0aWFsUHJvcHNcIik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHByb3BzO1xyXG59XHJcbmNvbnN0IFNQID0gdHlwZW9mIHBlcmZvcm1hbmNlICE9PSBcInVuZGVmaW5lZFwiO1xyXG5jb25zdCBTVCA9IFNQICYmIFtcclxuICAgIFwibWFya1wiLFxyXG4gICAgXCJtZWFzdXJlXCIsXHJcbiAgICBcImdldEVudHJpZXNCeU5hbWVcIlxyXG5dLmV2ZXJ5KChtZXRob2QpPT50eXBlb2YgcGVyZm9ybWFuY2VbbWV0aG9kXSA9PT0gXCJmdW5jdGlvblwiKTtcclxuY2xhc3MgRGVjb2RlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XHJcbn1cclxuY2xhc3MgTm9ybWFsaXplRXJyb3IgZXh0ZW5kcyBFcnJvciB7XHJcbn1cclxuY2xhc3MgUGFnZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XHJcbiAgICBjb25zdHJ1Y3RvcihwYWdlKXtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuY29kZSA9IFwiRU5PRU5UXCI7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gXCJQYWdlTm90Rm91bmRFcnJvclwiO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZSA9IFwiQ2Fubm90IGZpbmQgbW9kdWxlIGZvciBwYWdlOiBcIiArIHBhZ2U7XHJcbiAgICB9XHJcbn1cclxuY2xhc3MgTWlzc2luZ1N0YXRpY1BhZ2UgZXh0ZW5kcyBFcnJvciB7XHJcbiAgICBjb25zdHJ1Y3RvcihwYWdlLCBtZXNzYWdlKXtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZSA9IFwiRmFpbGVkIHRvIGxvYWQgc3RhdGljIGZpbGUgZm9yIHBhZ2U6IFwiICsgcGFnZSArIFwiIFwiICsgbWVzc2FnZTtcclxuICAgIH1cclxufVxyXG5jbGFzcyBNaWRkbGV3YXJlTm90Rm91bmRFcnJvciBleHRlbmRzIEVycm9yIHtcclxuICAgIGNvbnN0cnVjdG9yKCl7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmNvZGUgPSBcIkVOT0VOVFwiO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZSA9IFwiQ2Fubm90IGZpbmQgdGhlIG1pZGRsZXdhcmUgbW9kdWxlXCI7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gc3RyaW5naWZ5RXJyb3IoZXJyb3IpIHtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcclxuICAgICAgICBzdGFjazogZXJyb3Iuc3RhY2tcclxuICAgIH0pO1xyXG59XHJcblxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtb2R1bGUiLCJXRUJfVklUQUxTIiwiZXhlY09uY2UiLCJpc0Fic29sdXRlVXJsIiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJnZXRVUkwiLCJnZXREaXNwbGF5TmFtZSIsImlzUmVzU2VudCIsIm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyIsImxvYWRHZXRJbml0aWFsUHJvcHMiLCJTUCIsIlNUIiwiRGVjb2RlRXJyb3IiLCJOb3JtYWxpemVFcnJvciIsIlBhZ2VOb3RGb3VuZEVycm9yIiwiTWlzc2luZ1N0YXRpY1BhZ2UiLCJNaWRkbGV3YXJlTm90Rm91bmRFcnJvciIsInN0cmluZ2lmeUVycm9yIiwiX2V4cG9ydCIsInRhcmdldCIsImFsbCIsIm5hbWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiZm4iLCJ1c2VkIiwicmVzdWx0IiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJBQlNPTFVURV9VUkxfUkVHRVgiLCJ1cmwiLCJ0ZXN0IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsInBvcnQiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJvcmlnaW4iLCJzdWJzdHJpbmciLCJDb21wb25lbnQiLCJkaXNwbGF5TmFtZSIsInJlcyIsImZpbmlzaGVkIiwiaGVhZGVyc1NlbnQiLCJ1cmxQYXJ0cyIsInNwbGl0IiwidXJsTm9RdWVyeSIsInJlcGxhY2UiLCJzbGljZSIsImpvaW4iLCJBcHAiLCJjdHgiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJfQXBwX3Byb3RvdHlwZSIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwicGVyZm9ybWFuY2UiLCJldmVyeSIsIm1ldGhvZCIsImNvbnN0cnVjdG9yIiwicGFnZSIsImNvZGUiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFjayJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/buffer/index.js":
|
||
/*!*********************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/buffer/index.js ***!
|
||
\*********************************************************/
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
eval(__webpack_require__.ts("var __dirname = \"/\";\n(function(){var e={675:function(e,r){\"use strict\";r.byteLength=byteLength;r.toByteArray=toByteArray;r.fromByteArray=fromByteArray;var t=[];var f=[];var n=typeof Uint8Array!==\"undefined\"?Uint8Array:Array;var i=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";for(var o=0,u=i.length;o<u;++o){t[o]=i[o];f[i.charCodeAt(o)]=o}f[\"-\".charCodeAt(0)]=62;f[\"_\".charCodeAt(0)]=63;function getLens(e){var r=e.length;if(r%4>0){throw new Error(\"Invalid string. Length must be a multiple of 4\")}var t=e.indexOf(\"=\");if(t===-1)t=r;var f=t===r?0:4-t%4;return[t,f]}function byteLength(e){var r=getLens(e);var t=r[0];var f=r[1];return(t+f)*3/4-f}function _byteLength(e,r,t){return(r+t)*3/4-t}function toByteArray(e){var r;var t=getLens(e);var i=t[0];var o=t[1];var u=new n(_byteLength(e,i,o));var a=0;var s=o>0?i-4:i;var h;for(h=0;h<s;h+=4){r=f[e.charCodeAt(h)]<<18|f[e.charCodeAt(h+1)]<<12|f[e.charCodeAt(h+2)]<<6|f[e.charCodeAt(h+3)];u[a++]=r>>16&255;u[a++]=r>>8&255;u[a++]=r&255}if(o===2){r=f[e.charCodeAt(h)]<<2|f[e.charCodeAt(h+1)]>>4;u[a++]=r&255}if(o===1){r=f[e.charCodeAt(h)]<<10|f[e.charCodeAt(h+1)]<<4|f[e.charCodeAt(h+2)]>>2;u[a++]=r>>8&255;u[a++]=r&255}return u}function tripletToBase64(e){return t[e>>18&63]+t[e>>12&63]+t[e>>6&63]+t[e&63]}function encodeChunk(e,r,t){var f;var n=[];for(var i=r;i<t;i+=3){f=(e[i]<<16&16711680)+(e[i+1]<<8&65280)+(e[i+2]&255);n.push(tripletToBase64(f))}return n.join(\"\")}function fromByteArray(e){var r;var f=e.length;var n=f%3;var i=[];var o=16383;for(var u=0,a=f-n;u<a;u+=o){i.push(encodeChunk(e,u,u+o>a?a:u+o))}if(n===1){r=e[f-1];i.push(t[r>>2]+t[r<<4&63]+\"==\")}else if(n===2){r=(e[f-2]<<8)+e[f-1];i.push(t[r>>10]+t[r>>4&63]+t[r<<2&63]+\"=\")}return i.join(\"\")}},72:function(e,r,t){\"use strict\";\r\n/*!\r\n * The buffer module from node.js, for the browser.\r\n *\r\n * @author Feross Aboukhadijeh <https://feross.org>\r\n * @license MIT\r\n */var f=t(675);var n=t(783);var i=typeof Symbol===\"function\"&&typeof Symbol.for===\"function\"?Symbol.for(\"nodejs.util.inspect.custom\"):null;r.Buffer=Buffer;r.SlowBuffer=SlowBuffer;r.INSPECT_MAX_BYTES=50;var o=2147483647;r.kMaxLength=o;Buffer.TYPED_ARRAY_SUPPORT=typedArraySupport();if(!Buffer.TYPED_ARRAY_SUPPORT&&typeof console!==\"undefined\"&&typeof console.error===\"function\"){console.error(\"This browser lacks typed array (Uint8Array) support which is required by \"+\"`buffer` v5.x. Use `buffer` v4.x if you require old browser support.\")}function typedArraySupport(){try{var e=new Uint8Array(1);var r={foo:function(){return 42}};Object.setPrototypeOf(r,Uint8Array.prototype);Object.setPrototypeOf(e,r);return e.foo()===42}catch(e){return false}}Object.defineProperty(Buffer.prototype,\"parent\",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.buffer}});Object.defineProperty(Buffer.prototype,\"offset\",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.byteOffset}});function createBuffer(e){if(e>o){throw new RangeError('The value \"'+e+'\" is invalid for option \"size\"')}var r=new Uint8Array(e);Object.setPrototypeOf(r,Buffer.prototype);return r}function Buffer(e,r,t){if(typeof e===\"number\"){if(typeof r===\"string\"){throw new TypeError('The \"string\" argument must be of type string. Received type number')}return allocUnsafe(e)}return from(e,r,t)}Buffer.poolSize=8192;function from(e,r,t){if(typeof e===\"string\"){return fromString(e,r)}if(ArrayBuffer.isView(e)){return fromArrayLike(e)}if(e==null){throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, \"+\"or Array-like Object. Received type \"+typeof e)}if(isInstance(e,ArrayBuffer)||e&&isInstance(e.buffer,ArrayBuffer)){return fromArrayBuffer(e,r,t)}if(typeof SharedArrayBuffer!==\"undefined\"&&(isInstance(e,SharedArrayBuffer)||e&&isInstance(e.buffer,SharedArrayBuffer))){return fromArrayBuffer(e,r,t)}if(typeof e===\"number\"){throw new TypeError('The \"value\" argument must not be of type number. Received type number')}var f=e.valueOf&&e.valueOf();if(f!=null&&f!==e){return Buffer.from(f,r,t)}var n=fromObject(e);if(n)return n;if(typeof Symbol!==\"undefined\"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]===\"function\"){return Buffer.from(e[Symbol.toPrimitive](\"string\"),r,t)}throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, \"+\"or Array-like Object. Received type \"+typeof e)}Buffer.from=function(e,r,t){return from(e,r,t)};Object.setPrototypeOf(Buffer.prototype,Uint8Array.prototype);Object.setPrototypeOf(Buffer,Uint8Array);function assertSize(e){if(typeof e!==\"number\"){throw new TypeError('\"size\" argument must be of type number')}else if(e<0){throw new RangeError('The value \"'+e+'\" is invalid for option \"size\"')}}function alloc(e,r,t){assertSize(e);if(e<=0){return createBuffer(e)}if(r!==undefined){return typeof t===\"string\"?createBuffer(e).fill(r,t):createBuffer(e).fill(r)}return createBuffer(e)}Buffer.alloc=function(e,r,t){return alloc(e,r,t)};function allocUnsafe(e){assertSize(e);return createBuffer(e<0?0:checked(e)|0)}Buffer.allocUnsafe=function(e){return allocUnsafe(e)};Buffer.allocUnsafeSlow=function(e){return allocUnsafe(e)};function fromString(e,r){if(typeof r!==\"string\"||r===\"\"){r=\"utf8\"}if(!Buffer.isEncoding(r)){throw new TypeError(\"Unknown encoding: \"+r)}var t=byteLength(e,r)|0;var f=createBuffer(t);var n=f.write(e,r);if(n!==t){f=f.slice(0,n)}return f}function fromArrayLike(e){var r=e.length<0?0:checked(e.length)|0;var t=createBuffer(r);for(var f=0;f<r;f+=1){t[f]=e[f]&255}return t}function fromArrayBuffer(e,r,t){if(r<0||e.byteLength<r){throw new RangeError('\"offset\" is outside of buffer bounds')}if(e.byteLength<r+(t||0)){throw new RangeError('\"length\" is outside of buffer bounds')}var f;if(r===undefined&&t===undefined){f=new Uint8Array(e)}else if(t===undefined){f=new Uint8Array(e,r)}else{f=new Uint8Array(e,r,t)}Object.setPrototypeOf(f,Buffer.prototype);return f}function fromObject(e){if(Buffer.isBuffer(e)){var r=checked(e.length)|0;var t=createBuffer(r);if(t.length===0){return t}e.copy(t,0,0,r);return t}if(e.length!==undefined){if(typeof e.length!==\"number\"||numberIsNaN(e.length)){return createBuffer(0)}return fromArrayLike(e)}if(e.type===\"Buffer\"&&Array.isArray(e.data)){return fromArrayLike(e.data)}}function checked(e){if(e>=o){throw new RangeError(\"Attempt to allocate Buffer larger than maximum \"+\"size: 0x\"+o.toString(16)+\" bytes\")}return e|0}function SlowBuffer(e){if(+e!=e){e=0}return Buffer.alloc(+e)}Buffer.isBuffer=function isBuffer(e){return e!=null&&e._isBuffer===true&&e!==Buffer.prototype};Buffer.compare=function compare(e,r){if(isInstance(e,Uint8Array))e=Buffer.from(e,e.offset,e.byteLength);if(isInstance(r,Uint8Array))r=Buffer.from(r,r.offset,r.byteLength);if(!Buffer.isBuffer(e)||!Buffer.isBuffer(r)){throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array')}if(e===r)return 0;var t=e.length;var f=r.length;for(var n=0,i=Math.min(t,f);n<i;++n){if(e[n]!==r[n]){t=e[n];f=r[n];break}}if(t<f)return-1;if(f<t)return 1;return 0};Buffer.isEncoding=function isEncoding(e){switch(String(e).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return true;default:return false}};Buffer.concat=function concat(e,r){if(!Array.isArray(e)){throw new TypeError('\"list\" argument must be an Array of Buffers')}if(e.length===0){return Buffer.alloc(0)}var t;if(r===undefined){r=0;for(t=0;t<e.length;++t){r+=e[t].length}}var f=Buffer.allocUnsafe(r);var n=0;for(t=0;t<e.length;++t){var i=e[t];if(isInstance(i,Uint8Array)){i=Buffer.from(i)}if(!Buffer.isBuffer(i)){throw new TypeError('\"list\" argument must be an Array of Buffers')}i.copy(f,n);n+=i.length}return f};function byteLength(e,r){if(Buffer.isBuffer(e)){return e.length}if(ArrayBuffer.isView(e)||isInstance(e,ArrayBuffer)){return e.byteLength}if(typeof e!==\"string\"){throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. '+\"Received type \"+typeof e)}var t=e.length;var f=arguments.length>2&&arguments[2]===true;if(!f&&t===0)return 0;var n=false;for(;;){switch(r){case\"ascii\":case\"latin1\":case\"binary\":return t;case\"utf8\":case\"utf-8\":return utf8ToBytes(e).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return t*2;case\"hex\":return t>>>1;case\"base64\":return base64ToBytes(e).length;default:if(n){return f?-1:utf8ToBytes(e).length}r=(\"\"+r).toLowerCase();n=true}}}Buffer.byteLength=byteLength;function slowToString(e,r,t){var f=false;if(r===undefined||r<0){r=0}if(r>this.length){return\"\"}if(t===undefined||t>this.length){t=this.length}if(t<=0){return\"\"}t>>>=0;r>>>=0;if(t<=r){return\"\"}if(!e)e=\"utf8\";while(true){switch(e){case\"hex\":return hexSlice(this,r,t);case\"utf8\":case\"utf-8\":return utf8Slice(this,r,t);case\"ascii\":return asciiSlice(this,r,t);case\"latin1\":case\"binary\":return latin1Slice(this,r,t);case\"base64\":return base64Slice(this,r,t);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return utf16leSlice(this,r,t);default:if(f)throw new TypeError(\"Unknown encoding: \"+e);e=(e+\"\").toLowerCase();f=true}}}Buffer.prototype._isBuffer=true;function swap(e,r,t){var f=e[r];e[r]=e[t];e[t]=f}Buffer.prototype.swap16=function swap16(){var e=this.length;if(e%2!==0){throw new RangeError(\"Buffer size must be a multiple of 16-bits\")}for(var r=0;r<e;r+=2){swap(this,r,r+1)}return this};Buffer.prototype.swap32=function swap32(){var e=this.length;if(e%4!==0){throw new RangeError(\"Buffer size must be a multiple of 32-bits\")}for(var r=0;r<e;r+=4){swap(this,r,r+3);swap(this,r+1,r+2)}return this};Buffer.prototype.swap64=function swap64(){var e=this.length;if(e%8!==0){throw new RangeError(\"Buffer size must be a multiple of 64-bits\")}for(var r=0;r<e;r+=8){swap(this,r,r+7);swap(this,r+1,r+6);swap(this,r+2,r+5);swap(this,r+3,r+4)}return this};Buffer.prototype.toString=function toString(){var e=this.length;if(e===0)return\"\";if(arguments.length===0)return utf8Slice(this,0,e);return slowToString.apply(this,arguments)};Buffer.prototype.toLocaleString=Buffer.prototype.toString;Buffer.prototype.equals=function equals(e){if(!Buffer.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");if(this===e)return true;return Buffer.compare(this,e)===0};Buffer.prototype.inspect=function inspect(){var e=\"\";var t=r.INSPECT_MAX_BYTES;e=this.toString(\"hex\",0,t).replace(/(.{2})/g,\"$1 \").trim();if(this.length>t)e+=\" ... \";return\"<Buffer \"+e+\">\"};if(i){Buffer.prototype[i]=Buffer.prototype.inspect}Buffer.prototype.compare=function compare(e,r,t,f,n){if(isInstance(e,Uint8Array)){e=Buffer.from(e,e.offset,e.byteLength)}if(!Buffer.isBuffer(e)){throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. '+\"Received type \"+typeof e)}if(r===undefined){r=0}if(t===undefined){t=e?e.length:0}if(f===undefined){f=0}if(n===undefined){n=this.length}if(r<0||t>e.length||f<0||n>this.length){throw new RangeError(\"out of range index\")}if(f>=n&&r>=t){return 0}if(f>=n){return-1}if(r>=t){return 1}r>>>=0;t>>>=0;f>>>=0;n>>>=0;if(this===e)return 0;var i=n-f;var o=t-r;var u=Math.min(i,o);var a=this.slice(f,n);var s=e.slice(r,t);for(var h=0;h<u;++h){if(a[h]!==s[h]){i=a[h];o=s[h];break}}if(i<o)return-1;if(o<i)return 1;return 0};function bidirectionalIndexOf(e,r,t,f,n){if(e.length===0)return-1;if(typeof t===\"string\"){f=t;t=0}else if(t>2147483647){t=2147483647}else if(t<-2147483648){t=-2147483648}t=+t;if(numberIsNaN(t)){t=n?0:e.length-1}if(t<0)t=e.length+t;if(t>=e.length){if(n)return-1;else t=e.length-1}else if(t<0){if(n)t=0;else return-1}if(typeof r===\"string\"){r=Buffer.from(r,f)}if(Buffer.isBuffer(r)){if(r.length===0){return-1}return arrayIndexOf(e,r,t,f,n)}else if(typeof r===\"number\"){r=r&255;if(typeof Uint8Array.prototype.indexOf===\"function\"){if(n){return Uint8Array.prototype.indexOf.call(e,r,t)}else{return Uint8Array.prototype.lastIndexOf.call(e,r,t)}}return arrayIndexOf(e,[r],t,f,n)}throw new TypeError(\"val must be string, number or Buffer\")}function arrayIndexOf(e,r,t,f,n){var i=1;var o=e.length;var u=r.length;if(f!==undefined){f=String(f).toLowerCase();if(f===\"ucs2\"||f===\"ucs-2\"||f===\"utf16le\"||f===\"utf-16le\"){if(e.length<2||r.length<2){return-1}i=2;o/=2;u/=2;t/=2}}function read(e,r){if(i===1){return e[r]}else{return e.readUInt16BE(r*i)}}var a;if(n){var s=-1;for(a=t;a<o;a++){if(read(e,a)===read(r,s===-1?0:a-s)){if(s===-1)s=a;if(a-s+1===u)return s*i}else{if(s!==-1)a-=a-s;s=-1}}}else{if(t+u>o)t=o-u;for(a=t;a>=0;a--){var h=true;for(var c=0;c<u;c++){if(read(e,a+c)!==read(r,c)){h=false;break}}if(h)return a}}return-1}Buffer.prototype.includes=function includes(e,r,t){return this.indexOf(e,r,t)!==-1};Buffer.prototype.indexOf=function indexOf(e,r,t){return bidirectionalIndexOf(this,e,r,t,true)};Buffer.prototype.lastIndexOf=function lastIndexOf(e,r,t){return bidirectionalIndexOf(this,e,r,t,false)};function hexWrite(e,r,t,f){t=Number(t)||0;var n=e.length-t;if(!f){f=n}else{f=Number(f);if(f>n){f=n}}var i=r.length;if(f>i/2){f=i/2}for(var o=0;o<f;++o){var u=parseInt(r.substr(o*2,2),16);if(numberIsNaN(u))return o;e[t+o]=u}return o}function utf8Write(e,r,t,f){return blitBuffer(utf8ToBytes(r,e.length-t),e,t,f)}function asciiWrite(e,r,t,f){return blitBuffer(asciiToBytes(r),e,t,f)}function latin1Write(e,r,t,f){return asciiWrite(e,r,t,f)}function base64Write(e,r,t,f){return blitBuffer(base64ToBytes(r),e,t,f)}function ucs2Write(e,r,t,f){return blitBuffer(utf16leToBytes(r,e.length-t),e,t,f)}Buffer.prototype.write=function write(e,r,t,f){if(r===undefined){f=\"utf8\";t=this.length;r=0}else if(t===undefined&&typeof r===\"string\"){f=r;t=this.length;r=0}else if(isFinite(r)){r=r>>>0;if(isFinite(t)){t=t>>>0;if(f===undefined)f=\"utf8\"}else{f=t;t=undefined}}else{throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\")}var n=this.length-r;if(t===undefined||t>n)t=n;if(e.length>0&&(t<0||r<0)||r>this.length){throw new RangeError(\"Attempt to write outside buffer bounds\")}if(!f)f=\"utf8\";var i=false;for(;;){switch(f){case\"hex\":return hexWrite(this,e,r,t);case\"utf8\":case\"utf-8\":return utf8Write(this,e,r,t);case\"ascii\":return asciiWrite(this,e,r,t);case\"latin1\":case\"binary\":return latin1Write(this,e,r,t);case\"base64\":return base64Write(this,e,r,t);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return ucs2Write(this,e,r,t);default:if(i)throw new TypeError(\"Unknown encoding: \"+f);f=(\"\"+f).toLowerCase();i=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(e,r,t){if(r===0&&t===e.length){return f.fromByteArray(e)}else{return f.fromByteArray(e.slice(r,t))}}function utf8Slice(e,r,t){t=Math.min(e.length,t);var f=[];var n=r;while(n<t){var i=e[n];var o=null;var u=i>239?4:i>223?3:i>191?2:1;if(n+u<=t){var a,s,h,c;switch(u){case 1:if(i<128){o=i}break;case 2:a=e[n+1];if((a&192)===128){c=(i&31)<<6|a&63;if(c>127){o=c}}break;case 3:a=e[n+1];s=e[n+2];if((a&192)===128&&(s&192)===128){c=(i&15)<<12|(a&63)<<6|s&63;if(c>2047&&(c<55296||c>57343)){o=c}}break;case 4:a=e[n+1];s=e[n+2];h=e[n+3];if((a&192)===128&&(s&192)===128&&(h&192)===128){c=(i&15)<<18|(a&63)<<12|(s&63)<<6|h&63;if(c>65535&&c<1114112){o=c}}}}if(o===null){o=65533;u=1}else if(o>65535){o-=65536;f.push(o>>>10&1023|55296);o=56320|o&1023}f.push(o);n+=u}return decodeCodePointsArray(f)}var u=4096;function decodeCodePointsArray(e){var r=e.length;if(r<=u){return String.fromCharCode.apply(String,e)}var t=\"\";var f=0;while(f<r){t+=String.fromCharCode.apply(String,e.slice(f,f+=u))}return t}function asciiSlice(e,r,t){var f=\"\";t=Math.min(e.length,t);for(var n=r;n<t;++n){f+=String.fromCharCode(e[n]&127)}return f}function latin1Slice(e,r,t){var f=\"\";t=Math.min(e.length,t);for(var n=r;n<t;++n){f+=String.fromCharCode(e[n])}return f}function hexSlice(e,r,t){var f=e.length;if(!r||r<0)r=0;if(!t||t<0||t>f)t=f;var n=\"\";for(var i=r;i<t;++i){n+=s[e[i]]}return n}function utf16leSlice(e,r,t){var f=e.slice(r,t);var n=\"\";for(var i=0;i<f.length;i+=2){n+=String.fromCharCode(f[i]+f[i+1]*256)}return n}Buffer.prototype.slice=function slice(e,r){var t=this.length;e=~~e;r=r===undefined?t:~~r;if(e<0){e+=t;if(e<0)e=0}else if(e>t){e=t}if(r<0){r+=t;if(r<0)r=0}else if(r>t){r=t}if(r<e)r=e;var f=this.subarray(e,r);Object.setPrototypeOf(f,Buffer.prototype);return f};function checkOffset(e,r,t){if(e%1!==0||e<0)throw new RangeError(\"offset is not uint\");if(e+r>t)throw new RangeError(\"Trying to access beyond buffer length\")}Buffer.prototype.readUIntLE=function readUIntLE(e,r,t){e=e>>>0;r=r>>>0;if(!t)checkOffset(e,r,this.length);var f=this[e];var n=1;var i=0;while(++i<r&&(n*=256)){f+=this[e+i]*n}return f};Buffer.prototype.readUIntBE=function readUIntBE(e,r,t){e=e>>>0;r=r>>>0;if(!t){checkOffset(e,r,this.length)}var f=this[e+--r];var n=1;while(r>0&&(n*=256)){f+=this[e+--r]*n}return f};Buffer.prototype.readUInt8=function readUInt8(e,r){e=e>>>0;if(!r)checkOffset(e,1,this.length);return this[e]};Buffer.prototype.readUInt16LE=function readUInt16LE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);return this[e]|this[e+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);return this[e]<<8|this[e+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};Buffer.prototype.readIntLE=function readIntLE(e,r,t){e=e>>>0;r=r>>>0;if(!t)checkOffset(e,r,this.length);var f=this[e];var n=1;var i=0;while(++i<r&&(n*=256)){f+=this[e+i]*n}n*=128;if(f>=n)f-=Math.pow(2,8*r);return f};Buffer.prototype.readIntBE=function readIntBE(e,r,t){e=e>>>0;r=r>>>0;if(!t)checkOffset(e,r,this.length);var f=r;var n=1;var i=this[e+--f];while(f>0&&(n*=256)){i+=this[e+--f]*n}n*=128;if(i>=n)i-=Math.pow(2,8*r);return i};Buffer.prototype.readInt8=function readInt8(e,r){e=e>>>0;if(!r)checkOffset(e,1,this.length);if(!(this[e]&128))return this[e];return(255-this[e]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);var t=this[e]|this[e+1]<<8;return t&32768?t|4294901760:t};Buffer.prototype.readInt16BE=function readInt16BE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);var t=this[e+1]|this[e]<<8;return t&32768?t|4294901760:t};Buffer.prototype.readInt32LE=function readInt32LE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};Buffer.prototype.readFloatLE=function readFloatLE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return n.read(this,e,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return n.read(this,e,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(e,r){e=e>>>0;if(!r)checkOffset(e,8,this.length);return n.read(this,e,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(e,r){e=e>>>0;if(!r)checkOffset(e,8,this.length);return n.read(this,e,false,52,8)};function checkInt(e,r,t,f,n,i){if(!Buffer.isBuffer(e))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(r>n||r<i)throw new RangeError('\"value\" argument is out of bounds');if(t+f>e.length)throw new RangeError(\"Index out of range\")}Buffer.prototype.writeUIntLE=function writeUIntLE(e,r,t,f){e=+e;r=r>>>0;t=t>>>0;if(!f){var n=Math.pow(2,8*t)-1;checkInt(this,e,r,t,n,0)}var i=1;var o=0;this[r]=e&255;while(++o<t&&(i*=256)){this[r+o]=e/i&255}return r+t};Buffer.prototype.writeUIntBE=function writeUIntBE(e,r,t,f){e=+e;r=r>>>0;t=t>>>0;if(!f){var n=Math.pow(2,8*t)-1;checkInt(this,e,r,t,n,0)}var i=t-1;var o=1;this[r+i]=e&255;while(--i>=0&&(o*=256)){this[r+i]=e/o&255}return r+t};Buffer.prototype.writeUInt8=function writeUInt8(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,1,255,0);this[r]=e&255;return r+1};Buffer.prototype.writeUInt16LE=function writeUInt16LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,65535,0);this[r]=e&255;this[r+1]=e>>>8;return r+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,65535,0);this[r]=e>>>8;this[r+1]=e&255;return r+2};Buffer.prototype.writeUInt32LE=function writeUInt32LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,4294967295,0);this[r+3]=e>>>24;this[r+2]=e>>>16;this[r+1]=e>>>8;this[r]=e&255;return r+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,4294967295,0);this[r]=e>>>24;this[r+1]=e>>>16;this[r+2]=e>>>8;this[r+3]=e&255;return r+4};Buffer.prototype.writeIntLE=function writeIntLE(e,r,t,f){e=+e;r=r>>>0;if(!f){var n=Math.pow(2,8*t-1);checkInt(this,e,r,t,n-1,-n)}var i=0;var o=1;var u=0;this[r]=e&255;while(++i<t&&(o*=256)){if(e<0&&u===0&&this[r+i-1]!==0){u=1}this[r+i]=(e/o>>0)-u&255}return r+t};Buffer.prototype.writeIntBE=function writeIntBE(e,r,t,f){e=+e;r=r>>>0;if(!f){var n=Math.pow(2,8*t-1);checkInt(this,e,r,t,n-1,-n)}var i=t-1;var o=1;var u=0;this[r+i]=e&255;while(--i>=0&&(o*=256)){if(e<0&&u===0&&this[r+i+1]!==0){u=1}this[r+i]=(e/o>>0)-u&255}return r+t};Buffer.prototype.writeInt8=function writeInt8(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,1,127,-128);if(e<0)e=255+e+1;this[r]=e&255;return r+1};Buffer.prototype.writeInt16LE=function writeInt16LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,32767,-32768);this[r]=e&255;this[r+1]=e>>>8;return r+2};Buffer.prototype.writeInt16BE=function writeInt16BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,32767,-32768);this[r]=e>>>8;this[r+1]=e&255;return r+2};Buffer.prototype.writeInt32LE=function writeInt32LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,2147483647,-2147483648);this[r]=e&255;this[r+1]=e>>>8;this[r+2]=e>>>16;this[r+3]=e>>>24;return r+4};Buffer.prototype.writeInt32BE=function writeInt32BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,2147483647,-2147483648);if(e<0)e=4294967295+e+1;this[r]=e>>>24;this[r+1]=e>>>16;this[r+2]=e>>>8;this[r+3]=e&255;return r+4};function checkIEEE754(e,r,t,f,n,i){if(t+f>e.length)throw new RangeError(\"Index out of range\");if(t<0)throw new RangeError(\"Index out of range\")}function writeFloat(e,r,t,f,i){r=+r;t=t>>>0;if(!i){checkIEEE754(e,r,t,4,34028234663852886e22,-34028234663852886e22)}n.write(e,r,t,f,23,4);return t+4}Buffer.prototype.writeFloatLE=function writeFloatLE(e,r,t){return writeFloat(this,e,r,true,t)};Buffer.prototype.writeFloatBE=function writeFloatBE(e,r,t){return writeFloat(this,e,r,false,t)};function writeDouble(e,r,t,f,i){r=+r;t=t>>>0;if(!i){checkIEEE754(e,r,t,8,17976931348623157e292,-17976931348623157e292)}n.write(e,r,t,f,52,8);return t+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(e,r,t){return writeDouble(this,e,r,true,t)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(e,r,t){return writeDouble(this,e,r,false,t)};Buffer.prototype.copy=function copy(e,r,t,f){if(!Buffer.isBuffer(e))throw new TypeError(\"argument should be a Buffer\");if(!t)t=0;if(!f&&f!==0)f=this.length;if(r>=e.length)r=e.length;if(!r)r=0;if(f>0&&f<t)f=t;if(f===t)return 0;if(e.length===0||this.length===0)return 0;if(r<0){throw new RangeError(\"targetStart out of bounds\")}if(t<0||t>=this.length)throw new RangeError(\"Index out of range\");if(f<0)throw new RangeError(\"sourceEnd out of bounds\");if(f>this.length)f=this.length;if(e.length-r<f-t){f=e.length-r+t}var n=f-t;if(this===e&&typeof Uint8Array.prototype.copyWithin===\"function\"){this.copyWithin(r,t,f)}else if(this===e&&t<r&&r<f){for(var i=n-1;i>=0;--i){e[i+r]=this[i+t]}}else{Uint8Array.prototype.set.call(e,this.subarray(t,f),r)}return n};Buffer.prototype.fill=function fill(e,r,t,f){if(typeof e===\"string\"){if(typeof r===\"string\"){f=r;r=0;t=this.length}else if(typeof t===\"string\"){f=t;t=this.length}if(f!==undefined&&typeof f!==\"string\"){throw new TypeError(\"encoding must be a string\")}if(typeof f===\"string\"&&!Buffer.isEncoding(f)){throw new TypeError(\"Unknown encoding: \"+f)}if(e.length===1){var n=e.charCodeAt(0);if(f===\"utf8\"&&n<128||f===\"latin1\"){e=n}}}else if(typeof e===\"number\"){e=e&255}else if(typeof e===\"boolean\"){e=Number(e)}if(r<0||this.length<r||this.length<t){throw new RangeError(\"Out of range index\")}if(t<=r){return this}r=r>>>0;t=t===undefined?this.length:t>>>0;if(!e)e=0;var i;if(typeof e===\"number\"){for(i=r;i<t;++i){this[i]=e}}else{var o=Buffer.isBuffer(e)?e:Buffer.from(e,f);var u=o.length;if(u===0){throw new TypeError('The value \"'+e+'\" is invalid for argument \"value\"')}for(i=0;i<t-r;++i){this[i+r]=o[i%u]}}return this};var a=/[^+/0-9A-Za-z-_]/g;function base64clean(e){e=e.split(\"=\")[0];e=e.trim().replace(a,\"\");if(e.length<2)return\"\";while(e.length%4!==0){e=e+\"=\"}return e}function utf8ToBytes(e,r){r=r||Infinity;var t;var f=e.length;var n=null;var i=[];for(var o=0;o<f;++o){t=e.charCodeAt(o);if(t>55295&&t<57344){if(!n){if(t>56319){if((r-=3)>-1)i.push(239,191,189);continue}else if(o+1===f){if((r-=3)>-1)i.push(239,191,189);continue}n=t;continue}if(t<56320){if((r-=3)>-1)i.push(239,191,189);n=t;continue}t=(n-55296<<10|t-56320)+65536}else if(n){if((r-=3)>-1)i.push(239,191,189)}n=null;if(t<128){if((r-=1)<0)break;i.push(t)}else if(t<2048){if((r-=2)<0)break;i.push(t>>6|192,t&63|128)}else if(t<65536){if((r-=3)<0)break;i.push(t>>12|224,t>>6&63|128,t&63|128)}else if(t<1114112){if((r-=4)<0)break;i.push(t>>18|240,t>>12&63|128,t>>6&63|128,t&63|128)}else{throw new Error(\"Invalid code point\")}}return i}function asciiToBytes(e){var r=[];for(var t=0;t<e.length;++t){r.push(e.charCodeAt(t)&255)}return r}function utf16leToBytes(e,r){var t,f,n;var i=[];for(var o=0;o<e.length;++o){if((r-=2)<0)break;t=e.charCodeAt(o);f=t>>8;n=t%256;i.push(n);i.push(f)}return i}function base64ToBytes(e){return f.toByteArray(base64clean(e))}function blitBuffer(e,r,t,f){for(var n=0;n<f;++n){if(n+t>=r.length||n>=e.length)break;r[n+t]=e[n]}return n}function isInstance(e,r){return e instanceof r||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===r.name}function numberIsNaN(e){return e!==e}var s=function(){var e=\"0123456789abcdef\";var r=new Array(256);for(var t=0;t<16;++t){var f=t*16;for(var n=0;n<16;++n){r[f+n]=e[t]+e[n]}}return r}()},783:function(e,r){\r\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\r\nr.read=function(e,r,t,f,n){var i,o;var u=n*8-f-1;var a=(1<<u)-1;var s=a>>1;var h=-7;var c=t?n-1:0;var l=t?-1:1;var p=e[r+c];c+=l;i=p&(1<<-h)-1;p>>=-h;h+=u;for(;h>0;i=i*256+e[r+c],c+=l,h-=8){}o=i&(1<<-h)-1;i>>=-h;h+=f;for(;h>0;o=o*256+e[r+c],c+=l,h-=8){}if(i===0){i=1-s}else if(i===a){return o?NaN:(p?-1:1)*Infinity}else{o=o+Math.pow(2,f);i=i-s}return(p?-1:1)*o*Math.pow(2,i-f)};r.write=function(e,r,t,f,n,i){var o,u,a;var s=i*8-n-1;var h=(1<<s)-1;var c=h>>1;var l=n===23?Math.pow(2,-24)-Math.pow(2,-77):0;var p=f?0:i-1;var y=f?1:-1;var g=r<0||r===0&&1/r<0?1:0;r=Math.abs(r);if(isNaN(r)||r===Infinity){u=isNaN(r)?1:0;o=h}else{o=Math.floor(Math.log(r)/Math.LN2);if(r*(a=Math.pow(2,-o))<1){o--;a*=2}if(o+c>=1){r+=l/a}else{r+=l*Math.pow(2,1-c)}if(r*a>=2){o++;a/=2}if(o+c>=h){u=0;o=h}else if(o+c>=1){u=(r*a-1)*Math.pow(2,n);o=o+c}else{u=r*Math.pow(2,c-1)*Math.pow(2,n);o=0}}for(;n>=8;e[t+p]=u&255,p+=y,u/=256,n-=8){}o=o<<n|u;s+=n;for(;s>0;e[t+p]=o&255,p+=y,o/=256,s-=8){}e[t+p-y]|=g*128}}};var r={};function __nccwpck_require__(t){var f=r[t];if(f!==undefined){return f.exports}var n=r[t]={exports:{}};var i=true;try{e[t](n,n.exports,__nccwpck_require__);i=false}finally{if(i)delete r[t]}return n.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t=__nccwpck_require__(72);module.exports=t})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvYnVmZmVyL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7QUFBQSxZQUFZLE9BQU8sa0JBQWtCLGFBQWEsd0JBQXdCLDBCQUEwQiw4QkFBOEIsU0FBUyxTQUFTLHVEQUF1RCx5RUFBeUUsdUJBQXVCLElBQUksS0FBSyxVQUFVLHFCQUFxQix3QkFBd0Isd0JBQXdCLG9CQUFvQixlQUFlLFVBQVUsa0VBQWtFLHFCQUFxQixjQUFjLG9CQUFvQixZQUFZLHVCQUF1QixpQkFBaUIsV0FBVyxXQUFXLGtCQUFrQiw0QkFBNEIsa0JBQWtCLHdCQUF3QixNQUFNLGlCQUFpQixXQUFXLFdBQVcsZ0NBQWdDLFFBQVEsZ0JBQWdCLE1BQU0sUUFBUSxJQUFJLE1BQU0sK0ZBQStGLGlCQUFpQixnQkFBZ0IsYUFBYSxVQUFVLGdEQUFnRCxhQUFhLFVBQVUseUVBQXlFLGdCQUFnQixhQUFhLFNBQVMsNEJBQTRCLGtEQUFrRCw0QkFBNEIsTUFBTSxTQUFTLFlBQVksSUFBSSxNQUFNLHFEQUFxRCwyQkFBMkIsa0JBQWtCLDBCQUEwQixNQUFNLGVBQWUsVUFBVSxTQUFTLFlBQVksa0JBQWtCLElBQUksTUFBTSxxQ0FBcUMsVUFBVSxTQUFTLGdDQUFnQyxlQUFlLHFCQUFxQiwyQ0FBMkMsbUJBQW1CLG9CQUFvQjtBQUM5ckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixhQUFhLCtHQUErRyxnQkFBZ0Isd0JBQXdCLHVCQUF1QixpQkFBaUIsZUFBZSwrQ0FBK0MsaUdBQWlHLGtLQUFrSyw2QkFBNkIsSUFBSSx3QkFBd0IsT0FBTyxlQUFlLFlBQVksOENBQThDLDJCQUEyQixvQkFBb0IsU0FBUyxjQUFjLGlEQUFpRCwrQkFBK0IsMkNBQTJDLG9CQUFvQixFQUFFLGlEQUFpRCwrQkFBK0IsMkNBQTJDLHdCQUF3QixFQUFFLHlCQUF5QixRQUFRLHVFQUF1RSx3QkFBd0IsMENBQTBDLFNBQVMsdUJBQXVCLHdCQUF3Qix3QkFBd0IsMEZBQTBGLHNCQUFzQixtQkFBbUIscUJBQXFCLHFCQUFxQix3QkFBd0IsdUJBQXVCLDBCQUEwQix3QkFBd0IsWUFBWSxtSkFBbUosbUVBQW1FLDhCQUE4Qix5SEFBeUgsOEJBQThCLHdCQUF3Qiw2RkFBNkYsNkJBQTZCLG1CQUFtQiwwQkFBMEIsb0JBQW9CLGNBQWMscUdBQXFHLHdEQUF3RCxtSkFBbUosNEJBQTRCLG9CQUFvQiw2REFBNkQseUNBQXlDLHVCQUF1Qix3QkFBd0IsOERBQThELGFBQWEsd0VBQXdFLHNCQUFzQixjQUFjLFNBQVMsdUJBQXVCLGtCQUFrQiw2RUFBNkUsdUJBQXVCLDZCQUE2QixxQkFBcUIsd0JBQXdCLGNBQWMsd0NBQXdDLCtCQUErQix1QkFBdUIsbUNBQW1DLHVCQUF1Qix5QkFBeUIsZ0NBQWdDLFNBQVMsMEJBQTBCLDRDQUE0Qyx3QkFBd0Isc0JBQXNCLG1CQUFtQixVQUFVLGVBQWUsU0FBUywwQkFBMEIsdUNBQXVDLHNCQUFzQixZQUFZLElBQUksTUFBTSxjQUFjLFNBQVMsZ0NBQWdDLHdCQUF3Qiw2REFBNkQsMEJBQTBCLDZEQUE2RCxNQUFNLGlDQUFpQyxvQkFBb0IsdUJBQXVCLHNCQUFzQixLQUFLLHdCQUF3QiwwQ0FBMEMsU0FBUyx1QkFBdUIsdUJBQXVCLDBCQUEwQixzQkFBc0IsaUJBQWlCLFNBQVMsZ0JBQWdCLFNBQVMseUJBQXlCLHNEQUFzRCx1QkFBdUIsd0JBQXdCLDZDQUE2Qyw4QkFBOEIsb0JBQW9CLFNBQVMsMkdBQTJHLFdBQVcsdUJBQXVCLFVBQVUsSUFBSSx3QkFBd0IscUNBQXFDLDBEQUEwRCxxQ0FBcUMsbUVBQW1FLG1FQUFtRSw2Q0FBNkMsNkZBQTZGLGtCQUFrQixlQUFlLGVBQWUsNEJBQTRCLElBQUksS0FBSyxnQkFBZ0IsT0FBTyxPQUFPLE9BQU8sZ0JBQWdCLGdCQUFnQixVQUFVLHlDQUF5QyxnQ0FBZ0Msb0pBQW9KLHVCQUF1QixtQ0FBbUMsc0JBQXNCLG1FQUFtRSxpQkFBaUIsdUJBQXVCLE1BQU0sa0JBQWtCLElBQUksUUFBUSxXQUFXLEtBQUssZ0JBQWdCLDRCQUE0QixRQUFRLFFBQVEsV0FBVyxLQUFLLFdBQVcsNkJBQTZCLGlCQUFpQix3QkFBd0IsbUVBQW1FLFlBQVksWUFBWSxVQUFVLHlCQUF5Qix1QkFBdUIsZ0JBQWdCLHFEQUFxRCxvQkFBb0Isd0JBQXdCLDRIQUE0SCxlQUFlLDhDQUE4QyxzQkFBc0IsWUFBWSxNQUFNLEVBQUUsVUFBVSwrQ0FBK0Msb0RBQW9ELCtEQUErRCx1QkFBdUIsNENBQTRDLGNBQWMsa0NBQWtDLHVCQUF1QixTQUFTLDZCQUE2Qiw2QkFBNkIsWUFBWSx1QkFBdUIsSUFBSSxrQkFBa0IsU0FBUyxpQ0FBaUMsY0FBYyxTQUFTLFNBQVMsT0FBTyxPQUFPLFNBQVMsU0FBUyxlQUFlLFlBQVksVUFBVSxvQ0FBb0Msa0RBQWtELHdDQUF3Qyx1REFBdUQsMENBQTBDLGtGQUFrRix5REFBeUQsdUJBQXVCLFNBQVMsZ0NBQWdDLHFCQUFxQixXQUFXLFVBQVUsT0FBTywwQ0FBMEMsa0JBQWtCLFlBQVksa0VBQWtFLFlBQVksSUFBSSxNQUFNLGlCQUFpQixhQUFhLDBDQUEwQyxrQkFBa0IsWUFBWSxrRUFBa0UsWUFBWSxJQUFJLE1BQU0saUJBQWlCLG1CQUFtQixhQUFhLDBDQUEwQyxrQkFBa0IsWUFBWSxrRUFBa0UsWUFBWSxJQUFJLE1BQU0saUJBQWlCLG1CQUFtQixtQkFBbUIsbUJBQW1CLGFBQWEsOENBQThDLGtCQUFrQixrQkFBa0IsbURBQW1ELDJDQUEyQywwREFBMEQsMkNBQTJDLHdFQUF3RSx3QkFBd0IsbUNBQW1DLDRDQUE0QyxTQUFTLDBCQUEwQix1Q0FBdUMsRUFBRSxrQkFBa0IsNEJBQTRCLHdCQUF3QixNQUFNLDZDQUE2QyxxREFBcUQsNkJBQTZCLHVDQUF1Qyx3QkFBd0Isa0hBQWtILGtCQUFrQixJQUFJLGtCQUFrQixlQUFlLGtCQUFrQixJQUFJLGtCQUFrQixjQUFjLHdDQUF3QywyQ0FBMkMsZUFBZSxTQUFTLFNBQVMsU0FBUyxTQUFTLFNBQVMsT0FBTyxPQUFPLE9BQU8sT0FBTyxxQkFBcUIsVUFBVSxVQUFVLG9CQUFvQixzQkFBc0IsbUJBQW1CLFlBQVksSUFBSSxLQUFLLGdCQUFnQixPQUFPLE9BQU8sT0FBTyxnQkFBZ0IsZ0JBQWdCLFVBQVUseUNBQXlDLHlCQUF5Qix3QkFBd0IsSUFBSSxJQUFJLHNCQUFzQixhQUFhLHVCQUF1QixjQUFjLEtBQUssbUJBQW1CLGlCQUFpQixvQkFBb0IsZ0JBQWdCLGNBQWMsa0JBQWtCLGFBQWEsU0FBUyxjQUFjLHdCQUF3QixtQkFBbUIsdUJBQXVCLGlCQUFpQixTQUFTLCtCQUErQiw2QkFBNkIsUUFBUSxxREFBcUQsTUFBTSxnREFBZ0QsS0FBSyxxREFBcUQsaUNBQWlDLDREQUE0RCxpQ0FBaUMsUUFBUSxlQUFlLGVBQWUsa0JBQWtCLDBCQUEwQiwyREFBMkQsMkJBQTJCLFNBQVMsSUFBSSxLQUFLLEtBQUssTUFBTSxtQkFBbUIsVUFBVSxZQUFZLEtBQUssNEJBQTRCLE1BQU0sTUFBTSxTQUFTLFFBQVEsSUFBSSxLQUFLLHFDQUFxQyxjQUFjLHdCQUF3QixLQUFLLGlCQUFpQixPQUFPLEtBQUssZUFBZSxRQUFRLEtBQUssS0FBSyxXQUFXLFlBQVksSUFBSSxLQUFLLDRCQUE0QixRQUFRLE9BQU8sZUFBZSxTQUFTLG1EQUFtRCxpQ0FBaUMsaURBQWlELDhDQUE4Qyx5REFBeUQsK0NBQStDLDJCQUEyQixlQUFlLGlCQUFpQixPQUFPLElBQUksS0FBSyxZQUFZLFFBQVEsS0FBSyxlQUFlLFVBQVUsTUFBTSxZQUFZLElBQUksS0FBSyxtQ0FBbUMsMkJBQTJCLFNBQVMsU0FBUyw0QkFBNEIsbURBQW1ELDZCQUE2Qix5Q0FBeUMsOEJBQThCLDJCQUEyQiw4QkFBOEIsMENBQTBDLDRCQUE0QixzREFBc0QsK0NBQStDLGtCQUFrQixTQUFTLGNBQWMsSUFBSSw0Q0FBNEMsSUFBSSxjQUFjLElBQUkscUJBQXFCLFFBQVEsZ0JBQWdCLFFBQVEsMEJBQTBCLEtBQUssSUFBSSxhQUFhLEtBQUssMkZBQTJGLG9CQUFvQiwwQkFBMEIsMENBQTBDLCtEQUErRCxlQUFlLFlBQVksTUFBTSxFQUFFLFVBQVUsc0NBQXNDLG9EQUFvRCwwQ0FBMEMseURBQXlELDRDQUE0QyxpRkFBaUYseURBQXlELHVCQUF1QixVQUFVLDBDQUEwQyxPQUFPLG1FQUFtRSw0QkFBNEIsd0JBQXdCLDBCQUEwQixLQUFLLHNDQUFzQywwQkFBMEIsdUJBQXVCLFNBQVMsUUFBUSxXQUFXLFdBQVcsV0FBVyxnQ0FBZ0MsV0FBVyxZQUFZLFVBQVUsaUJBQWlCLElBQUksTUFBTSxnQkFBZ0Isa0JBQWtCLGlCQUFpQixVQUFVLEtBQUssTUFBTSxnQkFBZ0IsU0FBUyxpQ0FBaUMsNEJBQTRCLCtCQUErQixLQUFLLE1BQU0sZ0JBQWdCLFNBQVMsU0FBUyxnREFBZ0QsdUNBQXVDLHVCQUF1QixPQUFPLGFBQWEsUUFBUSxJQUFJLGlCQUFpQixTQUFTLDBCQUEwQixlQUFlLFVBQVUsS0FBSyxnQ0FBZ0MsV0FBVyxrQ0FBa0MsZUFBZSxTQUFTLDJDQUEyQyxTQUFTLFFBQVEsV0FBVyxxREFBcUQsU0FBUywyQkFBMkIsU0FBUyx1QkFBdUIsWUFBWSxJQUFJLEtBQUssaUNBQWlDLFNBQVMsNEJBQTRCLFNBQVMsdUJBQXVCLFlBQVksSUFBSSxLQUFLLDZCQUE2QixTQUFTLHlCQUF5QixlQUFlLGVBQWUsb0JBQW9CLFNBQVMsWUFBWSxJQUFJLEtBQUssV0FBVyxTQUFTLDZCQUE2QixtQkFBbUIsU0FBUyxZQUFZLFdBQVcsTUFBTSx3Q0FBd0MsU0FBUywyQ0FBMkMsa0JBQWtCLE1BQU0sc0JBQXNCLFFBQVEsS0FBSyxXQUFXLGFBQWEsSUFBSSxRQUFRLEtBQUssV0FBVyxhQUFhLElBQUksV0FBVyx5QkFBeUIsMENBQTBDLFVBQVUsNEJBQTRCLDJEQUEyRCx1RUFBdUUsdURBQXVELFFBQVEsUUFBUSxtQ0FBbUMsY0FBYyxRQUFRLFFBQVEsdUJBQXVCLGVBQWUsVUFBVSx1REFBdUQsUUFBUSxRQUFRLE9BQU8sNkJBQTZCLGtCQUFrQixRQUFRLHFCQUFxQixpQkFBaUIsVUFBVSxtREFBbUQsUUFBUSxtQ0FBbUMsZ0JBQWdCLHlEQUF5RCxRQUFRLG1DQUFtQyw2QkFBNkIseURBQXlELFFBQVEsbUNBQW1DLDZCQUE2Qix5REFBeUQsUUFBUSxtQ0FBbUMsK0RBQStELHlEQUF5RCxRQUFRLG1DQUFtQyxnRUFBZ0UscURBQXFELFFBQVEsUUFBUSxtQ0FBbUMsY0FBYyxRQUFRLFFBQVEsdUJBQXVCLGVBQWUsT0FBTywyQkFBMkIsVUFBVSxxREFBcUQsUUFBUSxRQUFRLG1DQUFtQyxRQUFRLFFBQVEsa0JBQWtCLHFCQUFxQixpQkFBaUIsT0FBTywyQkFBMkIsVUFBVSxpREFBaUQsUUFBUSxtQ0FBbUMsaUNBQWlDLDBCQUEwQix1REFBdUQsUUFBUSxtQ0FBbUMsMkJBQTJCLCtCQUErQix1REFBdUQsUUFBUSxtQ0FBbUMsMkJBQTJCLCtCQUErQix1REFBdUQsUUFBUSxtQ0FBbUMseURBQXlELHVEQUF1RCxRQUFRLG1DQUFtQyx5REFBeUQsdURBQXVELFFBQVEsbUNBQW1DLGlDQUFpQyx1REFBdUQsUUFBUSxtQ0FBbUMsa0NBQWtDLHlEQUF5RCxRQUFRLG1DQUFtQyxpQ0FBaUMseURBQXlELFFBQVEsbUNBQW1DLGtDQUFrQywrQkFBK0IsMEZBQTBGLHNFQUFzRSwyREFBMkQsMkRBQTJELEtBQUssUUFBUSxRQUFRLE9BQU8sd0JBQXdCLHlCQUF5QixRQUFRLFFBQVEsY0FBYyx1QkFBdUIsa0JBQWtCLFlBQVksMkRBQTJELEtBQUssUUFBUSxRQUFRLE9BQU8sd0JBQXdCLHlCQUF5QixVQUFVLFFBQVEsZ0JBQWdCLHdCQUF3QixrQkFBa0IsWUFBWSx1REFBdUQsS0FBSyxRQUFRLGlDQUFpQyxjQUFjLFlBQVksNkRBQTZELEtBQUssUUFBUSxtQ0FBbUMsY0FBYyxnQkFBZ0IsWUFBWSw2REFBNkQsS0FBSyxRQUFRLG1DQUFtQyxjQUFjLGdCQUFnQixZQUFZLDZEQUE2RCxLQUFLLFFBQVEsd0NBQXdDLGlCQUFpQixpQkFBaUIsZ0JBQWdCLGNBQWMsWUFBWSw2REFBNkQsS0FBSyxRQUFRLHdDQUF3QyxlQUFlLGlCQUFpQixnQkFBZ0IsZ0JBQWdCLFlBQVkseURBQXlELEtBQUssUUFBUSxPQUFPLHdCQUF3Qiw0QkFBNEIsUUFBUSxRQUFRLFFBQVEsY0FBYyx1QkFBdUIsZ0NBQWdDLElBQUkseUJBQXlCLFlBQVkseURBQXlELEtBQUssUUFBUSxPQUFPLHdCQUF3Qiw0QkFBNEIsVUFBVSxRQUFRLFFBQVEsZ0JBQWdCLHdCQUF3QixnQ0FBZ0MsSUFBSSx5QkFBeUIsWUFBWSxxREFBcUQsS0FBSyxRQUFRLG9DQUFvQyxpQkFBaUIsY0FBYyxZQUFZLDJEQUEyRCxLQUFLLFFBQVEsd0NBQXdDLGNBQWMsZ0JBQWdCLFlBQVksMkRBQTJELEtBQUssUUFBUSx3Q0FBd0MsY0FBYyxnQkFBZ0IsWUFBWSwyREFBMkQsS0FBSyxRQUFRLGtEQUFrRCxjQUFjLGdCQUFnQixpQkFBaUIsaUJBQWlCLFlBQVksMkRBQTJELEtBQUssUUFBUSxrREFBa0Qsd0JBQXdCLGVBQWUsaUJBQWlCLGdCQUFnQixnQkFBZ0IsWUFBWSxtQ0FBbUMsMkRBQTJELGtEQUFrRCwrQkFBK0IsS0FBSyxRQUFRLE9BQU8saUVBQWlFLHNCQUFzQixXQUFXLDJEQUEyRCxvQ0FBb0MsMkRBQTJELHFDQUFxQyxnQ0FBZ0MsS0FBSyxRQUFRLE9BQU8sbUVBQW1FLHNCQUFzQixXQUFXLDZEQUE2RCxxQ0FBcUMsNkRBQTZELHNDQUFzQyw2Q0FBNkMsMEVBQTBFLFVBQVUsMkJBQTJCLDBCQUEwQixVQUFVLGdCQUFnQixrQkFBa0IsMENBQTBDLFFBQVEsa0RBQWtELGtFQUFrRSx1REFBdUQsK0JBQStCLG1CQUFtQixlQUFlLFVBQVUsa0VBQWtFLHVCQUF1Qiw0QkFBNEIsY0FBYyxLQUFLLEtBQUssa0JBQWtCLEtBQUssc0RBQXNELFVBQVUsNkNBQTZDLHdCQUF3Qix3QkFBd0IsSUFBSSxJQUFJLGNBQWMsNkJBQTZCLElBQUksY0FBYyx1Q0FBdUMsaURBQWlELCtDQUErQyw0Q0FBNEMsaUJBQWlCLHNCQUFzQixvQ0FBb0MsTUFBTSw2QkFBNkIsUUFBUSw4QkFBOEIsWUFBWSxzQ0FBc0MsMkNBQTJDLFNBQVMsWUFBWSxRQUFRLGtDQUFrQyxVQUFVLE1BQU0sd0JBQXdCLFFBQVEsSUFBSSxLQUFLLFdBQVcsS0FBSyw0Q0FBNEMsZUFBZSxVQUFVLHlFQUF5RSxRQUFRLE1BQU0sS0FBSyxrQkFBa0IsYUFBYSwwQkFBMEIsd0JBQXdCLGtCQUFrQix5QkFBeUIsdUJBQXVCLHNCQUFzQixRQUFRLFNBQVMsMEJBQTBCLGNBQWMsTUFBTSxlQUFlLFdBQVcsU0FBUyxZQUFZLElBQUksS0FBSyxrQkFBa0IscUJBQXFCLE9BQU8sWUFBWSxpQ0FBaUMsU0FBUyxpQkFBaUIsaUNBQWlDLFNBQVMsSUFBSSxTQUFTLFlBQVksaUNBQWlDLElBQUksU0FBUyw4QkFBOEIsV0FBVyxpQ0FBaUMsT0FBTyxVQUFVLGtCQUFrQixVQUFVLGdCQUFnQixrQkFBa0IsMEJBQTBCLGlCQUFpQixrQkFBa0IsdUNBQXVDLG1CQUFtQixrQkFBa0Isb0RBQW9ELEtBQUssdUNBQXVDLFNBQVMseUJBQXlCLFNBQVMsWUFBWSxXQUFXLEtBQUssNEJBQTRCLFNBQVMsNkJBQTZCLFVBQVUsU0FBUyxZQUFZLFdBQVcsS0FBSyxrQkFBa0Isa0JBQWtCLE9BQU8sUUFBUSxVQUFVLFVBQVUsU0FBUywwQkFBMEIscUNBQXFDLDZCQUE2QixZQUFZLElBQUksS0FBSyxvQ0FBb0MsWUFBWSxTQUFTLHlCQUF5QiwyR0FBMkcsd0JBQXdCLGFBQWEsaUJBQWlCLHlCQUF5QixxQkFBcUIsWUFBWSxLQUFLLEtBQUssV0FBVyxZQUFZLEtBQUssS0FBSyxrQkFBa0IsU0FBUyxHQUFHO0FBQ3p4dkI7QUFDQSwyQkFBMkIsUUFBUSxjQUFjLGVBQWUsV0FBVyxTQUFTLGNBQWMsYUFBYSxhQUFhLEtBQUssY0FBYyxPQUFPLEtBQUssS0FBSyxJQUFJLDJCQUEyQixjQUFjLE9BQU8sS0FBSyxLQUFLLElBQUksMkJBQTJCLFVBQVUsTUFBTSxlQUFlLCtCQUErQixLQUFLLGtCQUFrQixNQUFNLGtDQUFrQyw4QkFBOEIsVUFBVSxjQUFjLGVBQWUsV0FBVywrQ0FBK0MsY0FBYyxhQUFhLDRCQUE0QixjQUFjLDJCQUEyQixlQUFlLElBQUksS0FBSyxtQ0FBbUMsMkJBQTJCLElBQUksS0FBSyxXQUFXLE9BQU8sS0FBSyxxQkFBcUIsV0FBVyxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksZ0JBQWdCLHdCQUF3QixNQUFNLEtBQUssa0NBQWtDLEtBQUssS0FBSyxLQUFLLGdDQUFnQyxTQUFTLEtBQUssS0FBSyxJQUFJLGdDQUFnQyxtQkFBbUIsU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUksc0NBQXNDLFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLG1FQUFtRSxTQUFTLEtBQUssOEJBQThCLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2J1ZmZlci9pbmRleC5qcz9hYzNjIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe3ZhciBlPXs2NzU6ZnVuY3Rpb24oZSxyKXtcInVzZSBzdHJpY3RcIjtyLmJ5dGVMZW5ndGg9Ynl0ZUxlbmd0aDtyLnRvQnl0ZUFycmF5PXRvQnl0ZUFycmF5O3IuZnJvbUJ5dGVBcnJheT1mcm9tQnl0ZUFycmF5O3ZhciB0PVtdO3ZhciBmPVtdO3ZhciBuPXR5cGVvZiBVaW50OEFycmF5IT09XCJ1bmRlZmluZWRcIj9VaW50OEFycmF5OkFycmF5O3ZhciBpPVwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL1wiO2Zvcih2YXIgbz0wLHU9aS5sZW5ndGg7bzx1Oysrbyl7dFtvXT1pW29dO2ZbaS5jaGFyQ29kZUF0KG8pXT1vfWZbXCItXCIuY2hhckNvZGVBdCgwKV09NjI7ZltcIl9cIi5jaGFyQ29kZUF0KDApXT02MztmdW5jdGlvbiBnZXRMZW5zKGUpe3ZhciByPWUubGVuZ3RoO2lmKHIlND4wKXt0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0XCIpfXZhciB0PWUuaW5kZXhPZihcIj1cIik7aWYodD09PS0xKXQ9cjt2YXIgZj10PT09cj8wOjQtdCU0O3JldHVyblt0LGZdfWZ1bmN0aW9uIGJ5dGVMZW5ndGgoZSl7dmFyIHI9Z2V0TGVucyhlKTt2YXIgdD1yWzBdO3ZhciBmPXJbMV07cmV0dXJuKHQrZikqMy80LWZ9ZnVuY3Rpb24gX2J5dGVMZW5ndGgoZSxyLHQpe3JldHVybihyK3QpKjMvNC10fWZ1bmN0aW9uIHRvQnl0ZUFycmF5KGUpe3ZhciByO3ZhciB0PWdldExlbnMoZSk7dmFyIGk9dFswXTt2YXIgbz10WzFdO3ZhciB1PW5ldyBuKF9ieXRlTGVuZ3RoKGUsaSxvKSk7dmFyIGE9MDt2YXIgcz1vPjA/aS00Omk7dmFyIGg7Zm9yKGg9MDtoPHM7aCs9NCl7cj1mW2UuY2hhckNvZGVBdChoKV08PDE4fGZbZS5jaGFyQ29kZUF0KGgrMSldPDwxMnxmW2UuY2hhckNvZGVBdChoKzIpXTw8NnxmW2UuY2hhckNvZGVBdChoKzMpXTt1W2ErK109cj4+MTYmMjU1O3VbYSsrXT1yPj44JjI1NTt1W2ErK109ciYyNTV9aWYobz09PTIpe3I9ZltlLmNoYXJDb2RlQXQoaCldPDwyfGZbZS5jaGFyQ29kZUF0KGgrMSldPj40O3VbYSsrXT1yJjI1NX1pZihvPT09MSl7cj1mW2UuY2hhckNvZGVBdChoKV08PDEwfGZbZS5jaGFyQ29kZUF0KGgrMSldPDw0fGZbZS5jaGFyQ29kZUF0KGgrMildPj4yO3VbYSsrXT1yPj44JjI1NTt1W2ErK109ciYyNTV9cmV0dXJuIHV9ZnVuY3Rpb24gdHJpcGxldFRvQmFzZTY0KGUpe3JldHVybiB0W2U+PjE4JjYzXSt0W2U+PjEyJjYzXSt0W2U+PjYmNjNdK3RbZSY2M119ZnVuY3Rpb24gZW5jb2RlQ2h1bmsoZSxyLHQpe3ZhciBmO3ZhciBuPVtdO2Zvcih2YXIgaT1yO2k8dDtpKz0zKXtmPShlW2ldPDwxNiYxNjcxMTY4MCkrKGVbaSsxXTw8OCY2NTI4MCkrKGVbaSsyXSYyNTUpO24ucHVzaCh0cmlwbGV0VG9CYXNlNjQoZikpfXJldHVybiBuLmpvaW4oXCJcIil9ZnVuY3Rpb24gZnJvbUJ5dGVBcnJheShlKXt2YXIgcjt2YXIgZj1lLmxlbmd0aDt2YXIgbj1mJTM7dmFyIGk9W107dmFyIG89MTYzODM7Zm9yKHZhciB1PTAsYT1mLW47dTxhO3UrPW8pe2kucHVzaChlbmNvZGVDaHVuayhlLHUsdStvPmE/YTp1K28pKX1pZihuPT09MSl7cj1lW2YtMV07aS5wdXNoKHRbcj4+Ml0rdFtyPDw0JjYzXStcIj09XCIpfWVsc2UgaWYobj09PTIpe3I9KGVbZi0yXTw8OCkrZVtmLTFdO2kucHVzaCh0W3I+PjEwXSt0W3I+PjQmNjNdK3Rbcjw8MiY2M10rXCI9XCIpfXJldHVybiBpLmpvaW4oXCJcIil9fSw3MjpmdW5jdGlvbihlLHIsdCl7XCJ1c2Ugc3RyaWN0XCI7XHJcbi8qIVxyXG4gKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci5cclxuICpcclxuICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZz5cclxuICogQGxpY2Vuc2UgIE1JVFxyXG4gKi92YXIgZj10KDY3NSk7dmFyIG49dCg3ODMpO3ZhciBpPXR5cGVvZiBTeW1ib2w9PT1cImZ1bmN0aW9uXCImJnR5cGVvZiBTeW1ib2wuZm9yPT09XCJmdW5jdGlvblwiP1N5bWJvbC5mb3IoXCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbVwiKTpudWxsO3IuQnVmZmVyPUJ1ZmZlcjtyLlNsb3dCdWZmZXI9U2xvd0J1ZmZlcjtyLklOU1BFQ1RfTUFYX0JZVEVTPTUwO3ZhciBvPTIxNDc0ODM2NDc7ci5rTWF4TGVuZ3RoPW87QnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQ9dHlwZWRBcnJheVN1cHBvcnQoKTtpZighQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQmJnR5cGVvZiBjb25zb2xlIT09XCJ1bmRlZmluZWRcIiYmdHlwZW9mIGNvbnNvbGUuZXJyb3I9PT1cImZ1bmN0aW9uXCIpe2NvbnNvbGUuZXJyb3IoXCJUaGlzIGJyb3dzZXIgbGFja3MgdHlwZWQgYXJyYXkgKFVpbnQ4QXJyYXkpIHN1cHBvcnQgd2hpY2ggaXMgcmVxdWlyZWQgYnkgXCIrXCJgYnVmZmVyYCB2NS54LiBVc2UgYGJ1ZmZlcmAgdjQueCBpZiB5b3UgcmVxdWlyZSBvbGQgYnJvd3NlciBzdXBwb3J0LlwiKX1mdW5jdGlvbiB0eXBlZEFycmF5U3VwcG9ydCgpe3RyeXt2YXIgZT1uZXcgVWludDhBcnJheSgxKTt2YXIgcj17Zm9vOmZ1bmN0aW9uKCl7cmV0dXJuIDQyfX07T2JqZWN0LnNldFByb3RvdHlwZU9mKHIsVWludDhBcnJheS5wcm90b3R5cGUpO09iamVjdC5zZXRQcm90b3R5cGVPZihlLHIpO3JldHVybiBlLmZvbygpPT09NDJ9Y2F0Y2goZSl7cmV0dXJuIGZhbHNlfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoQnVmZmVyLnByb3RvdHlwZSxcInBhcmVudFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7aWYoIUJ1ZmZlci5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdW5kZWZpbmVkO3JldHVybiB0aGlzLmJ1ZmZlcn19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoQnVmZmVyLnByb3RvdHlwZSxcIm9mZnNldFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7aWYoIUJ1ZmZlci5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdW5kZWZpbmVkO3JldHVybiB0aGlzLmJ5dGVPZmZzZXR9fSk7ZnVuY3Rpb24gY3JlYXRlQnVmZmVyKGUpe2lmKGU+byl7dGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBcIicrZSsnXCIgaXMgaW52YWxpZCBmb3Igb3B0aW9uIFwic2l6ZVwiJyl9dmFyIHI9bmV3IFVpbnQ4QXJyYXkoZSk7T2JqZWN0LnNldFByb3RvdHlwZU9mKHIsQnVmZmVyLnByb3RvdHlwZSk7cmV0dXJuIHJ9ZnVuY3Rpb24gQnVmZmVyKGUscix0KXtpZih0eXBlb2YgZT09PVwibnVtYmVyXCIpe2lmKHR5cGVvZiByPT09XCJzdHJpbmdcIil7dGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwic3RyaW5nXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZy4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKX1yZXR1cm4gYWxsb2NVbnNhZmUoZSl9cmV0dXJuIGZyb20oZSxyLHQpfUJ1ZmZlci5wb29sU2l6ZT04MTkyO2Z1bmN0aW9uIGZyb20oZSxyLHQpe2lmKHR5cGVvZiBlPT09XCJzdHJpbmdcIil7cmV0dXJuIGZyb21TdHJpbmcoZSxyKX1pZihBcnJheUJ1ZmZlci5pc1ZpZXcoZSkpe3JldHVybiBmcm9tQXJyYXlMaWtlKGUpfWlmKGU9PW51bGwpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBcIitcIm9yIEFycmF5LWxpa2UgT2JqZWN0LiBSZWNlaXZlZCB0eXBlIFwiK3R5cGVvZiBlKX1pZihpc0luc3RhbmNlKGUsQXJyYXlCdWZmZXIpfHxlJiZpc0luc3RhbmNlKGUuYnVmZmVyLEFycmF5QnVmZmVyKSl7cmV0dXJuIGZyb21BcnJheUJ1ZmZlcihlLHIsdCl9aWYodHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyIT09XCJ1bmRlZmluZWRcIiYmKGlzSW5zdGFuY2UoZSxTaGFyZWRBcnJheUJ1ZmZlcil8fGUmJmlzSW5zdGFuY2UoZS5idWZmZXIsU2hhcmVkQXJyYXlCdWZmZXIpKSl7cmV0dXJuIGZyb21BcnJheUJ1ZmZlcihlLHIsdCl9aWYodHlwZW9mIGU9PT1cIm51bWJlclwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJ2YWx1ZVwiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlIG51bWJlcicpfXZhciBmPWUudmFsdWVPZiYmZS52YWx1ZU9mKCk7aWYoZiE9bnVsbCYmZiE9PWUpe3JldHVybiBCdWZmZXIuZnJvbShmLHIsdCl9dmFyIG49ZnJvbU9iamVjdChlKTtpZihuKXJldHVybiBuO2lmKHR5cGVvZiBTeW1ib2whPT1cInVuZGVmaW5lZFwiJiZTeW1ib2wudG9QcmltaXRpdmUhPW51bGwmJnR5cGVvZiBlW1N5bWJvbC50b1ByaW1pdGl2ZV09PT1cImZ1bmN0aW9uXCIpe3JldHVybiBCdWZmZXIuZnJvbShlW1N5bWJvbC50b1ByaW1pdGl2ZV0oXCJzdHJpbmdcIikscix0KX10aHJvdyBuZXcgVHlwZUVycm9yKFwiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgXCIrXCJvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSBcIit0eXBlb2YgZSl9QnVmZmVyLmZyb209ZnVuY3Rpb24oZSxyLHQpe3JldHVybiBmcm9tKGUscix0KX07T2JqZWN0LnNldFByb3RvdHlwZU9mKEJ1ZmZlci5wcm90b3R5cGUsVWludDhBcnJheS5wcm90b3R5cGUpO09iamVjdC5zZXRQcm90b3R5cGVPZihCdWZmZXIsVWludDhBcnJheSk7ZnVuY3Rpb24gYXNzZXJ0U2l6ZShlKXtpZih0eXBlb2YgZSE9PVwibnVtYmVyXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ1wic2l6ZVwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXInKX1lbHNlIGlmKGU8MCl7dGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBcIicrZSsnXCIgaXMgaW52YWxpZCBmb3Igb3B0aW9uIFwic2l6ZVwiJyl9fWZ1bmN0aW9uIGFsbG9jKGUscix0KXthc3NlcnRTaXplKGUpO2lmKGU8PTApe3JldHVybiBjcmVhdGVCdWZmZXIoZSl9aWYociE9PXVuZGVmaW5lZCl7cmV0dXJuIHR5cGVvZiB0PT09XCJzdHJpbmdcIj9jcmVhdGVCdWZmZXIoZSkuZmlsbChyLHQpOmNyZWF0ZUJ1ZmZlcihlKS5maWxsKHIpfXJldHVybiBjcmVhdGVCdWZmZXIoZSl9QnVmZmVyLmFsbG9jPWZ1bmN0aW9uKGUscix0KXtyZXR1cm4gYWxsb2MoZSxyLHQpfTtmdW5jdGlvbiBhbGxvY1Vuc2FmZShlKXthc3NlcnRTaXplKGUpO3JldHVybiBjcmVhdGVCdWZmZXIoZTwwPzA6Y2hlY2tlZChlKXwwKX1CdWZmZXIuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFsbG9jVW5zYWZlKGUpfTtCdWZmZXIuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKGUpe3JldHVybiBhbGxvY1Vuc2FmZShlKX07ZnVuY3Rpb24gZnJvbVN0cmluZyhlLHIpe2lmKHR5cGVvZiByIT09XCJzdHJpbmdcInx8cj09PVwiXCIpe3I9XCJ1dGY4XCJ9aWYoIUJ1ZmZlci5pc0VuY29kaW5nKHIpKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiVW5rbm93biBlbmNvZGluZzogXCIrcil9dmFyIHQ9Ynl0ZUxlbmd0aChlLHIpfDA7dmFyIGY9Y3JlYXRlQnVmZmVyKHQpO3ZhciBuPWYud3JpdGUoZSxyKTtpZihuIT09dCl7Zj1mLnNsaWNlKDAsbil9cmV0dXJuIGZ9ZnVuY3Rpb24gZnJvbUFycmF5TGlrZShlKXt2YXIgcj1lLmxlbmd0aDwwPzA6Y2hlY2tlZChlLmxlbmd0aCl8MDt2YXIgdD1jcmVhdGVCdWZmZXIocik7Zm9yKHZhciBmPTA7ZjxyO2YrPTEpe3RbZl09ZVtmXSYyNTV9cmV0dXJuIHR9ZnVuY3Rpb24gZnJvbUFycmF5QnVmZmVyKGUscix0KXtpZihyPDB8fGUuYnl0ZUxlbmd0aDxyKXt0aHJvdyBuZXcgUmFuZ2VFcnJvcignXCJvZmZzZXRcIiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKX1pZihlLmJ5dGVMZW5ndGg8cisodHx8MCkpe3Rocm93IG5ldyBSYW5nZUVycm9yKCdcImxlbmd0aFwiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpfXZhciBmO2lmKHI9PT11bmRlZmluZWQmJnQ9PT11bmRlZmluZWQpe2Y9bmV3IFVpbnQ4QXJyYXkoZSl9ZWxzZSBpZih0PT09dW5kZWZpbmVkKXtmPW5ldyBVaW50OEFycmF5KGUscil9ZWxzZXtmPW5ldyBVaW50OEFycmF5KGUscix0KX1PYmplY3Quc2V0UHJvdG90eXBlT2YoZixCdWZmZXIucHJvdG90eXBlKTtyZXR1cm4gZn1mdW5jdGlvbiBmcm9tT2JqZWN0KGUpe2lmKEJ1ZmZlci5pc0J1ZmZlcihlKSl7dmFyIHI9Y2hlY2tlZChlLmxlbmd0aCl8MDt2YXIgdD1jcmVhdGVCdWZmZXIocik7aWYodC5sZW5ndGg9PT0wKXtyZXR1cm4gdH1lLmNvcHkodCwwLDAscik7cmV0dXJuIHR9aWYoZS5sZW5ndGghPT11bmRlZmluZWQpe2lmKHR5cGVvZiBlLmxlbmd0aCE9PVwibnVtYmVyXCJ8fG51bWJlcklzTmFOKGUubGVuZ3RoKSl7cmV0dXJuIGNyZWF0ZUJ1ZmZlcigwKX1yZXR1cm4gZnJvbUFycmF5TGlrZShlKX1pZihlLnR5cGU9PT1cIkJ1ZmZlclwiJiZBcnJheS5pc0FycmF5KGUuZGF0YSkpe3JldHVybiBmcm9tQXJyYXlMaWtlKGUuZGF0YSl9fWZ1bmN0aW9uIGNoZWNrZWQoZSl7aWYoZT49byl7dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIFwiK1wic2l6ZTogMHhcIitvLnRvU3RyaW5nKDE2KStcIiBieXRlc1wiKX1yZXR1cm4gZXwwfWZ1bmN0aW9uIFNsb3dCdWZmZXIoZSl7aWYoK2UhPWUpe2U9MH1yZXR1cm4gQnVmZmVyLmFsbG9jKCtlKX1CdWZmZXIuaXNCdWZmZXI9ZnVuY3Rpb24gaXNCdWZmZXIoZSl7cmV0dXJuIGUhPW51bGwmJmUuX2lzQnVmZmVyPT09dHJ1ZSYmZSE9PUJ1ZmZlci5wcm90b3R5cGV9O0J1ZmZlci5jb21wYXJlPWZ1bmN0aW9uIGNvbXBhcmUoZSxyKXtpZihpc0luc3RhbmNlKGUsVWludDhBcnJheSkpZT1CdWZmZXIuZnJvbShlLGUub2Zmc2V0LGUuYnl0ZUxlbmd0aCk7aWYoaXNJbnN0YW5jZShyLFVpbnQ4QXJyYXkpKXI9QnVmZmVyLmZyb20ocixyLm9mZnNldCxyLmJ5dGVMZW5ndGgpO2lmKCFCdWZmZXIuaXNCdWZmZXIoZSl8fCFCdWZmZXIuaXNCdWZmZXIocikpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImJ1ZjFcIiwgXCJidWYyXCIgYXJndW1lbnRzIG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKX1pZihlPT09cilyZXR1cm4gMDt2YXIgdD1lLmxlbmd0aDt2YXIgZj1yLmxlbmd0aDtmb3IodmFyIG49MCxpPU1hdGgubWluKHQsZik7bjxpOysrbil7aWYoZVtuXSE9PXJbbl0pe3Q9ZVtuXTtmPXJbbl07YnJlYWt9fWlmKHQ8ZilyZXR1cm4tMTtpZihmPHQpcmV0dXJuIDE7cmV0dXJuIDB9O0J1ZmZlci5pc0VuY29kaW5nPWZ1bmN0aW9uIGlzRW5jb2RpbmcoZSl7c3dpdGNoKFN0cmluZyhlKS50b0xvd2VyQ2FzZSgpKXtjYXNlXCJoZXhcIjpjYXNlXCJ1dGY4XCI6Y2FzZVwidXRmLThcIjpjYXNlXCJhc2NpaVwiOmNhc2VcImxhdGluMVwiOmNhc2VcImJpbmFyeVwiOmNhc2VcImJhc2U2NFwiOmNhc2VcInVjczJcIjpjYXNlXCJ1Y3MtMlwiOmNhc2VcInV0ZjE2bGVcIjpjYXNlXCJ1dGYtMTZsZVwiOnJldHVybiB0cnVlO2RlZmF1bHQ6cmV0dXJuIGZhbHNlfX07QnVmZmVyLmNvbmNhdD1mdW5jdGlvbiBjb25jYXQoZSxyKXtpZighQXJyYXkuaXNBcnJheShlKSl7dGhyb3cgbmV3IFR5cGVFcnJvcignXCJsaXN0XCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyl9aWYoZS5sZW5ndGg9PT0wKXtyZXR1cm4gQnVmZmVyLmFsbG9jKDApfXZhciB0O2lmKHI9PT11bmRlZmluZWQpe3I9MDtmb3IodD0wO3Q8ZS5sZW5ndGg7Kyt0KXtyKz1lW3RdLmxlbmd0aH19dmFyIGY9QnVmZmVyLmFsbG9jVW5zYWZlKHIpO3ZhciBuPTA7Zm9yKHQ9MDt0PGUubGVuZ3RoOysrdCl7dmFyIGk9ZVt0XTtpZihpc0luc3RhbmNlKGksVWludDhBcnJheSkpe2k9QnVmZmVyLmZyb20oaSl9aWYoIUJ1ZmZlci5pc0J1ZmZlcihpKSl7dGhyb3cgbmV3IFR5cGVFcnJvcignXCJsaXN0XCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyl9aS5jb3B5KGYsbik7bis9aS5sZW5ndGh9cmV0dXJuIGZ9O2Z1bmN0aW9uIGJ5dGVMZW5ndGgoZSxyKXtpZihCdWZmZXIuaXNCdWZmZXIoZSkpe3JldHVybiBlLmxlbmd0aH1pZihBcnJheUJ1ZmZlci5pc1ZpZXcoZSl8fGlzSW5zdGFuY2UoZSxBcnJheUJ1ZmZlcikpe3JldHVybiBlLmJ5dGVMZW5ndGh9aWYodHlwZW9mIGUhPT1cInN0cmluZ1wiKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJzdHJpbmdcIiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBvciBBcnJheUJ1ZmZlci4gJytcIlJlY2VpdmVkIHR5cGUgXCIrdHlwZW9mIGUpfXZhciB0PWUubGVuZ3RoO3ZhciBmPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdPT09dHJ1ZTtpZighZiYmdD09PTApcmV0dXJuIDA7dmFyIG49ZmFsc2U7Zm9yKDs7KXtzd2l0Y2gocil7Y2FzZVwiYXNjaWlcIjpjYXNlXCJsYXRpbjFcIjpjYXNlXCJiaW5hcnlcIjpyZXR1cm4gdDtjYXNlXCJ1dGY4XCI6Y2FzZVwidXRmLThcIjpyZXR1cm4gdXRmOFRvQnl0ZXMoZSkubGVuZ3RoO2Nhc2VcInVjczJcIjpjYXNlXCJ1Y3MtMlwiOmNhc2VcInV0ZjE2bGVcIjpjYXNlXCJ1dGYtMTZsZVwiOnJldHVybiB0KjI7Y2FzZVwiaGV4XCI6cmV0dXJuIHQ+Pj4xO2Nhc2VcImJhc2U2NFwiOnJldHVybiBiYXNlNjRUb0J5dGVzKGUpLmxlbmd0aDtkZWZhdWx0OmlmKG4pe3JldHVybiBmPy0xOnV0ZjhUb0J5dGVzKGUpLmxlbmd0aH1yPShcIlwiK3IpLnRvTG93ZXJDYXNlKCk7bj10cnVlfX19QnVmZmVyLmJ5dGVMZW5ndGg9Ynl0ZUxlbmd0aDtmdW5jdGlvbiBzbG93VG9TdHJpbmcoZSxyLHQpe3ZhciBmPWZhbHNlO2lmKHI9PT11bmRlZmluZWR8fHI8MCl7cj0wfWlmKHI+dGhpcy5sZW5ndGgpe3JldHVyblwiXCJ9aWYodD09PXVuZGVmaW5lZHx8dD50aGlzLmxlbmd0aCl7dD10aGlzLmxlbmd0aH1pZih0PD0wKXtyZXR1cm5cIlwifXQ+Pj49MDtyPj4+PTA7aWYodDw9cil7cmV0dXJuXCJcIn1pZighZSllPVwidXRmOFwiO3doaWxlKHRydWUpe3N3aXRjaChlKXtjYXNlXCJoZXhcIjpyZXR1cm4gaGV4U2xpY2UodGhpcyxyLHQpO2Nhc2VcInV0ZjhcIjpjYXNlXCJ1dGYtOFwiOnJldHVybiB1dGY4U2xpY2UodGhpcyxyLHQpO2Nhc2VcImFzY2lpXCI6cmV0dXJuIGFzY2lpU2xpY2UodGhpcyxyLHQpO2Nhc2VcImxhdGluMVwiOmNhc2VcImJpbmFyeVwiOnJldHVybiBsYXRpbjFTbGljZSh0aGlzLHIsdCk7Y2FzZVwiYmFzZTY0XCI6cmV0dXJuIGJhc2U2NFNsaWNlKHRoaXMscix0KTtjYXNlXCJ1Y3MyXCI6Y2FzZVwidWNzLTJcIjpjYXNlXCJ1dGYxNmxlXCI6Y2FzZVwidXRmLTE2bGVcIjpyZXR1cm4gdXRmMTZsZVNsaWNlKHRoaXMscix0KTtkZWZhdWx0OmlmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlVua25vd24gZW5jb2Rpbmc6IFwiK2UpO2U9KGUrXCJcIikudG9Mb3dlckNhc2UoKTtmPXRydWV9fX1CdWZmZXIucHJvdG90eXBlLl9pc0J1ZmZlcj10cnVlO2Z1bmN0aW9uIHN3YXAoZSxyLHQpe3ZhciBmPWVbcl07ZVtyXT1lW3RdO2VbdF09Zn1CdWZmZXIucHJvdG90eXBlLnN3YXAxNj1mdW5jdGlvbiBzd2FwMTYoKXt2YXIgZT10aGlzLmxlbmd0aDtpZihlJTIhPT0wKXt0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNi1iaXRzXCIpfWZvcih2YXIgcj0wO3I8ZTtyKz0yKXtzd2FwKHRoaXMscixyKzEpfXJldHVybiB0aGlzfTtCdWZmZXIucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbiBzd2FwMzIoKXt2YXIgZT10aGlzLmxlbmd0aDtpZihlJTQhPT0wKXt0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzMi1iaXRzXCIpfWZvcih2YXIgcj0wO3I8ZTtyKz00KXtzd2FwKHRoaXMscixyKzMpO3N3YXAodGhpcyxyKzEscisyKX1yZXR1cm4gdGhpc307QnVmZmVyLnByb3RvdHlwZS5zd2FwNjQ9ZnVuY3Rpb24gc3dhcDY0KCl7dmFyIGU9dGhpcy5sZW5ndGg7aWYoZSU4IT09MCl7dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQtYml0c1wiKX1mb3IodmFyIHI9MDtyPGU7cis9OCl7c3dhcCh0aGlzLHIscis3KTtzd2FwKHRoaXMscisxLHIrNik7c3dhcCh0aGlzLHIrMixyKzUpO3N3YXAodGhpcyxyKzMscis0KX1yZXR1cm4gdGhpc307QnVmZmVyLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbiB0b1N0cmluZygpe3ZhciBlPXRoaXMubGVuZ3RoO2lmKGU9PT0wKXJldHVyblwiXCI7aWYoYXJndW1lbnRzLmxlbmd0aD09PTApcmV0dXJuIHV0ZjhTbGljZSh0aGlzLDAsZSk7cmV0dXJuIHNsb3dUb1N0cmluZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O0J1ZmZlci5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmc9QnVmZmVyLnByb3RvdHlwZS50b1N0cmluZztCdWZmZXIucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbiBlcXVhbHMoZSl7aWYoIUJ1ZmZlci5pc0J1ZmZlcihlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlclwiKTtpZih0aGlzPT09ZSlyZXR1cm4gdHJ1ZTtyZXR1cm4gQnVmZmVyLmNvbXBhcmUodGhpcyxlKT09PTB9O0J1ZmZlci5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbiBpbnNwZWN0KCl7dmFyIGU9XCJcIjt2YXIgdD1yLklOU1BFQ1RfTUFYX0JZVEVTO2U9dGhpcy50b1N0cmluZyhcImhleFwiLDAsdCkucmVwbGFjZSgvKC57Mn0pL2csXCIkMSBcIikudHJpbSgpO2lmKHRoaXMubGVuZ3RoPnQpZSs9XCIgLi4uIFwiO3JldHVyblwiPEJ1ZmZlciBcIitlK1wiPlwifTtpZihpKXtCdWZmZXIucHJvdG90eXBlW2ldPUJ1ZmZlci5wcm90b3R5cGUuaW5zcGVjdH1CdWZmZXIucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24gY29tcGFyZShlLHIsdCxmLG4pe2lmKGlzSW5zdGFuY2UoZSxVaW50OEFycmF5KSl7ZT1CdWZmZXIuZnJvbShlLGUub2Zmc2V0LGUuYnl0ZUxlbmd0aCl9aWYoIUJ1ZmZlci5pc0J1ZmZlcihlKSl7dGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwidGFyZ2V0XCIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheS4gJytcIlJlY2VpdmVkIHR5cGUgXCIrdHlwZW9mIGUpfWlmKHI9PT11bmRlZmluZWQpe3I9MH1pZih0PT09dW5kZWZpbmVkKXt0PWU/ZS5sZW5ndGg6MH1pZihmPT09dW5kZWZpbmVkKXtmPTB9aWYobj09PXVuZGVmaW5lZCl7bj10aGlzLmxlbmd0aH1pZihyPDB8fHQ+ZS5sZW5ndGh8fGY8MHx8bj50aGlzLmxlbmd0aCl7dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJvdXQgb2YgcmFuZ2UgaW5kZXhcIil9aWYoZj49biYmcj49dCl7cmV0dXJuIDB9aWYoZj49bil7cmV0dXJuLTF9aWYocj49dCl7cmV0dXJuIDF9cj4+Pj0wO3Q+Pj49MDtmPj4+PTA7bj4+Pj0wO2lmKHRoaXM9PT1lKXJldHVybiAwO3ZhciBpPW4tZjt2YXIgbz10LXI7dmFyIHU9TWF0aC5taW4oaSxvKTt2YXIgYT10aGlzLnNsaWNlKGYsbik7dmFyIHM9ZS5zbGljZShyLHQpO2Zvcih2YXIgaD0wO2g8dTsrK2gpe2lmKGFbaF0hPT1zW2hdKXtpPWFbaF07bz1zW2hdO2JyZWFrfX1pZihpPG8pcmV0dXJuLTE7aWYobzxpKXJldHVybiAxO3JldHVybiAwfTtmdW5jdGlvbiBiaWRpcmVjdGlvbmFsSW5kZXhPZihlLHIsdCxmLG4pe2lmKGUubGVuZ3RoPT09MClyZXR1cm4tMTtpZih0eXBlb2YgdD09PVwic3RyaW5nXCIpe2Y9dDt0PTB9ZWxzZSBpZih0PjIxNDc0ODM2NDcpe3Q9MjE0NzQ4MzY0N31lbHNlIGlmKHQ8LTIxNDc0ODM2NDgpe3Q9LTIxNDc0ODM2NDh9dD0rdDtpZihudW1iZXJJc05hTih0KSl7dD1uPzA6ZS5sZW5ndGgtMX1pZih0PDApdD1lLmxlbmd0aCt0O2lmKHQ+PWUubGVuZ3RoKXtpZihuKXJldHVybi0xO2Vsc2UgdD1lLmxlbmd0aC0xfWVsc2UgaWYodDwwKXtpZihuKXQ9MDtlbHNlIHJldHVybi0xfWlmKHR5cGVvZiByPT09XCJzdHJpbmdcIil7cj1CdWZmZXIuZnJvbShyLGYpfWlmKEJ1ZmZlci5pc0J1ZmZlcihyKSl7aWYoci5sZW5ndGg9PT0wKXtyZXR1cm4tMX1yZXR1cm4gYXJyYXlJbmRleE9mKGUscix0LGYsbil9ZWxzZSBpZih0eXBlb2Ygcj09PVwibnVtYmVyXCIpe3I9ciYyNTU7aWYodHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2Y9PT1cImZ1bmN0aW9uXCIpe2lmKG4pe3JldHVybiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoZSxyLHQpfWVsc2V7cmV0dXJuIFVpbnQ4QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoZSxyLHQpfX1yZXR1cm4gYXJyYXlJbmRleE9mKGUsW3JdLHQsZixuKX10aHJvdyBuZXcgVHlwZUVycm9yKFwidmFsIG11c3QgYmUgc3RyaW5nLCBudW1iZXIgb3IgQnVmZmVyXCIpfWZ1bmN0aW9uIGFycmF5SW5kZXhPZihlLHIsdCxmLG4pe3ZhciBpPTE7dmFyIG89ZS5sZW5ndGg7dmFyIHU9ci5sZW5ndGg7aWYoZiE9PXVuZGVmaW5lZCl7Zj1TdHJpbmcoZikudG9Mb3dlckNhc2UoKTtpZihmPT09XCJ1Y3MyXCJ8fGY9PT1cInVjcy0yXCJ8fGY9PT1cInV0ZjE2bGVcInx8Zj09PVwidXRmLTE2bGVcIil7aWYoZS5sZW5ndGg8Mnx8ci5sZW5ndGg8Mil7cmV0dXJuLTF9aT0yO28vPTI7dS89Mjt0Lz0yfX1mdW5jdGlvbiByZWFkKGUscil7aWYoaT09PTEpe3JldHVybiBlW3JdfWVsc2V7cmV0dXJuIGUucmVhZFVJbnQxNkJFKHIqaSl9fXZhciBhO2lmKG4pe3ZhciBzPS0xO2ZvcihhPXQ7YTxvO2ErKyl7aWYocmVhZChlLGEpPT09cmVhZChyLHM9PT0tMT8wOmEtcykpe2lmKHM9PT0tMSlzPWE7aWYoYS1zKzE9PT11KXJldHVybiBzKml9ZWxzZXtpZihzIT09LTEpYS09YS1zO3M9LTF9fX1lbHNle2lmKHQrdT5vKXQ9by11O2ZvcihhPXQ7YT49MDthLS0pe3ZhciBoPXRydWU7Zm9yKHZhciBjPTA7Yzx1O2MrKyl7aWYocmVhZChlLGErYykhPT1yZWFkKHIsYykpe2g9ZmFsc2U7YnJlYWt9fWlmKGgpcmV0dXJuIGF9fXJldHVybi0xfUJ1ZmZlci5wcm90b3R5cGUuaW5jbHVkZXM9ZnVuY3Rpb24gaW5jbHVkZXMoZSxyLHQpe3JldHVybiB0aGlzLmluZGV4T2YoZSxyLHQpIT09LTF9O0J1ZmZlci5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbiBpbmRleE9mKGUscix0KXtyZXR1cm4gYmlkaXJlY3Rpb25hbEluZGV4T2YodGhpcyxlLHIsdCx0cnVlKX07QnVmZmVyLnByb3RvdHlwZS5sYXN0SW5kZXhPZj1mdW5jdGlvbiBsYXN0SW5kZXhPZihlLHIsdCl7cmV0dXJuIGJpZGlyZWN0aW9uYWxJbmRleE9mKHRoaXMsZSxyLHQsZmFsc2UpfTtmdW5jdGlvbiBoZXhXcml0ZShlLHIsdCxmKXt0PU51bWJlcih0KXx8MDt2YXIgbj1lLmxlbmd0aC10O2lmKCFmKXtmPW59ZWxzZXtmPU51bWJlcihmKTtpZihmPm4pe2Y9bn19dmFyIGk9ci5sZW5ndGg7aWYoZj5pLzIpe2Y9aS8yfWZvcih2YXIgbz0wO288ZjsrK28pe3ZhciB1PXBhcnNlSW50KHIuc3Vic3RyKG8qMiwyKSwxNik7aWYobnVtYmVySXNOYU4odSkpcmV0dXJuIG87ZVt0K29dPXV9cmV0dXJuIG99ZnVuY3Rpb24gdXRmOFdyaXRlKGUscix0LGYpe3JldHVybiBibGl0QnVmZmVyKHV0ZjhUb0J5dGVzKHIsZS5sZW5ndGgtdCksZSx0LGYpfWZ1bmN0aW9uIGFzY2lpV3JpdGUoZSxyLHQsZil7cmV0dXJuIGJsaXRCdWZmZXIoYXNjaWlUb0J5dGVzKHIpLGUsdCxmKX1mdW5jdGlvbiBsYXRpbjFXcml0ZShlLHIsdCxmKXtyZXR1cm4gYXNjaWlXcml0ZShlLHIsdCxmKX1mdW5jdGlvbiBiYXNlNjRXcml0ZShlLHIsdCxmKXtyZXR1cm4gYmxpdEJ1ZmZlcihiYXNlNjRUb0J5dGVzKHIpLGUsdCxmKX1mdW5jdGlvbiB1Y3MyV3JpdGUoZSxyLHQsZil7cmV0dXJuIGJsaXRCdWZmZXIodXRmMTZsZVRvQnl0ZXMocixlLmxlbmd0aC10KSxlLHQsZil9QnVmZmVyLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbiB3cml0ZShlLHIsdCxmKXtpZihyPT09dW5kZWZpbmVkKXtmPVwidXRmOFwiO3Q9dGhpcy5sZW5ndGg7cj0wfWVsc2UgaWYodD09PXVuZGVmaW5lZCYmdHlwZW9mIHI9PT1cInN0cmluZ1wiKXtmPXI7dD10aGlzLmxlbmd0aDtyPTB9ZWxzZSBpZihpc0Zpbml0ZShyKSl7cj1yPj4+MDtpZihpc0Zpbml0ZSh0KSl7dD10Pj4+MDtpZihmPT09dW5kZWZpbmVkKWY9XCJ1dGY4XCJ9ZWxzZXtmPXQ7dD11bmRlZmluZWR9fWVsc2V7dGhyb3cgbmV3IEVycm9yKFwiQnVmZmVyLndyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWRcIil9dmFyIG49dGhpcy5sZW5ndGgtcjtpZih0PT09dW5kZWZpbmVkfHx0Pm4pdD1uO2lmKGUubGVuZ3RoPjAmJih0PDB8fHI8MCl8fHI+dGhpcy5sZW5ndGgpe3Rocm93IG5ldyBSYW5nZUVycm9yKFwiQXR0ZW1wdCB0byB3cml0ZSBvdXRzaWRlIGJ1ZmZlciBib3VuZHNcIil9aWYoIWYpZj1cInV0ZjhcIjt2YXIgaT1mYWxzZTtmb3IoOzspe3N3aXRjaChmKXtjYXNlXCJoZXhcIjpyZXR1cm4gaGV4V3JpdGUodGhpcyxlLHIsdCk7Y2FzZVwidXRmOFwiOmNhc2VcInV0Zi04XCI6cmV0dXJuIHV0ZjhXcml0ZSh0aGlzLGUscix0KTtjYXNlXCJhc2NpaVwiOnJldHVybiBhc2NpaVdyaXRlKHRoaXMsZSxyLHQpO2Nhc2VcImxhdGluMVwiOmNhc2VcImJpbmFyeVwiOnJldHVybiBsYXRpbjFXcml0ZSh0aGlzLGUscix0KTtjYXNlXCJiYXNlNjRcIjpyZXR1cm4gYmFzZTY0V3JpdGUodGhpcyxlLHIsdCk7Y2FzZVwidWNzMlwiOmNhc2VcInVjcy0yXCI6Y2FzZVwidXRmMTZsZVwiOmNhc2VcInV0Zi0xNmxlXCI6cmV0dXJuIHVjczJXcml0ZSh0aGlzLGUscix0KTtkZWZhdWx0OmlmKGkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlVua25vd24gZW5jb2Rpbmc6IFwiK2YpO2Y9KFwiXCIrZikudG9Mb3dlckNhc2UoKTtpPXRydWV9fX07QnVmZmVyLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24gdG9KU09OKCl7cmV0dXJue3R5cGU6XCJCdWZmZXJcIixkYXRhOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2Fycnx8dGhpcywwKX19O2Z1bmN0aW9uIGJhc2U2NFNsaWNlKGUscix0KXtpZihyPT09MCYmdD09PWUubGVuZ3RoKXtyZXR1cm4gZi5mcm9tQnl0ZUFycmF5KGUpfWVsc2V7cmV0dXJuIGYuZnJvbUJ5dGVBcnJheShlLnNsaWNlKHIsdCkpfX1mdW5jdGlvbiB1dGY4U2xpY2UoZSxyLHQpe3Q9TWF0aC5taW4oZS5sZW5ndGgsdCk7dmFyIGY9W107dmFyIG49cjt3aGlsZShuPHQpe3ZhciBpPWVbbl07dmFyIG89bnVsbDt2YXIgdT1pPjIzOT80Omk+MjIzPzM6aT4xOTE/MjoxO2lmKG4rdTw9dCl7dmFyIGEscyxoLGM7c3dpdGNoKHUpe2Nhc2UgMTppZihpPDEyOCl7bz1pfWJyZWFrO2Nhc2UgMjphPWVbbisxXTtpZigoYSYxOTIpPT09MTI4KXtjPShpJjMxKTw8NnxhJjYzO2lmKGM+MTI3KXtvPWN9fWJyZWFrO2Nhc2UgMzphPWVbbisxXTtzPWVbbisyXTtpZigoYSYxOTIpPT09MTI4JiYocyYxOTIpPT09MTI4KXtjPShpJjE1KTw8MTJ8KGEmNjMpPDw2fHMmNjM7aWYoYz4yMDQ3JiYoYzw1NTI5Nnx8Yz41NzM0Mykpe289Y319YnJlYWs7Y2FzZSA0OmE9ZVtuKzFdO3M9ZVtuKzJdO2g9ZVtuKzNdO2lmKChhJjE5Mik9PT0xMjgmJihzJjE5Mik9PT0xMjgmJihoJjE5Mik9PT0xMjgpe2M9KGkmMTUpPDwxOHwoYSY2Myk8PDEyfChzJjYzKTw8NnxoJjYzO2lmKGM+NjU1MzUmJmM8MTExNDExMil7bz1jfX19fWlmKG89PT1udWxsKXtvPTY1NTMzO3U9MX1lbHNlIGlmKG8+NjU1MzUpe28tPTY1NTM2O2YucHVzaChvPj4+MTAmMTAyM3w1NTI5Nik7bz01NjMyMHxvJjEwMjN9Zi5wdXNoKG8pO24rPXV9cmV0dXJuIGRlY29kZUNvZGVQb2ludHNBcnJheShmKX12YXIgdT00MDk2O2Z1bmN0aW9uIGRlY29kZUNvZGVQb2ludHNBcnJheShlKXt2YXIgcj1lLmxlbmd0aDtpZihyPD11KXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsZSl9dmFyIHQ9XCJcIjt2YXIgZj0wO3doaWxlKGY8cil7dCs9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsZS5zbGljZShmLGYrPXUpKX1yZXR1cm4gdH1mdW5jdGlvbiBhc2NpaVNsaWNlKGUscix0KXt2YXIgZj1cIlwiO3Q9TWF0aC5taW4oZS5sZW5ndGgsdCk7Zm9yKHZhciBuPXI7bjx0Oysrbil7Zis9U3RyaW5nLmZyb21DaGFyQ29kZShlW25dJjEyNyl9cmV0dXJuIGZ9ZnVuY3Rpb24gbGF0aW4xU2xpY2UoZSxyLHQpe3ZhciBmPVwiXCI7dD1NYXRoLm1pbihlLmxlbmd0aCx0KTtmb3IodmFyIG49cjtuPHQ7KytuKXtmKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGVbbl0pfXJldHVybiBmfWZ1bmN0aW9uIGhleFNsaWNlKGUscix0KXt2YXIgZj1lLmxlbmd0aDtpZighcnx8cjwwKXI9MDtpZighdHx8dDwwfHx0PmYpdD1mO3ZhciBuPVwiXCI7Zm9yKHZhciBpPXI7aTx0OysraSl7bis9c1tlW2ldXX1yZXR1cm4gbn1mdW5jdGlvbiB1dGYxNmxlU2xpY2UoZSxyLHQpe3ZhciBmPWUuc2xpY2Uocix0KTt2YXIgbj1cIlwiO2Zvcih2YXIgaT0wO2k8Zi5sZW5ndGg7aSs9Mil7bis9U3RyaW5nLmZyb21DaGFyQ29kZShmW2ldK2ZbaSsxXSoyNTYpfXJldHVybiBufUJ1ZmZlci5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24gc2xpY2UoZSxyKXt2YXIgdD10aGlzLmxlbmd0aDtlPX5+ZTtyPXI9PT11bmRlZmluZWQ/dDp+fnI7aWYoZTwwKXtlKz10O2lmKGU8MCllPTB9ZWxzZSBpZihlPnQpe2U9dH1pZihyPDApe3IrPXQ7aWYocjwwKXI9MH1lbHNlIGlmKHI+dCl7cj10fWlmKHI8ZSlyPWU7dmFyIGY9dGhpcy5zdWJhcnJheShlLHIpO09iamVjdC5zZXRQcm90b3R5cGVPZihmLEJ1ZmZlci5wcm90b3R5cGUpO3JldHVybiBmfTtmdW5jdGlvbiBjaGVja09mZnNldChlLHIsdCl7aWYoZSUxIT09MHx8ZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKFwib2Zmc2V0IGlzIG5vdCB1aW50XCIpO2lmKGUrcj50KXRocm93IG5ldyBSYW5nZUVycm9yKFwiVHJ5aW5nIHRvIGFjY2VzcyBiZXlvbmQgYnVmZmVyIGxlbmd0aFwiKX1CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50TEU9ZnVuY3Rpb24gcmVhZFVJbnRMRShlLHIsdCl7ZT1lPj4+MDtyPXI+Pj4wO2lmKCF0KWNoZWNrT2Zmc2V0KGUscix0aGlzLmxlbmd0aCk7dmFyIGY9dGhpc1tlXTt2YXIgbj0xO3ZhciBpPTA7d2hpbGUoKytpPHImJihuKj0yNTYpKXtmKz10aGlzW2UraV0qbn1yZXR1cm4gZn07QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uIHJlYWRVSW50QkUoZSxyLHQpe2U9ZT4+PjA7cj1yPj4+MDtpZighdCl7Y2hlY2tPZmZzZXQoZSxyLHRoaXMubGVuZ3RoKX12YXIgZj10aGlzW2UrLS1yXTt2YXIgbj0xO3doaWxlKHI+MCYmKG4qPTI1Nikpe2YrPXRoaXNbZSstLXJdKm59cmV0dXJuIGZ9O0J1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uIHJlYWRVSW50OChlLHIpe2U9ZT4+PjA7aWYoIXIpY2hlY2tPZmZzZXQoZSwxLHRoaXMubGVuZ3RoKTtyZXR1cm4gdGhpc1tlXX07QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2TEU9ZnVuY3Rpb24gcmVhZFVJbnQxNkxFKGUscil7ZT1lPj4+MDtpZighciljaGVja09mZnNldChlLDIsdGhpcy5sZW5ndGgpO3JldHVybiB0aGlzW2VdfHRoaXNbZSsxXTw8OH07QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2QkU9ZnVuY3Rpb24gcmVhZFVJbnQxNkJFKGUscil7ZT1lPj4+MDtpZighciljaGVja09mZnNldChlLDIsdGhpcy5sZW5ndGgpO3JldHVybiB0aGlzW2VdPDw4fHRoaXNbZSsxXX07QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyTEU9ZnVuY3Rpb24gcmVhZFVJbnQzMkxFKGUscil7ZT1lPj4+MDtpZighciljaGVja09mZnNldChlLDQsdGhpcy5sZW5ndGgpO3JldHVybih0aGlzW2VdfHRoaXNbZSsxXTw8OHx0aGlzW2UrMl08PDE2KSt0aGlzW2UrM10qMTY3NzcyMTZ9O0J1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkJFPWZ1bmN0aW9uIHJlYWRVSW50MzJCRShlLHIpe2U9ZT4+PjA7aWYoIXIpY2hlY2tPZmZzZXQoZSw0LHRoaXMubGVuZ3RoKTtyZXR1cm4gdGhpc1tlXSoxNjc3NzIxNisodGhpc1tlKzFdPDwxNnx0aGlzW2UrMl08PDh8dGhpc1tlKzNdKX07QnVmZmVyLnByb3RvdHlwZS5yZWFkSW50TEU9ZnVuY3Rpb24gcmVhZEludExFKGUscix0KXtlPWU+Pj4wO3I9cj4+PjA7aWYoIXQpY2hlY2tPZmZzZXQoZSxyLHRoaXMubGVuZ3RoKTt2YXIgZj10aGlzW2VdO3ZhciBuPTE7dmFyIGk9MDt3aGlsZSgrK2k8ciYmKG4qPTI1Nikpe2YrPXRoaXNbZStpXSpufW4qPTEyODtpZihmPj1uKWYtPU1hdGgucG93KDIsOCpyKTtyZXR1cm4gZn07QnVmZmVyLnByb3RvdHlwZS5yZWFkSW50QkU9ZnVuY3Rpb24gcmVhZEludEJFKGUscix0KXtlPWU+Pj4wO3I9cj4+PjA7aWYoIXQpY2hlY2tPZmZzZXQoZSxyLHRoaXMubGVuZ3RoKTt2YXIgZj1yO3ZhciBuPTE7dmFyIGk9dGhpc1tlKy0tZl07d2hpbGUoZj4wJiYobio9MjU2KSl7aSs9dGhpc1tlKy0tZl0qbn1uKj0xMjg7aWYoaT49bilpLT1NYXRoLnBvdygyLDgqcik7cmV0dXJuIGl9O0J1ZmZlci5wcm90b3R5cGUucmVhZEludDg9ZnVuY3Rpb24gcmVhZEludDgoZSxyKXtlPWU+Pj4wO2lmKCFyKWNoZWNrT2Zmc2V0KGUsMSx0aGlzLmxlbmd0aCk7aWYoISh0aGlzW2VdJjEyOCkpcmV0dXJuIHRoaXNbZV07cmV0dXJuKDI1NS10aGlzW2VdKzEpKi0xfTtCdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkxFPWZ1bmN0aW9uIHJlYWRJbnQxNkxFKGUscil7ZT1lPj4+MDtpZighciljaGVja09mZnNldChlLDIsdGhpcy5sZW5ndGgpO3ZhciB0PXRoaXNbZV18dGhpc1tlKzFdPDw4O3JldHVybiB0JjMyNzY4P3R8NDI5NDkwMTc2MDp0fTtCdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkJFPWZ1bmN0aW9uIHJlYWRJbnQxNkJFKGUscil7ZT1lPj4+MDtpZighciljaGVja09mZnNldChlLDIsdGhpcy5sZW5ndGgpO3ZhciB0PXRoaXNbZSsxXXx0aGlzW2VdPDw4O3JldHVybiB0JjMyNzY4P3R8NDI5NDkwMTc2MDp0fTtCdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uIHJlYWRJbnQzMkxFKGUscil7ZT1lPj4+MDtpZighciljaGVja09mZnNldChlLDQsdGhpcy5sZW5ndGgpO3JldHVybiB0aGlzW2VdfHRoaXNbZSsxXTw8OHx0aGlzW2UrMl08PDE2fHRoaXNbZSszXTw8MjR9O0J1ZmZlci5wcm90b3R5cGUucmVhZEludDMyQkU9ZnVuY3Rpb24gcmVhZEludDMyQkUoZSxyKXtlPWU+Pj4wO2lmKCFyKWNoZWNrT2Zmc2V0KGUsNCx0aGlzLmxlbmd0aCk7cmV0dXJuIHRoaXNbZV08PDI0fHRoaXNbZSsxXTw8MTZ8dGhpc1tlKzJdPDw4fHRoaXNbZSszXX07QnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRMRT1mdW5jdGlvbiByZWFkRmxvYXRMRShlLHIpe2U9ZT4+PjA7aWYoIXIpY2hlY2tPZmZzZXQoZSw0LHRoaXMubGVuZ3RoKTtyZXR1cm4gbi5yZWFkKHRoaXMsZSx0cnVlLDIzLDQpfTtCdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdEJFPWZ1bmN0aW9uIHJlYWRGbG9hdEJFKGUscil7ZT1lPj4+MDtpZighciljaGVja09mZnNldChlLDQsdGhpcy5sZW5ndGgpO3JldHVybiBuLnJlYWQodGhpcyxlLGZhbHNlLDIzLDQpfTtCdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVMRT1mdW5jdGlvbiByZWFkRG91YmxlTEUoZSxyKXtlPWU+Pj4wO2lmKCFyKWNoZWNrT2Zmc2V0KGUsOCx0aGlzLmxlbmd0aCk7cmV0dXJuIG4ucmVhZCh0aGlzLGUsdHJ1ZSw1Miw4KX07QnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24gcmVhZERvdWJsZUJFKGUscil7ZT1lPj4+MDtpZighciljaGVja09mZnNldChlLDgsdGhpcy5sZW5ndGgpO3JldHVybiBuLnJlYWQodGhpcyxlLGZhbHNlLDUyLDgpfTtmdW5jdGlvbiBjaGVja0ludChlLHIsdCxmLG4saSl7aWYoIUJ1ZmZlci5pc0J1ZmZlcihlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdcImJ1ZmZlclwiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKTtpZihyPm58fHI8aSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignXCJ2YWx1ZVwiIGFyZ3VtZW50IGlzIG91dCBvZiBib3VuZHMnKTtpZih0K2Y+ZS5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJJbmRleCBvdXQgb2YgcmFuZ2VcIil9QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnRMRT1mdW5jdGlvbiB3cml0ZVVJbnRMRShlLHIsdCxmKXtlPStlO3I9cj4+PjA7dD10Pj4+MDtpZighZil7dmFyIG49TWF0aC5wb3coMiw4KnQpLTE7Y2hlY2tJbnQodGhpcyxlLHIsdCxuLDApfXZhciBpPTE7dmFyIG89MDt0aGlzW3JdPWUmMjU1O3doaWxlKCsrbzx0JiYoaSo9MjU2KSl7dGhpc1tyK29dPWUvaSYyNTV9cmV0dXJuIHIrdH07QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnRCRT1mdW5jdGlvbiB3cml0ZVVJbnRCRShlLHIsdCxmKXtlPStlO3I9cj4+PjA7dD10Pj4+MDtpZighZil7dmFyIG49TWF0aC5wb3coMiw4KnQpLTE7Y2hlY2tJbnQodGhpcyxlLHIsdCxuLDApfXZhciBpPXQtMTt2YXIgbz0xO3RoaXNbcitpXT1lJjI1NTt3aGlsZSgtLWk+PTAmJihvKj0yNTYpKXt0aGlzW3IraV09ZS9vJjI1NX1yZXR1cm4gcit0fTtCdWZmZXIucHJvdG90eXBlLndyaXRlVUludDg9ZnVuY3Rpb24gd3JpdGVVSW50OChlLHIsdCl7ZT0rZTtyPXI+Pj4wO2lmKCF0KWNoZWNrSW50KHRoaXMsZSxyLDEsMjU1LDApO3RoaXNbcl09ZSYyNTU7cmV0dXJuIHIrMX07QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkxFPWZ1bmN0aW9uIHdyaXRlVUludDE2TEUoZSxyLHQpe2U9K2U7cj1yPj4+MDtpZighdCljaGVja0ludCh0aGlzLGUsciwyLDY1NTM1LDApO3RoaXNbcl09ZSYyNTU7dGhpc1tyKzFdPWU+Pj44O3JldHVybiByKzJ9O0J1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZCRT1mdW5jdGlvbiB3cml0ZVVJbnQxNkJFKGUscix0KXtlPStlO3I9cj4+PjA7aWYoIXQpY2hlY2tJbnQodGhpcyxlLHIsMiw2NTUzNSwwKTt0aGlzW3JdPWU+Pj44O3RoaXNbcisxXT1lJjI1NTtyZXR1cm4gcisyfTtCdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyTEU9ZnVuY3Rpb24gd3JpdGVVSW50MzJMRShlLHIsdCl7ZT0rZTtyPXI+Pj4wO2lmKCF0KWNoZWNrSW50KHRoaXMsZSxyLDQsNDI5NDk2NzI5NSwwKTt0aGlzW3IrM109ZT4+PjI0O3RoaXNbcisyXT1lPj4+MTY7dGhpc1tyKzFdPWU+Pj44O3RoaXNbcl09ZSYyNTU7cmV0dXJuIHIrNH07QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uIHdyaXRlVUludDMyQkUoZSxyLHQpe2U9K2U7cj1yPj4+MDtpZighdCljaGVja0ludCh0aGlzLGUsciw0LDQyOTQ5NjcyOTUsMCk7dGhpc1tyXT1lPj4+MjQ7dGhpc1tyKzFdPWU+Pj4xNjt0aGlzW3IrMl09ZT4+Pjg7dGhpc1tyKzNdPWUmMjU1O3JldHVybiByKzR9O0J1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRMRT1mdW5jdGlvbiB3cml0ZUludExFKGUscix0LGYpe2U9K2U7cj1yPj4+MDtpZighZil7dmFyIG49TWF0aC5wb3coMiw4KnQtMSk7Y2hlY2tJbnQodGhpcyxlLHIsdCxuLTEsLW4pfXZhciBpPTA7dmFyIG89MTt2YXIgdT0wO3RoaXNbcl09ZSYyNTU7d2hpbGUoKytpPHQmJihvKj0yNTYpKXtpZihlPDAmJnU9PT0wJiZ0aGlzW3IraS0xXSE9PTApe3U9MX10aGlzW3IraV09KGUvbz4+MCktdSYyNTV9cmV0dXJuIHIrdH07QnVmZmVyLnByb3RvdHlwZS53cml0ZUludEJFPWZ1bmN0aW9uIHdyaXRlSW50QkUoZSxyLHQsZil7ZT0rZTtyPXI+Pj4wO2lmKCFmKXt2YXIgbj1NYXRoLnBvdygyLDgqdC0xKTtjaGVja0ludCh0aGlzLGUscix0LG4tMSwtbil9dmFyIGk9dC0xO3ZhciBvPTE7dmFyIHU9MDt0aGlzW3IraV09ZSYyNTU7d2hpbGUoLS1pPj0wJiYobyo9MjU2KSl7aWYoZTwwJiZ1PT09MCYmdGhpc1tyK2krMV0hPT0wKXt1PTF9dGhpc1tyK2ldPShlL28+PjApLXUmMjU1fXJldHVybiByK3R9O0J1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQ4PWZ1bmN0aW9uIHdyaXRlSW50OChlLHIsdCl7ZT0rZTtyPXI+Pj4wO2lmKCF0KWNoZWNrSW50KHRoaXMsZSxyLDEsMTI3LC0xMjgpO2lmKGU8MCllPTI1NStlKzE7dGhpc1tyXT1lJjI1NTtyZXR1cm4gcisxfTtCdWZmZXIucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbiB3cml0ZUludDE2TEUoZSxyLHQpe2U9K2U7cj1yPj4+MDtpZighdCljaGVja0ludCh0aGlzLGUsciwyLDMyNzY3LC0zMjc2OCk7dGhpc1tyXT1lJjI1NTt0aGlzW3IrMV09ZT4+Pjg7cmV0dXJuIHIrMn07QnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24gd3JpdGVJbnQxNkJFKGUscix0KXtlPStlO3I9cj4+PjA7aWYoIXQpY2hlY2tJbnQodGhpcyxlLHIsMiwzMjc2NywtMzI3NjgpO3RoaXNbcl09ZT4+Pjg7dGhpc1tyKzFdPWUmMjU1O3JldHVybiByKzJ9O0J1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkxFPWZ1bmN0aW9uIHdyaXRlSW50MzJMRShlLHIsdCl7ZT0rZTtyPXI+Pj4wO2lmKCF0KWNoZWNrSW50KHRoaXMsZSxyLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCk7dGhpc1tyXT1lJjI1NTt0aGlzW3IrMV09ZT4+Pjg7dGhpc1tyKzJdPWU+Pj4xNjt0aGlzW3IrM109ZT4+PjI0O3JldHVybiByKzR9O0J1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uIHdyaXRlSW50MzJCRShlLHIsdCl7ZT0rZTtyPXI+Pj4wO2lmKCF0KWNoZWNrSW50KHRoaXMsZSxyLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCk7aWYoZTwwKWU9NDI5NDk2NzI5NStlKzE7dGhpc1tyXT1lPj4+MjQ7dGhpc1tyKzFdPWU+Pj4xNjt0aGlzW3IrMl09ZT4+Pjg7dGhpc1tyKzNdPWUmMjU1O3JldHVybiByKzR9O2Z1bmN0aW9uIGNoZWNrSUVFRTc1NChlLHIsdCxmLG4saSl7aWYodCtmPmUubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKFwiSW5kZXggb3V0IG9mIHJhbmdlXCIpO2lmKHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkluZGV4IG91dCBvZiByYW5nZVwiKX1mdW5jdGlvbiB3cml0ZUZsb2F0KGUscix0LGYsaSl7cj0rcjt0PXQ+Pj4wO2lmKCFpKXtjaGVja0lFRUU3NTQoZSxyLHQsNCwzNDAyODIzNDY2Mzg1Mjg4NmUyMiwtMzQwMjgyMzQ2NjM4NTI4ODZlMjIpfW4ud3JpdGUoZSxyLHQsZiwyMyw0KTtyZXR1cm4gdCs0fUJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdExFPWZ1bmN0aW9uIHdyaXRlRmxvYXRMRShlLHIsdCl7cmV0dXJuIHdyaXRlRmxvYXQodGhpcyxlLHIsdHJ1ZSx0KX07QnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24gd3JpdGVGbG9hdEJFKGUscix0KXtyZXR1cm4gd3JpdGVGbG9hdCh0aGlzLGUscixmYWxzZSx0KX07ZnVuY3Rpb24gd3JpdGVEb3VibGUoZSxyLHQsZixpKXtyPStyO3Q9dD4+PjA7aWYoIWkpe2NoZWNrSUVFRTc1NChlLHIsdCw4LDE3OTc2OTMxMzQ4NjIzMTU3ZTI5MiwtMTc5NzY5MzEzNDg2MjMxNTdlMjkyKX1uLndyaXRlKGUscix0LGYsNTIsOCk7cmV0dXJuIHQrOH1CdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlTEU9ZnVuY3Rpb24gd3JpdGVEb3VibGVMRShlLHIsdCl7cmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsZSxyLHRydWUsdCl9O0J1ZmZlci5wcm90b3R5cGUud3JpdGVEb3VibGVCRT1mdW5jdGlvbiB3cml0ZURvdWJsZUJFKGUscix0KXtyZXR1cm4gd3JpdGVEb3VibGUodGhpcyxlLHIsZmFsc2UsdCl9O0J1ZmZlci5wcm90b3R5cGUuY29weT1mdW5jdGlvbiBjb3B5KGUscix0LGYpe2lmKCFCdWZmZXIuaXNCdWZmZXIoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHNob3VsZCBiZSBhIEJ1ZmZlclwiKTtpZighdCl0PTA7aWYoIWYmJmYhPT0wKWY9dGhpcy5sZW5ndGg7aWYocj49ZS5sZW5ndGgpcj1lLmxlbmd0aDtpZighcilyPTA7aWYoZj4wJiZmPHQpZj10O2lmKGY9PT10KXJldHVybiAwO2lmKGUubGVuZ3RoPT09MHx8dGhpcy5sZW5ndGg9PT0wKXJldHVybiAwO2lmKHI8MCl7dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzXCIpfWlmKHQ8MHx8dD49dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJJbmRleCBvdXQgb2YgcmFuZ2VcIik7aWYoZjwwKXRocm93IG5ldyBSYW5nZUVycm9yKFwic291cmNlRW5kIG91dCBvZiBib3VuZHNcIik7aWYoZj50aGlzLmxlbmd0aClmPXRoaXMubGVuZ3RoO2lmKGUubGVuZ3RoLXI8Zi10KXtmPWUubGVuZ3RoLXIrdH12YXIgbj1mLXQ7aWYodGhpcz09PWUmJnR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluPT09XCJmdW5jdGlvblwiKXt0aGlzLmNvcHlXaXRoaW4ocix0LGYpfWVsc2UgaWYodGhpcz09PWUmJnQ8ciYmcjxmKXtmb3IodmFyIGk9bi0xO2k+PTA7LS1pKXtlW2krcl09dGhpc1tpK3RdfX1lbHNle1VpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKGUsdGhpcy5zdWJhcnJheSh0LGYpLHIpfXJldHVybiBufTtCdWZmZXIucHJvdG90eXBlLmZpbGw9ZnVuY3Rpb24gZmlsbChlLHIsdCxmKXtpZih0eXBlb2YgZT09PVwic3RyaW5nXCIpe2lmKHR5cGVvZiByPT09XCJzdHJpbmdcIil7Zj1yO3I9MDt0PXRoaXMubGVuZ3RofWVsc2UgaWYodHlwZW9mIHQ9PT1cInN0cmluZ1wiKXtmPXQ7dD10aGlzLmxlbmd0aH1pZihmIT09dW5kZWZpbmVkJiZ0eXBlb2YgZiE9PVwic3RyaW5nXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nXCIpfWlmKHR5cGVvZiBmPT09XCJzdHJpbmdcIiYmIUJ1ZmZlci5pc0VuY29kaW5nKGYpKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiVW5rbm93biBlbmNvZGluZzogXCIrZil9aWYoZS5sZW5ndGg9PT0xKXt2YXIgbj1lLmNoYXJDb2RlQXQoMCk7aWYoZj09PVwidXRmOFwiJiZuPDEyOHx8Zj09PVwibGF0aW4xXCIpe2U9bn19fWVsc2UgaWYodHlwZW9mIGU9PT1cIm51bWJlclwiKXtlPWUmMjU1fWVsc2UgaWYodHlwZW9mIGU9PT1cImJvb2xlYW5cIil7ZT1OdW1iZXIoZSl9aWYocjwwfHx0aGlzLmxlbmd0aDxyfHx0aGlzLmxlbmd0aDx0KXt0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIk91dCBvZiByYW5nZSBpbmRleFwiKX1pZih0PD1yKXtyZXR1cm4gdGhpc31yPXI+Pj4wO3Q9dD09PXVuZGVmaW5lZD90aGlzLmxlbmd0aDp0Pj4+MDtpZighZSllPTA7dmFyIGk7aWYodHlwZW9mIGU9PT1cIm51bWJlclwiKXtmb3IoaT1yO2k8dDsrK2kpe3RoaXNbaV09ZX19ZWxzZXt2YXIgbz1CdWZmZXIuaXNCdWZmZXIoZSk/ZTpCdWZmZXIuZnJvbShlLGYpO3ZhciB1PW8ubGVuZ3RoO2lmKHU9PT0wKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgdmFsdWUgXCInK2UrJ1wiIGlzIGludmFsaWQgZm9yIGFyZ3VtZW50IFwidmFsdWVcIicpfWZvcihpPTA7aTx0LXI7KytpKXt0aGlzW2krcl09b1tpJXVdfX1yZXR1cm4gdGhpc307dmFyIGE9L1teKy8wLTlBLVphLXotX10vZztmdW5jdGlvbiBiYXNlNjRjbGVhbihlKXtlPWUuc3BsaXQoXCI9XCIpWzBdO2U9ZS50cmltKCkucmVwbGFjZShhLFwiXCIpO2lmKGUubGVuZ3RoPDIpcmV0dXJuXCJcIjt3aGlsZShlLmxlbmd0aCU0IT09MCl7ZT1lK1wiPVwifXJldHVybiBlfWZ1bmN0aW9uIHV0ZjhUb0J5dGVzKGUscil7cj1yfHxJbmZpbml0eTt2YXIgdDt2YXIgZj1lLmxlbmd0aDt2YXIgbj1udWxsO3ZhciBpPVtdO2Zvcih2YXIgbz0wO288ZjsrK28pe3Q9ZS5jaGFyQ29kZUF0KG8pO2lmKHQ+NTUyOTUmJnQ8NTczNDQpe2lmKCFuKXtpZih0PjU2MzE5KXtpZigoci09Myk+LTEpaS5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX1lbHNlIGlmKG8rMT09PWYpe2lmKChyLT0zKT4tMSlpLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfW49dDtjb250aW51ZX1pZih0PDU2MzIwKXtpZigoci09Myk+LTEpaS5wdXNoKDIzOSwxOTEsMTg5KTtuPXQ7Y29udGludWV9dD0obi01NTI5Njw8MTB8dC01NjMyMCkrNjU1MzZ9ZWxzZSBpZihuKXtpZigoci09Myk+LTEpaS5wdXNoKDIzOSwxOTEsMTg5KX1uPW51bGw7aWYodDwxMjgpe2lmKChyLT0xKTwwKWJyZWFrO2kucHVzaCh0KX1lbHNlIGlmKHQ8MjA0OCl7aWYoKHItPTIpPDApYnJlYWs7aS5wdXNoKHQ+PjZ8MTkyLHQmNjN8MTI4KX1lbHNlIGlmKHQ8NjU1MzYpe2lmKChyLT0zKTwwKWJyZWFrO2kucHVzaCh0Pj4xMnwyMjQsdD4+NiY2M3wxMjgsdCY2M3wxMjgpfWVsc2UgaWYodDwxMTE0MTEyKXtpZigoci09NCk8MClicmVhaztpLnB1c2godD4+MTh8MjQwLHQ+PjEyJjYzfDEyOCx0Pj42JjYzfDEyOCx0JjYzfDEyOCl9ZWxzZXt0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGNvZGUgcG9pbnRcIil9fXJldHVybiBpfWZ1bmN0aW9uIGFzY2lpVG9CeXRlcyhlKXt2YXIgcj1bXTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoOysrdCl7ci5wdXNoKGUuY2hhckNvZGVBdCh0KSYyNTUpfXJldHVybiByfWZ1bmN0aW9uIHV0ZjE2bGVUb0J5dGVzKGUscil7dmFyIHQsZixuO3ZhciBpPVtdO2Zvcih2YXIgbz0wO288ZS5sZW5ndGg7KytvKXtpZigoci09Mik8MClicmVhazt0PWUuY2hhckNvZGVBdChvKTtmPXQ+Pjg7bj10JTI1NjtpLnB1c2gobik7aS5wdXNoKGYpfXJldHVybiBpfWZ1bmN0aW9uIGJhc2U2NFRvQnl0ZXMoZSl7cmV0dXJuIGYudG9CeXRlQXJyYXkoYmFzZTY0Y2xlYW4oZSkpfWZ1bmN0aW9uIGJsaXRCdWZmZXIoZSxyLHQsZil7Zm9yKHZhciBuPTA7bjxmOysrbil7aWYobit0Pj1yLmxlbmd0aHx8bj49ZS5sZW5ndGgpYnJlYWs7cltuK3RdPWVbbl19cmV0dXJuIG59ZnVuY3Rpb24gaXNJbnN0YW5jZShlLHIpe3JldHVybiBlIGluc3RhbmNlb2Ygcnx8ZSE9bnVsbCYmZS5jb25zdHJ1Y3RvciE9bnVsbCYmZS5jb25zdHJ1Y3Rvci5uYW1lIT1udWxsJiZlLmNvbnN0cnVjdG9yLm5hbWU9PT1yLm5hbWV9ZnVuY3Rpb24gbnVtYmVySXNOYU4oZSl7cmV0dXJuIGUhPT1lfXZhciBzPWZ1bmN0aW9uKCl7dmFyIGU9XCIwMTIzNDU2Nzg5YWJjZGVmXCI7dmFyIHI9bmV3IEFycmF5KDI1Nik7Zm9yKHZhciB0PTA7dDwxNjsrK3Qpe3ZhciBmPXQqMTY7Zm9yKHZhciBuPTA7bjwxNjsrK24pe3JbZituXT1lW3RdK2Vbbl19fXJldHVybiByfSgpfSw3ODM6ZnVuY3Rpb24oZSxyKXtcclxuLyohIGllZWU3NTQuIEJTRC0zLUNsYXVzZSBMaWNlbnNlLiBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmcvb3BlbnNvdXJjZT4gKi9cclxuci5yZWFkPWZ1bmN0aW9uKGUscix0LGYsbil7dmFyIGksbzt2YXIgdT1uKjgtZi0xO3ZhciBhPSgxPDx1KS0xO3ZhciBzPWE+PjE7dmFyIGg9LTc7dmFyIGM9dD9uLTE6MDt2YXIgbD10Py0xOjE7dmFyIHA9ZVtyK2NdO2MrPWw7aT1wJigxPDwtaCktMTtwPj49LWg7aCs9dTtmb3IoO2g+MDtpPWkqMjU2K2VbcitjXSxjKz1sLGgtPTgpe31vPWkmKDE8PC1oKS0xO2k+Pj0taDtoKz1mO2Zvcig7aD4wO289byoyNTYrZVtyK2NdLGMrPWwsaC09OCl7fWlmKGk9PT0wKXtpPTEtc31lbHNlIGlmKGk9PT1hKXtyZXR1cm4gbz9OYU46KHA/LTE6MSkqSW5maW5pdHl9ZWxzZXtvPW8rTWF0aC5wb3coMixmKTtpPWktc31yZXR1cm4ocD8tMToxKSpvKk1hdGgucG93KDIsaS1mKX07ci53cml0ZT1mdW5jdGlvbihlLHIsdCxmLG4saSl7dmFyIG8sdSxhO3ZhciBzPWkqOC1uLTE7dmFyIGg9KDE8PHMpLTE7dmFyIGM9aD4+MTt2YXIgbD1uPT09MjM/TWF0aC5wb3coMiwtMjQpLU1hdGgucG93KDIsLTc3KTowO3ZhciBwPWY/MDppLTE7dmFyIHk9Zj8xOi0xO3ZhciBnPXI8MHx8cj09PTAmJjEvcjwwPzE6MDtyPU1hdGguYWJzKHIpO2lmKGlzTmFOKHIpfHxyPT09SW5maW5pdHkpe3U9aXNOYU4ocik/MTowO289aH1lbHNle289TWF0aC5mbG9vcihNYXRoLmxvZyhyKS9NYXRoLkxOMik7aWYociooYT1NYXRoLnBvdygyLC1vKSk8MSl7by0tO2EqPTJ9aWYobytjPj0xKXtyKz1sL2F9ZWxzZXtyKz1sKk1hdGgucG93KDIsMS1jKX1pZihyKmE+PTIpe28rKzthLz0yfWlmKG8rYz49aCl7dT0wO289aH1lbHNlIGlmKG8rYz49MSl7dT0ociphLTEpKk1hdGgucG93KDIsbik7bz1vK2N9ZWxzZXt1PXIqTWF0aC5wb3coMixjLTEpKk1hdGgucG93KDIsbik7bz0wfX1mb3IoO24+PTg7ZVt0K3BdPXUmMjU1LHArPXksdS89MjU2LG4tPTgpe31vPW88PG58dTtzKz1uO2Zvcig7cz4wO2VbdCtwXT1vJjI1NSxwKz15LG8vPTI1NixzLT04KXt9ZVt0K3AteV18PWcqMTI4fX19O3ZhciByPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18odCl7dmFyIGY9clt0XTtpZihmIT09dW5kZWZpbmVkKXtyZXR1cm4gZi5leHBvcnRzfXZhciBuPXJbdF09e2V4cG9ydHM6e319O3ZhciBpPXRydWU7dHJ5e2VbdF0obixuLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7aT1mYWxzZX1maW5hbGx5e2lmKGkpZGVsZXRlIHJbdF19cmV0dXJuIG4uZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIHQ9X19uY2N3cGNrX3JlcXVpcmVfXyg3Mik7bW9kdWxlLmV4cG9ydHM9dH0pKCk7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/buffer/index.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/process/browser.js":
|
||
/*!************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/process/browser.js ***!
|
||
\************************************************************/
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
eval(__webpack_require__.ts("var __dirname = \"/\";\n(function(){var e={229:function(e){var t=e.exports={};var r;var n;function defaultSetTimout(){throw new Error(\"setTimeout has not been defined\")}function defaultClearTimeout(){throw new Error(\"clearTimeout has not been defined\")}(function(){try{if(typeof setTimeout===\"function\"){r=setTimeout}else{r=defaultSetTimout}}catch(e){r=defaultSetTimout}try{if(typeof clearTimeout===\"function\"){n=clearTimeout}else{n=defaultClearTimeout}}catch(e){n=defaultClearTimeout}})();function runTimeout(e){if(r===setTimeout){return setTimeout(e,0)}if((r===defaultSetTimout||!r)&&setTimeout){r=setTimeout;return setTimeout(e,0)}try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}function runClearTimeout(e){if(n===clearTimeout){return clearTimeout(e)}if((n===defaultClearTimeout||!n)&&clearTimeout){n=clearTimeout;return clearTimeout(e)}try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}var i=[];var o=false;var u;var a=-1;function cleanUpNextTick(){if(!o||!u){return}o=false;if(u.length){i=u.concat(i)}else{a=-1}if(i.length){drainQueue()}}function drainQueue(){if(o){return}var e=runTimeout(cleanUpNextTick);o=true;var t=i.length;while(t){u=i;i=[];while(++a<t){if(u){u[a].run()}}a=-1;t=i.length}u=null;o=false;runClearTimeout(e)}t.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1){for(var r=1;r<arguments.length;r++){t[r-1]=arguments[r]}}i.push(new Item(e,t));if(i.length===1&&!o){runTimeout(drainQueue)}};function Item(e,t){this.fun=e;this.array=t}Item.prototype.run=function(){this.fun.apply(null,this.array)};t.title=\"browser\";t.browser=true;t.env={};t.argv=[];t.version=\"\";t.versions={};function noop(){}t.on=noop;t.addListener=noop;t.once=noop;t.off=noop;t.removeListener=noop;t.removeAllListeners=noop;t.emit=noop;t.prependListener=noop;t.prependOnceListener=noop;t.listeners=function(e){return[]};t.binding=function(e){throw new Error(\"process.binding is not supported\")};t.cwd=function(){return\"/\"};t.chdir=function(e){throw new Error(\"process.chdir is not supported\")};t.umask=function(){return 0}}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var i=t[r]={exports:{}};var o=true;try{e[r](i,i.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r=__nccwpck_require__(229);module.exports=r})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcHJvY2Vzcy9icm93c2VyLmpzIiwibWFwcGluZ3MiOiI7QUFBQSxZQUFZLE9BQU8sZ0JBQWdCLG1CQUFtQixNQUFNLE1BQU0sNEJBQTRCLG1EQUFtRCwrQkFBK0IscURBQXFELFlBQVksSUFBSSxtQ0FBbUMsYUFBYSxLQUFLLG9CQUFvQixTQUFTLG1CQUFtQixJQUFJLHFDQUFxQyxlQUFlLEtBQUssdUJBQXVCLFNBQVMsdUJBQXVCLElBQUksdUJBQXVCLG1CQUFtQix1QkFBdUIsMkNBQTJDLGFBQWEsdUJBQXVCLElBQUksY0FBYyxTQUFTLElBQUksd0JBQXdCLFNBQVMsMEJBQTBCLDRCQUE0QixxQkFBcUIsdUJBQXVCLGdEQUFnRCxlQUFlLHVCQUF1QixJQUFJLFlBQVksU0FBUyxJQUFJLHNCQUFzQixTQUFTLHdCQUF3QixTQUFTLFlBQVksTUFBTSxTQUFTLDJCQUEyQixXQUFXLE9BQU8sUUFBUSxhQUFhLGNBQWMsS0FBSyxLQUFLLGFBQWEsY0FBYyxzQkFBc0IsTUFBTSxPQUFPLGtDQUFrQyxPQUFPLGVBQWUsU0FBUyxJQUFJLEtBQUssYUFBYSxNQUFNLFlBQVksS0FBSyxXQUFXLE9BQU8sUUFBUSxtQkFBbUIsdUJBQXVCLG9DQUFvQyx1QkFBdUIsWUFBWSxtQkFBbUIsS0FBSyxxQkFBcUIsc0JBQXNCLHFCQUFxQix5QkFBeUIsbUJBQW1CLFdBQVcsYUFBYSw4QkFBOEIsaUNBQWlDLGtCQUFrQixlQUFlLFNBQVMsVUFBVSxhQUFhLGNBQWMsaUJBQWlCLFVBQVUsbUJBQW1CLFlBQVksV0FBVyxzQkFBc0IsMEJBQTBCLFlBQVksdUJBQXVCLDJCQUEyQix3QkFBd0IsVUFBVSxzQkFBc0IscURBQXFELGlCQUFpQixXQUFXLG9CQUFvQixtREFBbUQsbUJBQW1CLFlBQVksU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUksc0NBQXNDLFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLG1FQUFtRSxTQUFTLEtBQUssK0JBQStCLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3Byb2Nlc3MvYnJvd3Nlci5qcz85NDQ1Il0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe3ZhciBlPXsyMjk6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5leHBvcnRzPXt9O3ZhciByO3ZhciBuO2Z1bmN0aW9uIGRlZmF1bHRTZXRUaW1vdXQoKXt0aHJvdyBuZXcgRXJyb3IoXCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkXCIpfWZ1bmN0aW9uIGRlZmF1bHRDbGVhclRpbWVvdXQoKXt0aHJvdyBuZXcgRXJyb3IoXCJjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWRcIil9KGZ1bmN0aW9uKCl7dHJ5e2lmKHR5cGVvZiBzZXRUaW1lb3V0PT09XCJmdW5jdGlvblwiKXtyPXNldFRpbWVvdXR9ZWxzZXtyPWRlZmF1bHRTZXRUaW1vdXR9fWNhdGNoKGUpe3I9ZGVmYXVsdFNldFRpbW91dH10cnl7aWYodHlwZW9mIGNsZWFyVGltZW91dD09PVwiZnVuY3Rpb25cIil7bj1jbGVhclRpbWVvdXR9ZWxzZXtuPWRlZmF1bHRDbGVhclRpbWVvdXR9fWNhdGNoKGUpe249ZGVmYXVsdENsZWFyVGltZW91dH19KSgpO2Z1bmN0aW9uIHJ1blRpbWVvdXQoZSl7aWYocj09PXNldFRpbWVvdXQpe3JldHVybiBzZXRUaW1lb3V0KGUsMCl9aWYoKHI9PT1kZWZhdWx0U2V0VGltb3V0fHwhcikmJnNldFRpbWVvdXQpe3I9c2V0VGltZW91dDtyZXR1cm4gc2V0VGltZW91dChlLDApfXRyeXtyZXR1cm4gcihlLDApfWNhdGNoKHQpe3RyeXtyZXR1cm4gci5jYWxsKG51bGwsZSwwKX1jYXRjaCh0KXtyZXR1cm4gci5jYWxsKHRoaXMsZSwwKX19fWZ1bmN0aW9uIHJ1bkNsZWFyVGltZW91dChlKXtpZihuPT09Y2xlYXJUaW1lb3V0KXtyZXR1cm4gY2xlYXJUaW1lb3V0KGUpfWlmKChuPT09ZGVmYXVsdENsZWFyVGltZW91dHx8IW4pJiZjbGVhclRpbWVvdXQpe249Y2xlYXJUaW1lb3V0O3JldHVybiBjbGVhclRpbWVvdXQoZSl9dHJ5e3JldHVybiBuKGUpfWNhdGNoKHQpe3RyeXtyZXR1cm4gbi5jYWxsKG51bGwsZSl9Y2F0Y2godCl7cmV0dXJuIG4uY2FsbCh0aGlzLGUpfX19dmFyIGk9W107dmFyIG89ZmFsc2U7dmFyIHU7dmFyIGE9LTE7ZnVuY3Rpb24gY2xlYW5VcE5leHRUaWNrKCl7aWYoIW98fCF1KXtyZXR1cm59bz1mYWxzZTtpZih1Lmxlbmd0aCl7aT11LmNvbmNhdChpKX1lbHNle2E9LTF9aWYoaS5sZW5ndGgpe2RyYWluUXVldWUoKX19ZnVuY3Rpb24gZHJhaW5RdWV1ZSgpe2lmKG8pe3JldHVybn12YXIgZT1ydW5UaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7bz10cnVlO3ZhciB0PWkubGVuZ3RoO3doaWxlKHQpe3U9aTtpPVtdO3doaWxlKCsrYTx0KXtpZih1KXt1W2FdLnJ1bigpfX1hPS0xO3Q9aS5sZW5ndGh9dT1udWxsO289ZmFsc2U7cnVuQ2xlYXJUaW1lb3V0KGUpfXQubmV4dFRpY2s9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxlbmd0aD4xKXtmb3IodmFyIHI9MTtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXt0W3ItMV09YXJndW1lbnRzW3JdfX1pLnB1c2gobmV3IEl0ZW0oZSx0KSk7aWYoaS5sZW5ndGg9PT0xJiYhbyl7cnVuVGltZW91dChkcmFpblF1ZXVlKX19O2Z1bmN0aW9uIEl0ZW0oZSx0KXt0aGlzLmZ1bj1lO3RoaXMuYXJyYXk9dH1JdGVtLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfTt0LnRpdGxlPVwiYnJvd3NlclwiO3QuYnJvd3Nlcj10cnVlO3QuZW52PXt9O3QuYXJndj1bXTt0LnZlcnNpb249XCJcIjt0LnZlcnNpb25zPXt9O2Z1bmN0aW9uIG5vb3AoKXt9dC5vbj1ub29wO3QuYWRkTGlzdGVuZXI9bm9vcDt0Lm9uY2U9bm9vcDt0Lm9mZj1ub29wO3QucmVtb3ZlTGlzdGVuZXI9bm9vcDt0LnJlbW92ZUFsbExpc3RlbmVycz1ub29wO3QuZW1pdD1ub29wO3QucHJlcGVuZExpc3RlbmVyPW5vb3A7dC5wcmVwZW5kT25jZUxpc3RlbmVyPW5vb3A7dC5saXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuW119O3QuYmluZGluZz1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoXCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZFwiKX07dC5jd2Q9ZnVuY3Rpb24oKXtyZXR1cm5cIi9cIn07dC5jaGRpcj1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoXCJwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWRcIil9O3QudW1hc2s9ZnVuY3Rpb24oKXtyZXR1cm4gMH19fTt2YXIgdD17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKHIpe3ZhciBuPXRbcl07aWYobiE9PXVuZGVmaW5lZCl7cmV0dXJuIG4uZXhwb3J0c312YXIgaT10W3JdPXtleHBvcnRzOnt9fTt2YXIgbz10cnVlO3RyeXtlW3JdKGksaS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO289ZmFsc2V9ZmluYWxseXtpZihvKWRlbGV0ZSB0W3JdfXJldHVybiBpLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciByPV9fbmNjd3Bja19yZXF1aXJlX18oMjI5KTttb2R1bGUuZXhwb3J0cz1yfSkoKTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/process/browser.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js":
|
||
/*!****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js ***!
|
||
\****************************************************************************************/
|
||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("/**\r\n * @license React\r\n * react-jsx-dev-runtime.development.js\r\n *\r\n * Copyright (c) Meta Platforms, Inc. and affiliates.\r\n *\r\n * This source code is licensed under the MIT license found in the\r\n * LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nif (true) {\r\n (function() {\r\n'use strict';\r\n\r\nvar React = __webpack_require__(/*! next/dist/compiled/react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\r\n\r\n// ATTENTION\r\n// When adding new symbols to this file,\r\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\r\n// The Symbol used to tag the ReactElement-like types.\r\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\r\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\r\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\r\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\r\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\r\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\r\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\r\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\r\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\r\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\r\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\r\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\r\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\r\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\r\nvar REACT_CACHE_TYPE = Symbol.for('react.cache');\r\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\r\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\r\nfunction getIteratorFn(maybeIterable) {\r\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\r\n return null;\r\n }\r\n\r\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\r\n\r\n if (typeof maybeIterator === 'function') {\r\n return maybeIterator;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\r\n\r\nfunction error(format) {\r\n {\r\n {\r\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\r\n args[_key2 - 1] = arguments[_key2];\r\n }\r\n\r\n printWarning('error', format, args);\r\n }\r\n }\r\n}\r\n\r\nfunction printWarning(level, format, args) {\r\n // When changing this logic, you might want to also\r\n // update consoleWithStackDev.www.js as well.\r\n {\r\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\r\n var stack = ReactDebugCurrentFrame.getStackAddendum();\r\n\r\n if (stack !== '') {\r\n format += '%s';\r\n args = args.concat([stack]);\r\n } // eslint-disable-next-line react-internal/safe-string-coercion\r\n\r\n\r\n var argsWithFormat = args.map(function (item) {\r\n return String(item);\r\n }); // Careful: RN currently depends on this prefix\r\n\r\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\r\n // breaks IE9: https://github.com/facebook/react/issues/13610\r\n // eslint-disable-next-line react-internal/no-production-logging\r\n\r\n Function.prototype.apply.call(console[level], console, argsWithFormat);\r\n }\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n\r\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\r\nvar enableCacheElement = false;\r\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\r\n\r\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\r\n// stuff. Intended to enable React core members to more easily debug scheduling\r\n// issues in DEV builds.\r\n\r\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\r\n\r\nvar REACT_CLIENT_REFERENCE$1 = Symbol.for('react.client.reference');\r\nfunction isValidElementType(type) {\r\n if (typeof type === 'string' || typeof type === 'function') {\r\n return true;\r\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\r\n\r\n\r\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\r\n return true;\r\n }\r\n\r\n if (typeof type === 'object' && type !== null) {\r\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\r\n // types supported by any Flight configuration anywhere since\r\n // we don't know which Flight build this will end up being used\r\n // with.\r\n type.$$typeof === REACT_CLIENT_REFERENCE$1 || type.getModuleId !== undefined) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction getWrappedName(outerType, innerType, wrapperName) {\r\n var displayName = outerType.displayName;\r\n\r\n if (displayName) {\r\n return displayName;\r\n }\r\n\r\n var functionName = innerType.displayName || innerType.name || '';\r\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\r\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\r\n\r\n\r\nfunction getContextName(type) {\r\n return type.displayName || 'Context';\r\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\r\n\r\n\r\nfunction getComponentNameFromType(type) {\r\n if (type == null) {\r\n // Host root, text node or just invalid type.\r\n return null;\r\n }\r\n\r\n {\r\n if (typeof type.tag === 'number') {\r\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\r\n }\r\n }\r\n\r\n if (typeof type === 'function') {\r\n return type.displayName || type.name || null;\r\n }\r\n\r\n if (typeof type === 'string') {\r\n return type;\r\n }\r\n\r\n switch (type) {\r\n case REACT_FRAGMENT_TYPE:\r\n return 'Fragment';\r\n\r\n case REACT_PORTAL_TYPE:\r\n return 'Portal';\r\n\r\n case REACT_PROFILER_TYPE:\r\n return 'Profiler';\r\n\r\n case REACT_STRICT_MODE_TYPE:\r\n return 'StrictMode';\r\n\r\n case REACT_SUSPENSE_TYPE:\r\n return 'Suspense';\r\n\r\n case REACT_SUSPENSE_LIST_TYPE:\r\n return 'SuspenseList';\r\n\r\n case REACT_CACHE_TYPE:\r\n {\r\n return 'Cache';\r\n }\r\n\r\n }\r\n\r\n if (typeof type === 'object') {\r\n switch (type.$$typeof) {\r\n case REACT_CONTEXT_TYPE:\r\n var context = type;\r\n return getContextName(context) + '.Consumer';\r\n\r\n case REACT_PROVIDER_TYPE:\r\n var provider = type;\r\n return getContextName(provider._context) + '.Provider';\r\n\r\n case REACT_FORWARD_REF_TYPE:\r\n return getWrappedName(type, type.render, 'ForwardRef');\r\n\r\n case REACT_MEMO_TYPE:\r\n var outerName = type.displayName || null;\r\n\r\n if (outerName !== null) {\r\n return outerName;\r\n }\r\n\r\n return getComponentNameFromType(type.type) || 'Memo';\r\n\r\n case REACT_LAZY_TYPE:\r\n {\r\n var lazyComponent = type;\r\n var payload = lazyComponent._payload;\r\n var init = lazyComponent._init;\r\n\r\n try {\r\n return getComponentNameFromType(init(payload));\r\n } catch (x) {\r\n return null;\r\n }\r\n }\r\n\r\n case REACT_SERVER_CONTEXT_TYPE:\r\n {\r\n var context2 = type;\r\n return (context2.displayName || context2._globalName) + '.Provider';\r\n }\r\n\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nvar assign = Object.assign;\r\n\r\n// Helpers to patch console.logs to avoid logging during side-effect free\r\n// replaying on render function. This currently only patches the object\r\n// lazily which won't cover if the log function was extracted eagerly.\r\n// We could also eagerly patch the method.\r\nvar disabledDepth = 0;\r\nvar prevLog;\r\nvar prevInfo;\r\nvar prevWarn;\r\nvar prevError;\r\nvar prevGroup;\r\nvar prevGroupCollapsed;\r\nvar prevGroupEnd;\r\n\r\nfunction disabledLog() {}\r\n\r\ndisabledLog.__reactDisabledLog = true;\r\nfunction disableLogs() {\r\n {\r\n if (disabledDepth === 0) {\r\n /* eslint-disable react-internal/no-production-logging */\r\n prevLog = console.log;\r\n prevInfo = console.info;\r\n prevWarn = console.warn;\r\n prevError = console.error;\r\n prevGroup = console.group;\r\n prevGroupCollapsed = console.groupCollapsed;\r\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\r\n\r\n var props = {\r\n configurable: true,\r\n enumerable: true,\r\n value: disabledLog,\r\n writable: true\r\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\r\n\r\n Object.defineProperties(console, {\r\n info: props,\r\n log: props,\r\n warn: props,\r\n error: props,\r\n group: props,\r\n groupCollapsed: props,\r\n groupEnd: props\r\n });\r\n /* eslint-enable react-internal/no-production-logging */\r\n }\r\n\r\n disabledDepth++;\r\n }\r\n}\r\nfunction reenableLogs() {\r\n {\r\n disabledDepth--;\r\n\r\n if (disabledDepth === 0) {\r\n /* eslint-disable react-internal/no-production-logging */\r\n var props = {\r\n configurable: true,\r\n enumerable: true,\r\n writable: true\r\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\r\n\r\n Object.defineProperties(console, {\r\n log: assign({}, props, {\r\n value: prevLog\r\n }),\r\n info: assign({}, props, {\r\n value: prevInfo\r\n }),\r\n warn: assign({}, props, {\r\n value: prevWarn\r\n }),\r\n error: assign({}, props, {\r\n value: prevError\r\n }),\r\n group: assign({}, props, {\r\n value: prevGroup\r\n }),\r\n groupCollapsed: assign({}, props, {\r\n value: prevGroupCollapsed\r\n }),\r\n groupEnd: assign({}, props, {\r\n value: prevGroupEnd\r\n })\r\n });\r\n /* eslint-enable react-internal/no-production-logging */\r\n }\r\n\r\n if (disabledDepth < 0) {\r\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\r\n }\r\n }\r\n}\r\n\r\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\r\nvar prefix;\r\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\r\n {\r\n if (prefix === undefined) {\r\n // Extract the VM specific prefix used by each line.\r\n try {\r\n throw Error();\r\n } catch (x) {\r\n var match = x.stack.trim().match(/\\n( *(at )?)/);\r\n prefix = match && match[1] || '';\r\n }\r\n } // We use the prefix to ensure our stacks line up with native stack frames.\r\n\r\n\r\n return '\\n' + prefix + name;\r\n }\r\n}\r\nvar reentry = false;\r\nvar componentFrameCache;\r\n\r\n{\r\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\r\n componentFrameCache = new PossiblyWeakMap();\r\n}\r\n\r\nfunction describeNativeComponentFrame(fn, construct) {\r\n // If something asked for a stack inside a fake render, it should get ignored.\r\n if (!fn || reentry) {\r\n return '';\r\n }\r\n\r\n {\r\n var frame = componentFrameCache.get(fn);\r\n\r\n if (frame !== undefined) {\r\n return frame;\r\n }\r\n }\r\n\r\n var control;\r\n reentry = true;\r\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined.\r\n\r\n Error.prepareStackTrace = undefined;\r\n var previousDispatcher;\r\n\r\n {\r\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\r\n // for warnings.\r\n\r\n ReactCurrentDispatcher.current = null;\r\n disableLogs();\r\n }\r\n\r\n try {\r\n // This should throw.\r\n if (construct) {\r\n // Something should be setting the props in the constructor.\r\n var Fake = function () {\r\n throw Error();\r\n }; // $FlowFixMe[prop-missing]\r\n\r\n\r\n Object.defineProperty(Fake.prototype, 'props', {\r\n set: function () {\r\n // We use a throwing setter instead of frozen or non-writable props\r\n // because that won't throw in a non-strict mode function.\r\n throw Error();\r\n }\r\n });\r\n\r\n if (typeof Reflect === 'object' && Reflect.construct) {\r\n // We construct a different control for this case to include any extra\r\n // frames added by the construct call.\r\n try {\r\n Reflect.construct(Fake, []);\r\n } catch (x) {\r\n control = x;\r\n }\r\n\r\n Reflect.construct(fn, [], Fake);\r\n } else {\r\n try {\r\n Fake.call();\r\n } catch (x) {\r\n control = x;\r\n } // $FlowFixMe[prop-missing] found when upgrading Flow\r\n\r\n\r\n fn.call(Fake.prototype);\r\n }\r\n } else {\r\n try {\r\n throw Error();\r\n } catch (x) {\r\n control = x;\r\n } // TODO(luna): This will currently only throw if the function component\r\n // tries to access React/ReactDOM/props. We should probably make this throw\r\n // in simple components too\r\n\r\n\r\n var maybePromise = fn(); // If the function component returns a promise, it's likely an async\r\n // component, which we don't yet support. Attach a noop catch handler to\r\n // silence the error.\r\n // TODO: Implement component stacks for async client components?\r\n\r\n if (maybePromise && typeof maybePromise.catch === 'function') {\r\n maybePromise.catch(function () {});\r\n }\r\n }\r\n } catch (sample) {\r\n // This is inlined manually because closure doesn't do it for us.\r\n if (sample && control && typeof sample.stack === 'string') {\r\n // This extracts the first frame from the sample that isn't also in the control.\r\n // Skipping one frame that we assume is the frame that calls the two.\r\n var sampleLines = sample.stack.split('\\n');\r\n var controlLines = control.stack.split('\\n');\r\n var s = sampleLines.length - 1;\r\n var c = controlLines.length - 1;\r\n\r\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\r\n // We expect at least one stack frame to be shared.\r\n // Typically this will be the root most one. However, stack frames may be\r\n // cut off due to maximum stack limits. In this case, one maybe cut off\r\n // earlier than the other. We assume that the sample is longer or the same\r\n // and there for cut off earlier. So we should find the root most frame in\r\n // the sample somewhere in the control.\r\n c--;\r\n }\r\n\r\n for (; s >= 1 && c >= 0; s--, c--) {\r\n // Next we find the first one that isn't the same which should be the\r\n // frame that called our sample function and the control.\r\n if (sampleLines[s] !== controlLines[c]) {\r\n // In V8, the first line is describing the message but other VMs don't.\r\n // If we're about to return the first line, and the control is also on the same\r\n // line, that's a pretty good indicator that our sample threw at same line as\r\n // the control. I.e. before we entered the sample frame. So we ignore this result.\r\n // This can happen if you passed a class to function component, or non-function.\r\n if (s !== 1 || c !== 1) {\r\n do {\r\n s--;\r\n c--; // We may still have similar intermediate frames from the construct call.\r\n // The next one that isn't the same should be our match though.\r\n\r\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\r\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\r\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\r\n // but we have a user-provided \"displayName\"\r\n // splice it in to make the stack more readable.\r\n\r\n\r\n if (fn.displayName && _frame.includes('<anonymous>')) {\r\n _frame = _frame.replace('<anonymous>', fn.displayName);\r\n }\r\n\r\n {\r\n if (typeof fn === 'function') {\r\n componentFrameCache.set(fn, _frame);\r\n }\r\n } // Return the line we found.\r\n\r\n\r\n return _frame;\r\n }\r\n } while (s >= 1 && c >= 0);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n } finally {\r\n reentry = false;\r\n\r\n {\r\n ReactCurrentDispatcher.current = previousDispatcher;\r\n reenableLogs();\r\n }\r\n\r\n Error.prepareStackTrace = previousPrepareStackTrace;\r\n } // Fallback to just using the name if we couldn't make it throw.\r\n\r\n\r\n var name = fn ? fn.displayName || fn.name : '';\r\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\r\n\r\n {\r\n if (typeof fn === 'function') {\r\n componentFrameCache.set(fn, syntheticFrame);\r\n }\r\n }\r\n\r\n return syntheticFrame;\r\n}\r\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\r\n {\r\n return describeNativeComponentFrame(fn, false);\r\n }\r\n}\r\n\r\nfunction shouldConstruct(Component) {\r\n var prototype = Component.prototype;\r\n return !!(prototype && prototype.isReactComponent);\r\n}\r\n\r\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\r\n\r\n if (type == null) {\r\n return '';\r\n }\r\n\r\n if (typeof type === 'function') {\r\n {\r\n return describeNativeComponentFrame(type, shouldConstruct(type));\r\n }\r\n }\r\n\r\n if (typeof type === 'string') {\r\n return describeBuiltInComponentFrame(type);\r\n }\r\n\r\n switch (type) {\r\n case REACT_SUSPENSE_TYPE:\r\n return describeBuiltInComponentFrame('Suspense');\r\n\r\n case REACT_SUSPENSE_LIST_TYPE:\r\n return describeBuiltInComponentFrame('SuspenseList');\r\n }\r\n\r\n if (typeof type === 'object') {\r\n switch (type.$$typeof) {\r\n case REACT_FORWARD_REF_TYPE:\r\n return describeFunctionComponentFrame(type.render);\r\n\r\n case REACT_MEMO_TYPE:\r\n // Memo may contain any component type so we recursively resolve it.\r\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\r\n\r\n case REACT_LAZY_TYPE:\r\n {\r\n var lazyComponent = type;\r\n var payload = lazyComponent._payload;\r\n var init = lazyComponent._init;\r\n\r\n try {\r\n // Lazy may contain any component type so we recursively resolve it.\r\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\r\n } catch (x) {}\r\n }\r\n }\r\n }\r\n\r\n return '';\r\n}\r\n\r\n// $FlowFixMe[method-unbinding]\r\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nvar loggedTypeFailures = {};\r\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\r\n\r\nfunction setCurrentlyValidatingElement$1(element) {\r\n {\r\n if (element) {\r\n var owner = element._owner;\r\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\r\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\r\n } else {\r\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\r\n }\r\n }\r\n}\r\n\r\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\r\n {\r\n // $FlowFixMe[incompatible-use] This is okay but Flow doesn't know it.\r\n var has = Function.call.bind(hasOwnProperty);\r\n\r\n for (var typeSpecName in typeSpecs) {\r\n if (has(typeSpecs, typeSpecName)) {\r\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\r\n // fail the render phase where it didn't fail before. So we log it.\r\n // After these have been cleaned up, we'll let them throw.\r\n\r\n try {\r\n // This is intentionally an invariant that gets caught. It's the same\r\n // behavior as without this statement except with a better message.\r\n if (typeof typeSpecs[typeSpecName] !== 'function') {\r\n // eslint-disable-next-line react-internal/prod-error-codes\r\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\r\n err.name = 'Invariant Violation';\r\n throw err;\r\n }\r\n\r\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\r\n } catch (ex) {\r\n error$1 = ex;\r\n }\r\n\r\n if (error$1 && !(error$1 instanceof Error)) {\r\n setCurrentlyValidatingElement$1(element);\r\n\r\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\r\n\r\n setCurrentlyValidatingElement$1(null);\r\n }\r\n\r\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\r\n // Only monitor this failure once because there tends to be a lot of the\r\n // same error.\r\n loggedTypeFailures[error$1.message] = true;\r\n setCurrentlyValidatingElement$1(element);\r\n\r\n error('Failed %s type: %s', location, error$1.message);\r\n\r\n setCurrentlyValidatingElement$1(null);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\r\n\r\nfunction isArray(a) {\r\n return isArrayImpl(a);\r\n}\r\n\r\n/*\r\n * The `'' + value` pattern (used in perf-sensitive code) throws for Symbol\r\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\r\n *\r\n * The functions in this module will throw an easier-to-understand,\r\n * easier-to-debug exception with a clear errors message message explaining the\r\n * problem. (Instead of a confusing exception thrown inside the implementation\r\n * of the `value` object).\r\n */\r\n// $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\r\nfunction typeName(value) {\r\n {\r\n // toStringTag is needed for namespaced types like Temporal.Instant\r\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\r\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object'; // $FlowFixMe[incompatible-return]\r\n\r\n return type;\r\n }\r\n} // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\r\n\r\n\r\nfunction willCoercionThrow(value) {\r\n {\r\n try {\r\n testStringCoercion(value);\r\n return false;\r\n } catch (e) {\r\n return true;\r\n }\r\n }\r\n}\r\n\r\nfunction testStringCoercion(value) {\r\n // If you ended up here by following an exception call stack, here's what's\r\n // happened: you supplied an object or symbol value to React (as a prop, key,\r\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\r\n // coerce it to a string using `'' + value`, an exception was thrown.\r\n //\r\n // The most common types that will cause this exception are `Symbol` instances\r\n // and Temporal objects like `Temporal.Instant`. But any object that has a\r\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\r\n // exception. (Library authors do this to prevent users from using built-in\r\n // numeric operators like `+` or comparison operators like `>=` because custom\r\n // methods are needed to perform accurate arithmetic or comparison.)\r\n //\r\n // To fix the problem, coerce this object or symbol value to a string before\r\n // passing it to React. The most reliable way is usually `String(value)`.\r\n //\r\n // To find which value is throwing, check the browser or debugger console.\r\n // Before this exception was thrown, there should be `console.error` output\r\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\r\n // problem and how that type was used: key, atrribute, input value prop, etc.\r\n // In most cases, this console output also shows the component and its\r\n // ancestor components where the exception happened.\r\n //\r\n // eslint-disable-next-line react-internal/safe-string-coercion\r\n return '' + value;\r\n}\r\nfunction checkKeyStringCoercion(value) {\r\n {\r\n if (willCoercionThrow(value)) {\r\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\r\n\r\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\r\n }\r\n }\r\n}\r\n\r\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\r\nvar RESERVED_PROPS = {\r\n key: true,\r\n ref: true,\r\n __self: true,\r\n __source: true\r\n};\r\nvar specialPropKeyWarningShown;\r\nvar specialPropRefWarningShown;\r\nvar didWarnAboutStringRefs;\r\n\r\n{\r\n didWarnAboutStringRefs = {};\r\n}\r\n\r\nfunction hasValidRef(config) {\r\n {\r\n if (hasOwnProperty.call(config, 'ref')) {\r\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\r\n\r\n if (getter && getter.isReactWarning) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return config.ref !== undefined;\r\n}\r\n\r\nfunction hasValidKey(config) {\r\n {\r\n if (hasOwnProperty.call(config, 'key')) {\r\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\r\n\r\n if (getter && getter.isReactWarning) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return config.key !== undefined;\r\n}\r\n\r\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\r\n {\r\n if (typeof config.ref === 'string' && ReactCurrentOwner$1.current && self && ReactCurrentOwner$1.current.stateNode !== self) {\r\n var componentName = getComponentNameFromType(ReactCurrentOwner$1.current.type);\r\n\r\n if (!didWarnAboutStringRefs[componentName]) {\r\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner$1.current.type), config.ref);\r\n\r\n didWarnAboutStringRefs[componentName] = true;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction defineKeyPropWarningGetter(props, displayName) {\r\n {\r\n var warnAboutAccessingKey = function () {\r\n if (!specialPropKeyWarningShown) {\r\n specialPropKeyWarningShown = true;\r\n\r\n error('%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://reactjs.org/link/special-props)', displayName);\r\n }\r\n };\r\n\r\n warnAboutAccessingKey.isReactWarning = true;\r\n Object.defineProperty(props, 'key', {\r\n get: warnAboutAccessingKey,\r\n configurable: true\r\n });\r\n }\r\n}\r\n\r\nfunction defineRefPropWarningGetter(props, displayName) {\r\n {\r\n var warnAboutAccessingRef = function () {\r\n if (!specialPropRefWarningShown) {\r\n specialPropRefWarningShown = true;\r\n\r\n error('%s: `ref` 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://reactjs.org/link/special-props)', displayName);\r\n }\r\n };\r\n\r\n warnAboutAccessingRef.isReactWarning = true;\r\n Object.defineProperty(props, 'ref', {\r\n get: warnAboutAccessingRef,\r\n configurable: true\r\n });\r\n }\r\n}\r\n/**\r\n * Factory method to create a new React element. This no longer adheres to\r\n * the class pattern, so do not use new to call it. Also, instanceof check\r\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\r\n * if something is a React Element.\r\n *\r\n * @param {*} type\r\n * @param {*} props\r\n * @param {*} key\r\n * @param {string|object} ref\r\n * @param {*} owner\r\n * @param {*} self A *temporary* helper to detect places where `this` is\r\n * different from the `owner` when React.createElement is called, so that we\r\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\r\n * functions, and as long as `this` and owner are the same, there will be no\r\n * change in behavior.\r\n * @param {*} source An annotation object (added by a transpiler or otherwise)\r\n * indicating filename, line number, and/or other information.\r\n * @internal\r\n */\r\n\r\n\r\nfunction ReactElement(type, key, ref, self, source, owner, props) {\r\n var element = {\r\n // This tag allows us to uniquely identify this as a React Element\r\n $$typeof: REACT_ELEMENT_TYPE,\r\n // Built-in properties that belong on the element\r\n type: type,\r\n key: key,\r\n ref: ref,\r\n props: props,\r\n // Record the component responsible for creating this element.\r\n _owner: owner\r\n };\r\n\r\n {\r\n // The validation flag is currently mutative. We put it on\r\n // an external backing store so that we can freeze the whole object.\r\n // This can be replaced with a WeakMap once they are implemented in\r\n // commonly used development environments.\r\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\r\n // the validation flag non-enumerable (where possible, which should\r\n // include every environment we run tests in), so the test framework\r\n // ignores it.\r\n\r\n Object.defineProperty(element._store, 'validated', {\r\n configurable: false,\r\n enumerable: false,\r\n writable: true,\r\n value: false\r\n }); // self and source are DEV only properties.\r\n\r\n Object.defineProperty(element, '_self', {\r\n configurable: false,\r\n enumerable: false,\r\n writable: false,\r\n value: self\r\n }); // Two elements created in two different places should be considered\r\n // equal for testing purposes and therefore we hide it from enumeration.\r\n\r\n Object.defineProperty(element, '_source', {\r\n configurable: false,\r\n enumerable: false,\r\n writable: false,\r\n value: source\r\n });\r\n\r\n if (Object.freeze) {\r\n Object.freeze(element.props);\r\n Object.freeze(element);\r\n }\r\n }\r\n\r\n return element;\r\n}\r\n/**\r\n * https://github.com/reactjs/rfcs/pull/107\r\n * @param {*} type\r\n * @param {object} props\r\n * @param {string} key\r\n */\r\n\r\nfunction jsxDEV$1(type, config, maybeKey, source, self) {\r\n {\r\n var propName; // Reserved names are extracted\r\n\r\n var props = {};\r\n var key = null;\r\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\r\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\r\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\r\n // but as an intermediary step, we will use jsxDEV for everything except\r\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\r\n // key is explicitly declared to be undefined or not.\r\n\r\n if (maybeKey !== undefined) {\r\n {\r\n checkKeyStringCoercion(maybeKey);\r\n }\r\n\r\n key = '' + maybeKey;\r\n }\r\n\r\n if (hasValidKey(config)) {\r\n {\r\n checkKeyStringCoercion(config.key);\r\n }\r\n\r\n key = '' + config.key;\r\n }\r\n\r\n if (hasValidRef(config)) {\r\n ref = config.ref;\r\n warnIfStringRefCannotBeAutoConverted(config, self);\r\n } // Remaining properties are added to a new props object\r\n\r\n\r\n for (propName in config) {\r\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\r\n props[propName] = config[propName];\r\n }\r\n } // Resolve default props\r\n\r\n\r\n if (type && type.defaultProps) {\r\n var defaultProps = type.defaultProps;\r\n\r\n for (propName in defaultProps) {\r\n if (props[propName] === undefined) {\r\n props[propName] = defaultProps[propName];\r\n }\r\n }\r\n }\r\n\r\n if (key || ref) {\r\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\r\n\r\n if (key) {\r\n defineKeyPropWarningGetter(props, displayName);\r\n }\r\n\r\n if (ref) {\r\n defineRefPropWarningGetter(props, displayName);\r\n }\r\n }\r\n\r\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner$1.current, props);\r\n }\r\n}\r\n\r\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\r\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\r\nvar REACT_CLIENT_REFERENCE = Symbol.for('react.client.reference');\r\n\r\nfunction setCurrentlyValidatingElement(element) {\r\n {\r\n if (element) {\r\n var owner = element._owner;\r\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\r\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\r\n } else {\r\n ReactDebugCurrentFrame.setExtraStackFrame(null);\r\n }\r\n }\r\n}\r\n\r\nvar propTypesMisspellWarningShown;\r\n\r\n{\r\n propTypesMisspellWarningShown = false;\r\n}\r\n/**\r\n * Verifies the object is a ReactElement.\r\n * See https://reactjs.org/docs/react-api.html#isvalidelement\r\n * @param {?object} object\r\n * @return {boolean} True if `object` is a ReactElement.\r\n * @final\r\n */\r\n\r\n\r\nfunction isValidElement(object) {\r\n {\r\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\r\n }\r\n}\r\n\r\nfunction getDeclarationErrorAddendum() {\r\n {\r\n if (ReactCurrentOwner.current) {\r\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\r\n\r\n if (name) {\r\n return '\\n\\nCheck the render method of `' + name + '`.';\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n\r\nfunction getSourceInfoErrorAddendum(source) {\r\n {\r\n if (source !== undefined) {\r\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\r\n var lineNumber = source.lineNumber;\r\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n/**\r\n * Warn if there's no key explicitly set on dynamic arrays of children or\r\n * object keys are not valid. This allows us to keep track of children between\r\n * updates.\r\n */\r\n\r\n\r\nvar ownerHasKeyUseWarning = {};\r\n\r\nfunction getCurrentComponentErrorInfo(parentType) {\r\n {\r\n var info = getDeclarationErrorAddendum();\r\n\r\n if (!info) {\r\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\r\n\r\n if (parentName) {\r\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\r\n }\r\n }\r\n\r\n return info;\r\n }\r\n}\r\n/**\r\n * Warn if the element doesn't have an explicit key assigned to it.\r\n * This element is in an array. The array could grow and shrink or be\r\n * reordered. All children that haven't already been validated are required to\r\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\r\n * will only be shown once.\r\n *\r\n * @internal\r\n * @param {ReactElement} element Element that requires a key.\r\n * @param {*} parentType element's parent's type.\r\n */\r\n\r\n\r\nfunction validateExplicitKey(element, parentType) {\r\n {\r\n if (!element._store || element._store.validated || element.key != null) {\r\n return;\r\n }\r\n\r\n element._store.validated = true;\r\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\r\n\r\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\r\n return;\r\n }\r\n\r\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\r\n // property, it may be the creator of the child that's responsible for\r\n // assigning it a key.\r\n\r\n var childOwner = '';\r\n\r\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\r\n // Give the component that originally created this child.\r\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\r\n }\r\n\r\n setCurrentlyValidatingElement(element);\r\n\r\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\r\n\r\n setCurrentlyValidatingElement(null);\r\n }\r\n}\r\n/**\r\n * Ensure that every element either is passed in a static location, in an\r\n * array with an explicit keys property defined, or in an object literal\r\n * with valid key property.\r\n *\r\n * @internal\r\n * @param {ReactNode} node Statically passed child of any type.\r\n * @param {*} parentType node's parent's type.\r\n */\r\n\r\n\r\nfunction validateChildKeys(node, parentType) {\r\n {\r\n if (typeof node !== 'object' || !node) {\r\n return;\r\n }\r\n\r\n if (node.$$typeof === REACT_CLIENT_REFERENCE) ; else if (isArray(node)) {\r\n for (var i = 0; i < node.length; i++) {\r\n var child = node[i];\r\n\r\n if (isValidElement(child)) {\r\n validateExplicitKey(child, parentType);\r\n }\r\n }\r\n } else if (isValidElement(node)) {\r\n // This element was passed in a valid location.\r\n if (node._store) {\r\n node._store.validated = true;\r\n }\r\n } else {\r\n var iteratorFn = getIteratorFn(node);\r\n\r\n if (typeof iteratorFn === 'function') {\r\n // Entry iterators used to provide implicit keys,\r\n // but now we print a separate warning for them later.\r\n if (iteratorFn !== node.entries) {\r\n var iterator = iteratorFn.call(node);\r\n var step;\r\n\r\n while (!(step = iterator.next()).done) {\r\n if (isValidElement(step.value)) {\r\n validateExplicitKey(step.value, parentType);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Given an element, validate that its props follow the propTypes definition,\r\n * provided by the type.\r\n *\r\n * @param {ReactElement} element\r\n */\r\n\r\n\r\nfunction validatePropTypes(element) {\r\n {\r\n var type = element.type;\r\n\r\n if (type === null || type === undefined || typeof type === 'string') {\r\n return;\r\n }\r\n\r\n if (type.$$typeof === REACT_CLIENT_REFERENCE) {\r\n return;\r\n }\r\n\r\n var propTypes;\r\n\r\n if (typeof type === 'function') {\r\n propTypes = type.propTypes;\r\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\r\n // Inner props are checked in the reconciler.\r\n type.$$typeof === REACT_MEMO_TYPE)) {\r\n propTypes = type.propTypes;\r\n } else {\r\n return;\r\n }\r\n\r\n if (propTypes) {\r\n // Intentionally inside to avoid triggering lazy initializers:\r\n var name = getComponentNameFromType(type);\r\n checkPropTypes(propTypes, element.props, 'prop', name, element);\r\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\r\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\r\n\r\n var _name = getComponentNameFromType(type);\r\n\r\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\r\n }\r\n\r\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\r\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\r\n }\r\n }\r\n}\r\n/**\r\n * Given a fragment, validate that it can only be provided with fragment props\r\n * @param {ReactElement} fragment\r\n */\r\n\r\n\r\nfunction validateFragmentProps(fragment) {\r\n {\r\n var keys = Object.keys(fragment.props);\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n\r\n if (key !== 'children' && key !== 'key') {\r\n setCurrentlyValidatingElement(fragment);\r\n\r\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\r\n\r\n setCurrentlyValidatingElement(null);\r\n break;\r\n }\r\n }\r\n\r\n if (fragment.ref !== null) {\r\n setCurrentlyValidatingElement(fragment);\r\n\r\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\r\n\r\n setCurrentlyValidatingElement(null);\r\n }\r\n }\r\n}\r\n\r\nvar didWarnAboutKeySpread = {};\r\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\r\n {\r\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\r\n // succeed and there will likely be errors in render.\r\n\r\n if (!validType) {\r\n var info = '';\r\n\r\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\r\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\r\n }\r\n\r\n var sourceInfo = getSourceInfoErrorAddendum(source);\r\n\r\n if (sourceInfo) {\r\n info += sourceInfo;\r\n } else {\r\n info += getDeclarationErrorAddendum();\r\n }\r\n\r\n var typeString;\r\n\r\n if (type === null) {\r\n typeString = 'null';\r\n } else if (isArray(type)) {\r\n typeString = 'array';\r\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\r\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\r\n info = ' Did you accidentally export a JSX literal instead of a component?';\r\n } else {\r\n typeString = typeof type;\r\n }\r\n\r\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\r\n }\r\n\r\n var element = jsxDEV$1(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\r\n // TODO: Drop this when these are no longer allowed as the type argument.\r\n\r\n if (element == null) {\r\n return element;\r\n } // Skip key warning if the type isn't valid since our key validation logic\r\n // doesn't expect a non-string/function type and can throw confusing errors.\r\n // We don't want exception behavior to differ between dev and prod.\r\n // (Rendering will throw with a helpful message and as soon as the type is\r\n // fixed, the key warnings will appear.)\r\n\r\n\r\n if (validType) {\r\n var children = props.children;\r\n\r\n if (children !== undefined) {\r\n if (isStaticChildren) {\r\n if (isArray(children)) {\r\n for (var i = 0; i < children.length; i++) {\r\n validateChildKeys(children[i], type);\r\n }\r\n\r\n if (Object.freeze) {\r\n Object.freeze(children);\r\n }\r\n } else {\r\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\r\n }\r\n } else {\r\n validateChildKeys(children, type);\r\n }\r\n }\r\n }\r\n\r\n if (hasOwnProperty.call(props, 'key')) {\r\n var componentName = getComponentNameFromType(type);\r\n var keys = Object.keys(props).filter(function (k) {\r\n return k !== 'key';\r\n });\r\n var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\r\n\r\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\r\n var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\r\n\r\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + ' let props = %s;\\n' + ' <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + ' let props = %s;\\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\r\n\r\n didWarnAboutKeySpread[componentName + beforeExample] = true;\r\n }\r\n }\r\n\r\n if (type === REACT_FRAGMENT_TYPE) {\r\n validateFragmentProps(element);\r\n } else {\r\n validatePropTypes(element);\r\n }\r\n\r\n return element;\r\n }\r\n} // These two functions exist to still get child warnings in dev\r\n\r\nvar jsxDEV = jsxWithValidation ;\r\n\r\nexports.Fragment = REACT_FRAGMENT_TYPE;\r\nexports.jsxDEV = jsxDEV;\r\n })();\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNhO0FBQ2I7QUFDQSxJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLFlBQVksbUJBQU8sQ0FBQyxzR0FBMEI7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlHQUFpRyxlQUFlO0FBQ2hIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssR0FBRztBQUNSO0FBQ0Esa0RBQWtEO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBLHFDQUFxQztBQUNyQztBQUNBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQSxTQUFTO0FBQ1QsdUJBQXVCO0FBQ3ZCO0FBQ0EsU0FBUztBQUNULHVCQUF1QjtBQUN2QjtBQUNBLFNBQVM7QUFDVCx3QkFBd0I7QUFDeEI7QUFDQSxTQUFTO0FBQ1Qsd0JBQXdCO0FBQ3hCO0FBQ0EsU0FBUztBQUNULGlDQUFpQztBQUNqQztBQUNBLFNBQVM7QUFDVCwyQkFBMkI7QUFDM0I7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQ7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekM7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsa0JBQWtCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnRkFBZ0Y7QUFDaEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEIsWUFBWSxTQUFTO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxjQUFjO0FBQ3pCLFdBQVcsR0FBRztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkRBQTZEO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFdBQVc7QUFDdEIsV0FBVyxHQUFHO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0RBQW9EO0FBQ3BELHNCQUFzQixpQkFBaUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGNBQWM7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLDRDQUE0QztBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsY0FBYztBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHFCQUFxQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsOENBQThDLGdEQUFnRCxNQUFNLGFBQWE7QUFDakg7QUFDQTtBQUNBLCtDQUErQyxrQ0FBa0MsT0FBTztBQUN4RjtBQUNBLHVHQUF1RyxjQUFjLFVBQVUsZ0dBQWdHLGtCQUFrQixVQUFVLFVBQVU7QUFDclE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEIsY0FBYztBQUNkLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0L2Nqcy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanM/ZmYzNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2UgUmVhY3RcclxuICogcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzXHJcbiAqXHJcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXHJcbiAqXHJcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxyXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXHJcbiAqL1xyXG5cclxuJ3VzZSBzdHJpY3QnO1xyXG5cclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xyXG4gIChmdW5jdGlvbigpIHtcclxuJ3VzZSBzdHJpY3QnO1xyXG5cclxudmFyIFJlYWN0ID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9yZWFjdFwiKTtcclxuXHJcbi8vIEFUVEVOVElPTlxyXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXHJcbi8vIFBsZWFzZSBjb25zaWRlciBhbHNvIGFkZGluZyB0byAncmVhY3QtZGV2dG9vbHMtc2hhcmVkL3NyYy9iYWNrZW5kL1JlYWN0U3ltYm9scydcclxuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuXHJcbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50Jyk7XHJcbnZhciBSRUFDVF9QT1JUQUxfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnBvcnRhbCcpO1xyXG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XHJcbnZhciBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcclxudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wcm9maWxlcicpO1xyXG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb3ZpZGVyJyk7XHJcbnZhciBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5jb250ZXh0Jyk7XHJcbnZhciBSRUFDVF9TRVJWRVJfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc2VydmVyX2NvbnRleHQnKTtcclxudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpO1xyXG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XHJcbnZhciBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZV9saXN0Jyk7XHJcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJyk7XHJcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5sYXp5Jyk7XHJcbnZhciBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0Lm9mZnNjcmVlbicpO1xyXG52YXIgUkVBQ1RfQ0FDSEVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNhY2hlJyk7XHJcbnZhciBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgPSBTeW1ib2wuaXRlcmF0b3I7XHJcbnZhciBGQVVYX0lURVJBVE9SX1NZTUJPTCA9ICdAQGl0ZXJhdG9yJztcclxuZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XHJcbiAgaWYgKG1heWJlSXRlcmFibGUgPT09IG51bGwgfHwgdHlwZW9mIG1heWJlSXRlcmFibGUgIT09ICdvYmplY3QnKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHZhciBtYXliZUl0ZXJhdG9yID0gTUFZQkVfSVRFUkFUT1JfU1lNQk9MICYmIG1heWJlSXRlcmFibGVbTUFZQkVfSVRFUkFUT1JfU1lNQk9MXSB8fCBtYXliZUl0ZXJhYmxlW0ZBVVhfSVRFUkFUT1JfU1lNQk9MXTtcclxuXHJcbiAgaWYgKHR5cGVvZiBtYXliZUl0ZXJhdG9yID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICByZXR1cm4gbWF5YmVJdGVyYXRvcjtcclxuICB9XHJcblxyXG4gIHJldHVybiBudWxsO1xyXG59XHJcblxyXG52YXIgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPSBSZWFjdC5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDtcclxuXHJcbmZ1bmN0aW9uIGVycm9yKGZvcm1hdCkge1xyXG4gIHtcclxuICAgIHtcclxuICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcclxuICAgICAgICBhcmdzW19rZXkyIC0gMV0gPSBhcmd1bWVudHNbX2tleTJdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBwcmludFdhcm5pbmcoJ2Vycm9yJywgZm9ybWF0LCBhcmdzKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHByaW50V2FybmluZyhsZXZlbCwgZm9ybWF0LCBhcmdzKSB7XHJcbiAgLy8gV2hlbiBjaGFuZ2luZyB0aGlzIGxvZ2ljLCB5b3UgbWlnaHQgd2FudCB0byBhbHNvXHJcbiAgLy8gdXBkYXRlIGNvbnNvbGVXaXRoU3RhY2tEZXYud3d3LmpzIGFzIHdlbGwuXHJcbiAge1xyXG4gICAgdmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xyXG4gICAgdmFyIHN0YWNrID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRTdGFja0FkZGVuZHVtKCk7XHJcblxyXG4gICAgaWYgKHN0YWNrICE9PSAnJykge1xyXG4gICAgICBmb3JtYXQgKz0gJyVzJztcclxuICAgICAgYXJncyA9IGFyZ3MuY29uY2F0KFtzdGFja10pO1xyXG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cclxuXHJcblxyXG4gICAgdmFyIGFyZ3NXaXRoRm9ybWF0ID0gYXJncy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcclxuICAgICAgcmV0dXJuIFN0cmluZyhpdGVtKTtcclxuICAgIH0pOyAvLyBDYXJlZnVsOiBSTiBjdXJyZW50bHkgZGVwZW5kcyBvbiB0aGlzIHByZWZpeFxyXG5cclxuICAgIGFyZ3NXaXRoRm9ybWF0LnVuc2hpZnQoJ1dhcm5pbmc6ICcgKyBmb3JtYXQpOyAvLyBXZSBpbnRlbnRpb25hbGx5IGRvbid0IHVzZSBzcHJlYWQgKG9yIC5hcHBseSkgZGlyZWN0bHkgYmVjYXVzZSBpdFxyXG4gICAgLy8gYnJlYWtzIElFOTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzYxMFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZ1xyXG5cclxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGVbbGV2ZWxdLCBjb25zb2xlLCBhcmdzV2l0aEZvcm1hdCk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxudmFyIGVuYWJsZVNjb3BlQVBJID0gZmFsc2U7IC8vIEV4cGVyaW1lbnRhbCBDcmVhdGUgRXZlbnQgSGFuZGxlIEFQSS5cclxudmFyIGVuYWJsZUNhY2hlRWxlbWVudCA9IGZhbHNlO1xyXG52YXIgZW5hYmxlVHJhbnNpdGlvblRyYWNpbmcgPSBmYWxzZTsgLy8gTm8ga25vd24gYnVncywgYnV0IG5lZWRzIHBlcmZvcm1hbmNlIHRlc3RpbmdcclxuXHJcbnZhciBlbmFibGVMZWdhY3lIaWRkZW4gPSBmYWxzZTsgLy8gRW5hYmxlcyB1bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFjayBmZWF0dXJlIGluIEZpYmVyXHJcbi8vIHN0dWZmLiBJbnRlbmRlZCB0byBlbmFibGUgUmVhY3QgY29yZSBtZW1iZXJzIHRvIG1vcmUgZWFzaWx5IGRlYnVnIHNjaGVkdWxpbmdcclxuLy8gaXNzdWVzIGluIERFViBidWlsZHMuXHJcblxyXG52YXIgZW5hYmxlRGVidWdUcmFjaW5nID0gZmFsc2U7IC8vIFRyYWNrIHdoaWNoIEZpYmVyKHMpIHNjaGVkdWxlIHJlbmRlciB3b3JrLlxyXG5cclxudmFyIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNsaWVudC5yZWZlcmVuY2UnKTtcclxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcclxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9IC8vIE5vdGU6IHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIChlLmcuIGlmIGl0J3MgYSBwb2x5ZmlsbCkuXHJcblxyXG5cclxuICBpZiAodHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IGVuYWJsZURlYnVnVHJhY2luZyAgfHwgdHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSB8fCBlbmFibGVMZWdhY3lIaWRkZW4gIHx8IHR5cGUgPT09IFJFQUNUX09GRlNDUkVFTl9UWVBFIHx8IGVuYWJsZVNjb3BlQVBJICB8fCBlbmFibGVDYWNoZUVsZW1lbnQgIHx8IGVuYWJsZVRyYW5zaXRpb25UcmFjaW5nICkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcclxuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1BST1ZJREVSX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gVGhpcyBuZWVkcyB0byBpbmNsdWRlIGFsbCBwb3NzaWJsZSBtb2R1bGUgcmVmZXJlbmNlIG9iamVjdFxyXG4gICAgLy8gdHlwZXMgc3VwcG9ydGVkIGJ5IGFueSBGbGlnaHQgY29uZmlndXJhdGlvbiBhbnl3aGVyZSBzaW5jZVxyXG4gICAgLy8gd2UgZG9uJ3Qga25vdyB3aGljaCBGbGlnaHQgYnVpbGQgdGhpcyB3aWxsIGVuZCB1cCBiZWluZyB1c2VkXHJcbiAgICAvLyB3aXRoLlxyXG4gICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSQxIHx8IHR5cGUuZ2V0TW9kdWxlSWQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0V3JhcHBlZE5hbWUob3V0ZXJUeXBlLCBpbm5lclR5cGUsIHdyYXBwZXJOYW1lKSB7XHJcbiAgdmFyIGRpc3BsYXlOYW1lID0gb3V0ZXJUeXBlLmRpc3BsYXlOYW1lO1xyXG5cclxuICBpZiAoZGlzcGxheU5hbWUpIHtcclxuICAgIHJldHVybiBkaXNwbGF5TmFtZTtcclxuICB9XHJcblxyXG4gIHZhciBmdW5jdGlvbk5hbWUgPSBpbm5lclR5cGUuZGlzcGxheU5hbWUgfHwgaW5uZXJUeXBlLm5hbWUgfHwgJyc7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uTmFtZSAhPT0gJycgPyB3cmFwcGVyTmFtZSArIFwiKFwiICsgZnVuY3Rpb25OYW1lICsgXCIpXCIgOiB3cmFwcGVyTmFtZTtcclxufSAvLyBLZWVwIGluIHN5bmMgd2l0aCByZWFjdC1yZWNvbmNpbGVyL2dldENvbXBvbmVudE5hbWVGcm9tRmliZXJcclxuXHJcblxyXG5mdW5jdGlvbiBnZXRDb250ZXh0TmFtZSh0eXBlKSB7XHJcbiAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgJ0NvbnRleHQnO1xyXG59IC8vIE5vdGUgdGhhdCB0aGUgcmVjb25jaWxlciBwYWNrYWdlIHNob3VsZCBnZW5lcmFsbHkgcHJlZmVyIHRvIHVzZSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKCkgaW5zdGVhZC5cclxuXHJcblxyXG5mdW5jdGlvbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSkge1xyXG4gIGlmICh0eXBlID09IG51bGwpIHtcclxuICAgIC8vIEhvc3Qgcm9vdCwgdGV4dCBub2RlIG9yIGp1c3QgaW52YWxpZCB0eXBlLlxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICB7XHJcbiAgICBpZiAodHlwZW9mIHR5cGUudGFnID09PSAnbnVtYmVyJykge1xyXG4gICAgICBlcnJvcignUmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBvYmplY3QgaW4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKCkuICcgKyAnVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcclxuICB9XHJcblxyXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcclxuICAgIHJldHVybiB0eXBlO1xyXG4gIH1cclxuXHJcbiAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XHJcbiAgICAgIHJldHVybiAnRnJhZ21lbnQnO1xyXG5cclxuICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XHJcbiAgICAgIHJldHVybiAnUG9ydGFsJztcclxuXHJcbiAgICBjYXNlIFJFQUNUX1BST0ZJTEVSX1RZUEU6XHJcbiAgICAgIHJldHVybiAnUHJvZmlsZXInO1xyXG5cclxuICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcclxuICAgICAgcmV0dXJuICdTdHJpY3RNb2RlJztcclxuXHJcbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XHJcbiAgICAgIHJldHVybiAnU3VzcGVuc2UnO1xyXG5cclxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxyXG4gICAgICByZXR1cm4gJ1N1c3BlbnNlTGlzdCc7XHJcblxyXG4gICAgY2FzZSBSRUFDVF9DQUNIRV9UWVBFOlxyXG4gICAgICB7XHJcbiAgICAgICAgcmV0dXJuICdDYWNoZSc7XHJcbiAgICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcclxuICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XHJcbiAgICAgICAgdmFyIGNvbnRleHQgPSB0eXBlO1xyXG4gICAgICAgIHJldHVybiBnZXRDb250ZXh0TmFtZShjb250ZXh0KSArICcuQ29uc3VtZXInO1xyXG5cclxuICAgICAgY2FzZSBSRUFDVF9QUk9WSURFUl9UWVBFOlxyXG4gICAgICAgIHZhciBwcm92aWRlciA9IHR5cGU7XHJcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKHByb3ZpZGVyLl9jb250ZXh0KSArICcuUHJvdmlkZXInO1xyXG5cclxuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxyXG4gICAgICAgIHJldHVybiBnZXRXcmFwcGVkTmFtZSh0eXBlLCB0eXBlLnJlbmRlciwgJ0ZvcndhcmRSZWYnKTtcclxuXHJcbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxyXG4gICAgICAgIHZhciBvdXRlck5hbWUgPSB0eXBlLmRpc3BsYXlOYW1lIHx8IG51bGw7XHJcblxyXG4gICAgICAgIGlmIChvdXRlck5hbWUgIT09IG51bGwpIHtcclxuICAgICAgICAgIHJldHVybiBvdXRlck5hbWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUudHlwZSkgfHwgJ01lbW8nO1xyXG5cclxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdmFyIGxhenlDb21wb25lbnQgPSB0eXBlO1xyXG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xyXG4gICAgICAgICAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xyXG5cclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoaW5pdChwYXlsb2FkKSk7XHJcbiAgICAgICAgICB9IGNhdGNoICh4KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIGNhc2UgUkVBQ1RfU0VSVkVSX0NPTlRFWFRfVFlQRTpcclxuICAgICAgICB7XHJcbiAgICAgICAgICB2YXIgY29udGV4dDIgPSB0eXBlO1xyXG4gICAgICAgICAgcmV0dXJuIChjb250ZXh0Mi5kaXNwbGF5TmFtZSB8fCBjb250ZXh0Mi5fZ2xvYmFsTmFtZSkgKyAnLlByb3ZpZGVyJztcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbnZhciBhc3NpZ24gPSBPYmplY3QuYXNzaWduO1xyXG5cclxuLy8gSGVscGVycyB0byBwYXRjaCBjb25zb2xlLmxvZ3MgdG8gYXZvaWQgbG9nZ2luZyBkdXJpbmcgc2lkZS1lZmZlY3QgZnJlZVxyXG4vLyByZXBsYXlpbmcgb24gcmVuZGVyIGZ1bmN0aW9uLiBUaGlzIGN1cnJlbnRseSBvbmx5IHBhdGNoZXMgdGhlIG9iamVjdFxyXG4vLyBsYXppbHkgd2hpY2ggd29uJ3QgY292ZXIgaWYgdGhlIGxvZyBmdW5jdGlvbiB3YXMgZXh0cmFjdGVkIGVhZ2VybHkuXHJcbi8vIFdlIGNvdWxkIGFsc28gZWFnZXJseSBwYXRjaCB0aGUgbWV0aG9kLlxyXG52YXIgZGlzYWJsZWREZXB0aCA9IDA7XHJcbnZhciBwcmV2TG9nO1xyXG52YXIgcHJldkluZm87XHJcbnZhciBwcmV2V2FybjtcclxudmFyIHByZXZFcnJvcjtcclxudmFyIHByZXZHcm91cDtcclxudmFyIHByZXZHcm91cENvbGxhcHNlZDtcclxudmFyIHByZXZHcm91cEVuZDtcclxuXHJcbmZ1bmN0aW9uIGRpc2FibGVkTG9nKCkge31cclxuXHJcbmRpc2FibGVkTG9nLl9fcmVhY3REaXNhYmxlZExvZyA9IHRydWU7XHJcbmZ1bmN0aW9uIGRpc2FibGVMb2dzKCkge1xyXG4gIHtcclxuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XHJcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xyXG4gICAgICBwcmV2TG9nID0gY29uc29sZS5sb2c7XHJcbiAgICAgIHByZXZJbmZvID0gY29uc29sZS5pbmZvO1xyXG4gICAgICBwcmV2V2FybiA9IGNvbnNvbGUud2FybjtcclxuICAgICAgcHJldkVycm9yID0gY29uc29sZS5lcnJvcjtcclxuICAgICAgcHJldkdyb3VwID0gY29uc29sZS5ncm91cDtcclxuICAgICAgcHJldkdyb3VwQ29sbGFwc2VkID0gY29uc29sZS5ncm91cENvbGxhcHNlZDtcclxuICAgICAgcHJldkdyb3VwRW5kID0gY29uc29sZS5ncm91cEVuZDsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xOTA5OVxyXG5cclxuICAgICAgdmFyIHByb3BzID0ge1xyXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcclxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgICAgIHZhbHVlOiBkaXNhYmxlZExvZyxcclxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxyXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lW2Nhbm5vdC13cml0ZV0gRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXHJcblxyXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XHJcbiAgICAgICAgaW5mbzogcHJvcHMsXHJcbiAgICAgICAgbG9nOiBwcm9wcyxcclxuICAgICAgICB3YXJuOiBwcm9wcyxcclxuICAgICAgICBlcnJvcjogcHJvcHMsXHJcbiAgICAgICAgZ3JvdXA6IHByb3BzLFxyXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBwcm9wcyxcclxuICAgICAgICBncm91cEVuZDogcHJvcHNcclxuICAgICAgfSk7XHJcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWREZXB0aCsrO1xyXG4gIH1cclxufVxyXG5mdW5jdGlvbiByZWVuYWJsZUxvZ3MoKSB7XHJcbiAge1xyXG4gICAgZGlzYWJsZWREZXB0aC0tO1xyXG5cclxuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XHJcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xyXG4gICAgICB2YXIgcHJvcHMgPSB7XHJcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxyXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgd3JpdGFibGU6IHRydWVcclxuICAgICAgfTsgLy8gJEZsb3dGaXhNZVtjYW5ub3Qtd3JpdGVdIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxyXG5cclxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xyXG4gICAgICAgIGxvZzogYXNzaWduKHt9LCBwcm9wcywge1xyXG4gICAgICAgICAgdmFsdWU6IHByZXZMb2dcclxuICAgICAgICB9KSxcclxuICAgICAgICBpbmZvOiBhc3NpZ24oe30sIHByb3BzLCB7XHJcbiAgICAgICAgICB2YWx1ZTogcHJldkluZm9cclxuICAgICAgICB9KSxcclxuICAgICAgICB3YXJuOiBhc3NpZ24oe30sIHByb3BzLCB7XHJcbiAgICAgICAgICB2YWx1ZTogcHJldldhcm5cclxuICAgICAgICB9KSxcclxuICAgICAgICBlcnJvcjogYXNzaWduKHt9LCBwcm9wcywge1xyXG4gICAgICAgICAgdmFsdWU6IHByZXZFcnJvclxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGdyb3VwOiBhc3NpZ24oe30sIHByb3BzLCB7XHJcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IGFzc2lnbih7fSwgcHJvcHMsIHtcclxuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWRcclxuICAgICAgICB9KSxcclxuICAgICAgICBncm91cEVuZDogYXNzaWduKHt9LCBwcm9wcywge1xyXG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cEVuZFxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkaXNhYmxlZERlcHRoIDwgMCkge1xyXG4gICAgICBlcnJvcignZGlzYWJsZWREZXB0aCBmZWxsIGJlbG93IHplcm8uICcgKyAnVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XHJcbnZhciBwcmVmaXg7XHJcbmZ1bmN0aW9uIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUsIHNvdXJjZSwgb3duZXJGbikge1xyXG4gIHtcclxuICAgIGlmIChwcmVmaXggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAvLyBFeHRyYWN0IHRoZSBWTSBzcGVjaWZpYyBwcmVmaXggdXNlZCBieSBlYWNoIGxpbmUuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcclxuICAgICAgfSBjYXRjaCAoeCkge1xyXG4gICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XHJcbiAgICAgICAgcHJlZml4ID0gbWF0Y2ggJiYgbWF0Y2hbMV0gfHwgJyc7XHJcbiAgICAgIH1cclxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXHJcblxyXG5cclxuICAgIHJldHVybiAnXFxuJyArIHByZWZpeCArIG5hbWU7XHJcbiAgfVxyXG59XHJcbnZhciByZWVudHJ5ID0gZmFsc2U7XHJcbnZhciBjb21wb25lbnRGcmFtZUNhY2hlO1xyXG5cclxue1xyXG4gIHZhciBQb3NzaWJseVdlYWtNYXAgPSB0eXBlb2YgV2Vha01hcCA9PT0gJ2Z1bmN0aW9uJyA/IFdlYWtNYXAgOiBNYXA7XHJcbiAgY29tcG9uZW50RnJhbWVDYWNoZSA9IG5ldyBQb3NzaWJseVdlYWtNYXAoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgY29uc3RydWN0KSB7XHJcbiAgLy8gSWYgc29tZXRoaW5nIGFza2VkIGZvciBhIHN0YWNrIGluc2lkZSBhIGZha2UgcmVuZGVyLCBpdCBzaG91bGQgZ2V0IGlnbm9yZWQuXHJcbiAgaWYgKCFmbiB8fCByZWVudHJ5KSB7XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICB7XHJcbiAgICB2YXIgZnJhbWUgPSBjb21wb25lbnRGcmFtZUNhY2hlLmdldChmbik7XHJcblxyXG4gICAgaWYgKGZyYW1lICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIGZyYW1lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFyIGNvbnRyb2w7XHJcbiAgcmVlbnRyeSA9IHRydWU7XHJcbiAgdmFyIHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2UgPSBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZTsgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdHlwZV0gSXQgZG9lcyBhY2NlcHQgdW5kZWZpbmVkLlxyXG5cclxuICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHVuZGVmaW5lZDtcclxuICB2YXIgcHJldmlvdXNEaXNwYXRjaGVyO1xyXG5cclxuICB7XHJcbiAgICBwcmV2aW91c0Rpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQ7IC8vIFNldCB0aGUgZGlzcGF0Y2hlciBpbiBERVYgYmVjYXVzZSB0aGlzIG1pZ2h0IGJlIGNhbGwgaW4gdGhlIHJlbmRlciBmdW5jdGlvblxyXG4gICAgLy8gZm9yIHdhcm5pbmdzLlxyXG5cclxuICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IG51bGw7XHJcbiAgICBkaXNhYmxlTG9ncygpO1xyXG4gIH1cclxuXHJcbiAgdHJ5IHtcclxuICAgIC8vIFRoaXMgc2hvdWxkIHRocm93LlxyXG4gICAgaWYgKGNvbnN0cnVjdCkge1xyXG4gICAgICAvLyBTb21ldGhpbmcgc2hvdWxkIGJlIHNldHRpbmcgdGhlIHByb3BzIGluIHRoZSBjb25zdHJ1Y3Rvci5cclxuICAgICAgdmFyIEZha2UgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcclxuICAgICAgfTsgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXHJcblxyXG5cclxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZha2UucHJvdG90eXBlLCAncHJvcHMnLCB7XHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAvLyBXZSB1c2UgYSB0aHJvd2luZyBzZXR0ZXIgaW5zdGVhZCBvZiBmcm96ZW4gb3Igbm9uLXdyaXRhYmxlIHByb3BzXHJcbiAgICAgICAgICAvLyBiZWNhdXNlIHRoYXQgd29uJ3QgdGhyb3cgaW4gYSBub24tc3RyaWN0IG1vZGUgZnVuY3Rpb24uXHJcbiAgICAgICAgICB0aHJvdyBFcnJvcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09ICdvYmplY3QnICYmIFJlZmxlY3QuY29uc3RydWN0KSB7XHJcbiAgICAgICAgLy8gV2UgY29uc3RydWN0IGEgZGlmZmVyZW50IGNvbnRyb2wgZm9yIHRoaXMgY2FzZSB0byBpbmNsdWRlIGFueSBleHRyYVxyXG4gICAgICAgIC8vIGZyYW1lcyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGNhbGwuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KEZha2UsIFtdKTtcclxuICAgICAgICB9IGNhdGNoICh4KSB7XHJcbiAgICAgICAgICBjb250cm9sID0geDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIFJlZmxlY3QuY29uc3RydWN0KGZuLCBbXSwgRmFrZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIEZha2UuY2FsbCgpO1xyXG4gICAgICAgIH0gY2F0Y2ggKHgpIHtcclxuICAgICAgICAgIGNvbnRyb2wgPSB4O1xyXG4gICAgICAgIH0gLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddIGZvdW5kIHdoZW4gdXBncmFkaW5nIEZsb3dcclxuXHJcblxyXG4gICAgICAgIGZuLmNhbGwoRmFrZS5wcm90b3R5cGUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRocm93IEVycm9yKCk7XHJcbiAgICAgIH0gY2F0Y2ggKHgpIHtcclxuICAgICAgICBjb250cm9sID0geDtcclxuICAgICAgfSAvLyBUT0RPKGx1bmEpOiBUaGlzIHdpbGwgY3VycmVudGx5IG9ubHkgdGhyb3cgaWYgdGhlIGZ1bmN0aW9uIGNvbXBvbmVudFxyXG4gICAgICAvLyB0cmllcyB0byBhY2Nlc3MgUmVhY3QvUmVhY3RET00vcHJvcHMuIFdlIHNob3VsZCBwcm9iYWJseSBtYWtlIHRoaXMgdGhyb3dcclxuICAgICAgLy8gaW4gc2ltcGxlIGNvbXBvbmVudHMgdG9vXHJcblxyXG5cclxuICAgICAgdmFyIG1heWJlUHJvbWlzZSA9IGZuKCk7IC8vIElmIHRoZSBmdW5jdGlvbiBjb21wb25lbnQgcmV0dXJucyBhIHByb21pc2UsIGl0J3MgbGlrZWx5IGFuIGFzeW5jXHJcbiAgICAgIC8vIGNvbXBvbmVudCwgd2hpY2ggd2UgZG9uJ3QgeWV0IHN1cHBvcnQuIEF0dGFjaCBhIG5vb3AgY2F0Y2ggaGFuZGxlciB0b1xyXG4gICAgICAvLyBzaWxlbmNlIHRoZSBlcnJvci5cclxuICAgICAgLy8gVE9ETzogSW1wbGVtZW50IGNvbXBvbmVudCBzdGFja3MgZm9yIGFzeW5jIGNsaWVudCBjb21wb25lbnRzP1xyXG5cclxuICAgICAgaWYgKG1heWJlUHJvbWlzZSAmJiB0eXBlb2YgbWF5YmVQcm9taXNlLmNhdGNoID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgbWF5YmVQcm9taXNlLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKHNhbXBsZSkge1xyXG4gICAgLy8gVGhpcyBpcyBpbmxpbmVkIG1hbnVhbGx5IGJlY2F1c2UgY2xvc3VyZSBkb2Vzbid0IGRvIGl0IGZvciB1cy5cclxuICAgIGlmIChzYW1wbGUgJiYgY29udHJvbCAmJiB0eXBlb2Ygc2FtcGxlLnN0YWNrID09PSAnc3RyaW5nJykge1xyXG4gICAgICAvLyBUaGlzIGV4dHJhY3RzIHRoZSBmaXJzdCBmcmFtZSBmcm9tIHRoZSBzYW1wbGUgdGhhdCBpc24ndCBhbHNvIGluIHRoZSBjb250cm9sLlxyXG4gICAgICAvLyBTa2lwcGluZyBvbmUgZnJhbWUgdGhhdCB3ZSBhc3N1bWUgaXMgdGhlIGZyYW1lIHRoYXQgY2FsbHMgdGhlIHR3by5cclxuICAgICAgdmFyIHNhbXBsZUxpbmVzID0gc2FtcGxlLnN0YWNrLnNwbGl0KCdcXG4nKTtcclxuICAgICAgdmFyIGNvbnRyb2xMaW5lcyA9IGNvbnRyb2wuc3RhY2suc3BsaXQoJ1xcbicpO1xyXG4gICAgICB2YXIgcyA9IHNhbXBsZUxpbmVzLmxlbmd0aCAtIDE7XHJcbiAgICAgIHZhciBjID0gY29udHJvbExpbmVzLmxlbmd0aCAtIDE7XHJcblxyXG4gICAgICB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCAmJiBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XHJcbiAgICAgICAgLy8gV2UgZXhwZWN0IGF0IGxlYXN0IG9uZSBzdGFjayBmcmFtZSB0byBiZSBzaGFyZWQuXHJcbiAgICAgICAgLy8gVHlwaWNhbGx5IHRoaXMgd2lsbCBiZSB0aGUgcm9vdCBtb3N0IG9uZS4gSG93ZXZlciwgc3RhY2sgZnJhbWVzIG1heSBiZVxyXG4gICAgICAgIC8vIGN1dCBvZmYgZHVlIHRvIG1heGltdW0gc3RhY2sgbGltaXRzLiBJbiB0aGlzIGNhc2UsIG9uZSBtYXliZSBjdXQgb2ZmXHJcbiAgICAgICAgLy8gZWFybGllciB0aGFuIHRoZSBvdGhlci4gV2UgYXNzdW1lIHRoYXQgdGhlIHNhbXBsZSBpcyBsb25nZXIgb3IgdGhlIHNhbWVcclxuICAgICAgICAvLyBhbmQgdGhlcmUgZm9yIGN1dCBvZmYgZWFybGllci4gU28gd2Ugc2hvdWxkIGZpbmQgdGhlIHJvb3QgbW9zdCBmcmFtZSBpblxyXG4gICAgICAgIC8vIHRoZSBzYW1wbGUgc29tZXdoZXJlIGluIHRoZSBjb250cm9sLlxyXG4gICAgICAgIGMtLTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9yICg7IHMgPj0gMSAmJiBjID49IDA7IHMtLSwgYy0tKSB7XHJcbiAgICAgICAgLy8gTmV4dCB3ZSBmaW5kIHRoZSBmaXJzdCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSB3aGljaCBzaG91bGQgYmUgdGhlXHJcbiAgICAgICAgLy8gZnJhbWUgdGhhdCBjYWxsZWQgb3VyIHNhbXBsZSBmdW5jdGlvbiBhbmQgdGhlIGNvbnRyb2wuXHJcbiAgICAgICAgaWYgKHNhbXBsZUxpbmVzW3NdICE9PSBjb250cm9sTGluZXNbY10pIHtcclxuICAgICAgICAgIC8vIEluIFY4LCB0aGUgZmlyc3QgbGluZSBpcyBkZXNjcmliaW5nIHRoZSBtZXNzYWdlIGJ1dCBvdGhlciBWTXMgZG9uJ3QuXHJcbiAgICAgICAgICAvLyBJZiB3ZSdyZSBhYm91dCB0byByZXR1cm4gdGhlIGZpcnN0IGxpbmUsIGFuZCB0aGUgY29udHJvbCBpcyBhbHNvIG9uIHRoZSBzYW1lXHJcbiAgICAgICAgICAvLyBsaW5lLCB0aGF0J3MgYSBwcmV0dHkgZ29vZCBpbmRpY2F0b3IgdGhhdCBvdXIgc2FtcGxlIHRocmV3IGF0IHNhbWUgbGluZSBhc1xyXG4gICAgICAgICAgLy8gdGhlIGNvbnRyb2wuIEkuZS4gYmVmb3JlIHdlIGVudGVyZWQgdGhlIHNhbXBsZSBmcmFtZS4gU28gd2UgaWdub3JlIHRoaXMgcmVzdWx0LlxyXG4gICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSBwYXNzZWQgYSBjbGFzcyB0byBmdW5jdGlvbiBjb21wb25lbnQsIG9yIG5vbi1mdW5jdGlvbi5cclxuICAgICAgICAgIGlmIChzICE9PSAxIHx8IGMgIT09IDEpIHtcclxuICAgICAgICAgICAgZG8ge1xyXG4gICAgICAgICAgICAgIHMtLTtcclxuICAgICAgICAgICAgICBjLS07IC8vIFdlIG1heSBzdGlsbCBoYXZlIHNpbWlsYXIgaW50ZXJtZWRpYXRlIGZyYW1lcyBmcm9tIHRoZSBjb25zdHJ1Y3QgY2FsbC5cclxuICAgICAgICAgICAgICAvLyBUaGUgbmV4dCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSBzaG91bGQgYmUgb3VyIG1hdGNoIHRob3VnaC5cclxuXHJcbiAgICAgICAgICAgICAgaWYgKGMgPCAwIHx8IHNhbXBsZUxpbmVzW3NdICE9PSBjb250cm9sTGluZXNbY10pIHtcclxuICAgICAgICAgICAgICAgIC8vIFY4IGFkZHMgYSBcIm5ld1wiIHByZWZpeCBmb3IgbmF0aXZlIGNsYXNzZXMuIExldCdzIHJlbW92ZSBpdCB0byBtYWtlIGl0IHByZXR0aWVyLlxyXG4gICAgICAgICAgICAgICAgdmFyIF9mcmFtZSA9ICdcXG4nICsgc2FtcGxlTGluZXNbc10ucmVwbGFjZSgnIGF0IG5ldyAnLCAnIGF0ICcpOyAvLyBJZiBvdXIgY29tcG9uZW50IGZyYW1lIGlzIGxhYmVsZWQgXCI8YW5vbnltb3VzPlwiXHJcbiAgICAgICAgICAgICAgICAvLyBidXQgd2UgaGF2ZSBhIHVzZXItcHJvdmlkZWQgXCJkaXNwbGF5TmFtZVwiXHJcbiAgICAgICAgICAgICAgICAvLyBzcGxpY2UgaXQgaW4gdG8gbWFrZSB0aGUgc3RhY2sgbW9yZSByZWFkYWJsZS5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGZuLmRpc3BsYXlOYW1lICYmIF9mcmFtZS5pbmNsdWRlcygnPGFub255bW91cz4nKSkge1xyXG4gICAgICAgICAgICAgICAgICBfZnJhbWUgPSBfZnJhbWUucmVwbGFjZSgnPGFub255bW91cz4nLCBmbi5kaXNwbGF5TmFtZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIF9mcmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gLy8gUmV0dXJuIHRoZSBsaW5lIHdlIGZvdW5kLlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gX2ZyYW1lO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBmaW5hbGx5IHtcclxuICAgIHJlZW50cnkgPSBmYWxzZTtcclxuXHJcbiAgICB7XHJcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IHByZXZpb3VzRGlzcGF0Y2hlcjtcclxuICAgICAgcmVlbmFibGVMb2dzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlO1xyXG4gIH0gLy8gRmFsbGJhY2sgdG8ganVzdCB1c2luZyB0aGUgbmFtZSBpZiB3ZSBjb3VsZG4ndCBtYWtlIGl0IHRocm93LlxyXG5cclxuXHJcbiAgdmFyIG5hbWUgPSBmbiA/IGZuLmRpc3BsYXlOYW1lIHx8IGZuLm5hbWUgOiAnJztcclxuICB2YXIgc3ludGhldGljRnJhbWUgPSBuYW1lID8gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSkgOiAnJztcclxuXHJcbiAge1xyXG4gICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgc3ludGhldGljRnJhbWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHN5bnRoZXRpY0ZyYW1lO1xyXG59XHJcbmZ1bmN0aW9uIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZShmbiwgc291cmNlLCBvd25lckZuKSB7XHJcbiAge1xyXG4gICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZm4sIGZhbHNlKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNob3VsZENvbnN0cnVjdChDb21wb25lbnQpIHtcclxuICB2YXIgcHJvdG90eXBlID0gQ29tcG9uZW50LnByb3RvdHlwZTtcclxuICByZXR1cm4gISEocHJvdG90eXBlICYmIHByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUsIHNvdXJjZSwgb3duZXJGbikge1xyXG5cclxuICBpZiAodHlwZSA9PSBudWxsKSB7XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgIHtcclxuICAgICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUodHlwZSwgc2hvdWxkQ29uc3RydWN0KHR5cGUpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcclxuICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSh0eXBlKTtcclxuICB9XHJcblxyXG4gIHN3aXRjaCAodHlwZSkge1xyXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxyXG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlJyk7XHJcblxyXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XHJcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2VMaXN0Jyk7XHJcbiAgfVxyXG5cclxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcclxuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxyXG4gICAgICAgIHJldHVybiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUodHlwZS5yZW5kZXIpO1xyXG5cclxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XHJcbiAgICAgICAgLy8gTWVtbyBtYXkgY29udGFpbiBhbnkgY29tcG9uZW50IHR5cGUgc28gd2UgcmVjdXJzaXZlbHkgcmVzb2x2ZSBpdC5cclxuICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUudHlwZSwgc291cmNlLCBvd25lckZuKTtcclxuXHJcbiAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHZhciBsYXp5Q29tcG9uZW50ID0gdHlwZTtcclxuICAgICAgICAgIHZhciBwYXlsb2FkID0gbGF6eUNvbXBvbmVudC5fcGF5bG9hZDtcclxuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcclxuXHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAvLyBMYXp5IG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxyXG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGluaXQocGF5bG9hZCksIHNvdXJjZSwgb3duZXJGbik7XHJcbiAgICAgICAgICB9IGNhdGNoICh4KSB7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiAnJztcclxufVxyXG5cclxuLy8gJEZsb3dGaXhNZVttZXRob2QtdW5iaW5kaW5nXVxyXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xyXG5cclxudmFyIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xyXG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcclxuXHJcbmZ1bmN0aW9uIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZWxlbWVudCkge1xyXG4gIHtcclxuICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xyXG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xyXG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEuc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBjaGVja1Byb3BUeXBlcyh0eXBlU3BlY3MsIHZhbHVlcywgbG9jYXRpb24sIGNvbXBvbmVudE5hbWUsIGVsZW1lbnQpIHtcclxuICB7XHJcbiAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS11c2VdIFRoaXMgaXMgb2theSBidXQgRmxvdyBkb2Vzbid0IGtub3cgaXQuXHJcbiAgICB2YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKGhhc093blByb3BlcnR5KTtcclxuXHJcbiAgICBmb3IgKHZhciB0eXBlU3BlY05hbWUgaW4gdHlwZVNwZWNzKSB7XHJcbiAgICAgIGlmIChoYXModHlwZVNwZWNzLCB0eXBlU3BlY05hbWUpKSB7XHJcbiAgICAgICAgdmFyIGVycm9yJDEgPSB2b2lkIDA7IC8vIFByb3AgdHlwZSB2YWxpZGF0aW9uIG1heSB0aHJvdy4gSW4gY2FzZSB0aGV5IGRvLCB3ZSBkb24ndCB3YW50IHRvXHJcbiAgICAgICAgLy8gZmFpbCB0aGUgcmVuZGVyIHBoYXNlIHdoZXJlIGl0IGRpZG4ndCBmYWlsIGJlZm9yZS4gU28gd2UgbG9nIGl0LlxyXG4gICAgICAgIC8vIEFmdGVyIHRoZXNlIGhhdmUgYmVlbiBjbGVhbmVkIHVwLCB3ZSdsbCBsZXQgdGhlbSB0aHJvdy5cclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBhbiBpbnZhcmlhbnQgdGhhdCBnZXRzIGNhdWdodC4gSXQncyB0aGUgc2FtZVxyXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxyXG4gICAgICAgICAgaWYgKHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSAhPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvcHJvZC1lcnJvci1jb2Rlc1xyXG4gICAgICAgICAgICB2YXIgZXJyID0gRXJyb3IoKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICsgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJyArICdUaGlzIG9mdGVuIGhhcHBlbnMgYmVjYXVzZSBvZiB0eXBvcyBzdWNoIGFzIGBQcm9wVHlwZXMuZnVuY3Rpb25gIGluc3RlYWQgb2YgYFByb3BUeXBlcy5mdW5jYC4nKTtcclxuICAgICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XHJcbiAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBlcnJvciQxID0gdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0odmFsdWVzLCB0eXBlU3BlY05hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBudWxsLCAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnKTtcclxuICAgICAgICB9IGNhdGNoIChleCkge1xyXG4gICAgICAgICAgZXJyb3IkMSA9IGV4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGVycm9yJDEgJiYgIShlcnJvciQxIGluc3RhbmNlb2YgRXJyb3IpKSB7XHJcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpO1xyXG5cclxuICAgICAgICAgIGVycm9yKCclczogdHlwZSBzcGVjaWZpY2F0aW9uIG9mICVzJyArICcgYCVzYCBpcyBpbnZhbGlkOyB0aGUgdHlwZSBjaGVja2VyICcgKyAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJXMuICcgKyAnWW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBwYXNzIGFuIGFyZ3VtZW50IHRvIHRoZSB0eXBlIGNoZWNrZXIgJyArICdjcmVhdG9yIChhcnJheU9mLCBpbnN0YW5jZU9mLCBvYmplY3RPZiwgb25lT2YsIG9uZU9mVHlwZSwgYW5kICcgKyAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLicsIGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJywgbG9jYXRpb24sIHR5cGVTcGVjTmFtZSwgdHlwZW9mIGVycm9yJDEpO1xyXG5cclxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IkMS5tZXNzYWdlIGluIGxvZ2dlZFR5cGVGYWlsdXJlcykpIHtcclxuICAgICAgICAgIC8vIE9ubHkgbW9uaXRvciB0aGlzIGZhaWx1cmUgb25jZSBiZWNhdXNlIHRoZXJlIHRlbmRzIHRvIGJlIGEgbG90IG9mIHRoZVxyXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cclxuICAgICAgICAgIGxvZ2dlZFR5cGVGYWlsdXJlc1tlcnJvciQxLm1lc3NhZ2VdID0gdHJ1ZTtcclxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZWxlbWVudCk7XHJcblxyXG4gICAgICAgICAgZXJyb3IoJ0ZhaWxlZCAlcyB0eXBlOiAlcycsIGxvY2F0aW9uLCBlcnJvciQxLm1lc3NhZ2UpO1xyXG5cclxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG52YXIgaXNBcnJheUltcGwgPSBBcnJheS5pc0FycmF5OyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVkZWNsYXJlXHJcblxyXG5mdW5jdGlvbiBpc0FycmF5KGEpIHtcclxuICByZXR1cm4gaXNBcnJheUltcGwoYSk7XHJcbn1cclxuXHJcbi8qXHJcbiAqIFRoZSBgJycgKyB2YWx1ZWAgcGF0dGVybiAodXNlZCBpbiBwZXJmLXNlbnNpdGl2ZSBjb2RlKSB0aHJvd3MgZm9yIFN5bWJvbFxyXG4gKiBhbmQgVGVtcG9yYWwuKiB0eXBlcy4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzIyMDY0LlxyXG4gKlxyXG4gKiBUaGUgZnVuY3Rpb25zIGluIHRoaXMgbW9kdWxlIHdpbGwgdGhyb3cgYW4gZWFzaWVyLXRvLXVuZGVyc3RhbmQsXHJcbiAqIGVhc2llci10by1kZWJ1ZyBleGNlcHRpb24gd2l0aCBhIGNsZWFyIGVycm9ycyBtZXNzYWdlIG1lc3NhZ2UgZXhwbGFpbmluZyB0aGVcclxuICogcHJvYmxlbS4gKEluc3RlYWQgb2YgYSBjb25mdXNpbmcgZXhjZXB0aW9uIHRocm93biBpbnNpZGUgdGhlIGltcGxlbWVudGF0aW9uXHJcbiAqIG9mIHRoZSBgdmFsdWVgIG9iamVjdCkuXHJcbiAqL1xyXG4vLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dIG9ubHkgY2FsbGVkIGluIERFViwgc28gdm9pZCByZXR1cm4gaXMgbm90IHBvc3NpYmxlLlxyXG5mdW5jdGlvbiB0eXBlTmFtZSh2YWx1ZSkge1xyXG4gIHtcclxuICAgIC8vIHRvU3RyaW5nVGFnIGlzIG5lZWRlZCBmb3IgbmFtZXNwYWNlZCB0eXBlcyBsaWtlIFRlbXBvcmFsLkluc3RhbnRcclxuICAgIHZhciBoYXNUb1N0cmluZ1RhZyA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLnRvU3RyaW5nVGFnO1xyXG4gICAgdmFyIHR5cGUgPSBoYXNUb1N0cmluZ1RhZyAmJiB2YWx1ZVtTeW1ib2wudG9TdHJpbmdUYWddIHx8IHZhbHVlLmNvbnN0cnVjdG9yLm5hbWUgfHwgJ09iamVjdCc7IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl1cclxuXHJcbiAgICByZXR1cm4gdHlwZTtcclxuICB9XHJcbn0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXSBvbmx5IGNhbGxlZCBpbiBERVYsIHNvIHZvaWQgcmV0dXJuIGlzIG5vdCBwb3NzaWJsZS5cclxuXHJcblxyXG5mdW5jdGlvbiB3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkge1xyXG4gIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpIHtcclxuICAvLyBJZiB5b3UgZW5kZWQgdXAgaGVyZSBieSBmb2xsb3dpbmcgYW4gZXhjZXB0aW9uIGNhbGwgc3RhY2ssIGhlcmUncyB3aGF0J3NcclxuICAvLyBoYXBwZW5lZDogeW91IHN1cHBsaWVkIGFuIG9iamVjdCBvciBzeW1ib2wgdmFsdWUgdG8gUmVhY3QgKGFzIGEgcHJvcCwga2V5LFxyXG4gIC8vIERPTSBhdHRyaWJ1dGUsIENTUyBwcm9wZXJ0eSwgc3RyaW5nIHJlZiwgZXRjLikgYW5kIHdoZW4gUmVhY3QgdHJpZWQgdG9cclxuICAvLyBjb2VyY2UgaXQgdG8gYSBzdHJpbmcgdXNpbmcgYCcnICsgdmFsdWVgLCBhbiBleGNlcHRpb24gd2FzIHRocm93bi5cclxuICAvL1xyXG4gIC8vIFRoZSBtb3N0IGNvbW1vbiB0eXBlcyB0aGF0IHdpbGwgY2F1c2UgdGhpcyBleGNlcHRpb24gYXJlIGBTeW1ib2xgIGluc3RhbmNlc1xyXG4gIC8vIGFuZCBUZW1wb3JhbCBvYmplY3RzIGxpa2UgYFRlbXBvcmFsLkluc3RhbnRgLiBCdXQgYW55IG9iamVjdCB0aGF0IGhhcyBhXHJcbiAgLy8gYHZhbHVlT2ZgIG9yIGBbU3ltYm9sLnRvUHJpbWl0aXZlXWAgbWV0aG9kIHRoYXQgdGhyb3dzIHdpbGwgYWxzbyBjYXVzZSB0aGlzXHJcbiAgLy8gZXhjZXB0aW9uLiAoTGlicmFyeSBhdXRob3JzIGRvIHRoaXMgdG8gcHJldmVudCB1c2VycyBmcm9tIHVzaW5nIGJ1aWx0LWluXHJcbiAgLy8gbnVtZXJpYyBvcGVyYXRvcnMgbGlrZSBgK2Agb3IgY29tcGFyaXNvbiBvcGVyYXRvcnMgbGlrZSBgPj1gIGJlY2F1c2UgY3VzdG9tXHJcbiAgLy8gbWV0aG9kcyBhcmUgbmVlZGVkIHRvIHBlcmZvcm0gYWNjdXJhdGUgYXJpdGhtZXRpYyBvciBjb21wYXJpc29uLilcclxuICAvL1xyXG4gIC8vIFRvIGZpeCB0aGUgcHJvYmxlbSwgY29lcmNlIHRoaXMgb2JqZWN0IG9yIHN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyBiZWZvcmVcclxuICAvLyBwYXNzaW5nIGl0IHRvIFJlYWN0LiBUaGUgbW9zdCByZWxpYWJsZSB3YXkgaXMgdXN1YWxseSBgU3RyaW5nKHZhbHVlKWAuXHJcbiAgLy9cclxuICAvLyBUbyBmaW5kIHdoaWNoIHZhbHVlIGlzIHRocm93aW5nLCBjaGVjayB0aGUgYnJvd3NlciBvciBkZWJ1Z2dlciBjb25zb2xlLlxyXG4gIC8vIEJlZm9yZSB0aGlzIGV4Y2VwdGlvbiB3YXMgdGhyb3duLCB0aGVyZSBzaG91bGQgYmUgYGNvbnNvbGUuZXJyb3JgIG91dHB1dFxyXG4gIC8vIHRoYXQgc2hvd3MgdGhlIHR5cGUgKFN5bWJvbCwgVGVtcG9yYWwuUGxhaW5EYXRlLCBldGMuKSB0aGF0IGNhdXNlZCB0aGVcclxuICAvLyBwcm9ibGVtIGFuZCBob3cgdGhhdCB0eXBlIHdhcyB1c2VkOiBrZXksIGF0cnJpYnV0ZSwgaW5wdXQgdmFsdWUgcHJvcCwgZXRjLlxyXG4gIC8vIEluIG1vc3QgY2FzZXMsIHRoaXMgY29uc29sZSBvdXRwdXQgYWxzbyBzaG93cyB0aGUgY29tcG9uZW50IGFuZCBpdHNcclxuICAvLyBhbmNlc3RvciBjb21wb25lbnRzIHdoZXJlIHRoZSBleGNlcHRpb24gaGFwcGVuZWQuXHJcbiAgLy9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cclxuICByZXR1cm4gJycgKyB2YWx1ZTtcclxufVxyXG5mdW5jdGlvbiBjaGVja0tleVN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XHJcbiAge1xyXG4gICAgaWYgKHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSkge1xyXG4gICAgICBlcnJvcignVGhlIHByb3ZpZGVkIGtleSBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLicgKyAnIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSBiZWZvcmUgdXNpbmcgaXQgaGVyZS4nLCB0eXBlTmFtZSh2YWx1ZSkpO1xyXG5cclxuICAgICAgcmV0dXJuIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7IC8vIHRocm93ICh0byBoZWxwIGNhbGxlcnMgZmluZCB0cm91Ymxlc2hvb3RpbmcgY29tbWVudHMpXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG52YXIgUmVhY3RDdXJyZW50T3duZXIkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudE93bmVyO1xyXG52YXIgUkVTRVJWRURfUFJPUFMgPSB7XHJcbiAga2V5OiB0cnVlLFxyXG4gIHJlZjogdHJ1ZSxcclxuICBfX3NlbGY6IHRydWUsXHJcbiAgX19zb3VyY2U6IHRydWVcclxufTtcclxudmFyIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duO1xyXG52YXIgc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd247XHJcbnZhciBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzO1xyXG5cclxue1xyXG4gIGRpZFdhcm5BYm91dFN0cmluZ1JlZnMgPSB7fTtcclxufVxyXG5cclxuZnVuY3Rpb24gaGFzVmFsaWRSZWYoY29uZmlnKSB7XHJcbiAge1xyXG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCAncmVmJykpIHtcclxuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAncmVmJykuZ2V0O1xyXG5cclxuICAgICAgaWYgKGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmcpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBjb25maWcucmVmICE9PSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhhc1ZhbGlkS2V5KGNvbmZpZykge1xyXG4gIHtcclxuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgJ2tleScpKSB7XHJcbiAgICAgIHZhciBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbmZpZywgJ2tleScpLmdldDtcclxuXHJcbiAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gY29uZmlnLmtleSAhPT0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG5mdW5jdGlvbiB3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQoY29uZmlnLCBzZWxmKSB7XHJcbiAge1xyXG4gICAgaWYgKHR5cGVvZiBjb25maWcucmVmID09PSAnc3RyaW5nJyAmJiBSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQgJiYgc2VsZiAmJiBSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQuc3RhdGVOb2RlICE9PSBzZWxmKSB7XHJcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKFJlYWN0Q3VycmVudE93bmVyJDEuY3VycmVudC50eXBlKTtcclxuXHJcbiAgICAgIGlmICghZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSkge1xyXG4gICAgICAgIGVycm9yKCdDb21wb25lbnQgXCIlc1wiIGNvbnRhaW5zIHRoZSBzdHJpbmcgcmVmIFwiJXNcIi4gJyArICdTdXBwb3J0IGZvciBzdHJpbmcgcmVmcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gJyArICdUaGlzIGNhc2UgY2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGFuIGFycm93IGZ1bmN0aW9uLiAnICsgJ1dlIGFzayB5b3UgdG8gbWFudWFsbHkgZml4IHRoaXMgY2FzZSBieSB1c2luZyB1c2VSZWYoKSBvciBjcmVhdGVSZWYoKSBpbnN0ZWFkLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtc3RyaW5nLXJlZicsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQudHlwZSksIGNvbmZpZy5yZWYpO1xyXG5cclxuICAgICAgICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XHJcbiAge1xyXG4gICAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ0tleSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgaWYgKCFzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bikge1xyXG4gICAgICAgIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgZXJyb3IoJyVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHdhcm5BYm91dEFjY2Vzc2luZ0tleS5pc1JlYWN0V2FybmluZyA9IHRydWU7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdrZXknLCB7XHJcbiAgICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nS2V5LFxyXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZGVmaW5lUmVmUHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XHJcbiAge1xyXG4gICAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ1JlZiA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgaWYgKCFzcGVjaWFsUHJvcFJlZldhcm5pbmdTaG93bikge1xyXG4gICAgICAgIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgZXJyb3IoJyVzOiBgcmVmYCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHdhcm5BYm91dEFjY2Vzc2luZ1JlZi5pc1JlYWN0V2FybmluZyA9IHRydWU7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdyZWYnLCB7XHJcbiAgICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nUmVmLFxyXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4vKipcclxuICogRmFjdG9yeSBtZXRob2QgdG8gY3JlYXRlIGEgbmV3IFJlYWN0IGVsZW1lbnQuIFRoaXMgbm8gbG9uZ2VyIGFkaGVyZXMgdG9cclxuICogdGhlIGNsYXNzIHBhdHRlcm4sIHNvIGRvIG5vdCB1c2UgbmV3IHRvIGNhbGwgaXQuIEFsc28sIGluc3RhbmNlb2YgY2hlY2tcclxuICogd2lsbCBub3Qgd29yay4gSW5zdGVhZCB0ZXN0ICQkdHlwZW9mIGZpZWxkIGFnYWluc3QgU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpIHRvIGNoZWNrXHJcbiAqIGlmIHNvbWV0aGluZyBpcyBhIFJlYWN0IEVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7Kn0gdHlwZVxyXG4gKiBAcGFyYW0geyp9IHByb3BzXHJcbiAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAqIEBwYXJhbSB7c3RyaW5nfG9iamVjdH0gcmVmXHJcbiAqIEBwYXJhbSB7Kn0gb3duZXJcclxuICogQHBhcmFtIHsqfSBzZWxmIEEgKnRlbXBvcmFyeSogaGVscGVyIHRvIGRldGVjdCBwbGFjZXMgd2hlcmUgYHRoaXNgIGlzXHJcbiAqIGRpZmZlcmVudCBmcm9tIHRoZSBgb3duZXJgIHdoZW4gUmVhY3QuY3JlYXRlRWxlbWVudCBpcyBjYWxsZWQsIHNvIHRoYXQgd2VcclxuICogY2FuIHdhcm4uIFdlIHdhbnQgdG8gZ2V0IHJpZCBvZiBvd25lciBhbmQgcmVwbGFjZSBzdHJpbmcgYHJlZmBzIHdpdGggYXJyb3dcclxuICogZnVuY3Rpb25zLCBhbmQgYXMgbG9uZyBhcyBgdGhpc2AgYW5kIG93bmVyIGFyZSB0aGUgc2FtZSwgdGhlcmUgd2lsbCBiZSBub1xyXG4gKiBjaGFuZ2UgaW4gYmVoYXZpb3IuXHJcbiAqIEBwYXJhbSB7Kn0gc291cmNlIEFuIGFubm90YXRpb24gb2JqZWN0IChhZGRlZCBieSBhIHRyYW5zcGlsZXIgb3Igb3RoZXJ3aXNlKVxyXG4gKiBpbmRpY2F0aW5nIGZpbGVuYW1lLCBsaW5lIG51bWJlciwgYW5kL29yIG90aGVyIGluZm9ybWF0aW9uLlxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcblxyXG5cclxuZnVuY3Rpb24gUmVhY3RFbGVtZW50KHR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIG93bmVyLCBwcm9wcykge1xyXG4gIHZhciBlbGVtZW50ID0ge1xyXG4gICAgLy8gVGhpcyB0YWcgYWxsb3dzIHVzIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgYXMgYSBSZWFjdCBFbGVtZW50XHJcbiAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxyXG4gICAgLy8gQnVpbHQtaW4gcHJvcGVydGllcyB0aGF0IGJlbG9uZyBvbiB0aGUgZWxlbWVudFxyXG4gICAgdHlwZTogdHlwZSxcclxuICAgIGtleToga2V5LFxyXG4gICAgcmVmOiByZWYsXHJcbiAgICBwcm9wczogcHJvcHMsXHJcbiAgICAvLyBSZWNvcmQgdGhlIGNvbXBvbmVudCByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhpcyBlbGVtZW50LlxyXG4gICAgX293bmVyOiBvd25lclxyXG4gIH07XHJcblxyXG4gIHtcclxuICAgIC8vIFRoZSB2YWxpZGF0aW9uIGZsYWcgaXMgY3VycmVudGx5IG11dGF0aXZlLiBXZSBwdXQgaXQgb25cclxuICAgIC8vIGFuIGV4dGVybmFsIGJhY2tpbmcgc3RvcmUgc28gdGhhdCB3ZSBjYW4gZnJlZXplIHRoZSB3aG9sZSBvYmplY3QuXHJcbiAgICAvLyBUaGlzIGNhbiBiZSByZXBsYWNlZCB3aXRoIGEgV2Vha01hcCBvbmNlIHRoZXkgYXJlIGltcGxlbWVudGVkIGluXHJcbiAgICAvLyBjb21tb25seSB1c2VkIGRldmVsb3BtZW50IGVudmlyb25tZW50cy5cclxuICAgIGVsZW1lbnQuX3N0b3JlID0ge307IC8vIFRvIG1ha2UgY29tcGFyaW5nIFJlYWN0RWxlbWVudHMgZWFzaWVyIGZvciB0ZXN0aW5nIHB1cnBvc2VzLCB3ZSBtYWtlXHJcbiAgICAvLyB0aGUgdmFsaWRhdGlvbiBmbGFnIG5vbi1lbnVtZXJhYmxlICh3aGVyZSBwb3NzaWJsZSwgd2hpY2ggc2hvdWxkXHJcbiAgICAvLyBpbmNsdWRlIGV2ZXJ5IGVudmlyb25tZW50IHdlIHJ1biB0ZXN0cyBpbiksIHNvIHRoZSB0ZXN0IGZyYW1ld29ya1xyXG4gICAgLy8gaWdub3JlcyBpdC5cclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudC5fc3RvcmUsICd2YWxpZGF0ZWQnLCB7XHJcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXHJcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcclxuICAgICAgdmFsdWU6IGZhbHNlXHJcbiAgICB9KTsgLy8gc2VsZiBhbmQgc291cmNlIGFyZSBERVYgb25seSBwcm9wZXJ0aWVzLlxyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NlbGYnLCB7XHJcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXHJcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICB3cml0YWJsZTogZmFsc2UsXHJcbiAgICAgIHZhbHVlOiBzZWxmXHJcbiAgICB9KTsgLy8gVHdvIGVsZW1lbnRzIGNyZWF0ZWQgaW4gdHdvIGRpZmZlcmVudCBwbGFjZXMgc2hvdWxkIGJlIGNvbnNpZGVyZWRcclxuICAgIC8vIGVxdWFsIGZvciB0ZXN0aW5nIHB1cnBvc2VzIGFuZCB0aGVyZWZvcmUgd2UgaGlkZSBpdCBmcm9tIGVudW1lcmF0aW9uLlxyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NvdXJjZScsIHtcclxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcclxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXHJcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcclxuICAgICAgdmFsdWU6IHNvdXJjZVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKE9iamVjdC5mcmVlemUpIHtcclxuICAgICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50LnByb3BzKTtcclxuICAgICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBlbGVtZW50O1xyXG59XHJcbi8qKlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vcmVhY3Rqcy9yZmNzL3B1bGwvMTA3XHJcbiAqIEBwYXJhbSB7Kn0gdHlwZVxyXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcclxuICogQHBhcmFtIHtzdHJpbmd9IGtleVxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIGpzeERFViQxKHR5cGUsIGNvbmZpZywgbWF5YmVLZXksIHNvdXJjZSwgc2VsZikge1xyXG4gIHtcclxuICAgIHZhciBwcm9wTmFtZTsgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxyXG5cclxuICAgIHZhciBwcm9wcyA9IHt9O1xyXG4gICAgdmFyIGtleSA9IG51bGw7XHJcbiAgICB2YXIgcmVmID0gbnVsbDsgLy8gQ3VycmVudGx5LCBrZXkgY2FuIGJlIHNwcmVhZCBpbiBhcyBhIHByb3AuIFRoaXMgY2F1c2VzIGEgcG90ZW50aWFsXHJcbiAgICAvLyBpc3N1ZSBpZiBrZXkgaXMgYWxzbyBleHBsaWNpdGx5IGRlY2xhcmVkIChpZS4gPGRpdiB7Li4ucHJvcHN9IGtleT1cIkhpXCIgLz5cclxuICAgIC8vIG9yIDxkaXYga2V5PVwiSGlcIiB7Li4ucHJvcHN9IC8+ICkuIFdlIHdhbnQgdG8gZGVwcmVjYXRlIGtleSBzcHJlYWQsXHJcbiAgICAvLyBidXQgYXMgYW4gaW50ZXJtZWRpYXJ5IHN0ZXAsIHdlIHdpbGwgdXNlIGpzeERFViBmb3IgZXZlcnl0aGluZyBleGNlcHRcclxuICAgIC8vIDxkaXYgey4uLnByb3BzfSBrZXk9XCJIaVwiIC8+LCBiZWNhdXNlIHdlIGFyZW4ndCBjdXJyZW50bHkgYWJsZSB0byB0ZWxsIGlmXHJcbiAgICAvLyBrZXkgaXMgZXhwbGljaXRseSBkZWNsYXJlZCB0byBiZSB1bmRlZmluZWQgb3Igbm90LlxyXG5cclxuICAgIGlmIChtYXliZUtleSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHtcclxuICAgICAgICBjaGVja0tleVN0cmluZ0NvZXJjaW9uKG1heWJlS2V5KTtcclxuICAgICAgfVxyXG5cclxuICAgICAga2V5ID0gJycgKyBtYXliZUtleTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaGFzVmFsaWRLZXkoY29uZmlnKSkge1xyXG4gICAgICB7XHJcbiAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjb25maWcua2V5KTtcclxuICAgICAgfVxyXG5cclxuICAgICAga2V5ID0gJycgKyBjb25maWcua2V5O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XHJcbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XHJcbiAgICAgIHdhcm5JZlN0cmluZ1JlZkNhbm5vdEJlQXV0b0NvbnZlcnRlZChjb25maWcsIHNlbGYpO1xyXG4gICAgfSAvLyBSZW1haW5pbmcgcHJvcGVydGllcyBhcmUgYWRkZWQgdG8gYSBuZXcgcHJvcHMgb2JqZWN0XHJcblxyXG5cclxuICAgIGZvciAocHJvcE5hbWUgaW4gY29uZmlnKSB7XHJcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmICFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcclxuICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdO1xyXG4gICAgICB9XHJcbiAgICB9IC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wc1xyXG5cclxuXHJcbiAgICBpZiAodHlwZSAmJiB0eXBlLmRlZmF1bHRQcm9wcykge1xyXG4gICAgICB2YXIgZGVmYXVsdFByb3BzID0gdHlwZS5kZWZhdWx0UHJvcHM7XHJcblxyXG4gICAgICBmb3IgKHByb3BOYW1lIGluIGRlZmF1bHRQcm9wcykge1xyXG4gICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoa2V5IHx8IHJlZikge1xyXG4gICAgICB2YXIgZGlzcGxheU5hbWUgPSB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyA/IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8ICdVbmtub3duJyA6IHR5cGU7XHJcblxyXG4gICAgICBpZiAoa2V5KSB7XHJcbiAgICAgICAgZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHJlZikge1xyXG4gICAgICAgIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gUmVhY3RFbGVtZW50KHR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIFJlYWN0Q3VycmVudE93bmVyJDEuY3VycmVudCwgcHJvcHMpO1xyXG4gIH1cclxufVxyXG5cclxudmFyIFJlYWN0Q3VycmVudE93bmVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50T3duZXI7XHJcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcclxudmFyIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UgPSBTeW1ib2wuZm9yKCdyZWFjdC5jbGllbnQucmVmZXJlbmNlJyk7XHJcblxyXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KSB7XHJcbiAge1xyXG4gICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XHJcbiAgICAgIHZhciBzdGFjayA9IGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihlbGVtZW50LnR5cGUsIGVsZW1lbnQuX3NvdXJjZSwgb3duZXIgPyBvd25lci50eXBlIDogbnVsbCk7XHJcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuc2V0RXh0cmFTdGFja0ZyYW1lKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxudmFyIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duO1xyXG5cclxue1xyXG4gIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gZmFsc2U7XHJcbn1cclxuLyoqXHJcbiAqIFZlcmlmaWVzIHRoZSBvYmplY3QgaXMgYSBSZWFjdEVsZW1lbnQuXHJcbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjaXN2YWxpZGVsZW1lbnRcclxuICogQHBhcmFtIHs/b2JqZWN0fSBvYmplY3RcclxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBgb2JqZWN0YCBpcyBhIFJlYWN0RWxlbWVudC5cclxuICogQGZpbmFsXHJcbiAqL1xyXG5cclxuXHJcbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xyXG4gIHtcclxuICAgIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XHJcbiAge1xyXG4gICAgaWYgKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcclxuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcclxuXHJcbiAgICAgIGlmIChuYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuICdcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG5hbWUgKyAnYC4nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oc291cmNlKSB7XHJcbiAge1xyXG4gICAgaWYgKHNvdXJjZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHZhciBmaWxlTmFtZSA9IHNvdXJjZS5maWxlTmFtZS5yZXBsYWNlKC9eLipbXFxcXFxcL10vLCAnJyk7XHJcbiAgICAgIHZhciBsaW5lTnVtYmVyID0gc291cmNlLmxpbmVOdW1iZXI7XHJcbiAgICAgIHJldHVybiAnXFxuXFxuQ2hlY2sgeW91ciBjb2RlIGF0ICcgKyBmaWxlTmFtZSArICc6JyArIGxpbmVOdW1iZXIgKyAnLic7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxufVxyXG4vKipcclxuICogV2FybiBpZiB0aGVyZSdzIG5vIGtleSBleHBsaWNpdGx5IHNldCBvbiBkeW5hbWljIGFycmF5cyBvZiBjaGlsZHJlbiBvclxyXG4gKiBvYmplY3Qga2V5cyBhcmUgbm90IHZhbGlkLiBUaGlzIGFsbG93cyB1cyB0byBrZWVwIHRyYWNrIG9mIGNoaWxkcmVuIGJldHdlZW5cclxuICogdXBkYXRlcy5cclxuICovXHJcblxyXG5cclxudmFyIG93bmVySGFzS2V5VXNlV2FybmluZyA9IHt9O1xyXG5cclxuZnVuY3Rpb24gZ2V0Q3VycmVudENvbXBvbmVudEVycm9ySW5mbyhwYXJlbnRUeXBlKSB7XHJcbiAge1xyXG4gICAgdmFyIGluZm8gPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcclxuXHJcbiAgICBpZiAoIWluZm8pIHtcclxuICAgICAgdmFyIHBhcmVudE5hbWUgPSB0eXBlb2YgcGFyZW50VHlwZSA9PT0gJ3N0cmluZycgPyBwYXJlbnRUeXBlIDogcGFyZW50VHlwZS5kaXNwbGF5TmFtZSB8fCBwYXJlbnRUeXBlLm5hbWU7XHJcblxyXG4gICAgICBpZiAocGFyZW50TmFtZSkge1xyXG4gICAgICAgIGluZm8gPSBcIlxcblxcbkNoZWNrIHRoZSB0b3AtbGV2ZWwgcmVuZGVyIGNhbGwgdXNpbmcgPFwiICsgcGFyZW50TmFtZSArIFwiPi5cIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbmZvO1xyXG4gIH1cclxufVxyXG4vKipcclxuICogV2FybiBpZiB0aGUgZWxlbWVudCBkb2Vzbid0IGhhdmUgYW4gZXhwbGljaXQga2V5IGFzc2lnbmVkIHRvIGl0LlxyXG4gKiBUaGlzIGVsZW1lbnQgaXMgaW4gYW4gYXJyYXkuIFRoZSBhcnJheSBjb3VsZCBncm93IGFuZCBzaHJpbmsgb3IgYmVcclxuICogcmVvcmRlcmVkLiBBbGwgY2hpbGRyZW4gdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgYXJlIHJlcXVpcmVkIHRvXHJcbiAqIGhhdmUgYSBcImtleVwiIHByb3BlcnR5IGFzc2lnbmVkIHRvIGl0LiBFcnJvciBzdGF0dXNlcyBhcmUgY2FjaGVkIHNvIGEgd2FybmluZ1xyXG4gKiB3aWxsIG9ubHkgYmUgc2hvd24gb25jZS5cclxuICpcclxuICogQGludGVybmFsXHJcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50IEVsZW1lbnQgdGhhdCByZXF1aXJlcyBhIGtleS5cclxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIGVsZW1lbnQncyBwYXJlbnQncyB0eXBlLlxyXG4gKi9cclxuXHJcblxyXG5mdW5jdGlvbiB2YWxpZGF0ZUV4cGxpY2l0S2V5KGVsZW1lbnQsIHBhcmVudFR5cGUpIHtcclxuICB7XHJcbiAgICBpZiAoIWVsZW1lbnQuX3N0b3JlIHx8IGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCB8fCBlbGVtZW50LmtleSAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgPSB0cnVlO1xyXG4gICAgdmFyIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8gPSBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpO1xyXG5cclxuICAgIGlmIChvd25lckhhc0tleVVzZVdhcm5pbmdbY3VycmVudENvbXBvbmVudEVycm9ySW5mb10pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7IC8vIFVzdWFsbHkgdGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIG9mZmVuZGVyLCBidXQgaWYgaXQgYWNjZXB0cyBjaGlsZHJlbiBhcyBhXHJcbiAgICAvLyBwcm9wZXJ0eSwgaXQgbWF5IGJlIHRoZSBjcmVhdG9yIG9mIHRoZSBjaGlsZCB0aGF0J3MgcmVzcG9uc2libGUgZm9yXHJcbiAgICAvLyBhc3NpZ25pbmcgaXQgYSBrZXkuXHJcblxyXG4gICAgdmFyIGNoaWxkT3duZXIgPSAnJztcclxuXHJcbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50Ll9vd25lciAmJiBlbGVtZW50Ll9vd25lciAhPT0gUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xyXG4gICAgICAvLyBHaXZlIHRoZSBjb21wb25lbnQgdGhhdCBvcmlnaW5hbGx5IGNyZWF0ZWQgdGhpcyBjaGlsZC5cclxuICAgICAgY2hpbGRPd25lciA9IFwiIEl0IHdhcyBwYXNzZWQgYSBjaGlsZCBmcm9tIFwiICsgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGVsZW1lbnQuX293bmVyLnR5cGUpICsgXCIuXCI7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCk7XHJcblxyXG4gICAgZXJyb3IoJ0VhY2ggY2hpbGQgaW4gYSBsaXN0IHNob3VsZCBoYXZlIGEgdW5pcXVlIFwia2V5XCIgcHJvcC4nICsgJyVzJXMgU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay93YXJuaW5nLWtleXMgZm9yIG1vcmUgaW5mb3JtYXRpb24uJywgY3VycmVudENvbXBvbmVudEVycm9ySW5mbywgY2hpbGRPd25lcik7XHJcblxyXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XHJcbiAgfVxyXG59XHJcbi8qKlxyXG4gKiBFbnN1cmUgdGhhdCBldmVyeSBlbGVtZW50IGVpdGhlciBpcyBwYXNzZWQgaW4gYSBzdGF0aWMgbG9jYXRpb24sIGluIGFuXHJcbiAqIGFycmF5IHdpdGggYW4gZXhwbGljaXQga2V5cyBwcm9wZXJ0eSBkZWZpbmVkLCBvciBpbiBhbiBvYmplY3QgbGl0ZXJhbFxyXG4gKiB3aXRoIHZhbGlkIGtleSBwcm9wZXJ0eS5cclxuICpcclxuICogQGludGVybmFsXHJcbiAqIEBwYXJhbSB7UmVhY3ROb2RlfSBub2RlIFN0YXRpY2FsbHkgcGFzc2VkIGNoaWxkIG9mIGFueSB0eXBlLlxyXG4gKiBAcGFyYW0geyp9IHBhcmVudFR5cGUgbm9kZSdzIHBhcmVudCdzIHR5cGUuXHJcbiAqL1xyXG5cclxuXHJcbmZ1bmN0aW9uIHZhbGlkYXRlQ2hpbGRLZXlzKG5vZGUsIHBhcmVudFR5cGUpIHtcclxuICB7XHJcbiAgICBpZiAodHlwZW9mIG5vZGUgIT09ICdvYmplY3QnIHx8ICFub2RlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAobm9kZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSkgOyBlbHNlIGlmIChpc0FycmF5KG5vZGUpKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHZhciBjaGlsZCA9IG5vZGVbaV07XHJcblxyXG4gICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcclxuICAgICAgICAgIHZhbGlkYXRlRXhwbGljaXRLZXkoY2hpbGQsIHBhcmVudFR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChpc1ZhbGlkRWxlbWVudChub2RlKSkge1xyXG4gICAgICAvLyBUaGlzIGVsZW1lbnQgd2FzIHBhc3NlZCBpbiBhIHZhbGlkIGxvY2F0aW9uLlxyXG4gICAgICBpZiAobm9kZS5fc3RvcmUpIHtcclxuICAgICAgICBub2RlLl9zdG9yZS52YWxpZGF0ZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4obm9kZSk7XHJcblxyXG4gICAgICBpZiAodHlwZW9mIGl0ZXJhdG9yRm4gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAvLyBFbnRyeSBpdGVyYXRvcnMgdXNlZCB0byBwcm92aWRlIGltcGxpY2l0IGtleXMsXHJcbiAgICAgICAgLy8gYnV0IG5vdyB3ZSBwcmludCBhIHNlcGFyYXRlIHdhcm5pbmcgZm9yIHRoZW0gbGF0ZXIuXHJcbiAgICAgICAgaWYgKGl0ZXJhdG9yRm4gIT09IG5vZGUuZW50cmllcykge1xyXG4gICAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG5vZGUpO1xyXG4gICAgICAgICAgdmFyIHN0ZXA7XHJcblxyXG4gICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xyXG4gICAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQoc3RlcC52YWx1ZSkpIHtcclxuICAgICAgICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KHN0ZXAudmFsdWUsIHBhcmVudFR5cGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi8qKlxyXG4gKiBHaXZlbiBhbiBlbGVtZW50LCB2YWxpZGF0ZSB0aGF0IGl0cyBwcm9wcyBmb2xsb3cgdGhlIHByb3BUeXBlcyBkZWZpbml0aW9uLFxyXG4gKiBwcm92aWRlZCBieSB0aGUgdHlwZS5cclxuICpcclxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnRcclxuICovXHJcblxyXG5cclxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wVHlwZXMoZWxlbWVudCkge1xyXG4gIHtcclxuICAgIHZhciB0eXBlID0gZWxlbWVudC50eXBlO1xyXG5cclxuICAgIGlmICh0eXBlID09PSBudWxsIHx8IHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgcHJvcFR5cGVzO1xyXG5cclxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBwcm9wVHlwZXMgPSB0eXBlLnByb3BUeXBlcztcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IC8vIE5vdGU6IE1lbW8gb25seSBjaGVja3Mgb3V0ZXIgcHJvcHMgaGVyZS5cclxuICAgIC8vIElubmVyIHByb3BzIGFyZSBjaGVja2VkIGluIHRoZSByZWNvbmNpbGVyLlxyXG4gICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFKSkge1xyXG4gICAgICBwcm9wVHlwZXMgPSB0eXBlLnByb3BUeXBlcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocHJvcFR5cGVzKSB7XHJcbiAgICAgIC8vIEludGVudGlvbmFsbHkgaW5zaWRlIHRvIGF2b2lkIHRyaWdnZXJpbmcgbGF6eSBpbml0aWFsaXplcnM6XHJcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xyXG4gICAgICBjaGVja1Byb3BUeXBlcyhwcm9wVHlwZXMsIGVsZW1lbnQucHJvcHMsICdwcm9wJywgbmFtZSwgZWxlbWVudCk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUuUHJvcFR5cGVzICE9PSB1bmRlZmluZWQgJiYgIXByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duKSB7XHJcbiAgICAgIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gdHJ1ZTsgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcclxuXHJcbiAgICAgIHZhciBfbmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKTtcclxuXHJcbiAgICAgIGVycm9yKCdDb21wb25lbnQgJXMgZGVjbGFyZWQgYFByb3BUeXBlc2AgaW5zdGVhZCBvZiBgcHJvcFR5cGVzYC4gRGlkIHlvdSBtaXNzcGVsbCB0aGUgcHJvcGVydHkgYXNzaWdubWVudD8nLCBfbmFtZSB8fCAnVW5rbm93bicpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgdHlwZS5nZXREZWZhdWx0UHJvcHMgPT09ICdmdW5jdGlvbicgJiYgIXR5cGUuZ2V0RGVmYXVsdFByb3BzLmlzUmVhY3RDbGFzc0FwcHJvdmVkKSB7XHJcbiAgICAgIGVycm9yKCdnZXREZWZhdWx0UHJvcHMgaXMgb25seSB1c2VkIG9uIGNsYXNzaWMgUmVhY3QuY3JlYXRlQ2xhc3MgJyArICdkZWZpbml0aW9ucy4gVXNlIGEgc3RhdGljIHByb3BlcnR5IG5hbWVkIGBkZWZhdWx0UHJvcHNgIGluc3RlYWQuJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi8qKlxyXG4gKiBHaXZlbiBhIGZyYWdtZW50LCB2YWxpZGF0ZSB0aGF0IGl0IGNhbiBvbmx5IGJlIHByb3ZpZGVkIHdpdGggZnJhZ21lbnQgcHJvcHNcclxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGZyYWdtZW50XHJcbiAqL1xyXG5cclxuXHJcbmZ1bmN0aW9uIHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhmcmFnbWVudCkge1xyXG4gIHtcclxuICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZnJhZ21lbnQucHJvcHMpO1xyXG5cclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIga2V5ID0ga2V5c1tpXTtcclxuXHJcbiAgICAgIGlmIChrZXkgIT09ICdjaGlsZHJlbicgJiYga2V5ICE9PSAna2V5Jykge1xyXG4gICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGZyYWdtZW50KTtcclxuXHJcbiAgICAgICAgZXJyb3IoJ0ludmFsaWQgcHJvcCBgJXNgIHN1cHBsaWVkIHRvIGBSZWFjdC5GcmFnbWVudGAuICcgKyAnUmVhY3QuRnJhZ21lbnQgY2FuIG9ubHkgaGF2ZSBga2V5YCBhbmQgYGNoaWxkcmVuYCBwcm9wcy4nLCBrZXkpO1xyXG5cclxuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChmcmFnbWVudC5yZWYgIT09IG51bGwpIHtcclxuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xyXG5cclxuICAgICAgZXJyb3IoJ0ludmFsaWQgYXR0cmlidXRlIGByZWZgIHN1cHBsaWVkIHRvIGBSZWFjdC5GcmFnbWVudGAuJyk7XHJcblxyXG4gICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbnZhciBkaWRXYXJuQWJvdXRLZXlTcHJlYWQgPSB7fTtcclxuZnVuY3Rpb24ganN4V2l0aFZhbGlkYXRpb24odHlwZSwgcHJvcHMsIGtleSwgaXNTdGF0aWNDaGlsZHJlbiwgc291cmNlLCBzZWxmKSB7XHJcbiAge1xyXG4gICAgdmFyIHZhbGlkVHlwZSA9IGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKTsgLy8gV2Ugd2FybiBpbiB0aGlzIGNhc2UgYnV0IGRvbid0IHRocm93LiBXZSBleHBlY3QgdGhlIGVsZW1lbnQgY3JlYXRpb24gdG9cclxuICAgIC8vIHN1Y2NlZWQgYW5kIHRoZXJlIHdpbGwgbGlrZWx5IGJlIGVycm9ycyBpbiByZW5kZXIuXHJcblxyXG4gICAgaWYgKCF2YWxpZFR5cGUpIHtcclxuICAgICAgdmFyIGluZm8gPSAnJztcclxuXHJcbiAgICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgT2JqZWN0LmtleXModHlwZSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgaW5mbyArPSAnIFlvdSBsaWtlbHkgZm9yZ290IHRvIGV4cG9ydCB5b3VyIGNvbXBvbmVudCBmcm9tIHRoZSBmaWxlICcgKyBcIml0J3MgZGVmaW5lZCBpbiwgb3IgeW91IG1pZ2h0IGhhdmUgbWl4ZWQgdXAgZGVmYXVsdCBhbmQgbmFtZWQgaW1wb3J0cy5cIjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdmFyIHNvdXJjZUluZm8gPSBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShzb3VyY2UpO1xyXG5cclxuICAgICAgaWYgKHNvdXJjZUluZm8pIHtcclxuICAgICAgICBpbmZvICs9IHNvdXJjZUluZm87XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW5mbyArPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdmFyIHR5cGVTdHJpbmc7XHJcblxyXG4gICAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xyXG4gICAgICAgIHR5cGVTdHJpbmcgPSAnbnVsbCc7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXNBcnJheSh0eXBlKSkge1xyXG4gICAgICAgIHR5cGVTdHJpbmcgPSAnYXJyYXknO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgIT09IHVuZGVmaW5lZCAmJiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcclxuICAgICAgICB0eXBlU3RyaW5nID0gXCI8XCIgKyAoZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUudHlwZSkgfHwgJ1Vua25vd24nKSArIFwiIC8+XCI7XHJcbiAgICAgICAgaW5mbyA9ICcgRGlkIHlvdSBhY2NpZGVudGFsbHkgZXhwb3J0IGEgSlNYIGxpdGVyYWwgaW5zdGVhZCBvZiBhIGNvbXBvbmVudD8nO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHR5cGVTdHJpbmcgPSB0eXBlb2YgdHlwZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZXJyb3IoJ1JlYWN0LmpzeDogdHlwZSBpcyBpbnZhbGlkIC0tIGV4cGVjdGVkIGEgc3RyaW5nIChmb3IgJyArICdidWlsdC1pbiBjb21wb25lbnRzKSBvciBhIGNsYXNzL2Z1bmN0aW9uIChmb3IgY29tcG9zaXRlICcgKyAnY29tcG9uZW50cykgYnV0IGdvdDogJXMuJXMnLCB0eXBlU3RyaW5nLCBpbmZvKTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgZWxlbWVudCA9IGpzeERFViQxKHR5cGUsIHByb3BzLCBrZXksIHNvdXJjZSwgc2VsZik7IC8vIFRoZSByZXN1bHQgY2FuIGJlIG51bGxpc2ggaWYgYSBtb2NrIG9yIGEgY3VzdG9tIGZ1bmN0aW9uIGlzIHVzZWQuXHJcbiAgICAvLyBUT0RPOiBEcm9wIHRoaXMgd2hlbiB0aGVzZSBhcmUgbm8gbG9uZ2VyIGFsbG93ZWQgYXMgdGhlIHR5cGUgYXJndW1lbnQuXHJcblxyXG4gICAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gZWxlbWVudDtcclxuICAgIH0gLy8gU2tpcCBrZXkgd2FybmluZyBpZiB0aGUgdHlwZSBpc24ndCB2YWxpZCBzaW5jZSBvdXIga2V5IHZhbGlkYXRpb24gbG9naWNcclxuICAgIC8vIGRvZXNuJ3QgZXhwZWN0IGEgbm9uLXN0cmluZy9mdW5jdGlvbiB0eXBlIGFuZCBjYW4gdGhyb3cgY29uZnVzaW5nIGVycm9ycy5cclxuICAgIC8vIFdlIGRvbid0IHdhbnQgZXhjZXB0aW9uIGJlaGF2aW9yIHRvIGRpZmZlciBiZXR3ZWVuIGRldiBhbmQgcHJvZC5cclxuICAgIC8vIChSZW5kZXJpbmcgd2lsbCB0aHJvdyB3aXRoIGEgaGVscGZ1bCBtZXNzYWdlIGFuZCBhcyBzb29uIGFzIHRoZSB0eXBlIGlzXHJcbiAgICAvLyBmaXhlZCwgdGhlIGtleSB3YXJuaW5ncyB3aWxsIGFwcGVhci4pXHJcblxyXG5cclxuICAgIGlmICh2YWxpZFR5cGUpIHtcclxuICAgICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW47XHJcblxyXG4gICAgICBpZiAoY2hpbGRyZW4gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmIChpc1N0YXRpY0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICBpZiAoaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuW2ldLCB0eXBlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKE9iamVjdC5mcmVlemUpIHtcclxuICAgICAgICAgICAgICBPYmplY3QuZnJlZXplKGNoaWxkcmVuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZXJyb3IoJ1JlYWN0LmpzeDogU3RhdGljIGNoaWxkcmVuIHNob3VsZCBhbHdheXMgYmUgYW4gYXJyYXkuICcgKyAnWW91IGFyZSBsaWtlbHkgZXhwbGljaXRseSBjYWxsaW5nIFJlYWN0LmpzeHMgb3IgUmVhY3QuanN4REVWLiAnICsgJ1VzZSB0aGUgQmFiZWwgdHJhbnNmb3JtIGluc3RlYWQuJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuLCB0eXBlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywgJ2tleScpKSB7XHJcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xyXG4gICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHByb3BzKS5maWx0ZXIoZnVuY3Rpb24gKGspIHtcclxuICAgICAgICByZXR1cm4gayAhPT0gJ2tleSc7XHJcbiAgICAgIH0pO1xyXG4gICAgICB2YXIgYmVmb3JlRXhhbXBsZSA9IGtleXMubGVuZ3RoID4gMCA/ICd7a2V5OiBzb21lS2V5LCAnICsga2V5cy5qb2luKCc6IC4uLiwgJykgKyAnOiAuLi59JyA6ICd7a2V5OiBzb21lS2V5fSc7XHJcblxyXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dEtleVNwcmVhZFtjb21wb25lbnROYW1lICsgYmVmb3JlRXhhbXBsZV0pIHtcclxuICAgICAgICB2YXIgYWZ0ZXJFeGFtcGxlID0ga2V5cy5sZW5ndGggPiAwID8gJ3snICsga2V5cy5qb2luKCc6IC4uLiwgJykgKyAnOiAuLi59JyA6ICd7fSc7XHJcblxyXG4gICAgICAgIGVycm9yKCdBIHByb3BzIG9iamVjdCBjb250YWluaW5nIGEgXCJrZXlcIiBwcm9wIGlzIGJlaW5nIHNwcmVhZCBpbnRvIEpTWDpcXG4nICsgJyAgbGV0IHByb3BzID0gJXM7XFxuJyArICcgIDwlcyB7Li4ucHJvcHN9IC8+XFxuJyArICdSZWFjdCBrZXlzIG11c3QgYmUgcGFzc2VkIGRpcmVjdGx5IHRvIEpTWCB3aXRob3V0IHVzaW5nIHNwcmVhZDpcXG4nICsgJyAgbGV0IHByb3BzID0gJXM7XFxuJyArICcgIDwlcyBrZXk9e3NvbWVLZXl9IHsuLi5wcm9wc30gLz4nLCBiZWZvcmVFeGFtcGxlLCBjb21wb25lbnROYW1lLCBhZnRlckV4YW1wbGUsIGNvbXBvbmVudE5hbWUpO1xyXG5cclxuICAgICAgICBkaWRXYXJuQWJvdXRLZXlTcHJlYWRbY29tcG9uZW50TmFtZSArIGJlZm9yZUV4YW1wbGVdID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSB7XHJcbiAgICAgIHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhlbGVtZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlbGVtZW50O1xyXG4gIH1cclxufSAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGV4aXN0IHRvIHN0aWxsIGdldCBjaGlsZCB3YXJuaW5ncyBpbiBkZXZcclxuXHJcbnZhciBqc3hERVYgPSBqc3hXaXRoVmFsaWRhdGlvbiA7XHJcblxyXG5leHBvcnRzLkZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcclxuZXhwb3J0cy5qc3hERVYgPSBqc3hERVY7XHJcbiAgfSkoKTtcclxufVxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-runtime.development.js":
|
||
/*!************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/react/cjs/react-jsx-runtime.development.js ***!
|
||
\************************************************************************************/
|
||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("/**\r\n * @license React\r\n * react-jsx-runtime.development.js\r\n *\r\n * Copyright (c) Meta Platforms, Inc. and affiliates.\r\n *\r\n * This source code is licensed under the MIT license found in the\r\n * LICENSE file in the root directory of this source tree.\r\n */\r\n\r\n\r\n\r\nif (true) {\r\n (function() {\r\n'use strict';\r\n\r\nvar React = __webpack_require__(/*! next/dist/compiled/react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\r\n\r\n// ATTENTION\r\n// When adding new symbols to this file,\r\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\r\n// The Symbol used to tag the ReactElement-like types.\r\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\r\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\r\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\r\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\r\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\r\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\r\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\r\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\r\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\r\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\r\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\r\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\r\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\r\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\r\nvar REACT_CACHE_TYPE = Symbol.for('react.cache');\r\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\r\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\r\nfunction getIteratorFn(maybeIterable) {\r\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\r\n return null;\r\n }\r\n\r\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\r\n\r\n if (typeof maybeIterator === 'function') {\r\n return maybeIterator;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\r\n\r\nfunction error(format) {\r\n {\r\n {\r\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\r\n args[_key2 - 1] = arguments[_key2];\r\n }\r\n\r\n printWarning('error', format, args);\r\n }\r\n }\r\n}\r\n\r\nfunction printWarning(level, format, args) {\r\n // When changing this logic, you might want to also\r\n // update consoleWithStackDev.www.js as well.\r\n {\r\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\r\n var stack = ReactDebugCurrentFrame.getStackAddendum();\r\n\r\n if (stack !== '') {\r\n format += '%s';\r\n args = args.concat([stack]);\r\n } // eslint-disable-next-line react-internal/safe-string-coercion\r\n\r\n\r\n var argsWithFormat = args.map(function (item) {\r\n return String(item);\r\n }); // Careful: RN currently depends on this prefix\r\n\r\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\r\n // breaks IE9: https://github.com/facebook/react/issues/13610\r\n // eslint-disable-next-line react-internal/no-production-logging\r\n\r\n Function.prototype.apply.call(console[level], console, argsWithFormat);\r\n }\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n\r\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\r\nvar enableCacheElement = false;\r\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\r\n\r\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\r\n// stuff. Intended to enable React core members to more easily debug scheduling\r\n// issues in DEV builds.\r\n\r\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\r\n\r\nvar REACT_CLIENT_REFERENCE$1 = Symbol.for('react.client.reference');\r\nfunction isValidElementType(type) {\r\n if (typeof type === 'string' || typeof type === 'function') {\r\n return true;\r\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\r\n\r\n\r\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\r\n return true;\r\n }\r\n\r\n if (typeof type === 'object' && type !== null) {\r\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\r\n // types supported by any Flight configuration anywhere since\r\n // we don't know which Flight build this will end up being used\r\n // with.\r\n type.$$typeof === REACT_CLIENT_REFERENCE$1 || type.getModuleId !== undefined) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction getWrappedName(outerType, innerType, wrapperName) {\r\n var displayName = outerType.displayName;\r\n\r\n if (displayName) {\r\n return displayName;\r\n }\r\n\r\n var functionName = innerType.displayName || innerType.name || '';\r\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\r\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\r\n\r\n\r\nfunction getContextName(type) {\r\n return type.displayName || 'Context';\r\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\r\n\r\n\r\nfunction getComponentNameFromType(type) {\r\n if (type == null) {\r\n // Host root, text node or just invalid type.\r\n return null;\r\n }\r\n\r\n {\r\n if (typeof type.tag === 'number') {\r\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\r\n }\r\n }\r\n\r\n if (typeof type === 'function') {\r\n return type.displayName || type.name || null;\r\n }\r\n\r\n if (typeof type === 'string') {\r\n return type;\r\n }\r\n\r\n switch (type) {\r\n case REACT_FRAGMENT_TYPE:\r\n return 'Fragment';\r\n\r\n case REACT_PORTAL_TYPE:\r\n return 'Portal';\r\n\r\n case REACT_PROFILER_TYPE:\r\n return 'Profiler';\r\n\r\n case REACT_STRICT_MODE_TYPE:\r\n return 'StrictMode';\r\n\r\n case REACT_SUSPENSE_TYPE:\r\n return 'Suspense';\r\n\r\n case REACT_SUSPENSE_LIST_TYPE:\r\n return 'SuspenseList';\r\n\r\n case REACT_CACHE_TYPE:\r\n {\r\n return 'Cache';\r\n }\r\n\r\n }\r\n\r\n if (typeof type === 'object') {\r\n switch (type.$$typeof) {\r\n case REACT_CONTEXT_TYPE:\r\n var context = type;\r\n return getContextName(context) + '.Consumer';\r\n\r\n case REACT_PROVIDER_TYPE:\r\n var provider = type;\r\n return getContextName(provider._context) + '.Provider';\r\n\r\n case REACT_FORWARD_REF_TYPE:\r\n return getWrappedName(type, type.render, 'ForwardRef');\r\n\r\n case REACT_MEMO_TYPE:\r\n var outerName = type.displayName || null;\r\n\r\n if (outerName !== null) {\r\n return outerName;\r\n }\r\n\r\n return getComponentNameFromType(type.type) || 'Memo';\r\n\r\n case REACT_LAZY_TYPE:\r\n {\r\n var lazyComponent = type;\r\n var payload = lazyComponent._payload;\r\n var init = lazyComponent._init;\r\n\r\n try {\r\n return getComponentNameFromType(init(payload));\r\n } catch (x) {\r\n return null;\r\n }\r\n }\r\n\r\n case REACT_SERVER_CONTEXT_TYPE:\r\n {\r\n var context2 = type;\r\n return (context2.displayName || context2._globalName) + '.Provider';\r\n }\r\n\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nvar assign = Object.assign;\r\n\r\n// Helpers to patch console.logs to avoid logging during side-effect free\r\n// replaying on render function. This currently only patches the object\r\n// lazily which won't cover if the log function was extracted eagerly.\r\n// We could also eagerly patch the method.\r\nvar disabledDepth = 0;\r\nvar prevLog;\r\nvar prevInfo;\r\nvar prevWarn;\r\nvar prevError;\r\nvar prevGroup;\r\nvar prevGroupCollapsed;\r\nvar prevGroupEnd;\r\n\r\nfunction disabledLog() {}\r\n\r\ndisabledLog.__reactDisabledLog = true;\r\nfunction disableLogs() {\r\n {\r\n if (disabledDepth === 0) {\r\n /* eslint-disable react-internal/no-production-logging */\r\n prevLog = console.log;\r\n prevInfo = console.info;\r\n prevWarn = console.warn;\r\n prevError = console.error;\r\n prevGroup = console.group;\r\n prevGroupCollapsed = console.groupCollapsed;\r\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\r\n\r\n var props = {\r\n configurable: true,\r\n enumerable: true,\r\n value: disabledLog,\r\n writable: true\r\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\r\n\r\n Object.defineProperties(console, {\r\n info: props,\r\n log: props,\r\n warn: props,\r\n error: props,\r\n group: props,\r\n groupCollapsed: props,\r\n groupEnd: props\r\n });\r\n /* eslint-enable react-internal/no-production-logging */\r\n }\r\n\r\n disabledDepth++;\r\n }\r\n}\r\nfunction reenableLogs() {\r\n {\r\n disabledDepth--;\r\n\r\n if (disabledDepth === 0) {\r\n /* eslint-disable react-internal/no-production-logging */\r\n var props = {\r\n configurable: true,\r\n enumerable: true,\r\n writable: true\r\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\r\n\r\n Object.defineProperties(console, {\r\n log: assign({}, props, {\r\n value: prevLog\r\n }),\r\n info: assign({}, props, {\r\n value: prevInfo\r\n }),\r\n warn: assign({}, props, {\r\n value: prevWarn\r\n }),\r\n error: assign({}, props, {\r\n value: prevError\r\n }),\r\n group: assign({}, props, {\r\n value: prevGroup\r\n }),\r\n groupCollapsed: assign({}, props, {\r\n value: prevGroupCollapsed\r\n }),\r\n groupEnd: assign({}, props, {\r\n value: prevGroupEnd\r\n })\r\n });\r\n /* eslint-enable react-internal/no-production-logging */\r\n }\r\n\r\n if (disabledDepth < 0) {\r\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\r\n }\r\n }\r\n}\r\n\r\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\r\nvar prefix;\r\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\r\n {\r\n if (prefix === undefined) {\r\n // Extract the VM specific prefix used by each line.\r\n try {\r\n throw Error();\r\n } catch (x) {\r\n var match = x.stack.trim().match(/\\n( *(at )?)/);\r\n prefix = match && match[1] || '';\r\n }\r\n } // We use the prefix to ensure our stacks line up with native stack frames.\r\n\r\n\r\n return '\\n' + prefix + name;\r\n }\r\n}\r\nvar reentry = false;\r\nvar componentFrameCache;\r\n\r\n{\r\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\r\n componentFrameCache = new PossiblyWeakMap();\r\n}\r\n\r\nfunction describeNativeComponentFrame(fn, construct) {\r\n // If something asked for a stack inside a fake render, it should get ignored.\r\n if (!fn || reentry) {\r\n return '';\r\n }\r\n\r\n {\r\n var frame = componentFrameCache.get(fn);\r\n\r\n if (frame !== undefined) {\r\n return frame;\r\n }\r\n }\r\n\r\n var control;\r\n reentry = true;\r\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined.\r\n\r\n Error.prepareStackTrace = undefined;\r\n var previousDispatcher;\r\n\r\n {\r\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\r\n // for warnings.\r\n\r\n ReactCurrentDispatcher.current = null;\r\n disableLogs();\r\n }\r\n\r\n try {\r\n // This should throw.\r\n if (construct) {\r\n // Something should be setting the props in the constructor.\r\n var Fake = function () {\r\n throw Error();\r\n }; // $FlowFixMe[prop-missing]\r\n\r\n\r\n Object.defineProperty(Fake.prototype, 'props', {\r\n set: function () {\r\n // We use a throwing setter instead of frozen or non-writable props\r\n // because that won't throw in a non-strict mode function.\r\n throw Error();\r\n }\r\n });\r\n\r\n if (typeof Reflect === 'object' && Reflect.construct) {\r\n // We construct a different control for this case to include any extra\r\n // frames added by the construct call.\r\n try {\r\n Reflect.construct(Fake, []);\r\n } catch (x) {\r\n control = x;\r\n }\r\n\r\n Reflect.construct(fn, [], Fake);\r\n } else {\r\n try {\r\n Fake.call();\r\n } catch (x) {\r\n control = x;\r\n } // $FlowFixMe[prop-missing] found when upgrading Flow\r\n\r\n\r\n fn.call(Fake.prototype);\r\n }\r\n } else {\r\n try {\r\n throw Error();\r\n } catch (x) {\r\n control = x;\r\n } // TODO(luna): This will currently only throw if the function component\r\n // tries to access React/ReactDOM/props. We should probably make this throw\r\n // in simple components too\r\n\r\n\r\n var maybePromise = fn(); // If the function component returns a promise, it's likely an async\r\n // component, which we don't yet support. Attach a noop catch handler to\r\n // silence the error.\r\n // TODO: Implement component stacks for async client components?\r\n\r\n if (maybePromise && typeof maybePromise.catch === 'function') {\r\n maybePromise.catch(function () {});\r\n }\r\n }\r\n } catch (sample) {\r\n // This is inlined manually because closure doesn't do it for us.\r\n if (sample && control && typeof sample.stack === 'string') {\r\n // This extracts the first frame from the sample that isn't also in the control.\r\n // Skipping one frame that we assume is the frame that calls the two.\r\n var sampleLines = sample.stack.split('\\n');\r\n var controlLines = control.stack.split('\\n');\r\n var s = sampleLines.length - 1;\r\n var c = controlLines.length - 1;\r\n\r\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\r\n // We expect at least one stack frame to be shared.\r\n // Typically this will be the root most one. However, stack frames may be\r\n // cut off due to maximum stack limits. In this case, one maybe cut off\r\n // earlier than the other. We assume that the sample is longer or the same\r\n // and there for cut off earlier. So we should find the root most frame in\r\n // the sample somewhere in the control.\r\n c--;\r\n }\r\n\r\n for (; s >= 1 && c >= 0; s--, c--) {\r\n // Next we find the first one that isn't the same which should be the\r\n // frame that called our sample function and the control.\r\n if (sampleLines[s] !== controlLines[c]) {\r\n // In V8, the first line is describing the message but other VMs don't.\r\n // If we're about to return the first line, and the control is also on the same\r\n // line, that's a pretty good indicator that our sample threw at same line as\r\n // the control. I.e. before we entered the sample frame. So we ignore this result.\r\n // This can happen if you passed a class to function component, or non-function.\r\n if (s !== 1 || c !== 1) {\r\n do {\r\n s--;\r\n c--; // We may still have similar intermediate frames from the construct call.\r\n // The next one that isn't the same should be our match though.\r\n\r\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\r\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\r\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\r\n // but we have a user-provided \"displayName\"\r\n // splice it in to make the stack more readable.\r\n\r\n\r\n if (fn.displayName && _frame.includes('<anonymous>')) {\r\n _frame = _frame.replace('<anonymous>', fn.displayName);\r\n }\r\n\r\n {\r\n if (typeof fn === 'function') {\r\n componentFrameCache.set(fn, _frame);\r\n }\r\n } // Return the line we found.\r\n\r\n\r\n return _frame;\r\n }\r\n } while (s >= 1 && c >= 0);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n } finally {\r\n reentry = false;\r\n\r\n {\r\n ReactCurrentDispatcher.current = previousDispatcher;\r\n reenableLogs();\r\n }\r\n\r\n Error.prepareStackTrace = previousPrepareStackTrace;\r\n } // Fallback to just using the name if we couldn't make it throw.\r\n\r\n\r\n var name = fn ? fn.displayName || fn.name : '';\r\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\r\n\r\n {\r\n if (typeof fn === 'function') {\r\n componentFrameCache.set(fn, syntheticFrame);\r\n }\r\n }\r\n\r\n return syntheticFrame;\r\n}\r\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\r\n {\r\n return describeNativeComponentFrame(fn, false);\r\n }\r\n}\r\n\r\nfunction shouldConstruct(Component) {\r\n var prototype = Component.prototype;\r\n return !!(prototype && prototype.isReactComponent);\r\n}\r\n\r\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\r\n\r\n if (type == null) {\r\n return '';\r\n }\r\n\r\n if (typeof type === 'function') {\r\n {\r\n return describeNativeComponentFrame(type, shouldConstruct(type));\r\n }\r\n }\r\n\r\n if (typeof type === 'string') {\r\n return describeBuiltInComponentFrame(type);\r\n }\r\n\r\n switch (type) {\r\n case REACT_SUSPENSE_TYPE:\r\n return describeBuiltInComponentFrame('Suspense');\r\n\r\n case REACT_SUSPENSE_LIST_TYPE:\r\n return describeBuiltInComponentFrame('SuspenseList');\r\n }\r\n\r\n if (typeof type === 'object') {\r\n switch (type.$$typeof) {\r\n case REACT_FORWARD_REF_TYPE:\r\n return describeFunctionComponentFrame(type.render);\r\n\r\n case REACT_MEMO_TYPE:\r\n // Memo may contain any component type so we recursively resolve it.\r\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\r\n\r\n case REACT_LAZY_TYPE:\r\n {\r\n var lazyComponent = type;\r\n var payload = lazyComponent._payload;\r\n var init = lazyComponent._init;\r\n\r\n try {\r\n // Lazy may contain any component type so we recursively resolve it.\r\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\r\n } catch (x) {}\r\n }\r\n }\r\n }\r\n\r\n return '';\r\n}\r\n\r\n// $FlowFixMe[method-unbinding]\r\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nvar loggedTypeFailures = {};\r\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\r\n\r\nfunction setCurrentlyValidatingElement$1(element) {\r\n {\r\n if (element) {\r\n var owner = element._owner;\r\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\r\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\r\n } else {\r\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\r\n }\r\n }\r\n}\r\n\r\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\r\n {\r\n // $FlowFixMe[incompatible-use] This is okay but Flow doesn't know it.\r\n var has = Function.call.bind(hasOwnProperty);\r\n\r\n for (var typeSpecName in typeSpecs) {\r\n if (has(typeSpecs, typeSpecName)) {\r\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\r\n // fail the render phase where it didn't fail before. So we log it.\r\n // After these have been cleaned up, we'll let them throw.\r\n\r\n try {\r\n // This is intentionally an invariant that gets caught. It's the same\r\n // behavior as without this statement except with a better message.\r\n if (typeof typeSpecs[typeSpecName] !== 'function') {\r\n // eslint-disable-next-line react-internal/prod-error-codes\r\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\r\n err.name = 'Invariant Violation';\r\n throw err;\r\n }\r\n\r\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\r\n } catch (ex) {\r\n error$1 = ex;\r\n }\r\n\r\n if (error$1 && !(error$1 instanceof Error)) {\r\n setCurrentlyValidatingElement$1(element);\r\n\r\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\r\n\r\n setCurrentlyValidatingElement$1(null);\r\n }\r\n\r\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\r\n // Only monitor this failure once because there tends to be a lot of the\r\n // same error.\r\n loggedTypeFailures[error$1.message] = true;\r\n setCurrentlyValidatingElement$1(element);\r\n\r\n error('Failed %s type: %s', location, error$1.message);\r\n\r\n setCurrentlyValidatingElement$1(null);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\r\n\r\nfunction isArray(a) {\r\n return isArrayImpl(a);\r\n}\r\n\r\n/*\r\n * The `'' + value` pattern (used in perf-sensitive code) throws for Symbol\r\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\r\n *\r\n * The functions in this module will throw an easier-to-understand,\r\n * easier-to-debug exception with a clear errors message message explaining the\r\n * problem. (Instead of a confusing exception thrown inside the implementation\r\n * of the `value` object).\r\n */\r\n// $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\r\nfunction typeName(value) {\r\n {\r\n // toStringTag is needed for namespaced types like Temporal.Instant\r\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\r\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object'; // $FlowFixMe[incompatible-return]\r\n\r\n return type;\r\n }\r\n} // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\r\n\r\n\r\nfunction willCoercionThrow(value) {\r\n {\r\n try {\r\n testStringCoercion(value);\r\n return false;\r\n } catch (e) {\r\n return true;\r\n }\r\n }\r\n}\r\n\r\nfunction testStringCoercion(value) {\r\n // If you ended up here by following an exception call stack, here's what's\r\n // happened: you supplied an object or symbol value to React (as a prop, key,\r\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\r\n // coerce it to a string using `'' + value`, an exception was thrown.\r\n //\r\n // The most common types that will cause this exception are `Symbol` instances\r\n // and Temporal objects like `Temporal.Instant`. But any object that has a\r\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\r\n // exception. (Library authors do this to prevent users from using built-in\r\n // numeric operators like `+` or comparison operators like `>=` because custom\r\n // methods are needed to perform accurate arithmetic or comparison.)\r\n //\r\n // To fix the problem, coerce this object or symbol value to a string before\r\n // passing it to React. The most reliable way is usually `String(value)`.\r\n //\r\n // To find which value is throwing, check the browser or debugger console.\r\n // Before this exception was thrown, there should be `console.error` output\r\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\r\n // problem and how that type was used: key, atrribute, input value prop, etc.\r\n // In most cases, this console output also shows the component and its\r\n // ancestor components where the exception happened.\r\n //\r\n // eslint-disable-next-line react-internal/safe-string-coercion\r\n return '' + value;\r\n}\r\nfunction checkKeyStringCoercion(value) {\r\n {\r\n if (willCoercionThrow(value)) {\r\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\r\n\r\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\r\n }\r\n }\r\n}\r\n\r\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\r\nvar RESERVED_PROPS = {\r\n key: true,\r\n ref: true,\r\n __self: true,\r\n __source: true\r\n};\r\nvar specialPropKeyWarningShown;\r\nvar specialPropRefWarningShown;\r\nvar didWarnAboutStringRefs;\r\n\r\n{\r\n didWarnAboutStringRefs = {};\r\n}\r\n\r\nfunction hasValidRef(config) {\r\n {\r\n if (hasOwnProperty.call(config, 'ref')) {\r\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\r\n\r\n if (getter && getter.isReactWarning) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return config.ref !== undefined;\r\n}\r\n\r\nfunction hasValidKey(config) {\r\n {\r\n if (hasOwnProperty.call(config, 'key')) {\r\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\r\n\r\n if (getter && getter.isReactWarning) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return config.key !== undefined;\r\n}\r\n\r\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\r\n {\r\n if (typeof config.ref === 'string' && ReactCurrentOwner$1.current && self && ReactCurrentOwner$1.current.stateNode !== self) {\r\n var componentName = getComponentNameFromType(ReactCurrentOwner$1.current.type);\r\n\r\n if (!didWarnAboutStringRefs[componentName]) {\r\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner$1.current.type), config.ref);\r\n\r\n didWarnAboutStringRefs[componentName] = true;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction defineKeyPropWarningGetter(props, displayName) {\r\n {\r\n var warnAboutAccessingKey = function () {\r\n if (!specialPropKeyWarningShown) {\r\n specialPropKeyWarningShown = true;\r\n\r\n error('%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://reactjs.org/link/special-props)', displayName);\r\n }\r\n };\r\n\r\n warnAboutAccessingKey.isReactWarning = true;\r\n Object.defineProperty(props, 'key', {\r\n get: warnAboutAccessingKey,\r\n configurable: true\r\n });\r\n }\r\n}\r\n\r\nfunction defineRefPropWarningGetter(props, displayName) {\r\n {\r\n var warnAboutAccessingRef = function () {\r\n if (!specialPropRefWarningShown) {\r\n specialPropRefWarningShown = true;\r\n\r\n error('%s: `ref` 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://reactjs.org/link/special-props)', displayName);\r\n }\r\n };\r\n\r\n warnAboutAccessingRef.isReactWarning = true;\r\n Object.defineProperty(props, 'ref', {\r\n get: warnAboutAccessingRef,\r\n configurable: true\r\n });\r\n }\r\n}\r\n/**\r\n * Factory method to create a new React element. This no longer adheres to\r\n * the class pattern, so do not use new to call it. Also, instanceof check\r\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\r\n * if something is a React Element.\r\n *\r\n * @param {*} type\r\n * @param {*} props\r\n * @param {*} key\r\n * @param {string|object} ref\r\n * @param {*} owner\r\n * @param {*} self A *temporary* helper to detect places where `this` is\r\n * different from the `owner` when React.createElement is called, so that we\r\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\r\n * functions, and as long as `this` and owner are the same, there will be no\r\n * change in behavior.\r\n * @param {*} source An annotation object (added by a transpiler or otherwise)\r\n * indicating filename, line number, and/or other information.\r\n * @internal\r\n */\r\n\r\n\r\nfunction ReactElement(type, key, ref, self, source, owner, props) {\r\n var element = {\r\n // This tag allows us to uniquely identify this as a React Element\r\n $$typeof: REACT_ELEMENT_TYPE,\r\n // Built-in properties that belong on the element\r\n type: type,\r\n key: key,\r\n ref: ref,\r\n props: props,\r\n // Record the component responsible for creating this element.\r\n _owner: owner\r\n };\r\n\r\n {\r\n // The validation flag is currently mutative. We put it on\r\n // an external backing store so that we can freeze the whole object.\r\n // This can be replaced with a WeakMap once they are implemented in\r\n // commonly used development environments.\r\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\r\n // the validation flag non-enumerable (where possible, which should\r\n // include every environment we run tests in), so the test framework\r\n // ignores it.\r\n\r\n Object.defineProperty(element._store, 'validated', {\r\n configurable: false,\r\n enumerable: false,\r\n writable: true,\r\n value: false\r\n }); // self and source are DEV only properties.\r\n\r\n Object.defineProperty(element, '_self', {\r\n configurable: false,\r\n enumerable: false,\r\n writable: false,\r\n value: self\r\n }); // Two elements created in two different places should be considered\r\n // equal for testing purposes and therefore we hide it from enumeration.\r\n\r\n Object.defineProperty(element, '_source', {\r\n configurable: false,\r\n enumerable: false,\r\n writable: false,\r\n value: source\r\n });\r\n\r\n if (Object.freeze) {\r\n Object.freeze(element.props);\r\n Object.freeze(element);\r\n }\r\n }\r\n\r\n return element;\r\n}\r\n/**\r\n * https://github.com/reactjs/rfcs/pull/107\r\n * @param {*} type\r\n * @param {object} props\r\n * @param {string} key\r\n */\r\n\r\nfunction jsxDEV(type, config, maybeKey, source, self) {\r\n {\r\n var propName; // Reserved names are extracted\r\n\r\n var props = {};\r\n var key = null;\r\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\r\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\r\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\r\n // but as an intermediary step, we will use jsxDEV for everything except\r\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\r\n // key is explicitly declared to be undefined or not.\r\n\r\n if (maybeKey !== undefined) {\r\n {\r\n checkKeyStringCoercion(maybeKey);\r\n }\r\n\r\n key = '' + maybeKey;\r\n }\r\n\r\n if (hasValidKey(config)) {\r\n {\r\n checkKeyStringCoercion(config.key);\r\n }\r\n\r\n key = '' + config.key;\r\n }\r\n\r\n if (hasValidRef(config)) {\r\n ref = config.ref;\r\n warnIfStringRefCannotBeAutoConverted(config, self);\r\n } // Remaining properties are added to a new props object\r\n\r\n\r\n for (propName in config) {\r\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\r\n props[propName] = config[propName];\r\n }\r\n } // Resolve default props\r\n\r\n\r\n if (type && type.defaultProps) {\r\n var defaultProps = type.defaultProps;\r\n\r\n for (propName in defaultProps) {\r\n if (props[propName] === undefined) {\r\n props[propName] = defaultProps[propName];\r\n }\r\n }\r\n }\r\n\r\n if (key || ref) {\r\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\r\n\r\n if (key) {\r\n defineKeyPropWarningGetter(props, displayName);\r\n }\r\n\r\n if (ref) {\r\n defineRefPropWarningGetter(props, displayName);\r\n }\r\n }\r\n\r\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner$1.current, props);\r\n }\r\n}\r\n\r\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\r\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\r\nvar REACT_CLIENT_REFERENCE = Symbol.for('react.client.reference');\r\n\r\nfunction setCurrentlyValidatingElement(element) {\r\n {\r\n if (element) {\r\n var owner = element._owner;\r\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\r\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\r\n } else {\r\n ReactDebugCurrentFrame.setExtraStackFrame(null);\r\n }\r\n }\r\n}\r\n\r\nvar propTypesMisspellWarningShown;\r\n\r\n{\r\n propTypesMisspellWarningShown = false;\r\n}\r\n/**\r\n * Verifies the object is a ReactElement.\r\n * See https://reactjs.org/docs/react-api.html#isvalidelement\r\n * @param {?object} object\r\n * @return {boolean} True if `object` is a ReactElement.\r\n * @final\r\n */\r\n\r\n\r\nfunction isValidElement(object) {\r\n {\r\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\r\n }\r\n}\r\n\r\nfunction getDeclarationErrorAddendum() {\r\n {\r\n if (ReactCurrentOwner.current) {\r\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\r\n\r\n if (name) {\r\n return '\\n\\nCheck the render method of `' + name + '`.';\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n\r\nfunction getSourceInfoErrorAddendum(source) {\r\n {\r\n if (source !== undefined) {\r\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\r\n var lineNumber = source.lineNumber;\r\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n/**\r\n * Warn if there's no key explicitly set on dynamic arrays of children or\r\n * object keys are not valid. This allows us to keep track of children between\r\n * updates.\r\n */\r\n\r\n\r\nvar ownerHasKeyUseWarning = {};\r\n\r\nfunction getCurrentComponentErrorInfo(parentType) {\r\n {\r\n var info = getDeclarationErrorAddendum();\r\n\r\n if (!info) {\r\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\r\n\r\n if (parentName) {\r\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\r\n }\r\n }\r\n\r\n return info;\r\n }\r\n}\r\n/**\r\n * Warn if the element doesn't have an explicit key assigned to it.\r\n * This element is in an array. The array could grow and shrink or be\r\n * reordered. All children that haven't already been validated are required to\r\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\r\n * will only be shown once.\r\n *\r\n * @internal\r\n * @param {ReactElement} element Element that requires a key.\r\n * @param {*} parentType element's parent's type.\r\n */\r\n\r\n\r\nfunction validateExplicitKey(element, parentType) {\r\n {\r\n if (!element._store || element._store.validated || element.key != null) {\r\n return;\r\n }\r\n\r\n element._store.validated = true;\r\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\r\n\r\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\r\n return;\r\n }\r\n\r\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\r\n // property, it may be the creator of the child that's responsible for\r\n // assigning it a key.\r\n\r\n var childOwner = '';\r\n\r\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\r\n // Give the component that originally created this child.\r\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\r\n }\r\n\r\n setCurrentlyValidatingElement(element);\r\n\r\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\r\n\r\n setCurrentlyValidatingElement(null);\r\n }\r\n}\r\n/**\r\n * Ensure that every element either is passed in a static location, in an\r\n * array with an explicit keys property defined, or in an object literal\r\n * with valid key property.\r\n *\r\n * @internal\r\n * @param {ReactNode} node Statically passed child of any type.\r\n * @param {*} parentType node's parent's type.\r\n */\r\n\r\n\r\nfunction validateChildKeys(node, parentType) {\r\n {\r\n if (typeof node !== 'object' || !node) {\r\n return;\r\n }\r\n\r\n if (node.$$typeof === REACT_CLIENT_REFERENCE) ; else if (isArray(node)) {\r\n for (var i = 0; i < node.length; i++) {\r\n var child = node[i];\r\n\r\n if (isValidElement(child)) {\r\n validateExplicitKey(child, parentType);\r\n }\r\n }\r\n } else if (isValidElement(node)) {\r\n // This element was passed in a valid location.\r\n if (node._store) {\r\n node._store.validated = true;\r\n }\r\n } else {\r\n var iteratorFn = getIteratorFn(node);\r\n\r\n if (typeof iteratorFn === 'function') {\r\n // Entry iterators used to provide implicit keys,\r\n // but now we print a separate warning for them later.\r\n if (iteratorFn !== node.entries) {\r\n var iterator = iteratorFn.call(node);\r\n var step;\r\n\r\n while (!(step = iterator.next()).done) {\r\n if (isValidElement(step.value)) {\r\n validateExplicitKey(step.value, parentType);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Given an element, validate that its props follow the propTypes definition,\r\n * provided by the type.\r\n *\r\n * @param {ReactElement} element\r\n */\r\n\r\n\r\nfunction validatePropTypes(element) {\r\n {\r\n var type = element.type;\r\n\r\n if (type === null || type === undefined || typeof type === 'string') {\r\n return;\r\n }\r\n\r\n if (type.$$typeof === REACT_CLIENT_REFERENCE) {\r\n return;\r\n }\r\n\r\n var propTypes;\r\n\r\n if (typeof type === 'function') {\r\n propTypes = type.propTypes;\r\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\r\n // Inner props are checked in the reconciler.\r\n type.$$typeof === REACT_MEMO_TYPE)) {\r\n propTypes = type.propTypes;\r\n } else {\r\n return;\r\n }\r\n\r\n if (propTypes) {\r\n // Intentionally inside to avoid triggering lazy initializers:\r\n var name = getComponentNameFromType(type);\r\n checkPropTypes(propTypes, element.props, 'prop', name, element);\r\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\r\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\r\n\r\n var _name = getComponentNameFromType(type);\r\n\r\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\r\n }\r\n\r\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\r\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\r\n }\r\n }\r\n}\r\n/**\r\n * Given a fragment, validate that it can only be provided with fragment props\r\n * @param {ReactElement} fragment\r\n */\r\n\r\n\r\nfunction validateFragmentProps(fragment) {\r\n {\r\n var keys = Object.keys(fragment.props);\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n\r\n if (key !== 'children' && key !== 'key') {\r\n setCurrentlyValidatingElement(fragment);\r\n\r\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\r\n\r\n setCurrentlyValidatingElement(null);\r\n break;\r\n }\r\n }\r\n\r\n if (fragment.ref !== null) {\r\n setCurrentlyValidatingElement(fragment);\r\n\r\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\r\n\r\n setCurrentlyValidatingElement(null);\r\n }\r\n }\r\n}\r\n\r\nvar didWarnAboutKeySpread = {};\r\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\r\n {\r\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\r\n // succeed and there will likely be errors in render.\r\n\r\n if (!validType) {\r\n var info = '';\r\n\r\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\r\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\r\n }\r\n\r\n var sourceInfo = getSourceInfoErrorAddendum(source);\r\n\r\n if (sourceInfo) {\r\n info += sourceInfo;\r\n } else {\r\n info += getDeclarationErrorAddendum();\r\n }\r\n\r\n var typeString;\r\n\r\n if (type === null) {\r\n typeString = 'null';\r\n } else if (isArray(type)) {\r\n typeString = 'array';\r\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\r\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\r\n info = ' Did you accidentally export a JSX literal instead of a component?';\r\n } else {\r\n typeString = typeof type;\r\n }\r\n\r\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\r\n }\r\n\r\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\r\n // TODO: Drop this when these are no longer allowed as the type argument.\r\n\r\n if (element == null) {\r\n return element;\r\n } // Skip key warning if the type isn't valid since our key validation logic\r\n // doesn't expect a non-string/function type and can throw confusing errors.\r\n // We don't want exception behavior to differ between dev and prod.\r\n // (Rendering will throw with a helpful message and as soon as the type is\r\n // fixed, the key warnings will appear.)\r\n\r\n\r\n if (validType) {\r\n var children = props.children;\r\n\r\n if (children !== undefined) {\r\n if (isStaticChildren) {\r\n if (isArray(children)) {\r\n for (var i = 0; i < children.length; i++) {\r\n validateChildKeys(children[i], type);\r\n }\r\n\r\n if (Object.freeze) {\r\n Object.freeze(children);\r\n }\r\n } else {\r\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\r\n }\r\n } else {\r\n validateChildKeys(children, type);\r\n }\r\n }\r\n }\r\n\r\n if (hasOwnProperty.call(props, 'key')) {\r\n var componentName = getComponentNameFromType(type);\r\n var keys = Object.keys(props).filter(function (k) {\r\n return k !== 'key';\r\n });\r\n var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\r\n\r\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\r\n var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\r\n\r\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + ' let props = %s;\\n' + ' <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + ' let props = %s;\\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\r\n\r\n didWarnAboutKeySpread[componentName + beforeExample] = true;\r\n }\r\n }\r\n\r\n if (type === REACT_FRAGMENT_TYPE) {\r\n validateFragmentProps(element);\r\n } else {\r\n validatePropTypes(element);\r\n }\r\n\r\n return element;\r\n }\r\n} // These two functions exist to still get child warnings in dev\r\n// even with the prod transform. This means that jsxDEV is purely\r\n// opt-in behavior for better messages but that we won't stop\r\n// giving you warnings if you use production apis.\r\n\r\nfunction jsxWithValidationStatic(type, props, key) {\r\n {\r\n return jsxWithValidation(type, props, key, true);\r\n }\r\n}\r\nfunction jsxWithValidationDynamic(type, props, key) {\r\n {\r\n return jsxWithValidation(type, props, key, false);\r\n }\r\n}\r\n\r\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\r\n// for now we can ship identical prod functions\r\n\r\nvar jsxs = jsxWithValidationStatic ;\r\n\r\nexports.Fragment = REACT_FRAGMENT_TYPE;\r\nexports.jsx = jsx;\r\nexports.jsxs = jsxs;\r\n })();\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1ydW50aW1lLmRldmVsb3BtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2E7QUFDYjtBQUNBLElBQUksSUFBcUM7QUFDekM7QUFDQTtBQUNBO0FBQ0EsWUFBWSxtQkFBTyxDQUFDLHNHQUEwQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUdBQWlHLGVBQWU7QUFDaEg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxHQUFHO0FBQ1I7QUFDQSxrREFBa0Q7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0EsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBLFNBQVM7QUFDVCx1QkFBdUI7QUFDdkI7QUFDQSxTQUFTO0FBQ1QsdUJBQXVCO0FBQ3ZCO0FBQ0EsU0FBUztBQUNULHdCQUF3QjtBQUN4QjtBQUNBLFNBQVM7QUFDVCx3QkFBd0I7QUFDeEI7QUFDQSxTQUFTO0FBQ1QsaUNBQWlDO0FBQ2pDO0FBQ0EsU0FBUztBQUNULDJCQUEyQjtBQUMzQjtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRDtBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlEO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QztBQUN6QztBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxrQkFBa0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdGQUFnRjtBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQixZQUFZLFNBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGNBQWM7QUFDekIsV0FBVyxHQUFHO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2REFBNkQ7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsV0FBVztBQUN0QixXQUFXLEdBQUc7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0Q7QUFDcEQsc0JBQXNCLGlCQUFpQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsY0FBYztBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sNENBQTRDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxjQUFjO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGlCQUFpQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRDtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIscUJBQXFCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCw4Q0FBOEMsZ0RBQWdELE1BQU0sYUFBYTtBQUNqSDtBQUNBO0FBQ0EsK0NBQStDLGtDQUFrQyxPQUFPO0FBQ3hGO0FBQ0EsdUdBQXVHLGNBQWMsVUFBVSxnR0FBZ0csa0JBQWtCLFVBQVUsVUFBVTtBQUNyUTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQixXQUFXO0FBQ1gsWUFBWTtBQUNaLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0L2Nqcy9yZWFjdC1qc3gtcnVudGltZS5kZXZlbG9wbWVudC5qcz8wOWRiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZSBSZWFjdFxyXG4gKiByZWFjdC1qc3gtcnVudGltZS5kZXZlbG9wbWVudC5qc1xyXG4gKlxyXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxyXG4gKlxyXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcclxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxyXG4gKi9cclxuXHJcbid1c2Ugc3RyaWN0JztcclxuXHJcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcclxuICAoZnVuY3Rpb24oKSB7XHJcbid1c2Ugc3RyaWN0JztcclxuXHJcbnZhciBSZWFjdCA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3RcIik7XHJcblxyXG4vLyBBVFRFTlRJT05cclxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxyXG4vLyBQbGVhc2UgY29uc2lkZXIgYWxzbyBhZGRpbmcgdG8gJ3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9SZWFjdFN5bWJvbHMnXHJcbi8vIFRoZSBTeW1ib2wgdXNlZCB0byB0YWcgdGhlIFJlYWN0RWxlbWVudC1saWtlIHR5cGVzLlxyXG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpO1xyXG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wb3J0YWwnKTtcclxudmFyIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5mcmFnbWVudCcpO1xyXG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN0cmljdF9tb2RlJyk7XHJcbnZhciBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvZmlsZXInKTtcclxudmFyIFJFQUNUX1BST1ZJREVSX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wcm92aWRlcicpO1xyXG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuY29udGV4dCcpO1xyXG52YXIgUkVBQ1RfU0VSVkVSX0NPTlRFWFRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnNlcnZlcl9jb250ZXh0Jyk7XHJcbnZhciBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZm9yd2FyZF9yZWYnKTtcclxudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpO1xyXG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xyXG52YXIgUkVBQ1RfTUVNT19UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubWVtbycpO1xyXG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubGF6eScpO1xyXG52YXIgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5vZmZzY3JlZW4nKTtcclxudmFyIFJFQUNUX0NBQ0hFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5jYWNoZScpO1xyXG52YXIgTUFZQkVfSVRFUkFUT1JfU1lNQk9MID0gU3ltYm9sLml0ZXJhdG9yO1xyXG52YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7XHJcbmZ1bmN0aW9uIGdldEl0ZXJhdG9yRm4obWF5YmVJdGVyYWJsZSkge1xyXG4gIGlmIChtYXliZUl0ZXJhYmxlID09PSBudWxsIHx8IHR5cGVvZiBtYXliZUl0ZXJhYmxlICE9PSAnb2JqZWN0Jykge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICB2YXIgbWF5YmVJdGVyYXRvciA9IE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF07XHJcblxyXG4gIGlmICh0eXBlb2YgbWF5YmVJdGVyYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgcmV0dXJuIG1heWJlSXRlcmF0b3I7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxudmFyIFJlYWN0U2hhcmVkSW50ZXJuYWxzID0gUmVhY3QuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7XHJcblxyXG5mdW5jdGlvbiBlcnJvcihmb3JtYXQpIHtcclxuICB7XHJcbiAgICB7XHJcbiAgICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XHJcbiAgICAgICAgYXJnc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcHJpbnRXYXJuaW5nKCdlcnJvcicsIGZvcm1hdCwgYXJncyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBwcmludFdhcm5pbmcobGV2ZWwsIGZvcm1hdCwgYXJncykge1xyXG4gIC8vIFdoZW4gY2hhbmdpbmcgdGhpcyBsb2dpYywgeW91IG1pZ2h0IHdhbnQgdG8gYWxzb1xyXG4gIC8vIHVwZGF0ZSBjb25zb2xlV2l0aFN0YWNrRGV2Lnd3dy5qcyBhcyB3ZWxsLlxyXG4gIHtcclxuICAgIHZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcclxuICAgIHZhciBzdGFjayA9IFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0U3RhY2tBZGRlbmR1bSgpO1xyXG5cclxuICAgIGlmIChzdGFjayAhPT0gJycpIHtcclxuICAgICAgZm9ybWF0ICs9ICclcyc7XHJcbiAgICAgIGFyZ3MgPSBhcmdzLmNvbmNhdChbc3RhY2tdKTtcclxuICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXHJcblxyXG5cclxuICAgIHZhciBhcmdzV2l0aEZvcm1hdCA9IGFyZ3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XHJcbiAgICAgIHJldHVybiBTdHJpbmcoaXRlbSk7XHJcbiAgICB9KTsgLy8gQ2FyZWZ1bDogUk4gY3VycmVudGx5IGRlcGVuZHMgb24gdGhpcyBwcmVmaXhcclxuXHJcbiAgICBhcmdzV2l0aEZvcm1hdC51bnNoaWZ0KCdXYXJuaW5nOiAnICsgZm9ybWF0KTsgLy8gV2UgaW50ZW50aW9uYWxseSBkb24ndCB1c2Ugc3ByZWFkIChvciAuYXBwbHkpIGRpcmVjdGx5IGJlY2F1c2UgaXRcclxuICAgIC8vIGJyZWFrcyBJRTk6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTM2MTBcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmdcclxuXHJcbiAgICBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlW2xldmVsXSwgY29uc29sZSwgYXJnc1dpdGhGb3JtYXQpO1xyXG4gIH1cclxufVxyXG5cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbnZhciBlbmFibGVTY29wZUFQSSA9IGZhbHNlOyAvLyBFeHBlcmltZW50YWwgQ3JlYXRlIEV2ZW50IEhhbmRsZSBBUEkuXHJcbnZhciBlbmFibGVDYWNoZUVsZW1lbnQgPSBmYWxzZTtcclxudmFyIGVuYWJsZVRyYW5zaXRpb25UcmFjaW5nID0gZmFsc2U7IC8vIE5vIGtub3duIGJ1Z3MsIGJ1dCBuZWVkcyBwZXJmb3JtYW5jZSB0ZXN0aW5nXHJcblxyXG52YXIgZW5hYmxlTGVnYWN5SGlkZGVuID0gZmFsc2U7IC8vIEVuYWJsZXMgdW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2sgZmVhdHVyZSBpbiBGaWJlclxyXG4vLyBzdHVmZi4gSW50ZW5kZWQgdG8gZW5hYmxlIFJlYWN0IGNvcmUgbWVtYmVycyB0byBtb3JlIGVhc2lseSBkZWJ1ZyBzY2hlZHVsaW5nXHJcbi8vIGlzc3VlcyBpbiBERVYgYnVpbGRzLlxyXG5cclxudmFyIGVuYWJsZURlYnVnVHJhY2luZyA9IGZhbHNlOyAvLyBUcmFjayB3aGljaCBGaWJlcihzKSBzY2hlZHVsZSByZW5kZXIgd29yay5cclxuXHJcbnZhciBSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDEgPSBTeW1ib2wuZm9yKCdyZWFjdC5jbGllbnQucmVmZXJlbmNlJyk7XHJcbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XHJcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfSAvLyBOb3RlOiB0eXBlb2YgbWlnaHQgYmUgb3RoZXIgdGhhbiAnc3ltYm9sJyBvciAnbnVtYmVyJyAoZS5nLiBpZiBpdCdzIGEgcG9seWZpbGwpLlxyXG5cclxuXHJcbiAgaWYgKHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRSB8fCBlbmFibGVEZWJ1Z1RyYWNpbmcgIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgZW5hYmxlTGVnYWN5SGlkZGVuICB8fCB0eXBlID09PSBSRUFDVF9PRkZTQ1JFRU5fVFlQRSB8fCBlbmFibGVTY29wZUFQSSAgfHwgZW5hYmxlQ2FjaGVFbGVtZW50ICB8fCBlbmFibGVUcmFuc2l0aW9uVHJhY2luZyApIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiB0eXBlICE9PSBudWxsKSB7XHJcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IC8vIFRoaXMgbmVlZHMgdG8gaW5jbHVkZSBhbGwgcG9zc2libGUgbW9kdWxlIHJlZmVyZW5jZSBvYmplY3RcclxuICAgIC8vIHR5cGVzIHN1cHBvcnRlZCBieSBhbnkgRmxpZ2h0IGNvbmZpZ3VyYXRpb24gYW55d2hlcmUgc2luY2VcclxuICAgIC8vIHdlIGRvbid0IGtub3cgd2hpY2ggRmxpZ2h0IGJ1aWxkIHRoaXMgd2lsbCBlbmQgdXAgYmVpbmcgdXNlZFxyXG4gICAgLy8gd2l0aC5cclxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSB8fCB0eXBlLmdldE1vZHVsZUlkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmFsc2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFdyYXBwZWROYW1lKG91dGVyVHlwZSwgaW5uZXJUeXBlLCB3cmFwcGVyTmFtZSkge1xyXG4gIHZhciBkaXNwbGF5TmFtZSA9IG91dGVyVHlwZS5kaXNwbGF5TmFtZTtcclxuXHJcbiAgaWYgKGRpc3BsYXlOYW1lKSB7XHJcbiAgICByZXR1cm4gZGlzcGxheU5hbWU7XHJcbiAgfVxyXG5cclxuICB2YXIgZnVuY3Rpb25OYW1lID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8ICcnO1xyXG4gIHJldHVybiBmdW5jdGlvbk5hbWUgIT09ICcnID8gd3JhcHBlck5hbWUgKyBcIihcIiArIGZ1bmN0aW9uTmFtZSArIFwiKVwiIDogd3JhcHBlck5hbWU7XHJcbn0gLy8gS2VlcCBpbiBzeW5jIHdpdGggcmVhY3QtcmVjb25jaWxlci9nZXRDb21wb25lbnROYW1lRnJvbUZpYmVyXHJcblxyXG5cclxuZnVuY3Rpb24gZ2V0Q29udGV4dE5hbWUodHlwZSkge1xyXG4gIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8ICdDb250ZXh0JztcclxufSAvLyBOb3RlIHRoYXQgdGhlIHJlY29uY2lsZXIgcGFja2FnZSBzaG91bGQgZ2VuZXJhbGx5IHByZWZlciB0byB1c2UgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcigpIGluc3RlYWQuXHJcblxyXG5cclxuZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHtcclxuICBpZiAodHlwZSA9PSBudWxsKSB7XHJcbiAgICAvLyBIb3N0IHJvb3QsIHRleHQgbm9kZSBvciBqdXN0IGludmFsaWQgdHlwZS5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAge1xyXG4gICAgaWYgKHR5cGVvZiB0eXBlLnRhZyA9PT0gJ251bWJlcicpIHtcclxuICAgICAgZXJyb3IoJ1JlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiAnICsgJ1RoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IG51bGw7XHJcbiAgfVxyXG5cclxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICByZXR1cm4gdHlwZTtcclxuICB9XHJcblxyXG4gIHN3aXRjaCAodHlwZSkge1xyXG4gICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxyXG4gICAgICByZXR1cm4gJ0ZyYWdtZW50JztcclxuXHJcbiAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxyXG4gICAgICByZXR1cm4gJ1BvcnRhbCc7XHJcblxyXG4gICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxyXG4gICAgICByZXR1cm4gJ1Byb2ZpbGVyJztcclxuXHJcbiAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XHJcbiAgICAgIHJldHVybiAnU3RyaWN0TW9kZSc7XHJcblxyXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxyXG4gICAgICByZXR1cm4gJ1N1c3BlbnNlJztcclxuXHJcbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcclxuICAgICAgcmV0dXJuICdTdXNwZW5zZUxpc3QnO1xyXG5cclxuICAgIGNhc2UgUkVBQ1RfQ0FDSEVfVFlQRTpcclxuICAgICAge1xyXG4gICAgICAgIHJldHVybiAnQ2FjaGUnO1xyXG4gICAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xyXG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XHJcbiAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxyXG4gICAgICAgIHZhciBjb250ZXh0ID0gdHlwZTtcclxuICAgICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUoY29udGV4dCkgKyAnLkNvbnN1bWVyJztcclxuXHJcbiAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcclxuICAgICAgICB2YXIgcHJvdmlkZXIgPSB0eXBlO1xyXG4gICAgICAgIHJldHVybiBnZXRDb250ZXh0TmFtZShwcm92aWRlci5fY29udGV4dCkgKyAnLlByb3ZpZGVyJztcclxuXHJcbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcclxuICAgICAgICByZXR1cm4gZ2V0V3JhcHBlZE5hbWUodHlwZSwgdHlwZS5yZW5kZXIsICdGb3J3YXJkUmVmJyk7XHJcblxyXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcclxuICAgICAgICB2YXIgb3V0ZXJOYW1lID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsO1xyXG5cclxuICAgICAgICBpZiAob3V0ZXJOYW1lICE9PSBudWxsKSB7XHJcbiAgICAgICAgICByZXR1cm4gb3V0ZXJOYW1lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdNZW1vJztcclxuXHJcbiAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHZhciBsYXp5Q29tcG9uZW50ID0gdHlwZTtcclxuICAgICAgICAgIHZhciBwYXlsb2FkID0gbGF6eUNvbXBvbmVudC5fcGF5bG9hZDtcclxuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcclxuXHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGluaXQocGF5bG9hZCkpO1xyXG4gICAgICAgICAgfSBjYXRjaCAoeCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICBjYXNlIFJFQUNUX1NFUlZFUl9DT05URVhUX1RZUEU6XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdmFyIGNvbnRleHQyID0gdHlwZTtcclxuICAgICAgICAgIHJldHVybiAoY29udGV4dDIuZGlzcGxheU5hbWUgfHwgY29udGV4dDIuX2dsb2JhbE5hbWUpICsgJy5Qcm92aWRlcic7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBudWxsO1xyXG59XHJcblxyXG52YXIgYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcclxuXHJcbi8vIEhlbHBlcnMgdG8gcGF0Y2ggY29uc29sZS5sb2dzIHRvIGF2b2lkIGxvZ2dpbmcgZHVyaW5nIHNpZGUtZWZmZWN0IGZyZWVcclxuLy8gcmVwbGF5aW5nIG9uIHJlbmRlciBmdW5jdGlvbi4gVGhpcyBjdXJyZW50bHkgb25seSBwYXRjaGVzIHRoZSBvYmplY3RcclxuLy8gbGF6aWx5IHdoaWNoIHdvbid0IGNvdmVyIGlmIHRoZSBsb2cgZnVuY3Rpb24gd2FzIGV4dHJhY3RlZCBlYWdlcmx5LlxyXG4vLyBXZSBjb3VsZCBhbHNvIGVhZ2VybHkgcGF0Y2ggdGhlIG1ldGhvZC5cclxudmFyIGRpc2FibGVkRGVwdGggPSAwO1xyXG52YXIgcHJldkxvZztcclxudmFyIHByZXZJbmZvO1xyXG52YXIgcHJldldhcm47XHJcbnZhciBwcmV2RXJyb3I7XHJcbnZhciBwcmV2R3JvdXA7XHJcbnZhciBwcmV2R3JvdXBDb2xsYXBzZWQ7XHJcbnZhciBwcmV2R3JvdXBFbmQ7XHJcblxyXG5mdW5jdGlvbiBkaXNhYmxlZExvZygpIHt9XHJcblxyXG5kaXNhYmxlZExvZy5fX3JlYWN0RGlzYWJsZWRMb2cgPSB0cnVlO1xyXG5mdW5jdGlvbiBkaXNhYmxlTG9ncygpIHtcclxuICB7XHJcbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xyXG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cclxuICAgICAgcHJldkxvZyA9IGNvbnNvbGUubG9nO1xyXG4gICAgICBwcmV2SW5mbyA9IGNvbnNvbGUuaW5mbztcclxuICAgICAgcHJldldhcm4gPSBjb25zb2xlLndhcm47XHJcbiAgICAgIHByZXZFcnJvciA9IGNvbnNvbGUuZXJyb3I7XHJcbiAgICAgIHByZXZHcm91cCA9IGNvbnNvbGUuZ3JvdXA7XHJcbiAgICAgIHByZXZHcm91cENvbGxhcHNlZCA9IGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ7XHJcbiAgICAgIHByZXZHcm91cEVuZCA9IGNvbnNvbGUuZ3JvdXBFbmQ7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTkwOTlcclxuXHJcbiAgICAgIHZhciBwcm9wcyA9IHtcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXHJcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgICAgICB2YWx1ZTogZGlzYWJsZWRMb2csXHJcbiAgICAgICAgd3JpdGFibGU6IHRydWVcclxuICAgICAgfTsgLy8gJEZsb3dGaXhNZVtjYW5ub3Qtd3JpdGVdIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxyXG5cclxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xyXG4gICAgICAgIGluZm86IHByb3BzLFxyXG4gICAgICAgIGxvZzogcHJvcHMsXHJcbiAgICAgICAgd2FybjogcHJvcHMsXHJcbiAgICAgICAgZXJyb3I6IHByb3BzLFxyXG4gICAgICAgIGdyb3VwOiBwcm9wcyxcclxuICAgICAgICBncm91cENvbGxhcHNlZDogcHJvcHMsXHJcbiAgICAgICAgZ3JvdXBFbmQ6IHByb3BzXHJcbiAgICAgIH0pO1xyXG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkRGVwdGgrKztcclxuICB9XHJcbn1cclxuZnVuY3Rpb24gcmVlbmFibGVMb2dzKCkge1xyXG4gIHtcclxuICAgIGRpc2FibGVkRGVwdGgtLTtcclxuXHJcbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xyXG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cclxuICAgICAgdmFyIHByb3BzID0ge1xyXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcclxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXHJcbiAgICAgIH07IC8vICRGbG93Rml4TWVbY2Fubm90LXdyaXRlXSBGbG93IHRoaW5rcyBjb25zb2xlIGlzIGltbXV0YWJsZS5cclxuXHJcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcclxuICAgICAgICBsb2c6IGFzc2lnbih7fSwgcHJvcHMsIHtcclxuICAgICAgICAgIHZhbHVlOiBwcmV2TG9nXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgaW5mbzogYXNzaWduKHt9LCBwcm9wcywge1xyXG4gICAgICAgICAgdmFsdWU6IHByZXZJbmZvXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgd2FybjogYXNzaWduKHt9LCBwcm9wcywge1xyXG4gICAgICAgICAgdmFsdWU6IHByZXZXYXJuXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZXJyb3I6IGFzc2lnbih7fSwgcHJvcHMsIHtcclxuICAgICAgICAgIHZhbHVlOiBwcmV2RXJyb3JcclxuICAgICAgICB9KSxcclxuICAgICAgICBncm91cDogYXNzaWduKHt9LCBwcm9wcywge1xyXG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBhc3NpZ24oe30sIHByb3BzLCB7XHJcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwQ29sbGFwc2VkXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZ3JvdXBFbmQ6IGFzc2lnbih7fSwgcHJvcHMsIHtcclxuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBFbmRcclxuICAgICAgICB9KVxyXG4gICAgICB9KTtcclxuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGlzYWJsZWREZXB0aCA8IDApIHtcclxuICAgICAgZXJyb3IoJ2Rpc2FibGVkRGVwdGggZmVsbCBiZWxvdyB6ZXJvLiAnICsgJ1RoaXMgaXMgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnREaXNwYXRjaGVyO1xyXG52YXIgcHJlZml4O1xyXG5mdW5jdGlvbiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lLCBzb3VyY2UsIG93bmVyRm4pIHtcclxuICB7XHJcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gRXh0cmFjdCB0aGUgVk0gc3BlY2lmaWMgcHJlZml4IHVzZWQgYnkgZWFjaCBsaW5lLlxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRocm93IEVycm9yKCk7XHJcbiAgICAgIH0gY2F0Y2ggKHgpIHtcclxuICAgICAgICB2YXIgbWF0Y2ggPSB4LnN0YWNrLnRyaW0oKS5tYXRjaCgvXFxuKCAqKGF0ICk/KS8pO1xyXG4gICAgICAgIHByZWZpeCA9IG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xyXG4gICAgICB9XHJcbiAgICB9IC8vIFdlIHVzZSB0aGUgcHJlZml4IHRvIGVuc3VyZSBvdXIgc3RhY2tzIGxpbmUgdXAgd2l0aCBuYXRpdmUgc3RhY2sgZnJhbWVzLlxyXG5cclxuXHJcbiAgICByZXR1cm4gJ1xcbicgKyBwcmVmaXggKyBuYW1lO1xyXG4gIH1cclxufVxyXG52YXIgcmVlbnRyeSA9IGZhbHNlO1xyXG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcclxuXHJcbntcclxuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xyXG4gIGNvbXBvbmVudEZyYW1lQ2FjaGUgPSBuZXcgUG9zc2libHlXZWFrTWFwKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZm4sIGNvbnN0cnVjdCkge1xyXG4gIC8vIElmIHNvbWV0aGluZyBhc2tlZCBmb3IgYSBzdGFjayBpbnNpZGUgYSBmYWtlIHJlbmRlciwgaXQgc2hvdWxkIGdldCBpZ25vcmVkLlxyXG4gIGlmICghZm4gfHwgcmVlbnRyeSkge1xyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAge1xyXG4gICAgdmFyIGZyYW1lID0gY29tcG9uZW50RnJhbWVDYWNoZS5nZXQoZm4pO1xyXG5cclxuICAgIGlmIChmcmFtZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiBmcmFtZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhciBjb250cm9sO1xyXG4gIHJlZW50cnkgPSB0cnVlO1xyXG4gIHZhciBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdIEl0IGRvZXMgYWNjZXB0IHVuZGVmaW5lZC5cclxuXHJcbiAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSB1bmRlZmluZWQ7XHJcbiAgdmFyIHByZXZpb3VzRGlzcGF0Y2hlcjtcclxuXHJcbiAge1xyXG4gICAgcHJldmlvdXNEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50OyAvLyBTZXQgdGhlIGRpc3BhdGNoZXIgaW4gREVWIGJlY2F1c2UgdGhpcyBtaWdodCBiZSBjYWxsIGluIHRoZSByZW5kZXIgZnVuY3Rpb25cclxuICAgIC8vIGZvciB3YXJuaW5ncy5cclxuXHJcbiAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQgPSBudWxsO1xyXG4gICAgZGlzYWJsZUxvZ3MoKTtcclxuICB9XHJcblxyXG4gIHRyeSB7XHJcbiAgICAvLyBUaGlzIHNob3VsZCB0aHJvdy5cclxuICAgIGlmIChjb25zdHJ1Y3QpIHtcclxuICAgICAgLy8gU29tZXRoaW5nIHNob3VsZCBiZSBzZXR0aW5nIHRoZSBwcm9wcyBpbiB0aGUgY29uc3RydWN0b3IuXHJcbiAgICAgIHZhciBGYWtlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRocm93IEVycm9yKCk7XHJcbiAgICAgIH07IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxyXG5cclxuXHJcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGYWtlLnByb3RvdHlwZSwgJ3Byb3BzJywge1xyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgLy8gV2UgdXNlIGEgdGhyb3dpbmcgc2V0dGVyIGluc3RlYWQgb2YgZnJvemVuIG9yIG5vbi13cml0YWJsZSBwcm9wc1xyXG4gICAgICAgICAgLy8gYmVjYXVzZSB0aGF0IHdvbid0IHRocm93IGluIGEgbm9uLXN0cmljdCBtb2RlIGZ1bmN0aW9uLlxyXG4gICAgICAgICAgdGhyb3cgRXJyb3IoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmNvbnN0cnVjdCkge1xyXG4gICAgICAgIC8vIFdlIGNvbnN0cnVjdCBhIGRpZmZlcmVudCBjb250cm9sIGZvciB0aGlzIGNhc2UgdG8gaW5jbHVkZSBhbnkgZXh0cmFcclxuICAgICAgICAvLyBmcmFtZXMgYWRkZWQgYnkgdGhlIGNvbnN0cnVjdCBjYWxsLlxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChGYWtlLCBbXSk7XHJcbiAgICAgICAgfSBjYXRjaCAoeCkge1xyXG4gICAgICAgICAgY29udHJvbCA9IHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChmbiwgW10sIEZha2UpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBGYWtlLmNhbGwoKTtcclxuICAgICAgICB9IGNhdGNoICh4KSB7XHJcbiAgICAgICAgICBjb250cm9sID0geDtcclxuICAgICAgICB9IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXSBmb3VuZCB3aGVuIHVwZ3JhZGluZyBGbG93XHJcblxyXG5cclxuICAgICAgICBmbi5jYWxsKEZha2UucHJvdG90eXBlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICB0aHJvdyBFcnJvcigpO1xyXG4gICAgICB9IGNhdGNoICh4KSB7XHJcbiAgICAgICAgY29udHJvbCA9IHg7XHJcbiAgICAgIH0gLy8gVE9ETyhsdW5hKTogVGhpcyB3aWxsIGN1cnJlbnRseSBvbmx5IHRocm93IGlmIHRoZSBmdW5jdGlvbiBjb21wb25lbnRcclxuICAgICAgLy8gdHJpZXMgdG8gYWNjZXNzIFJlYWN0L1JlYWN0RE9NL3Byb3BzLiBXZSBzaG91bGQgcHJvYmFibHkgbWFrZSB0aGlzIHRocm93XHJcbiAgICAgIC8vIGluIHNpbXBsZSBjb21wb25lbnRzIHRvb1xyXG5cclxuXHJcbiAgICAgIHZhciBtYXliZVByb21pc2UgPSBmbigpOyAvLyBJZiB0aGUgZnVuY3Rpb24gY29tcG9uZW50IHJldHVybnMgYSBwcm9taXNlLCBpdCdzIGxpa2VseSBhbiBhc3luY1xyXG4gICAgICAvLyBjb21wb25lbnQsIHdoaWNoIHdlIGRvbid0IHlldCBzdXBwb3J0LiBBdHRhY2ggYSBub29wIGNhdGNoIGhhbmRsZXIgdG9cclxuICAgICAgLy8gc2lsZW5jZSB0aGUgZXJyb3IuXHJcbiAgICAgIC8vIFRPRE86IEltcGxlbWVudCBjb21wb25lbnQgc3RhY2tzIGZvciBhc3luYyBjbGllbnQgY29tcG9uZW50cz9cclxuXHJcbiAgICAgIGlmIChtYXliZVByb21pc2UgJiYgdHlwZW9mIG1heWJlUHJvbWlzZS5jYXRjaCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIG1heWJlUHJvbWlzZS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IGNhdGNoIChzYW1wbGUpIHtcclxuICAgIC8vIFRoaXMgaXMgaW5saW5lZCBtYW51YWxseSBiZWNhdXNlIGNsb3N1cmUgZG9lc24ndCBkbyBpdCBmb3IgdXMuXHJcbiAgICBpZiAoc2FtcGxlICYmIGNvbnRyb2wgJiYgdHlwZW9mIHNhbXBsZS5zdGFjayA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgLy8gVGhpcyBleHRyYWN0cyB0aGUgZmlyc3QgZnJhbWUgZnJvbSB0aGUgc2FtcGxlIHRoYXQgaXNuJ3QgYWxzbyBpbiB0aGUgY29udHJvbC5cclxuICAgICAgLy8gU2tpcHBpbmcgb25lIGZyYW1lIHRoYXQgd2UgYXNzdW1lIGlzIHRoZSBmcmFtZSB0aGF0IGNhbGxzIHRoZSB0d28uXHJcbiAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZS5zdGFjay5zcGxpdCgnXFxuJyk7XHJcbiAgICAgIHZhciBjb250cm9sTGluZXMgPSBjb250cm9sLnN0YWNrLnNwbGl0KCdcXG4nKTtcclxuICAgICAgdmFyIHMgPSBzYW1wbGVMaW5lcy5sZW5ndGggLSAxO1xyXG4gICAgICB2YXIgYyA9IGNvbnRyb2xMaW5lcy5sZW5ndGggLSAxO1xyXG5cclxuICAgICAgd2hpbGUgKHMgPj0gMSAmJiBjID49IDAgJiYgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xyXG4gICAgICAgIC8vIFdlIGV4cGVjdCBhdCBsZWFzdCBvbmUgc3RhY2sgZnJhbWUgdG8gYmUgc2hhcmVkLlxyXG4gICAgICAgIC8vIFR5cGljYWxseSB0aGlzIHdpbGwgYmUgdGhlIHJvb3QgbW9zdCBvbmUuIEhvd2V2ZXIsIHN0YWNrIGZyYW1lcyBtYXkgYmVcclxuICAgICAgICAvLyBjdXQgb2ZmIGR1ZSB0byBtYXhpbXVtIHN0YWNrIGxpbWl0cy4gSW4gdGhpcyBjYXNlLCBvbmUgbWF5YmUgY3V0IG9mZlxyXG4gICAgICAgIC8vIGVhcmxpZXIgdGhhbiB0aGUgb3RoZXIuIFdlIGFzc3VtZSB0aGF0IHRoZSBzYW1wbGUgaXMgbG9uZ2VyIG9yIHRoZSBzYW1lXHJcbiAgICAgICAgLy8gYW5kIHRoZXJlIGZvciBjdXQgb2ZmIGVhcmxpZXIuIFNvIHdlIHNob3VsZCBmaW5kIHRoZSByb290IG1vc3QgZnJhbWUgaW5cclxuICAgICAgICAvLyB0aGUgc2FtcGxlIHNvbWV3aGVyZSBpbiB0aGUgY29udHJvbC5cclxuICAgICAgICBjLS07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvciAoOyBzID49IDEgJiYgYyA+PSAwOyBzLS0sIGMtLSkge1xyXG4gICAgICAgIC8vIE5leHQgd2UgZmluZCB0aGUgZmlyc3Qgb25lIHRoYXQgaXNuJ3QgdGhlIHNhbWUgd2hpY2ggc2hvdWxkIGJlIHRoZVxyXG4gICAgICAgIC8vIGZyYW1lIHRoYXQgY2FsbGVkIG91ciBzYW1wbGUgZnVuY3Rpb24gYW5kIHRoZSBjb250cm9sLlxyXG4gICAgICAgIGlmIChzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XHJcbiAgICAgICAgICAvLyBJbiBWOCwgdGhlIGZpcnN0IGxpbmUgaXMgZGVzY3JpYmluZyB0aGUgbWVzc2FnZSBidXQgb3RoZXIgVk1zIGRvbid0LlxyXG4gICAgICAgICAgLy8gSWYgd2UncmUgYWJvdXQgdG8gcmV0dXJuIHRoZSBmaXJzdCBsaW5lLCBhbmQgdGhlIGNvbnRyb2wgaXMgYWxzbyBvbiB0aGUgc2FtZVxyXG4gICAgICAgICAgLy8gbGluZSwgdGhhdCdzIGEgcHJldHR5IGdvb2QgaW5kaWNhdG9yIHRoYXQgb3VyIHNhbXBsZSB0aHJldyBhdCBzYW1lIGxpbmUgYXNcclxuICAgICAgICAgIC8vIHRoZSBjb250cm9sLiBJLmUuIGJlZm9yZSB3ZSBlbnRlcmVkIHRoZSBzYW1wbGUgZnJhbWUuIFNvIHdlIGlnbm9yZSB0aGlzIHJlc3VsdC5cclxuICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB5b3UgcGFzc2VkIGEgY2xhc3MgdG8gZnVuY3Rpb24gY29tcG9uZW50LCBvciBub24tZnVuY3Rpb24uXHJcbiAgICAgICAgICBpZiAocyAhPT0gMSB8fCBjICE9PSAxKSB7XHJcbiAgICAgICAgICAgIGRvIHtcclxuICAgICAgICAgICAgICBzLS07XHJcbiAgICAgICAgICAgICAgYy0tOyAvLyBXZSBtYXkgc3RpbGwgaGF2ZSBzaW1pbGFyIGludGVybWVkaWF0ZSBmcmFtZXMgZnJvbSB0aGUgY29uc3RydWN0IGNhbGwuXHJcbiAgICAgICAgICAgICAgLy8gVGhlIG5leHQgb25lIHRoYXQgaXNuJ3QgdGhlIHNhbWUgc2hvdWxkIGJlIG91ciBtYXRjaCB0aG91Z2guXHJcblxyXG4gICAgICAgICAgICAgIGlmIChjIDwgMCB8fCBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBWOCBhZGRzIGEgXCJuZXdcIiBwcmVmaXggZm9yIG5hdGl2ZSBjbGFzc2VzLiBMZXQncyByZW1vdmUgaXQgdG8gbWFrZSBpdCBwcmV0dGllci5cclxuICAgICAgICAgICAgICAgIHZhciBfZnJhbWUgPSAnXFxuJyArIHNhbXBsZUxpbmVzW3NdLnJlcGxhY2UoJyBhdCBuZXcgJywgJyBhdCAnKTsgLy8gSWYgb3VyIGNvbXBvbmVudCBmcmFtZSBpcyBsYWJlbGVkIFwiPGFub255bW91cz5cIlxyXG4gICAgICAgICAgICAgICAgLy8gYnV0IHdlIGhhdmUgYSB1c2VyLXByb3ZpZGVkIFwiZGlzcGxheU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgLy8gc3BsaWNlIGl0IGluIHRvIG1ha2UgdGhlIHN0YWNrIG1vcmUgcmVhZGFibGUuXHJcblxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChmbi5kaXNwbGF5TmFtZSAmJiBfZnJhbWUuaW5jbHVkZXMoJzxhbm9ueW1vdXM+JykpIHtcclxuICAgICAgICAgICAgICAgICAgX2ZyYW1lID0gX2ZyYW1lLnJlcGxhY2UoJzxhbm9ueW1vdXM+JywgZm4uZGlzcGxheU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBfZnJhbWUpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IC8vIFJldHVybiB0aGUgbGluZSB3ZSBmb3VuZC5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9mcmFtZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gd2hpbGUgKHMgPj0gMSAmJiBjID49IDApO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gZmluYWxseSB7XHJcbiAgICByZWVudHJ5ID0gZmFsc2U7XHJcblxyXG4gICAge1xyXG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQgPSBwcmV2aW91c0Rpc3BhdGNoZXI7XHJcbiAgICAgIHJlZW5hYmxlTG9ncygpO1xyXG4gICAgfVxyXG5cclxuICAgIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gcHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZTtcclxuICB9IC8vIEZhbGxiYWNrIHRvIGp1c3QgdXNpbmcgdGhlIG5hbWUgaWYgd2UgY291bGRuJ3QgbWFrZSBpdCB0aHJvdy5cclxuXHJcblxyXG4gIHZhciBuYW1lID0gZm4gPyBmbi5kaXNwbGF5TmFtZSB8fCBmbi5uYW1lIDogJyc7XHJcbiAgdmFyIHN5bnRoZXRpY0ZyYW1lID0gbmFtZSA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUpIDogJyc7XHJcblxyXG4gIHtcclxuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIHN5bnRoZXRpY0ZyYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBzeW50aGV0aWNGcmFtZTtcclxufVxyXG5mdW5jdGlvbiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUoZm4sIHNvdXJjZSwgb3duZXJGbikge1xyXG4gIHtcclxuICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBmYWxzZSk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBzaG91bGRDb25zdHJ1Y3QoQ29tcG9uZW50KSB7XHJcbiAgdmFyIHByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XHJcbiAgcmV0dXJuICEhKHByb3RvdHlwZSAmJiBwcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLCBzb3VyY2UsIG93bmVyRm4pIHtcclxuXHJcbiAgaWYgKHR5cGUgPT0gbnVsbCkge1xyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICB7XHJcbiAgICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKHR5cGUsIHNob3VsZENvbnN0cnVjdCh0eXBlKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUodHlwZSk7XHJcbiAgfVxyXG5cclxuICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcclxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZScpO1xyXG5cclxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxyXG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlTGlzdCcpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xyXG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XHJcbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcclxuICAgICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKHR5cGUucmVuZGVyKTtcclxuXHJcbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxyXG4gICAgICAgIC8vIE1lbW8gbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXHJcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLnR5cGUsIHNvdXJjZSwgb3duZXJGbik7XHJcblxyXG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcclxuICAgICAgICB7XHJcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XHJcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XHJcbiAgICAgICAgICB2YXIgaW5pdCA9IGxhenlDb21wb25lbnQuX2luaXQ7XHJcblxyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gTGF6eSBtYXkgY29udGFpbiBhbnkgY29tcG9uZW50IHR5cGUgc28gd2UgcmVjdXJzaXZlbHkgcmVzb2x2ZSBpdC5cclxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihpbml0KHBheWxvYWQpLCBzb3VyY2UsIG93bmVyRm4pO1xyXG4gICAgICAgICAgfSBjYXRjaCAoeCkge31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gJyc7XHJcbn1cclxuXHJcbi8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cclxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcclxuXHJcbnZhciBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcclxudmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XHJcblxyXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpIHtcclxuICB7XHJcbiAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcclxuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgZWxlbWVudC5fc291cmNlLCBvd25lciA/IG93bmVyLnR5cGUgOiBudWxsKTtcclxuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEuc2V0RXh0cmFTdGFja0ZyYW1lKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gY2hlY2tQcm9wVHlwZXModHlwZVNwZWNzLCB2YWx1ZXMsIGxvY2F0aW9uLCBjb21wb25lbnROYW1lLCBlbGVtZW50KSB7XHJcbiAge1xyXG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdXNlXSBUaGlzIGlzIG9rYXkgYnV0IEZsb3cgZG9lc24ndCBrbm93IGl0LlxyXG4gICAgdmFyIGhhcyA9IEZ1bmN0aW9uLmNhbGwuYmluZChoYXNPd25Qcm9wZXJ0eSk7XHJcblxyXG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xyXG4gICAgICBpZiAoaGFzKHR5cGVTcGVjcywgdHlwZVNwZWNOYW1lKSkge1xyXG4gICAgICAgIHZhciBlcnJvciQxID0gdm9pZCAwOyAvLyBQcm9wIHR5cGUgdmFsaWRhdGlvbiBtYXkgdGhyb3cuIEluIGNhc2UgdGhleSBkbywgd2UgZG9uJ3Qgd2FudCB0b1xyXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cclxuICAgICAgICAvLyBBZnRlciB0aGVzZSBoYXZlIGJlZW4gY2xlYW5lZCB1cCwgd2UnbGwgbGV0IHRoZW0gdGhyb3cuXHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgYW4gaW52YXJpYW50IHRoYXQgZ2V0cyBjYXVnaHQuIEl0J3MgdGhlIHNhbWVcclxuICAgICAgICAgIC8vIGJlaGF2aW9yIGFzIHdpdGhvdXQgdGhpcyBzdGF0ZW1lbnQgZXhjZXB0IHdpdGggYSBiZXR0ZXIgbWVzc2FnZS5cclxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3Byb2QtZXJyb3ItY29kZXNcclxuICAgICAgICAgICAgdmFyIGVyciA9IEVycm9yKChjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycpICsgJzogJyArIGxvY2F0aW9uICsgJyB0eXBlIGAnICsgdHlwZVNwZWNOYW1lICsgJ2AgaXMgaW52YWxpZDsgJyArICdpdCBtdXN0IGJlIGEgZnVuY3Rpb24sIHVzdWFsbHkgZnJvbSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UsIGJ1dCByZWNlaXZlZCBgJyArIHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSArICdgLicgKyAnVGhpcyBvZnRlbiBoYXBwZW5zIGJlY2F1c2Ugb2YgdHlwb3Mgc3VjaCBhcyBgUHJvcFR5cGVzLmZ1bmN0aW9uYCBpbnN0ZWFkIG9mIGBQcm9wVHlwZXMuZnVuY2AuJyk7XHJcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xyXG4gICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgZXJyb3IkMSA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgJ1NFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxMX0JFX0ZJUkVEJyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcclxuICAgICAgICAgIGVycm9yJDEgPSBleDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChlcnJvciQxICYmICEoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yKSkge1xyXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KTtcclxuXHJcbiAgICAgICAgICBlcnJvcignJXM6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAlcycgKyAnIGAlc2AgaXMgaW52YWxpZDsgdGhlIHR5cGUgY2hlY2tlciAnICsgJ2Z1bmN0aW9uIG11c3QgcmV0dXJuIGBudWxsYCBvciBhbiBgRXJyb3JgIGJ1dCByZXR1cm5lZCBhICVzLiAnICsgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgKyAnY3JlYXRvciAoYXJyYXlPZiwgaW5zdGFuY2VPZiwgb2JqZWN0T2YsIG9uZU9mLCBvbmVPZlR5cGUsIGFuZCAnICsgJ3NoYXBlIGFsbCByZXF1aXJlIGFuIGFyZ3VtZW50KS4nLCBjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycsIGxvY2F0aW9uLCB0eXBlU3BlY05hbWUsIHR5cGVvZiBlcnJvciQxKTtcclxuXHJcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvciAmJiAhKGVycm9yJDEubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XHJcbiAgICAgICAgICAvLyBPbmx5IG1vbml0b3IgdGhpcyBmYWlsdXJlIG9uY2UgYmVjYXVzZSB0aGVyZSB0ZW5kcyB0byBiZSBhIGxvdCBvZiB0aGVcclxuICAgICAgICAgIC8vIHNhbWUgZXJyb3IuXHJcbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IkMS5tZXNzYWdlXSA9IHRydWU7XHJcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpO1xyXG5cclxuICAgICAgICAgIGVycm9yKCdGYWlsZWQgJXMgdHlwZTogJXMnLCBsb2NhdGlvbiwgZXJyb3IkMS5tZXNzYWdlKTtcclxuXHJcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxudmFyIGlzQXJyYXlJbXBsID0gQXJyYXkuaXNBcnJheTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlZGVjbGFyZVxyXG5cclxuZnVuY3Rpb24gaXNBcnJheShhKSB7XHJcbiAgcmV0dXJuIGlzQXJyYXlJbXBsKGEpO1xyXG59XHJcblxyXG4vKlxyXG4gKiBUaGUgYCcnICsgdmFsdWVgIHBhdHRlcm4gKHVzZWQgaW4gcGVyZi1zZW5zaXRpdmUgY29kZSkgdGhyb3dzIGZvciBTeW1ib2xcclxuICogYW5kIFRlbXBvcmFsLiogdHlwZXMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8yMjA2NC5cclxuICpcclxuICogVGhlIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZSB3aWxsIHRocm93IGFuIGVhc2llci10by11bmRlcnN0YW5kLFxyXG4gKiBlYXNpZXItdG8tZGVidWcgZXhjZXB0aW9uIHdpdGggYSBjbGVhciBlcnJvcnMgbWVzc2FnZSBtZXNzYWdlIGV4cGxhaW5pbmcgdGhlXHJcbiAqIHByb2JsZW0uIChJbnN0ZWFkIG9mIGEgY29uZnVzaW5nIGV4Y2VwdGlvbiB0aHJvd24gaW5zaWRlIHRoZSBpbXBsZW1lbnRhdGlvblxyXG4gKiBvZiB0aGUgYHZhbHVlYCBvYmplY3QpLlxyXG4gKi9cclxuLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXSBvbmx5IGNhbGxlZCBpbiBERVYsIHNvIHZvaWQgcmV0dXJuIGlzIG5vdCBwb3NzaWJsZS5cclxuZnVuY3Rpb24gdHlwZU5hbWUodmFsdWUpIHtcclxuICB7XHJcbiAgICAvLyB0b1N0cmluZ1RhZyBpcyBuZWVkZWQgZm9yIG5hbWVzcGFjZWQgdHlwZXMgbGlrZSBUZW1wb3JhbC5JbnN0YW50XHJcbiAgICB2YXIgaGFzVG9TdHJpbmdUYWcgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC50b1N0cmluZ1RhZztcclxuICAgIHZhciB0eXBlID0gaGFzVG9TdHJpbmdUYWcgJiYgdmFsdWVbU3ltYm9sLnRvU3RyaW5nVGFnXSB8fCB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lIHx8ICdPYmplY3QnOyAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dXHJcblxyXG4gICAgcmV0dXJuIHR5cGU7XHJcbiAgfVxyXG59IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl0gb25seSBjYWxsZWQgaW4gREVWLCBzbyB2b2lkIHJldHVybiBpcyBub3QgcG9zc2libGUuXHJcblxyXG5cclxuZnVuY3Rpb24gd2lsbENvZXJjaW9uVGhyb3codmFsdWUpIHtcclxuICB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XHJcbiAgLy8gSWYgeW91IGVuZGVkIHVwIGhlcmUgYnkgZm9sbG93aW5nIGFuIGV4Y2VwdGlvbiBjYWxsIHN0YWNrLCBoZXJlJ3Mgd2hhdCdzXHJcbiAgLy8gaGFwcGVuZWQ6IHlvdSBzdXBwbGllZCBhbiBvYmplY3Qgb3Igc3ltYm9sIHZhbHVlIHRvIFJlYWN0IChhcyBhIHByb3AsIGtleSxcclxuICAvLyBET00gYXR0cmlidXRlLCBDU1MgcHJvcGVydHksIHN0cmluZyByZWYsIGV0Yy4pIGFuZCB3aGVuIFJlYWN0IHRyaWVkIHRvXHJcbiAgLy8gY29lcmNlIGl0IHRvIGEgc3RyaW5nIHVzaW5nIGAnJyArIHZhbHVlYCwgYW4gZXhjZXB0aW9uIHdhcyB0aHJvd24uXHJcbiAgLy9cclxuICAvLyBUaGUgbW9zdCBjb21tb24gdHlwZXMgdGhhdCB3aWxsIGNhdXNlIHRoaXMgZXhjZXB0aW9uIGFyZSBgU3ltYm9sYCBpbnN0YW5jZXNcclxuICAvLyBhbmQgVGVtcG9yYWwgb2JqZWN0cyBsaWtlIGBUZW1wb3JhbC5JbnN0YW50YC4gQnV0IGFueSBvYmplY3QgdGhhdCBoYXMgYVxyXG4gIC8vIGB2YWx1ZU9mYCBvciBgW1N5bWJvbC50b1ByaW1pdGl2ZV1gIG1ldGhvZCB0aGF0IHRocm93cyB3aWxsIGFsc28gY2F1c2UgdGhpc1xyXG4gIC8vIGV4Y2VwdGlvbi4gKExpYnJhcnkgYXV0aG9ycyBkbyB0aGlzIHRvIHByZXZlbnQgdXNlcnMgZnJvbSB1c2luZyBidWlsdC1pblxyXG4gIC8vIG51bWVyaWMgb3BlcmF0b3JzIGxpa2UgYCtgIG9yIGNvbXBhcmlzb24gb3BlcmF0b3JzIGxpa2UgYD49YCBiZWNhdXNlIGN1c3RvbVxyXG4gIC8vIG1ldGhvZHMgYXJlIG5lZWRlZCB0byBwZXJmb3JtIGFjY3VyYXRlIGFyaXRobWV0aWMgb3IgY29tcGFyaXNvbi4pXHJcbiAgLy9cclxuICAvLyBUbyBmaXggdGhlIHByb2JsZW0sIGNvZXJjZSB0aGlzIG9iamVjdCBvciBzeW1ib2wgdmFsdWUgdG8gYSBzdHJpbmcgYmVmb3JlXHJcbiAgLy8gcGFzc2luZyBpdCB0byBSZWFjdC4gVGhlIG1vc3QgcmVsaWFibGUgd2F5IGlzIHVzdWFsbHkgYFN0cmluZyh2YWx1ZSlgLlxyXG4gIC8vXHJcbiAgLy8gVG8gZmluZCB3aGljaCB2YWx1ZSBpcyB0aHJvd2luZywgY2hlY2sgdGhlIGJyb3dzZXIgb3IgZGVidWdnZXIgY29uc29sZS5cclxuICAvLyBCZWZvcmUgdGhpcyBleGNlcHRpb24gd2FzIHRocm93biwgdGhlcmUgc2hvdWxkIGJlIGBjb25zb2xlLmVycm9yYCBvdXRwdXRcclxuICAvLyB0aGF0IHNob3dzIHRoZSB0eXBlIChTeW1ib2wsIFRlbXBvcmFsLlBsYWluRGF0ZSwgZXRjLikgdGhhdCBjYXVzZWQgdGhlXHJcbiAgLy8gcHJvYmxlbSBhbmQgaG93IHRoYXQgdHlwZSB3YXMgdXNlZDoga2V5LCBhdHJyaWJ1dGUsIGlucHV0IHZhbHVlIHByb3AsIGV0Yy5cclxuICAvLyBJbiBtb3N0IGNhc2VzLCB0aGlzIGNvbnNvbGUgb3V0cHV0IGFsc28gc2hvd3MgdGhlIGNvbXBvbmVudCBhbmQgaXRzXHJcbiAgLy8gYW5jZXN0b3IgY29tcG9uZW50cyB3aGVyZSB0aGUgZXhjZXB0aW9uIGhhcHBlbmVkLlxyXG4gIC8vXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXHJcbiAgcmV0dXJuICcnICsgdmFsdWU7XHJcbn1cclxuZnVuY3Rpb24gY2hlY2tLZXlTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xyXG4gIHtcclxuICAgIGlmICh3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkpIHtcclxuICAgICAgZXJyb3IoJ1RoZSBwcm92aWRlZCBrZXkgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4nICsgJyBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgYmVmb3JlIHVzaW5nIGl0IGhlcmUuJywgdHlwZU5hbWUodmFsdWUpKTtcclxuXHJcbiAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpOyAvLyB0aHJvdyAodG8gaGVscCBjYWxsZXJzIGZpbmQgdHJvdWJsZXNob290aW5nIGNvbW1lbnRzKVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxudmFyIFJlYWN0Q3VycmVudE93bmVyJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcclxudmFyIFJFU0VSVkVEX1BST1BTID0ge1xyXG4gIGtleTogdHJ1ZSxcclxuICByZWY6IHRydWUsXHJcbiAgX19zZWxmOiB0cnVlLFxyXG4gIF9fc291cmNlOiB0cnVlXHJcbn07XHJcbnZhciBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bjtcclxudmFyIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duO1xyXG52YXIgZGlkV2FybkFib3V0U3RyaW5nUmVmcztcclxuXHJcbntcclxuICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzID0ge307XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhhc1ZhbGlkUmVmKGNvbmZpZykge1xyXG4gIHtcclxuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgJ3JlZicpKSB7XHJcbiAgICAgIHZhciBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbmZpZywgJ3JlZicpLmdldDtcclxuXHJcbiAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gY29uZmlnLnJlZiAhPT0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG5mdW5jdGlvbiBoYXNWYWxpZEtleShjb25maWcpIHtcclxuICB7XHJcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdrZXknKSkge1xyXG4gICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsICdrZXknKS5nZXQ7XHJcblxyXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNvbmZpZy5rZXkgIT09IHVuZGVmaW5lZDtcclxufVxyXG5cclxuZnVuY3Rpb24gd2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkKGNvbmZpZywgc2VsZikge1xyXG4gIHtcclxuICAgIGlmICh0eXBlb2YgY29uZmlnLnJlZiA9PT0gJ3N0cmluZycgJiYgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50ICYmIHNlbGYgJiYgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LnN0YXRlTm9kZSAhPT0gc2VsZikge1xyXG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQudHlwZSk7XHJcblxyXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0pIHtcclxuICAgICAgICBlcnJvcignQ29tcG9uZW50IFwiJXNcIiBjb250YWlucyB0aGUgc3RyaW5nIHJlZiBcIiVzXCIuICcgKyAnU3VwcG9ydCBmb3Igc3RyaW5nIHJlZnMgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIG1ham9yIHJlbGVhc2UuICcgKyAnVGhpcyBjYXNlIGNhbm5vdCBiZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byBhbiBhcnJvdyBmdW5jdGlvbi4gJyArICdXZSBhc2sgeW91IHRvIG1hbnVhbGx5IGZpeCB0aGlzIGNhc2UgYnkgdXNpbmcgdXNlUmVmKCkgb3IgY3JlYXRlUmVmKCkgaW5zdGVhZC4gJyArICdMZWFybiBtb3JlIGFib3V0IHVzaW5nIHJlZnMgc2FmZWx5IGhlcmU6ICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3N0cmljdC1tb2RlLXN0cmluZy1yZWYnLCBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LnR5cGUpLCBjb25maWcucmVmKTtcclxuXHJcbiAgICAgICAgZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkge1xyXG4gIHtcclxuICAgIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIGlmICghc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24pIHtcclxuICAgICAgICBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biA9IHRydWU7XHJcblxyXG4gICAgICAgIGVycm9yKCclczogYGtleWAgaXMgbm90IGEgcHJvcC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCAnICsgJ2luIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgJyArICd2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50ICcgKyAncHJvcC4gKGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zcGVjaWFsLXByb3BzKScsIGRpc3BsYXlOYW1lKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkuaXNSZWFjdFdhcm5pbmcgPSB0cnVlO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCAna2V5Jywge1xyXG4gICAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ0tleSxcclxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkge1xyXG4gIHtcclxuICAgIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdSZWYgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIGlmICghc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24pIHtcclxuICAgICAgICBzcGVjaWFsUHJvcFJlZldhcm5pbmdTaG93biA9IHRydWU7XHJcblxyXG4gICAgICAgIGVycm9yKCclczogYHJlZmAgaXMgbm90IGEgcHJvcC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCAnICsgJ2luIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgJyArICd2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50ICcgKyAncHJvcC4gKGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zcGVjaWFsLXByb3BzKScsIGRpc3BsYXlOYW1lKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICB3YXJuQWJvdXRBY2Nlc3NpbmdSZWYuaXNSZWFjdFdhcm5pbmcgPSB0cnVlO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCAncmVmJywge1xyXG4gICAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ1JlZixcclxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuLyoqXHJcbiAqIEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBhIG5ldyBSZWFjdCBlbGVtZW50LiBUaGlzIG5vIGxvbmdlciBhZGhlcmVzIHRvXHJcbiAqIHRoZSBjbGFzcyBwYXR0ZXJuLCBzbyBkbyBub3QgdXNlIG5ldyB0byBjYWxsIGl0LiBBbHNvLCBpbnN0YW5jZW9mIGNoZWNrXHJcbiAqIHdpbGwgbm90IHdvcmsuIEluc3RlYWQgdGVzdCAkJHR5cGVvZiBmaWVsZCBhZ2FpbnN0IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSB0byBjaGVja1xyXG4gKiBpZiBzb21ldGhpbmcgaXMgYSBSZWFjdCBFbGVtZW50LlxyXG4gKlxyXG4gKiBAcGFyYW0geyp9IHR5cGVcclxuICogQHBhcmFtIHsqfSBwcm9wc1xyXG4gKiBAcGFyYW0geyp9IGtleVxyXG4gKiBAcGFyYW0ge3N0cmluZ3xvYmplY3R9IHJlZlxyXG4gKiBAcGFyYW0geyp9IG93bmVyXHJcbiAqIEBwYXJhbSB7Kn0gc2VsZiBBICp0ZW1wb3JhcnkqIGhlbHBlciB0byBkZXRlY3QgcGxhY2VzIHdoZXJlIGB0aGlzYCBpc1xyXG4gKiBkaWZmZXJlbnQgZnJvbSB0aGUgYG93bmVyYCB3aGVuIFJlYWN0LmNyZWF0ZUVsZW1lbnQgaXMgY2FsbGVkLCBzbyB0aGF0IHdlXHJcbiAqIGNhbiB3YXJuLiBXZSB3YW50IHRvIGdldCByaWQgb2Ygb3duZXIgYW5kIHJlcGxhY2Ugc3RyaW5nIGByZWZgcyB3aXRoIGFycm93XHJcbiAqIGZ1bmN0aW9ucywgYW5kIGFzIGxvbmcgYXMgYHRoaXNgIGFuZCBvd25lciBhcmUgdGhlIHNhbWUsIHRoZXJlIHdpbGwgYmUgbm9cclxuICogY2hhbmdlIGluIGJlaGF2aW9yLlxyXG4gKiBAcGFyYW0geyp9IHNvdXJjZSBBbiBhbm5vdGF0aW9uIG9iamVjdCAoYWRkZWQgYnkgYSB0cmFuc3BpbGVyIG9yIG90aGVyd2lzZSlcclxuICogaW5kaWNhdGluZyBmaWxlbmFtZSwgbGluZSBudW1iZXIsIGFuZC9vciBvdGhlciBpbmZvcm1hdGlvbi5cclxuICogQGludGVybmFsXHJcbiAqL1xyXG5cclxuXHJcbmZ1bmN0aW9uIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBvd25lciwgcHJvcHMpIHtcclxuICB2YXIgZWxlbWVudCA9IHtcclxuICAgIC8vIFRoaXMgdGFnIGFsbG93cyB1cyB0byB1bmlxdWVseSBpZGVudGlmeSB0aGlzIGFzIGEgUmVhY3QgRWxlbWVudFxyXG4gICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSxcclxuICAgIC8vIEJ1aWx0LWluIHByb3BlcnRpZXMgdGhhdCBiZWxvbmcgb24gdGhlIGVsZW1lbnRcclxuICAgIHR5cGU6IHR5cGUsXHJcbiAgICBrZXk6IGtleSxcclxuICAgIHJlZjogcmVmLFxyXG4gICAgcHJvcHM6IHByb3BzLFxyXG4gICAgLy8gUmVjb3JkIHRoZSBjb21wb25lbnQgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoaXMgZWxlbWVudC5cclxuICAgIF9vd25lcjogb3duZXJcclxuICB9O1xyXG5cclxuICB7XHJcbiAgICAvLyBUaGUgdmFsaWRhdGlvbiBmbGFnIGlzIGN1cnJlbnRseSBtdXRhdGl2ZS4gV2UgcHV0IGl0IG9uXHJcbiAgICAvLyBhbiBleHRlcm5hbCBiYWNraW5nIHN0b3JlIHNvIHRoYXQgd2UgY2FuIGZyZWV6ZSB0aGUgd2hvbGUgb2JqZWN0LlxyXG4gICAgLy8gVGhpcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIFdlYWtNYXAgb25jZSB0aGV5IGFyZSBpbXBsZW1lbnRlZCBpblxyXG4gICAgLy8gY29tbW9ubHkgdXNlZCBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMuXHJcbiAgICBlbGVtZW50Ll9zdG9yZSA9IHt9OyAvLyBUbyBtYWtlIGNvbXBhcmluZyBSZWFjdEVsZW1lbnRzIGVhc2llciBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2UgbWFrZVxyXG4gICAgLy8gdGhlIHZhbGlkYXRpb24gZmxhZyBub24tZW51bWVyYWJsZSAod2hlcmUgcG9zc2libGUsIHdoaWNoIHNob3VsZFxyXG4gICAgLy8gaW5jbHVkZSBldmVyeSBlbnZpcm9ubWVudCB3ZSBydW4gdGVzdHMgaW4pLCBzbyB0aGUgdGVzdCBmcmFtZXdvcmtcclxuICAgIC8vIGlnbm9yZXMgaXQuXHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnQuX3N0b3JlLCAndmFsaWRhdGVkJywge1xyXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxyXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgd3JpdGFibGU6IHRydWUsXHJcbiAgICAgIHZhbHVlOiBmYWxzZVxyXG4gICAgfSk7IC8vIHNlbGYgYW5kIHNvdXJjZSBhcmUgREVWIG9ubHkgcHJvcGVydGllcy5cclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudCwgJ19zZWxmJywge1xyXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxyXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxyXG4gICAgICB2YWx1ZTogc2VsZlxyXG4gICAgfSk7IC8vIFR3byBlbGVtZW50cyBjcmVhdGVkIGluIHR3byBkaWZmZXJlbnQgcGxhY2VzIHNob3VsZCBiZSBjb25zaWRlcmVkXHJcbiAgICAvLyBlcXVhbCBmb3IgdGVzdGluZyBwdXJwb3NlcyBhbmQgdGhlcmVmb3JlIHdlIGhpZGUgaXQgZnJvbSBlbnVtZXJhdGlvbi5cclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudCwgJ19zb3VyY2UnLCB7XHJcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXHJcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICB3cml0YWJsZTogZmFsc2UsXHJcbiAgICAgIHZhbHVlOiBzb3VyY2VcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChPYmplY3QuZnJlZXplKSB7XHJcbiAgICAgIE9iamVjdC5mcmVlemUoZWxlbWVudC5wcm9wcyk7XHJcbiAgICAgIE9iamVjdC5mcmVlemUoZWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZWxlbWVudDtcclxufVxyXG4vKipcclxuICogaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0anMvcmZjcy9wdWxsLzEwN1xyXG4gKiBAcGFyYW0geyp9IHR5cGVcclxuICogQHBhcmFtIHtvYmplY3R9IHByb3BzXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcclxuICovXHJcblxyXG5mdW5jdGlvbiBqc3hERVYodHlwZSwgY29uZmlnLCBtYXliZUtleSwgc291cmNlLCBzZWxmKSB7XHJcbiAge1xyXG4gICAgdmFyIHByb3BOYW1lOyAvLyBSZXNlcnZlZCBuYW1lcyBhcmUgZXh0cmFjdGVkXHJcblxyXG4gICAgdmFyIHByb3BzID0ge307XHJcbiAgICB2YXIga2V5ID0gbnVsbDtcclxuICAgIHZhciByZWYgPSBudWxsOyAvLyBDdXJyZW50bHksIGtleSBjYW4gYmUgc3ByZWFkIGluIGFzIGEgcHJvcC4gVGhpcyBjYXVzZXMgYSBwb3RlbnRpYWxcclxuICAgIC8vIGlzc3VlIGlmIGtleSBpcyBhbHNvIGV4cGxpY2l0bHkgZGVjbGFyZWQgKGllLiA8ZGl2IHsuLi5wcm9wc30ga2V5PVwiSGlcIiAvPlxyXG4gICAgLy8gb3IgPGRpdiBrZXk9XCJIaVwiIHsuLi5wcm9wc30gLz4gKS4gV2Ugd2FudCB0byBkZXByZWNhdGUga2V5IHNwcmVhZCxcclxuICAgIC8vIGJ1dCBhcyBhbiBpbnRlcm1lZGlhcnkgc3RlcCwgd2Ugd2lsbCB1c2UganN4REVWIGZvciBldmVyeXRoaW5nIGV4Y2VwdFxyXG4gICAgLy8gPGRpdiB7Li4ucHJvcHN9IGtleT1cIkhpXCIgLz4sIGJlY2F1c2Ugd2UgYXJlbid0IGN1cnJlbnRseSBhYmxlIHRvIHRlbGwgaWZcclxuICAgIC8vIGtleSBpcyBleHBsaWNpdGx5IGRlY2xhcmVkIHRvIGJlIHVuZGVmaW5lZCBvciBub3QuXHJcblxyXG4gICAgaWYgKG1heWJlS2V5ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAge1xyXG4gICAgICAgIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24obWF5YmVLZXkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBrZXkgPSAnJyArIG1heWJlS2V5O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChoYXNWYWxpZEtleShjb25maWcpKSB7XHJcbiAgICAgIHtcclxuICAgICAgICBjaGVja0tleVN0cmluZ0NvZXJjaW9uKGNvbmZpZy5rZXkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBrZXkgPSAnJyArIGNvbmZpZy5rZXk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGhhc1ZhbGlkUmVmKGNvbmZpZykpIHtcclxuICAgICAgcmVmID0gY29uZmlnLnJlZjtcclxuICAgICAgd2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkKGNvbmZpZywgc2VsZik7XHJcbiAgICB9IC8vIFJlbWFpbmluZyBwcm9wZXJ0aWVzIGFyZSBhZGRlZCB0byBhIG5ldyBwcm9wcyBvYmplY3RcclxuXHJcblxyXG4gICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpIHtcclxuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBwcm9wTmFtZSkgJiYgIVJFU0VSVkVEX1BST1BTLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xyXG4gICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGNvbmZpZ1twcm9wTmFtZV07XHJcbiAgICAgIH1cclxuICAgIH0gLy8gUmVzb2x2ZSBkZWZhdWx0IHByb3BzXHJcblxyXG5cclxuICAgIGlmICh0eXBlICYmIHR5cGUuZGVmYXVsdFByb3BzKSB7XHJcbiAgICAgIHZhciBkZWZhdWx0UHJvcHMgPSB0eXBlLmRlZmF1bHRQcm9wcztcclxuXHJcbiAgICAgIGZvciAocHJvcE5hbWUgaW4gZGVmYXVsdFByb3BzKSB7XHJcbiAgICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBkZWZhdWx0UHJvcHNbcHJvcE5hbWVdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChrZXkgfHwgcmVmKSB7XHJcbiAgICAgIHZhciBkaXNwbGF5TmFtZSA9IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgJ1Vua25vd24nIDogdHlwZTtcclxuXHJcbiAgICAgIGlmIChrZXkpIHtcclxuICAgICAgICBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocmVmKSB7XHJcbiAgICAgICAgZGVmaW5lUmVmUHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBSZWFjdEVsZW1lbnQodHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LCBwcm9wcyk7XHJcbiAgfVxyXG59XHJcblxyXG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcclxudmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xyXG52YXIgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNsaWVudC5yZWZlcmVuY2UnKTtcclxuXHJcbmZ1bmN0aW9uIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpIHtcclxuICB7XHJcbiAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcclxuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgZWxlbWVudC5fc291cmNlLCBvd25lciA/IG93bmVyLnR5cGUgOiBudWxsKTtcclxuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5zZXRFeHRyYVN0YWNrRnJhbWUoc3RhY2spO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG52YXIgcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd247XHJcblxyXG57XHJcbiAgcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24gPSBmYWxzZTtcclxufVxyXG4vKipcclxuICogVmVyaWZpZXMgdGhlIG9iamVjdCBpcyBhIFJlYWN0RWxlbWVudC5cclxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNpc3ZhbGlkZWxlbWVudFxyXG4gKiBAcGFyYW0gez9vYmplY3R9IG9iamVjdFxyXG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIGBvYmplY3RgIGlzIGEgUmVhY3RFbGVtZW50LlxyXG4gKiBAZmluYWxcclxuICovXHJcblxyXG5cclxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnQob2JqZWN0KSB7XHJcbiAge1xyXG4gICAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCAmJiBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpIHtcclxuICB7XHJcbiAgICBpZiAoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xyXG4gICAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LnR5cGUpO1xyXG5cclxuICAgICAgaWYgKG5hbWUpIHtcclxuICAgICAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShzb3VyY2UpIHtcclxuICB7XHJcbiAgICBpZiAoc291cmNlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdmFyIGZpbGVOYW1lID0gc291cmNlLmZpbGVOYW1lLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKTtcclxuICAgICAgdmFyIGxpbmVOdW1iZXIgPSBzb3VyY2UubGluZU51bWJlcjtcclxuICAgICAgcmV0dXJuICdcXG5cXG5DaGVjayB5b3VyIGNvZGUgYXQgJyArIGZpbGVOYW1lICsgJzonICsgbGluZU51bWJlciArICcuJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG59XHJcbi8qKlxyXG4gKiBXYXJuIGlmIHRoZXJlJ3Mgbm8ga2V5IGV4cGxpY2l0bHkgc2V0IG9uIGR5bmFtaWMgYXJyYXlzIG9mIGNoaWxkcmVuIG9yXHJcbiAqIG9iamVjdCBrZXlzIGFyZSBub3QgdmFsaWQuIFRoaXMgYWxsb3dzIHVzIHRvIGtlZXAgdHJhY2sgb2YgY2hpbGRyZW4gYmV0d2VlblxyXG4gKiB1cGRhdGVzLlxyXG4gKi9cclxuXHJcblxyXG52YXIgb3duZXJIYXNLZXlVc2VXYXJuaW5nID0ge307XHJcblxyXG5mdW5jdGlvbiBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpIHtcclxuICB7XHJcbiAgICB2YXIgaW5mbyA9IGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpO1xyXG5cclxuICAgIGlmICghaW5mbykge1xyXG4gICAgICB2YXIgcGFyZW50TmFtZSA9IHR5cGVvZiBwYXJlbnRUeXBlID09PSAnc3RyaW5nJyA/IHBhcmVudFR5cGUgOiBwYXJlbnRUeXBlLmRpc3BsYXlOYW1lIHx8IHBhcmVudFR5cGUubmFtZTtcclxuXHJcbiAgICAgIGlmIChwYXJlbnROYW1lKSB7XHJcbiAgICAgICAgaW5mbyA9IFwiXFxuXFxuQ2hlY2sgdGhlIHRvcC1sZXZlbCByZW5kZXIgY2FsbCB1c2luZyA8XCIgKyBwYXJlbnROYW1lICsgXCI+LlwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGluZm87XHJcbiAgfVxyXG59XHJcbi8qKlxyXG4gKiBXYXJuIGlmIHRoZSBlbGVtZW50IGRvZXNuJ3QgaGF2ZSBhbiBleHBsaWNpdCBrZXkgYXNzaWduZWQgdG8gaXQuXHJcbiAqIFRoaXMgZWxlbWVudCBpcyBpbiBhbiBhcnJheS4gVGhlIGFycmF5IGNvdWxkIGdyb3cgYW5kIHNocmluayBvciBiZVxyXG4gKiByZW9yZGVyZWQuIEFsbCBjaGlsZHJlbiB0aGF0IGhhdmVuJ3QgYWxyZWFkeSBiZWVuIHZhbGlkYXRlZCBhcmUgcmVxdWlyZWQgdG9cclxuICogaGF2ZSBhIFwia2V5XCIgcHJvcGVydHkgYXNzaWduZWQgdG8gaXQuIEVycm9yIHN0YXR1c2VzIGFyZSBjYWNoZWQgc28gYSB3YXJuaW5nXHJcbiAqIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxyXG4gKlxyXG4gKiBAaW50ZXJuYWxcclxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnQgRWxlbWVudCB0aGF0IHJlcXVpcmVzIGEga2V5LlxyXG4gKiBAcGFyYW0geyp9IHBhcmVudFR5cGUgZWxlbWVudCdzIHBhcmVudCdzIHR5cGUuXHJcbiAqL1xyXG5cclxuXHJcbmZ1bmN0aW9uIHZhbGlkYXRlRXhwbGljaXRLZXkoZWxlbWVudCwgcGFyZW50VHlwZSkge1xyXG4gIHtcclxuICAgIGlmICghZWxlbWVudC5fc3RvcmUgfHwgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkIHx8IGVsZW1lbnQua2V5ICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XHJcbiAgICB2YXIgY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9IGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSk7XHJcblxyXG4gICAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb3duZXJIYXNLZXlVc2VXYXJuaW5nW2N1cnJlbnRDb21wb25lbnRFcnJvckluZm9dID0gdHJ1ZTsgLy8gVXN1YWxseSB0aGUgY3VycmVudCBvd25lciBpcyB0aGUgb2ZmZW5kZXIsIGJ1dCBpZiBpdCBhY2NlcHRzIGNoaWxkcmVuIGFzIGFcclxuICAgIC8vIHByb3BlcnR5LCBpdCBtYXkgYmUgdGhlIGNyZWF0b3Igb2YgdGhlIGNoaWxkIHRoYXQncyByZXNwb25zaWJsZSBmb3JcclxuICAgIC8vIGFzc2lnbmluZyBpdCBhIGtleS5cclxuXHJcbiAgICB2YXIgY2hpbGRPd25lciA9ICcnO1xyXG5cclxuICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuX293bmVyICYmIGVsZW1lbnQuX293bmVyICE9PSBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50KSB7XHJcbiAgICAgIC8vIEdpdmUgdGhlIGNvbXBvbmVudCB0aGF0IG9yaWdpbmFsbHkgY3JlYXRlZCB0aGlzIGNoaWxkLlxyXG4gICAgICBjaGlsZE93bmVyID0gXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoZWxlbWVudC5fb3duZXIudHlwZSkgKyBcIi5cIjtcclxuICAgIH1cclxuXHJcbiAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcclxuXHJcbiAgICBlcnJvcignRWFjaCBjaGlsZCBpbiBhIGxpc3Qgc2hvdWxkIGhhdmUgYSB1bmlxdWUgXCJrZXlcIiBwcm9wLicgKyAnJXMlcyBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3dhcm5pbmcta2V5cyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nLCBjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvLCBjaGlsZE93bmVyKTtcclxuXHJcbiAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcclxuICB9XHJcbn1cclxuLyoqXHJcbiAqIEVuc3VyZSB0aGF0IGV2ZXJ5IGVsZW1lbnQgZWl0aGVyIGlzIHBhc3NlZCBpbiBhIHN0YXRpYyBsb2NhdGlvbiwgaW4gYW5cclxuICogYXJyYXkgd2l0aCBhbiBleHBsaWNpdCBrZXlzIHByb3BlcnR5IGRlZmluZWQsIG9yIGluIGFuIG9iamVjdCBsaXRlcmFsXHJcbiAqIHdpdGggdmFsaWQga2V5IHByb3BlcnR5LlxyXG4gKlxyXG4gKiBAaW50ZXJuYWxcclxuICogQHBhcmFtIHtSZWFjdE5vZGV9IG5vZGUgU3RhdGljYWxseSBwYXNzZWQgY2hpbGQgb2YgYW55IHR5cGUuXHJcbiAqIEBwYXJhbSB7Kn0gcGFyZW50VHlwZSBub2RlJ3MgcGFyZW50J3MgdHlwZS5cclxuICovXHJcblxyXG5cclxuZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSwgcGFyZW50VHlwZSkge1xyXG4gIHtcclxuICAgIGlmICh0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcgfHwgIW5vZGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChub2RlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFKSA7IGVsc2UgaWYgKGlzQXJyYXkobm9kZSkpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcclxuXHJcbiAgICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xyXG4gICAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShjaGlsZCwgcGFyZW50VHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGlzVmFsaWRFbGVtZW50KG5vZGUpKSB7XHJcbiAgICAgIC8vIFRoaXMgZWxlbWVudCB3YXMgcGFzc2VkIGluIGEgdmFsaWQgbG9jYXRpb24uXHJcbiAgICAgIGlmIChub2RlLl9zdG9yZSkge1xyXG4gICAgICAgIG5vZGUuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihub2RlKTtcclxuXHJcbiAgICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIC8vIEVudHJ5IGl0ZXJhdG9ycyB1c2VkIHRvIHByb3ZpZGUgaW1wbGljaXQga2V5cyxcclxuICAgICAgICAvLyBidXQgbm93IHdlIHByaW50IGEgc2VwYXJhdGUgd2FybmluZyBmb3IgdGhlbSBsYXRlci5cclxuICAgICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gbm9kZS5lbnRyaWVzKSB7XHJcbiAgICAgICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwobm9kZSk7XHJcbiAgICAgICAgICB2YXIgc3RlcDtcclxuXHJcbiAgICAgICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChzdGVwLnZhbHVlKSkge1xyXG4gICAgICAgICAgICAgIHZhbGlkYXRlRXhwbGljaXRLZXkoc3RlcC52YWx1ZSwgcGFyZW50VHlwZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuLyoqXHJcbiAqIEdpdmVuIGFuIGVsZW1lbnQsIHZhbGlkYXRlIHRoYXQgaXRzIHByb3BzIGZvbGxvdyB0aGUgcHJvcFR5cGVzIGRlZmluaXRpb24sXHJcbiAqIHByb3ZpZGVkIGJ5IHRoZSB0eXBlLlxyXG4gKlxyXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZWxlbWVudFxyXG4gKi9cclxuXHJcblxyXG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BUeXBlcyhlbGVtZW50KSB7XHJcbiAge1xyXG4gICAgdmFyIHR5cGUgPSBlbGVtZW50LnR5cGU7XHJcblxyXG4gICAgaWYgKHR5cGUgPT09IG51bGwgfHwgdHlwZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBwcm9wVHlwZXM7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gTm90ZTogTWVtbyBvbmx5IGNoZWNrcyBvdXRlciBwcm9wcyBoZXJlLlxyXG4gICAgLy8gSW5uZXIgcHJvcHMgYXJlIGNoZWNrZWQgaW4gdGhlIHJlY29uY2lsZXIuXHJcbiAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUpKSB7XHJcbiAgICAgIHByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwcm9wVHlwZXMpIHtcclxuICAgICAgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcclxuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XHJcbiAgICAgIGNoZWNrUHJvcFR5cGVzKHByb3BUeXBlcywgZWxlbWVudC5wcm9wcywgJ3Byb3AnLCBuYW1lLCBlbGVtZW50KTtcclxuICAgIH0gZWxzZSBpZiAodHlwZS5Qcm9wVHlwZXMgIT09IHVuZGVmaW5lZCAmJiAhcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24pIHtcclxuICAgICAgcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24gPSB0cnVlOyAvLyBJbnRlbnRpb25hbGx5IGluc2lkZSB0byBhdm9pZCB0cmlnZ2VyaW5nIGxhenkgaW5pdGlhbGl6ZXJzOlxyXG5cclxuICAgICAgdmFyIF9uYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xyXG5cclxuICAgICAgZXJyb3IoJ0NvbXBvbmVudCAlcyBkZWNsYXJlZCBgUHJvcFR5cGVzYCBpbnN0ZWFkIG9mIGBwcm9wVHlwZXNgLiBEaWQgeW91IG1pc3NwZWxsIHRoZSBwcm9wZXJ0eSBhc3NpZ25tZW50PycsIF9uYW1lIHx8ICdVbmtub3duJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiB0eXBlLmdldERlZmF1bHRQcm9wcyA9PT0gJ2Z1bmN0aW9uJyAmJiAhdHlwZS5nZXREZWZhdWx0UHJvcHMuaXNSZWFjdENsYXNzQXBwcm92ZWQpIHtcclxuICAgICAgZXJyb3IoJ2dldERlZmF1bHRQcm9wcyBpcyBvbmx5IHVzZWQgb24gY2xhc3NpYyBSZWFjdC5jcmVhdGVDbGFzcyAnICsgJ2RlZmluaXRpb25zLiBVc2UgYSBzdGF0aWMgcHJvcGVydHkgbmFtZWQgYGRlZmF1bHRQcm9wc2AgaW5zdGVhZC4nKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuLyoqXHJcbiAqIEdpdmVuIGEgZnJhZ21lbnQsIHZhbGlkYXRlIHRoYXQgaXQgY2FuIG9ubHkgYmUgcHJvdmlkZWQgd2l0aCBmcmFnbWVudCBwcm9wc1xyXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZnJhZ21lbnRcclxuICovXHJcblxyXG5cclxuZnVuY3Rpb24gdmFsaWRhdGVGcmFnbWVudFByb3BzKGZyYWdtZW50KSB7XHJcbiAge1xyXG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhmcmFnbWVudC5wcm9wcyk7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xyXG5cclxuICAgICAgaWYgKGtleSAhPT0gJ2NoaWxkcmVuJyAmJiBrZXkgIT09ICdrZXknKSB7XHJcbiAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xyXG5cclxuICAgICAgICBlcnJvcignSW52YWxpZCBwcm9wIGAlc2Agc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4gJyArICdSZWFjdC5GcmFnbWVudCBjYW4gb25seSBoYXZlIGBrZXlgIGFuZCBgY2hpbGRyZW5gIHByb3BzLicsIGtleSk7XHJcblxyXG4gICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KG51bGwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZyYWdtZW50LnJlZiAhPT0gbnVsbCkge1xyXG4gICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChmcmFnbWVudCk7XHJcblxyXG4gICAgICBlcnJvcignSW52YWxpZCBhdHRyaWJ1dGUgYHJlZmAgc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4nKTtcclxuXHJcbiAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxudmFyIGRpZFdhcm5BYm91dEtleVNwcmVhZCA9IHt9O1xyXG5mdW5jdGlvbiBqc3hXaXRoVmFsaWRhdGlvbih0eXBlLCBwcm9wcywga2V5LCBpc1N0YXRpY0NoaWxkcmVuLCBzb3VyY2UsIHNlbGYpIHtcclxuICB7XHJcbiAgICB2YXIgdmFsaWRUeXBlID0gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpOyAvLyBXZSB3YXJuIGluIHRoaXMgY2FzZSBidXQgZG9uJ3QgdGhyb3cuIFdlIGV4cGVjdCB0aGUgZWxlbWVudCBjcmVhdGlvbiB0b1xyXG4gICAgLy8gc3VjY2VlZCBhbmQgdGhlcmUgd2lsbCBsaWtlbHkgYmUgZXJyb3JzIGluIHJlbmRlci5cclxuXHJcbiAgICBpZiAoIXZhbGlkVHlwZSkge1xyXG4gICAgICB2YXIgaW5mbyA9ICcnO1xyXG5cclxuICAgICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICBpbmZvICs9ICcgWW91IGxpa2VseSBmb3Jnb3QgdG8gZXhwb3J0IHlvdXIgY29tcG9uZW50IGZyb20gdGhlIGZpbGUgJyArIFwiaXQncyBkZWZpbmVkIGluLCBvciB5b3UgbWlnaHQgaGF2ZSBtaXhlZCB1cCBkZWZhdWx0IGFuZCBuYW1lZCBpbXBvcnRzLlwiO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB2YXIgc291cmNlSW5mbyA9IGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtKHNvdXJjZSk7XHJcblxyXG4gICAgICBpZiAoc291cmNlSW5mbykge1xyXG4gICAgICAgIGluZm8gKz0gc291cmNlSW5mbztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbmZvICs9IGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB2YXIgdHlwZVN0cmluZztcclxuXHJcbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XHJcbiAgICAgICAgdHlwZVN0cmluZyA9ICdudWxsJztcclxuICAgICAgfSBlbHNlIGlmIChpc0FycmF5KHR5cGUpKSB7XHJcbiAgICAgICAgdHlwZVN0cmluZyA9ICdhcnJheSc7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZSAhPT0gdW5kZWZpbmVkICYmIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSkge1xyXG4gICAgICAgIHR5cGVTdHJpbmcgPSBcIjxcIiArIChnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZS50eXBlKSB8fCAnVW5rbm93bicpICsgXCIgLz5cIjtcclxuICAgICAgICBpbmZvID0gJyBEaWQgeW91IGFjY2lkZW50YWxseSBleHBvcnQgYSBKU1ggbGl0ZXJhbCBpbnN0ZWFkIG9mIGEgY29tcG9uZW50Pyc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdHlwZVN0cmluZyA9IHR5cGVvZiB0eXBlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBlcnJvcignUmVhY3QuanN4OiB0eXBlIGlzIGludmFsaWQgLS0gZXhwZWN0ZWQgYSBzdHJpbmcgKGZvciAnICsgJ2J1aWx0LWluIGNvbXBvbmVudHMpIG9yIGEgY2xhc3MvZnVuY3Rpb24gKGZvciBjb21wb3NpdGUgJyArICdjb21wb25lbnRzKSBidXQgZ290OiAlcy4lcycsIHR5cGVTdHJpbmcsIGluZm8pO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBlbGVtZW50ID0ganN4REVWKHR5cGUsIHByb3BzLCBrZXksIHNvdXJjZSwgc2VsZik7IC8vIFRoZSByZXN1bHQgY2FuIGJlIG51bGxpc2ggaWYgYSBtb2NrIG9yIGEgY3VzdG9tIGZ1bmN0aW9uIGlzIHVzZWQuXHJcbiAgICAvLyBUT0RPOiBEcm9wIHRoaXMgd2hlbiB0aGVzZSBhcmUgbm8gbG9uZ2VyIGFsbG93ZWQgYXMgdGhlIHR5cGUgYXJndW1lbnQuXHJcblxyXG4gICAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gZWxlbWVudDtcclxuICAgIH0gLy8gU2tpcCBrZXkgd2FybmluZyBpZiB0aGUgdHlwZSBpc24ndCB2YWxpZCBzaW5jZSBvdXIga2V5IHZhbGlkYXRpb24gbG9naWNcclxuICAgIC8vIGRvZXNuJ3QgZXhwZWN0IGEgbm9uLXN0cmluZy9mdW5jdGlvbiB0eXBlIGFuZCBjYW4gdGhyb3cgY29uZnVzaW5nIGVycm9ycy5cclxuICAgIC8vIFdlIGRvbid0IHdhbnQgZXhjZXB0aW9uIGJlaGF2aW9yIHRvIGRpZmZlciBiZXR3ZWVuIGRldiBhbmQgcHJvZC5cclxuICAgIC8vIChSZW5kZXJpbmcgd2lsbCB0aHJvdyB3aXRoIGEgaGVscGZ1bCBtZXNzYWdlIGFuZCBhcyBzb29uIGFzIHRoZSB0eXBlIGlzXHJcbiAgICAvLyBmaXhlZCwgdGhlIGtleSB3YXJuaW5ncyB3aWxsIGFwcGVhci4pXHJcblxyXG5cclxuICAgIGlmICh2YWxpZFR5cGUpIHtcclxuICAgICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW47XHJcblxyXG4gICAgICBpZiAoY2hpbGRyZW4gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmIChpc1N0YXRpY0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICBpZiAoaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuW2ldLCB0eXBlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKE9iamVjdC5mcmVlemUpIHtcclxuICAgICAgICAgICAgICBPYmplY3QuZnJlZXplKGNoaWxkcmVuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZXJyb3IoJ1JlYWN0LmpzeDogU3RhdGljIGNoaWxkcmVuIHNob3VsZCBhbHdheXMgYmUgYW4gYXJyYXkuICcgKyAnWW91IGFyZSBsaWtlbHkgZXhwbGljaXRseSBjYWxsaW5nIFJlYWN0LmpzeHMgb3IgUmVhY3QuanN4REVWLiAnICsgJ1VzZSB0aGUgQmFiZWwgdHJhbnNmb3JtIGluc3RlYWQuJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuLCB0eXBlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywgJ2tleScpKSB7XHJcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xyXG4gICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHByb3BzKS5maWx0ZXIoZnVuY3Rpb24gKGspIHtcclxuICAgICAgICByZXR1cm4gayAhPT0gJ2tleSc7XHJcbiAgICAgIH0pO1xyXG4gICAgICB2YXIgYmVmb3JlRXhhbXBsZSA9IGtleXMubGVuZ3RoID4gMCA/ICd7a2V5OiBzb21lS2V5LCAnICsga2V5cy5qb2luKCc6IC4uLiwgJykgKyAnOiAuLi59JyA6ICd7a2V5OiBzb21lS2V5fSc7XHJcblxyXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dEtleVNwcmVhZFtjb21wb25lbnROYW1lICsgYmVmb3JlRXhhbXBsZV0pIHtcclxuICAgICAgICB2YXIgYWZ0ZXJFeGFtcGxlID0ga2V5cy5sZW5ndGggPiAwID8gJ3snICsga2V5cy5qb2luKCc6IC4uLiwgJykgKyAnOiAuLi59JyA6ICd7fSc7XHJcblxyXG4gICAgICAgIGVycm9yKCdBIHByb3BzIG9iamVjdCBjb250YWluaW5nIGEgXCJrZXlcIiBwcm9wIGlzIGJlaW5nIHNwcmVhZCBpbnRvIEpTWDpcXG4nICsgJyAgbGV0IHByb3BzID0gJXM7XFxuJyArICcgIDwlcyB7Li4ucHJvcHN9IC8+XFxuJyArICdSZWFjdCBrZXlzIG11c3QgYmUgcGFzc2VkIGRpcmVjdGx5IHRvIEpTWCB3aXRob3V0IHVzaW5nIHNwcmVhZDpcXG4nICsgJyAgbGV0IHByb3BzID0gJXM7XFxuJyArICcgIDwlcyBrZXk9e3NvbWVLZXl9IHsuLi5wcm9wc30gLz4nLCBiZWZvcmVFeGFtcGxlLCBjb21wb25lbnROYW1lLCBhZnRlckV4YW1wbGUsIGNvbXBvbmVudE5hbWUpO1xyXG5cclxuICAgICAgICBkaWRXYXJuQWJvdXRLZXlTcHJlYWRbY29tcG9uZW50TmFtZSArIGJlZm9yZUV4YW1wbGVdID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSB7XHJcbiAgICAgIHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhlbGVtZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlbGVtZW50O1xyXG4gIH1cclxufSAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGV4aXN0IHRvIHN0aWxsIGdldCBjaGlsZCB3YXJuaW5ncyBpbiBkZXZcclxuLy8gZXZlbiB3aXRoIHRoZSBwcm9kIHRyYW5zZm9ybS4gVGhpcyBtZWFucyB0aGF0IGpzeERFViBpcyBwdXJlbHlcclxuLy8gb3B0LWluIGJlaGF2aW9yIGZvciBiZXR0ZXIgbWVzc2FnZXMgYnV0IHRoYXQgd2Ugd29uJ3Qgc3RvcFxyXG4vLyBnaXZpbmcgeW91IHdhcm5pbmdzIGlmIHlvdSB1c2UgcHJvZHVjdGlvbiBhcGlzLlxyXG5cclxuZnVuY3Rpb24ganN4V2l0aFZhbGlkYXRpb25TdGF0aWModHlwZSwgcHJvcHMsIGtleSkge1xyXG4gIHtcclxuICAgIHJldHVybiBqc3hXaXRoVmFsaWRhdGlvbih0eXBlLCBwcm9wcywga2V5LCB0cnVlKTtcclxuICB9XHJcbn1cclxuZnVuY3Rpb24ganN4V2l0aFZhbGlkYXRpb25EeW5hbWljKHR5cGUsIHByb3BzLCBrZXkpIHtcclxuICB7XHJcbiAgICByZXR1cm4ganN4V2l0aFZhbGlkYXRpb24odHlwZSwgcHJvcHMsIGtleSwgZmFsc2UpO1xyXG4gIH1cclxufVxyXG5cclxudmFyIGpzeCA9IGpzeFdpdGhWYWxpZGF0aW9uRHluYW1pYyA7IC8vIHdlIG1heSB3YW50IHRvIHNwZWNpYWwgY2FzZSBqc3hzIGludGVybmFsbHkgdG8gdGFrZSBhZHZhbnRhZ2Ugb2Ygc3RhdGljIGNoaWxkcmVuLlxyXG4vLyBmb3Igbm93IHdlIGNhbiBzaGlwIGlkZW50aWNhbCBwcm9kIGZ1bmN0aW9uc1xyXG5cclxudmFyIGpzeHMgPSBqc3hXaXRoVmFsaWRhdGlvblN0YXRpYyA7XHJcblxyXG5leHBvcnRzLkZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcclxuZXhwb3J0cy5qc3ggPSBqc3g7XHJcbmV4cG9ydHMuanN4cyA9IGpzeHM7XHJcbiAgfSkoKTtcclxufVxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-runtime.development.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/react/jsx-dev-runtime.js ***!
|
||
\******************************************************************/
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\r\n\r\nif (false) {} else {\r\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\");\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LWRldi1ydW50aW1lLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSxJQUFJLEtBQXFDLEVBQUUsRUFFMUMsQ0FBQztBQUNGLEVBQUUsOExBQXNFO0FBQ3hFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LWRldi1ydW50aW1lLmpzPzdmYmMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xyXG5cclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcclxuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5wcm9kdWN0aW9uLm1pbi5qcycpO1xyXG59IGVsc2Uge1xyXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzJyk7XHJcbn1cclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/react/jsx-runtime.js ***!
|
||
\**************************************************************/
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("\r\n\r\nif (false) {} else {\r\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-runtime.development.js */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-runtime.development.js\");\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSxzTEFBa0U7QUFDcEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9qc3gtcnVudGltZS5qcz84YjdmIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcclxuXHJcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XHJcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtcnVudGltZS5wcm9kdWN0aW9uLm1pbi5qcycpO1xyXG59IGVsc2Uge1xyXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanMnKTtcclxufVxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/link.js":
|
||
/*!***********************************!*\
|
||
!*** ./node_modules/next/link.js ***!
|
||
\***********************************/
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
eval(__webpack_require__.ts("module.exports = __webpack_require__(/*! ./dist/client/link */ \"(app-pages-browser)/./node_modules/next/dist/client/link.js\")\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2xpbmsuanMiLCJtYXBwaW5ncyI6IkFBQUEsNkhBQThDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2xpbmsuanM/NmYyYSJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZGlzdC9jbGllbnQvbGluaycpXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/link.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/@floating-ui/core/dist/floating-ui.core.mjs ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ arrow: function() { return /* binding */ arrow; },\n/* harmony export */ autoPlacement: function() { return /* binding */ autoPlacement; },\n/* harmony export */ computePosition: function() { return /* binding */ computePosition; },\n/* harmony export */ detectOverflow: function() { return /* binding */ detectOverflow; },\n/* harmony export */ flip: function() { return /* binding */ flip; },\n/* harmony export */ hide: function() { return /* binding */ hide; },\n/* harmony export */ inline: function() { return /* binding */ inline; },\n/* harmony export */ limitShift: function() { return /* binding */ limitShift; },\n/* harmony export */ offset: function() { return /* binding */ offset; },\n/* harmony export */ rectToClientRect: function() { return /* reexport safe */ _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect; },\n/* harmony export */ shift: function() { return /* binding */ shift; },\n/* harmony export */ size: function() { return /* binding */ size; }\n/* harmony export */ });\n/* harmony import */ var _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/utils */ \"(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\");\n\r\n\r\n\r\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\r\n let {\r\n reference,\r\n floating\r\n } = _ref;\r\n const sideAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement);\r\n const alignmentAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentAxis)(placement);\r\n const alignLength = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAxisLength)(alignmentAxis);\r\n const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\r\n const isVertical = sideAxis === 'y';\r\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\r\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\r\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\r\n let coords;\r\n switch (side) {\r\n case 'top':\r\n coords = {\r\n x: commonX,\r\n y: reference.y - floating.height\r\n };\r\n break;\r\n case 'bottom':\r\n coords = {\r\n x: commonX,\r\n y: reference.y + reference.height\r\n };\r\n break;\r\n case 'right':\r\n coords = {\r\n x: reference.x + reference.width,\r\n y: commonY\r\n };\r\n break;\r\n case 'left':\r\n coords = {\r\n x: reference.x - floating.width,\r\n y: commonY\r\n };\r\n break;\r\n default:\r\n coords = {\r\n x: reference.x,\r\n y: reference.y\r\n };\r\n }\r\n switch ((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement)) {\r\n case 'start':\r\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\r\n break;\r\n case 'end':\r\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\r\n break;\r\n }\r\n return coords;\r\n}\r\n\r\n/**\r\n * Computes the `x` and `y` coordinates that will place the floating element\r\n * next to a given reference element.\r\n *\r\n * This export does not have any `platform` interface logic. You will need to\r\n * write one for the platform you are using Floating UI with.\r\n */\r\nconst computePosition = async (reference, floating, config) => {\r\n const {\r\n placement = 'bottom',\r\n strategy = 'absolute',\r\n middleware = [],\r\n platform\r\n } = config;\r\n const validMiddleware = middleware.filter(Boolean);\r\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\r\n let rects = await platform.getElementRects({\r\n reference,\r\n floating,\r\n strategy\r\n });\r\n let {\r\n x,\r\n y\r\n } = computeCoordsFromPlacement(rects, placement, rtl);\r\n let statefulPlacement = placement;\r\n let middlewareData = {};\r\n let resetCount = 0;\r\n for (let i = 0; i < validMiddleware.length; i++) {\r\n const {\r\n name,\r\n fn\r\n } = validMiddleware[i];\r\n const {\r\n x: nextX,\r\n y: nextY,\r\n data,\r\n reset\r\n } = await fn({\r\n x,\r\n y,\r\n initialPlacement: placement,\r\n placement: statefulPlacement,\r\n strategy,\r\n middlewareData,\r\n rects,\r\n platform,\r\n elements: {\r\n reference,\r\n floating\r\n }\r\n });\r\n x = nextX != null ? nextX : x;\r\n y = nextY != null ? nextY : y;\r\n middlewareData = {\r\n ...middlewareData,\r\n [name]: {\r\n ...middlewareData[name],\r\n ...data\r\n }\r\n };\r\n if (reset && resetCount <= 50) {\r\n resetCount++;\r\n if (typeof reset === 'object') {\r\n if (reset.placement) {\r\n statefulPlacement = reset.placement;\r\n }\r\n if (reset.rects) {\r\n rects = reset.rects === true ? await platform.getElementRects({\r\n reference,\r\n floating,\r\n strategy\r\n }) : reset.rects;\r\n }\r\n ({\r\n x,\r\n y\r\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\r\n }\r\n i = -1;\r\n }\r\n }\r\n return {\r\n x,\r\n y,\r\n placement: statefulPlacement,\r\n strategy,\r\n middlewareData\r\n };\r\n};\r\n\r\n/**\r\n * Resolves with an object of overflow side offsets that determine how much the\r\n * element is overflowing a given clipping boundary on each side.\r\n * - positive = overflowing the boundary by that number of pixels\r\n * - negative = how many pixels left before it will overflow\r\n * - 0 = lies flush with the boundary\r\n * @see https://floating-ui.com/docs/detectOverflow\r\n */\r\nasync function detectOverflow(state, options) {\r\n var _await$platform$isEle;\r\n if (options === void 0) {\r\n options = {};\r\n }\r\n const {\r\n x,\r\n y,\r\n platform,\r\n rects,\r\n elements,\r\n strategy\r\n } = state;\r\n const {\r\n boundary = 'clippingAncestors',\r\n rootBoundary = 'viewport',\r\n elementContext = 'floating',\r\n altBoundary = false,\r\n padding = 0\r\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\r\n const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);\r\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\r\n const element = elements[altBoundary ? altContext : elementContext];\r\n const clippingClientRect = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(await platform.getClippingRect({\r\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\r\n boundary,\r\n rootBoundary,\r\n strategy\r\n }));\r\n const rect = elementContext === 'floating' ? {\r\n x,\r\n y,\r\n width: rects.floating.width,\r\n height: rects.floating.height\r\n } : rects.reference;\r\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\r\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\r\n x: 1,\r\n y: 1\r\n } : {\r\n x: 1,\r\n y: 1\r\n };\r\n const elementClientRect = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\r\n elements,\r\n rect,\r\n offsetParent,\r\n strategy\r\n }) : rect);\r\n return {\r\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\r\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\r\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\r\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\r\n };\r\n}\r\n\r\n/**\r\n * Provides data to position an inner element of the floating element so that it\r\n * appears centered to the reference element.\r\n * @see https://floating-ui.com/docs/arrow\r\n */\r\nconst arrow = options => ({\r\n name: 'arrow',\r\n options,\r\n async fn(state) {\r\n const {\r\n x,\r\n y,\r\n placement,\r\n rects,\r\n platform,\r\n elements,\r\n middlewareData\r\n } = state;\r\n // Since `element` is required, we don't Partial<> the type.\r\n const {\r\n element,\r\n padding = 0\r\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state) || {};\r\n if (element == null) {\r\n return {};\r\n }\r\n const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);\r\n const coords = {\r\n x,\r\n y\r\n };\r\n const axis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentAxis)(placement);\r\n const length = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAxisLength)(axis);\r\n const arrowDimensions = await platform.getDimensions(element);\r\n const isYAxis = axis === 'y';\r\n const minProp = isYAxis ? 'top' : 'left';\r\n const maxProp = isYAxis ? 'bottom' : 'right';\r\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\r\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\r\n const startDiff = coords[axis] - rects.reference[axis];\r\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\r\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\r\n\r\n // DOM platform can return `window` as the `offsetParent`.\r\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\r\n clientSize = elements.floating[clientProp] || rects.floating[length];\r\n }\r\n const centerToReference = endDiff / 2 - startDiff / 2;\r\n\r\n // If the padding is large enough that it causes the arrow to no longer be\r\n // centered, modify the padding so that it is centered.\r\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\r\n const minPadding = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(paddingObject[minProp], largestPossiblePadding);\r\n const maxPadding = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(paddingObject[maxProp], largestPossiblePadding);\r\n\r\n // Make sure the arrow doesn't overflow the floating element if the center\r\n // point is outside the floating element's bounds.\r\n const min$1 = minPadding;\r\n const max = clientSize - arrowDimensions[length] - maxPadding;\r\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\r\n const offset = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min$1, center, max);\r\n\r\n // If the reference is small enough that the arrow's padding causes it to\r\n // to point to nothing for an aligned placement, adjust the offset of the\r\n // floating element itself. To ensure `shift()` continues to take action,\r\n // a single reset is performed when this is true.\r\n const shouldAddOffset = !middlewareData.arrow && (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\r\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\r\n return {\r\n [axis]: coords[axis] + alignmentOffset,\r\n data: {\r\n [axis]: offset,\r\n centerOffset: center - offset - alignmentOffset,\r\n ...(shouldAddOffset && {\r\n alignmentOffset\r\n })\r\n },\r\n reset: shouldAddOffset\r\n };\r\n }\r\n});\r\n\r\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\r\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) === alignment), ...allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) !== alignment)] : allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === placement);\r\n return allowedPlacementsSortedByAlignment.filter(placement => {\r\n if (alignment) {\r\n return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) === alignment || (autoAlignment ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAlignmentPlacement)(placement) !== placement : false);\r\n }\r\n return true;\r\n });\r\n}\r\n/**\r\n * Optimizes the visibility of the floating element by choosing the placement\r\n * that has the most space available automatically, without needing to specify a\r\n * preferred placement. Alternative to `flip`.\r\n * @see https://floating-ui.com/docs/autoPlacement\r\n */\r\nconst autoPlacement = function (options) {\r\n if (options === void 0) {\r\n options = {};\r\n }\r\n return {\r\n name: 'autoPlacement',\r\n options,\r\n async fn(state) {\r\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\r\n const {\r\n rects,\r\n middlewareData,\r\n placement,\r\n platform,\r\n elements\r\n } = state;\r\n const {\r\n crossAxis = false,\r\n alignment,\r\n allowedPlacements = _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.placements,\r\n autoAlignment = true,\r\n ...detectOverflowOptions\r\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\r\n const placements$1 = alignment !== undefined || allowedPlacements === _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\r\n const overflow = await detectOverflow(state, detectOverflowOptions);\r\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\r\n const currentPlacement = placements$1[currentIndex];\r\n if (currentPlacement == null) {\r\n return {};\r\n }\r\n const alignmentSides = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentSides)(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\r\n\r\n // Make `computeCoords` start from the right place.\r\n if (placement !== currentPlacement) {\r\n return {\r\n reset: {\r\n placement: placements$1[0]\r\n }\r\n };\r\n }\r\n const currentOverflows = [overflow[(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\r\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\r\n placement: currentPlacement,\r\n overflows: currentOverflows\r\n }];\r\n const nextPlacement = placements$1[currentIndex + 1];\r\n\r\n // There are more placements to check.\r\n if (nextPlacement) {\r\n return {\r\n data: {\r\n index: currentIndex + 1,\r\n overflows: allOverflows\r\n },\r\n reset: {\r\n placement: nextPlacement\r\n }\r\n };\r\n }\r\n const placementsSortedByMostSpace = allOverflows.map(d => {\r\n const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(d.placement);\r\n return [d.placement, alignment && crossAxis ?\r\n // Check along the mainAxis and main crossAxis side.\r\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\r\n // Check only the mainAxis.\r\n d.overflows[0], d.overflows];\r\n }).sort((a, b) => a[1] - b[1]);\r\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\r\n // Aligned placements should not check their opposite crossAxis\r\n // side.\r\n (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(d[0]) ? 2 : 3).every(v => v <= 0));\r\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\r\n if (resetPlacement !== placement) {\r\n return {\r\n data: {\r\n index: currentIndex + 1,\r\n overflows: allOverflows\r\n },\r\n reset: {\r\n placement: resetPlacement\r\n }\r\n };\r\n }\r\n return {};\r\n }\r\n };\r\n};\r\n\r\n/**\r\n * Optimizes the visibility of the floating element by flipping the `placement`\r\n * in order to keep it in view when the preferred placement(s) will overflow the\r\n * clipping boundary. Alternative to `autoPlacement`.\r\n * @see https://floating-ui.com/docs/flip\r\n */\r\nconst flip = function (options) {\r\n if (options === void 0) {\r\n options = {};\r\n }\r\n return {\r\n name: 'flip',\r\n options,\r\n async fn(state) {\r\n var _middlewareData$arrow, _middlewareData$flip;\r\n const {\r\n placement,\r\n middlewareData,\r\n rects,\r\n initialPlacement,\r\n platform,\r\n elements\r\n } = state;\r\n const {\r\n mainAxis: checkMainAxis = true,\r\n crossAxis: checkCrossAxis = true,\r\n fallbackPlacements: specifiedFallbackPlacements,\r\n fallbackStrategy = 'bestFit',\r\n fallbackAxisSideDirection = 'none',\r\n flipAlignment = true,\r\n ...detectOverflowOptions\r\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\r\n\r\n // If a reset by the arrow was caused due to an alignment offset being\r\n // added, we should skip any logic now since `flip()` has already done its\r\n // work.\r\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\r\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\r\n return {};\r\n }\r\n const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\r\n const initialSideAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(initialPlacement);\r\n const isBasePlacement = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(initialPlacement) === initialPlacement;\r\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\r\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositePlacement)(initialPlacement)] : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getExpandedPlacements)(initialPlacement));\r\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\r\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\r\n fallbackPlacements.push(...(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxisPlacements)(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\r\n }\r\n const placements = [initialPlacement, ...fallbackPlacements];\r\n const overflow = await detectOverflow(state, detectOverflowOptions);\r\n const overflows = [];\r\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\r\n if (checkMainAxis) {\r\n overflows.push(overflow[side]);\r\n }\r\n if (checkCrossAxis) {\r\n const sides = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentSides)(placement, rects, rtl);\r\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\r\n }\r\n overflowsData = [...overflowsData, {\r\n placement,\r\n overflows\r\n }];\r\n\r\n // One or more sides is overflowing.\r\n if (!overflows.every(side => side <= 0)) {\r\n var _middlewareData$flip2, _overflowsData$filter;\r\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\r\n const nextPlacement = placements[nextIndex];\r\n if (nextPlacement) {\r\n // Try next placement and re-run the lifecycle.\r\n return {\r\n data: {\r\n index: nextIndex,\r\n overflows: overflowsData\r\n },\r\n reset: {\r\n placement: nextPlacement\r\n }\r\n };\r\n }\r\n\r\n // First, find the candidates that fit on the mainAxis side of overflow,\r\n // then find the placement that fits the best on the main crossAxis side.\r\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\r\n\r\n // Otherwise fallback.\r\n if (!resetPlacement) {\r\n switch (fallbackStrategy) {\r\n case 'bestFit':\r\n {\r\n var _overflowsData$filter2;\r\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\r\n if (hasFallbackAxisSideDirection) {\r\n const currentSideAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(d.placement);\r\n return currentSideAxis === initialSideAxis ||\r\n // Create a bias to the `y` side axis due to horizontal\r\n // reading directions favoring greater width.\r\n currentSideAxis === 'y';\r\n }\r\n return true;\r\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\r\n if (placement) {\r\n resetPlacement = placement;\r\n }\r\n break;\r\n }\r\n case 'initialPlacement':\r\n resetPlacement = initialPlacement;\r\n break;\r\n }\r\n }\r\n if (placement !== resetPlacement) {\r\n return {\r\n reset: {\r\n placement: resetPlacement\r\n }\r\n };\r\n }\r\n }\r\n return {};\r\n }\r\n };\r\n};\r\n\r\nfunction getSideOffsets(overflow, rect) {\r\n return {\r\n top: overflow.top - rect.height,\r\n right: overflow.right - rect.width,\r\n bottom: overflow.bottom - rect.height,\r\n left: overflow.left - rect.width\r\n };\r\n}\r\nfunction isAnySideFullyClipped(overflow) {\r\n return _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.sides.some(side => overflow[side] >= 0);\r\n}\r\n/**\r\n * Provides data to hide the floating element in applicable situations, such as\r\n * when it is not in the same clipping context as the reference element.\r\n * @see https://floating-ui.com/docs/hide\r\n */\r\nconst hide = function (options) {\r\n if (options === void 0) {\r\n options = {};\r\n }\r\n return {\r\n name: 'hide',\r\n options,\r\n async fn(state) {\r\n const {\r\n rects\r\n } = state;\r\n const {\r\n strategy = 'referenceHidden',\r\n ...detectOverflowOptions\r\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\r\n switch (strategy) {\r\n case 'referenceHidden':\r\n {\r\n const overflow = await detectOverflow(state, {\r\n ...detectOverflowOptions,\r\n elementContext: 'reference'\r\n });\r\n const offsets = getSideOffsets(overflow, rects.reference);\r\n return {\r\n data: {\r\n referenceHiddenOffsets: offsets,\r\n referenceHidden: isAnySideFullyClipped(offsets)\r\n }\r\n };\r\n }\r\n case 'escaped':\r\n {\r\n const overflow = await detectOverflow(state, {\r\n ...detectOverflowOptions,\r\n altBoundary: true\r\n });\r\n const offsets = getSideOffsets(overflow, rects.floating);\r\n return {\r\n data: {\r\n escapedOffsets: offsets,\r\n escaped: isAnySideFullyClipped(offsets)\r\n }\r\n };\r\n }\r\n default:\r\n {\r\n return {};\r\n }\r\n }\r\n }\r\n };\r\n};\r\n\r\nfunction getBoundingRect(rects) {\r\n const minX = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...rects.map(rect => rect.left));\r\n const minY = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...rects.map(rect => rect.top));\r\n const maxX = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...rects.map(rect => rect.right));\r\n const maxY = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...rects.map(rect => rect.bottom));\r\n return {\r\n x: minX,\r\n y: minY,\r\n width: maxX - minX,\r\n height: maxY - minY\r\n };\r\n}\r\nfunction getRectsByLine(rects) {\r\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\r\n const groups = [];\r\n let prevRect = null;\r\n for (let i = 0; i < sortedRects.length; i++) {\r\n const rect = sortedRects[i];\r\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\r\n groups.push([rect]);\r\n } else {\r\n groups[groups.length - 1].push(rect);\r\n }\r\n prevRect = rect;\r\n }\r\n return groups.map(rect => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(getBoundingRect(rect)));\r\n}\r\n/**\r\n * Provides improved positioning for inline reference elements that can span\r\n * over multiple lines, such as hyperlinks or range selections.\r\n * @see https://floating-ui.com/docs/inline\r\n */\r\nconst inline = function (options) {\r\n if (options === void 0) {\r\n options = {};\r\n }\r\n return {\r\n name: 'inline',\r\n options,\r\n async fn(state) {\r\n const {\r\n placement,\r\n elements,\r\n rects,\r\n platform,\r\n strategy\r\n } = state;\r\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\r\n // ClientRect's bounds, despite the event listener being triggered. A\r\n // padding of 2 seems to handle this issue.\r\n const {\r\n padding = 2,\r\n x,\r\n y\r\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\r\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\r\n const clientRects = getRectsByLine(nativeClientRects);\r\n const fallback = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(getBoundingRect(nativeClientRects));\r\n const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);\r\n function getBoundingClientRect() {\r\n // There are two rects and they are disjoined.\r\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\r\n // Find the first rect in which the point is fully inside.\r\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\r\n }\r\n\r\n // There are 2 or more connected rects.\r\n if (clientRects.length >= 2) {\r\n if ((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y') {\r\n const firstRect = clientRects[0];\r\n const lastRect = clientRects[clientRects.length - 1];\r\n const isTop = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === 'top';\r\n const top = firstRect.top;\r\n const bottom = lastRect.bottom;\r\n const left = isTop ? firstRect.left : lastRect.left;\r\n const right = isTop ? firstRect.right : lastRect.right;\r\n const width = right - left;\r\n const height = bottom - top;\r\n return {\r\n top,\r\n bottom,\r\n left,\r\n right,\r\n width,\r\n height,\r\n x: left,\r\n y: top\r\n };\r\n }\r\n const isLeftSide = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === 'left';\r\n const maxRight = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...clientRects.map(rect => rect.right));\r\n const minLeft = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...clientRects.map(rect => rect.left));\r\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\r\n const top = measureRects[0].top;\r\n const bottom = measureRects[measureRects.length - 1].bottom;\r\n const left = minLeft;\r\n const right = maxRight;\r\n const width = right - left;\r\n const height = bottom - top;\r\n return {\r\n top,\r\n bottom,\r\n left,\r\n right,\r\n width,\r\n height,\r\n x: left,\r\n y: top\r\n };\r\n }\r\n return fallback;\r\n }\r\n const resetRects = await platform.getElementRects({\r\n reference: {\r\n getBoundingClientRect\r\n },\r\n floating: elements.floating,\r\n strategy\r\n });\r\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\r\n return {\r\n reset: {\r\n rects: resetRects\r\n }\r\n };\r\n }\r\n return {};\r\n }\r\n };\r\n};\r\n\r\n// For type backwards-compatibility, the `OffsetOptions` type was also\r\n// Derivable.\r\n\r\nasync function convertValueToCoords(state, options) {\r\n const {\r\n placement,\r\n platform,\r\n elements\r\n } = state;\r\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\r\n const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\r\n const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement);\r\n const isVertical = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y';\r\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\r\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\r\n const rawValue = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\r\n\r\n // eslint-disable-next-line prefer-const\r\n let {\r\n mainAxis,\r\n crossAxis,\r\n alignmentAxis\r\n } = typeof rawValue === 'number' ? {\r\n mainAxis: rawValue,\r\n crossAxis: 0,\r\n alignmentAxis: null\r\n } : {\r\n mainAxis: rawValue.mainAxis || 0,\r\n crossAxis: rawValue.crossAxis || 0,\r\n alignmentAxis: rawValue.alignmentAxis\r\n };\r\n if (alignment && typeof alignmentAxis === 'number') {\r\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\r\n }\r\n return isVertical ? {\r\n x: crossAxis * crossAxisMulti,\r\n y: mainAxis * mainAxisMulti\r\n } : {\r\n x: mainAxis * mainAxisMulti,\r\n y: crossAxis * crossAxisMulti\r\n };\r\n}\r\n\r\n/**\r\n * Modifies the placement by translating the floating element along the\r\n * specified axes.\r\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\r\n * object may be passed.\r\n * @see https://floating-ui.com/docs/offset\r\n */\r\nconst offset = function (options) {\r\n if (options === void 0) {\r\n options = 0;\r\n }\r\n return {\r\n name: 'offset',\r\n options,\r\n async fn(state) {\r\n var _middlewareData$offse, _middlewareData$arrow;\r\n const {\r\n x,\r\n y,\r\n placement,\r\n middlewareData\r\n } = state;\r\n const diffCoords = await convertValueToCoords(state, options);\r\n\r\n // If the placement is the same and the arrow caused an alignment offset\r\n // then we don't need to change the positioning coordinates.\r\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\r\n return {};\r\n }\r\n return {\r\n x: x + diffCoords.x,\r\n y: y + diffCoords.y,\r\n data: {\r\n ...diffCoords,\r\n placement\r\n }\r\n };\r\n }\r\n };\r\n};\r\n\r\n/**\r\n * Optimizes the visibility of the floating element by shifting it in order to\r\n * keep it in view when it will overflow the clipping boundary.\r\n * @see https://floating-ui.com/docs/shift\r\n */\r\nconst shift = function (options) {\r\n if (options === void 0) {\r\n options = {};\r\n }\r\n return {\r\n name: 'shift',\r\n options,\r\n async fn(state) {\r\n const {\r\n x,\r\n y,\r\n placement\r\n } = state;\r\n const {\r\n mainAxis: checkMainAxis = true,\r\n crossAxis: checkCrossAxis = false,\r\n limiter = {\r\n fn: _ref => {\r\n let {\r\n x,\r\n y\r\n } = _ref;\r\n return {\r\n x,\r\n y\r\n };\r\n }\r\n },\r\n ...detectOverflowOptions\r\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\r\n const coords = {\r\n x,\r\n y\r\n };\r\n const overflow = await detectOverflow(state, detectOverflowOptions);\r\n const crossAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement));\r\n const mainAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxis)(crossAxis);\r\n let mainAxisCoord = coords[mainAxis];\r\n let crossAxisCoord = coords[crossAxis];\r\n if (checkMainAxis) {\r\n const minSide = mainAxis === 'y' ? 'top' : 'left';\r\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\r\n const min = mainAxisCoord + overflow[minSide];\r\n const max = mainAxisCoord - overflow[maxSide];\r\n mainAxisCoord = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min, mainAxisCoord, max);\r\n }\r\n if (checkCrossAxis) {\r\n const minSide = crossAxis === 'y' ? 'top' : 'left';\r\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\r\n const min = crossAxisCoord + overflow[minSide];\r\n const max = crossAxisCoord - overflow[maxSide];\r\n crossAxisCoord = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min, crossAxisCoord, max);\r\n }\r\n const limitedCoords = limiter.fn({\r\n ...state,\r\n [mainAxis]: mainAxisCoord,\r\n [crossAxis]: crossAxisCoord\r\n });\r\n return {\r\n ...limitedCoords,\r\n data: {\r\n x: limitedCoords.x - x,\r\n y: limitedCoords.y - y,\r\n enabled: {\r\n [mainAxis]: checkMainAxis,\r\n [crossAxis]: checkCrossAxis\r\n }\r\n }\r\n };\r\n }\r\n };\r\n};\r\n/**\r\n * Built-in `limiter` that will stop `shift()` at a certain point.\r\n */\r\nconst limitShift = function (options) {\r\n if (options === void 0) {\r\n options = {};\r\n }\r\n return {\r\n options,\r\n fn(state) {\r\n const {\r\n x,\r\n y,\r\n placement,\r\n rects,\r\n middlewareData\r\n } = state;\r\n const {\r\n offset = 0,\r\n mainAxis: checkMainAxis = true,\r\n crossAxis: checkCrossAxis = true\r\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\r\n const coords = {\r\n x,\r\n y\r\n };\r\n const crossAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement);\r\n const mainAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxis)(crossAxis);\r\n let mainAxisCoord = coords[mainAxis];\r\n let crossAxisCoord = coords[crossAxis];\r\n const rawOffset = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(offset, state);\r\n const computedOffset = typeof rawOffset === 'number' ? {\r\n mainAxis: rawOffset,\r\n crossAxis: 0\r\n } : {\r\n mainAxis: 0,\r\n crossAxis: 0,\r\n ...rawOffset\r\n };\r\n if (checkMainAxis) {\r\n const len = mainAxis === 'y' ? 'height' : 'width';\r\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\r\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\r\n if (mainAxisCoord < limitMin) {\r\n mainAxisCoord = limitMin;\r\n } else if (mainAxisCoord > limitMax) {\r\n mainAxisCoord = limitMax;\r\n }\r\n }\r\n if (checkCrossAxis) {\r\n var _middlewareData$offse, _middlewareData$offse2;\r\n const len = mainAxis === 'y' ? 'width' : 'height';\r\n const isOriginSide = ['top', 'left'].includes((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement));\r\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\r\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\r\n if (crossAxisCoord < limitMin) {\r\n crossAxisCoord = limitMin;\r\n } else if (crossAxisCoord > limitMax) {\r\n crossAxisCoord = limitMax;\r\n }\r\n }\r\n return {\r\n [mainAxis]: mainAxisCoord,\r\n [crossAxis]: crossAxisCoord\r\n };\r\n }\r\n };\r\n};\r\n\r\n/**\r\n * Provides data that allows you to change the size of the floating element —\r\n * for instance, prevent it from overflowing the clipping boundary or match the\r\n * width of the reference element.\r\n * @see https://floating-ui.com/docs/size\r\n */\r\nconst size = function (options) {\r\n if (options === void 0) {\r\n options = {};\r\n }\r\n return {\r\n name: 'size',\r\n options,\r\n async fn(state) {\r\n var _state$middlewareData, _state$middlewareData2;\r\n const {\r\n placement,\r\n rects,\r\n platform,\r\n elements\r\n } = state;\r\n const {\r\n apply = () => {},\r\n ...detectOverflowOptions\r\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\r\n const overflow = await detectOverflow(state, detectOverflowOptions);\r\n const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\r\n const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement);\r\n const isYAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y';\r\n const {\r\n width,\r\n height\r\n } = rects.floating;\r\n let heightSide;\r\n let widthSide;\r\n if (side === 'top' || side === 'bottom') {\r\n heightSide = side;\r\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\r\n } else {\r\n widthSide = side;\r\n heightSide = alignment === 'end' ? 'top' : 'bottom';\r\n }\r\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\r\n const maximumClippingWidth = width - overflow.left - overflow.right;\r\n const overflowAvailableHeight = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(height - overflow[heightSide], maximumClippingHeight);\r\n const overflowAvailableWidth = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(width - overflow[widthSide], maximumClippingWidth);\r\n const noShift = !state.middlewareData.shift;\r\n let availableHeight = overflowAvailableHeight;\r\n let availableWidth = overflowAvailableWidth;\r\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\r\n availableWidth = maximumClippingWidth;\r\n }\r\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\r\n availableHeight = maximumClippingHeight;\r\n }\r\n if (noShift && !alignment) {\r\n const xMin = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.left, 0);\r\n const xMax = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.right, 0);\r\n const yMin = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.top, 0);\r\n const yMax = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.bottom, 0);\r\n if (isYAxis) {\r\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.left, overflow.right));\r\n } else {\r\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.top, overflow.bottom));\r\n }\r\n }\r\n await apply({\r\n ...state,\r\n availableWidth,\r\n availableHeight\r\n });\r\n const nextDimensions = await platform.getDimensions(elements.floating);\r\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\r\n return {\r\n reset: {\r\n rects: true\r\n }\r\n };\r\n }\r\n return {};\r\n }\r\n };\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvY29yZS9kaXN0L2Zsb2F0aW5nLXVpLmNvcmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBc1U7QUFDaFI7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSixtQkFBbUIsK0RBQVc7QUFDOUIsd0JBQXdCLG9FQUFnQjtBQUN4QyxzQkFBc0IsaUVBQWE7QUFDbkMsZUFBZSwyREFBTztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLGdFQUFZO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsNEJBQTRCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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LEVBQUUsNERBQVE7QUFDbEI7QUFDQSxtQkFBbUIsMkRBQU87QUFDMUIsd0JBQXdCLGdFQUFZO0FBQ3BDLHNCQUFzQiwrREFBVztBQUNqQztBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLHVEQUFHO0FBQ3pDLHFDQUFxQyx1REFBRztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQix1REFBRztBQUN4QixxQkFBcUIsdURBQUc7QUFDeEIscUJBQXFCLHVEQUFHO0FBQ3hCLHFCQUFxQix1REFBRztBQUN4QjtBQUNBLGlGQUFpRix1REFBRztBQUNwRixVQUFVO0FBQ1YsbUZBQW1GLHVEQUFHO0FBQ3RGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNzSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL2NvcmUvZGlzdC9mbG9hdGluZy11aS5jb3JlLm1qcz84YjMyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFNpZGVBeGlzLCBnZXRBbGlnbm1lbnRBeGlzLCBnZXRBeGlzTGVuZ3RoLCBnZXRTaWRlLCBnZXRBbGlnbm1lbnQsIGV2YWx1YXRlLCBnZXRQYWRkaW5nT2JqZWN0LCByZWN0VG9DbGllbnRSZWN0LCBtaW4sIGNsYW1wLCBwbGFjZW1lbnRzLCBnZXRBbGlnbm1lbnRTaWRlcywgZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQsIGdldE9wcG9zaXRlUGxhY2VtZW50LCBnZXRFeHBhbmRlZFBsYWNlbWVudHMsIGdldE9wcG9zaXRlQXhpc1BsYWNlbWVudHMsIHNpZGVzLCBtYXgsIGdldE9wcG9zaXRlQXhpcyB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscyc7XHJcbmV4cG9ydCB7IHJlY3RUb0NsaWVudFJlY3QgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMnO1xyXG5cclxuZnVuY3Rpb24gY29tcHV0ZUNvb3Jkc0Zyb21QbGFjZW1lbnQoX3JlZiwgcGxhY2VtZW50LCBydGwpIHtcclxuICBsZXQge1xyXG4gICAgcmVmZXJlbmNlLFxyXG4gICAgZmxvYXRpbmdcclxuICB9ID0gX3JlZjtcclxuICBjb25zdCBzaWRlQXhpcyA9IGdldFNpZGVBeGlzKHBsYWNlbWVudCk7XHJcbiAgY29uc3QgYWxpZ25tZW50QXhpcyA9IGdldEFsaWdubWVudEF4aXMocGxhY2VtZW50KTtcclxuICBjb25zdCBhbGlnbkxlbmd0aCA9IGdldEF4aXNMZW5ndGgoYWxpZ25tZW50QXhpcyk7XHJcbiAgY29uc3Qgc2lkZSA9IGdldFNpZGUocGxhY2VtZW50KTtcclxuICBjb25zdCBpc1ZlcnRpY2FsID0gc2lkZUF4aXMgPT09ICd5JztcclxuICBjb25zdCBjb21tb25YID0gcmVmZXJlbmNlLnggKyByZWZlcmVuY2Uud2lkdGggLyAyIC0gZmxvYXRpbmcud2lkdGggLyAyO1xyXG4gIGNvbnN0IGNvbW1vblkgPSByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHQgLyAyIC0gZmxvYXRpbmcuaGVpZ2h0IC8gMjtcclxuICBjb25zdCBjb21tb25BbGlnbiA9IHJlZmVyZW5jZVthbGlnbkxlbmd0aF0gLyAyIC0gZmxvYXRpbmdbYWxpZ25MZW5ndGhdIC8gMjtcclxuICBsZXQgY29vcmRzO1xyXG4gIHN3aXRjaCAoc2lkZSkge1xyXG4gICAgY2FzZSAndG9wJzpcclxuICAgICAgY29vcmRzID0ge1xyXG4gICAgICAgIHg6IGNvbW1vblgsXHJcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgLSBmbG9hdGluZy5oZWlnaHRcclxuICAgICAgfTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICBjb29yZHMgPSB7XHJcbiAgICAgICAgeDogY29tbW9uWCxcclxuICAgICAgICB5OiByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHRcclxuICAgICAgfTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgIGNvb3JkcyA9IHtcclxuICAgICAgICB4OiByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCxcclxuICAgICAgICB5OiBjb21tb25ZXHJcbiAgICAgIH07XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgIGNvb3JkcyA9IHtcclxuICAgICAgICB4OiByZWZlcmVuY2UueCAtIGZsb2F0aW5nLndpZHRoLFxyXG4gICAgICAgIHk6IGNvbW1vbllcclxuICAgICAgfTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICBjb29yZHMgPSB7XHJcbiAgICAgICAgeDogcmVmZXJlbmNlLngsXHJcbiAgICAgICAgeTogcmVmZXJlbmNlLnlcclxuICAgICAgfTtcclxuICB9XHJcbiAgc3dpdGNoIChnZXRBbGlnbm1lbnQocGxhY2VtZW50KSkge1xyXG4gICAgY2FzZSAnc3RhcnQnOlxyXG4gICAgICBjb29yZHNbYWxpZ25tZW50QXhpc10gLT0gY29tbW9uQWxpZ24gKiAocnRsICYmIGlzVmVydGljYWwgPyAtMSA6IDEpO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2VuZCc6XHJcbiAgICAgIGNvb3Jkc1thbGlnbm1lbnRBeGlzXSArPSBjb21tb25BbGlnbiAqIChydGwgJiYgaXNWZXJ0aWNhbCA/IC0xIDogMSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxuICByZXR1cm4gY29vcmRzO1xyXG59XHJcblxyXG4vKipcclxuICogQ29tcHV0ZXMgdGhlIGB4YCBhbmQgYHlgIGNvb3JkaW5hdGVzIHRoYXQgd2lsbCBwbGFjZSB0aGUgZmxvYXRpbmcgZWxlbWVudFxyXG4gKiBuZXh0IHRvIGEgZ2l2ZW4gcmVmZXJlbmNlIGVsZW1lbnQuXHJcbiAqXHJcbiAqIFRoaXMgZXhwb3J0IGRvZXMgbm90IGhhdmUgYW55IGBwbGF0Zm9ybWAgaW50ZXJmYWNlIGxvZ2ljLiBZb3Ugd2lsbCBuZWVkIHRvXHJcbiAqIHdyaXRlIG9uZSBmb3IgdGhlIHBsYXRmb3JtIHlvdSBhcmUgdXNpbmcgRmxvYXRpbmcgVUkgd2l0aC5cclxuICovXHJcbmNvbnN0IGNvbXB1dGVQb3NpdGlvbiA9IGFzeW5jIChyZWZlcmVuY2UsIGZsb2F0aW5nLCBjb25maWcpID0+IHtcclxuICBjb25zdCB7XHJcbiAgICBwbGFjZW1lbnQgPSAnYm90dG9tJyxcclxuICAgIHN0cmF0ZWd5ID0gJ2Fic29sdXRlJyxcclxuICAgIG1pZGRsZXdhcmUgPSBbXSxcclxuICAgIHBsYXRmb3JtXHJcbiAgfSA9IGNvbmZpZztcclxuICBjb25zdCB2YWxpZE1pZGRsZXdhcmUgPSBtaWRkbGV3YXJlLmZpbHRlcihCb29sZWFuKTtcclxuICBjb25zdCBydGwgPSBhd2FpdCAocGxhdGZvcm0uaXNSVEwgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzUlRMKGZsb2F0aW5nKSk7XHJcbiAgbGV0IHJlY3RzID0gYXdhaXQgcGxhdGZvcm0uZ2V0RWxlbWVudFJlY3RzKHtcclxuICAgIHJlZmVyZW5jZSxcclxuICAgIGZsb2F0aW5nLFxyXG4gICAgc3RyYXRlZ3lcclxuICB9KTtcclxuICBsZXQge1xyXG4gICAgeCxcclxuICAgIHlcclxuICB9ID0gY29tcHV0ZUNvb3Jkc0Zyb21QbGFjZW1lbnQocmVjdHMsIHBsYWNlbWVudCwgcnRsKTtcclxuICBsZXQgc3RhdGVmdWxQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7XHJcbiAgbGV0IG1pZGRsZXdhcmVEYXRhID0ge307XHJcbiAgbGV0IHJlc2V0Q291bnQgPSAwO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsaWRNaWRkbGV3YXJlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIGZuXHJcbiAgICB9ID0gdmFsaWRNaWRkbGV3YXJlW2ldO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICB4OiBuZXh0WCxcclxuICAgICAgeTogbmV4dFksXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHJlc2V0XHJcbiAgICB9ID0gYXdhaXQgZm4oe1xyXG4gICAgICB4LFxyXG4gICAgICB5LFxyXG4gICAgICBpbml0aWFsUGxhY2VtZW50OiBwbGFjZW1lbnQsXHJcbiAgICAgIHBsYWNlbWVudDogc3RhdGVmdWxQbGFjZW1lbnQsXHJcbiAgICAgIHN0cmF0ZWd5LFxyXG4gICAgICBtaWRkbGV3YXJlRGF0YSxcclxuICAgICAgcmVjdHMsXHJcbiAgICAgIHBsYXRmb3JtLFxyXG4gICAgICBlbGVtZW50czoge1xyXG4gICAgICAgIHJlZmVyZW5jZSxcclxuICAgICAgICBmbG9hdGluZ1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHggPSBuZXh0WCAhPSBudWxsID8gbmV4dFggOiB4O1xyXG4gICAgeSA9IG5leHRZICE9IG51bGwgPyBuZXh0WSA6IHk7XHJcbiAgICBtaWRkbGV3YXJlRGF0YSA9IHtcclxuICAgICAgLi4ubWlkZGxld2FyZURhdGEsXHJcbiAgICAgIFtuYW1lXToge1xyXG4gICAgICAgIC4uLm1pZGRsZXdhcmVEYXRhW25hbWVdLFxyXG4gICAgICAgIC4uLmRhdGFcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmIChyZXNldCAmJiByZXNldENvdW50IDw9IDUwKSB7XHJcbiAgICAgIHJlc2V0Q291bnQrKztcclxuICAgICAgaWYgKHR5cGVvZiByZXNldCA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICBpZiAocmVzZXQucGxhY2VtZW50KSB7XHJcbiAgICAgICAgICBzdGF0ZWZ1bFBsYWNlbWVudCA9IHJlc2V0LnBsYWNlbWVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJlc2V0LnJlY3RzKSB7XHJcbiAgICAgICAgICByZWN0cyA9IHJlc2V0LnJlY3RzID09PSB0cnVlID8gYXdhaXQgcGxhdGZvcm0uZ2V0RWxlbWVudFJlY3RzKHtcclxuICAgICAgICAgICAgcmVmZXJlbmNlLFxyXG4gICAgICAgICAgICBmbG9hdGluZyxcclxuICAgICAgICAgICAgc3RyYXRlZ3lcclxuICAgICAgICAgIH0pIDogcmVzZXQucmVjdHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICh7XHJcbiAgICAgICAgICB4LFxyXG4gICAgICAgICAgeVxyXG4gICAgICAgIH0gPSBjb21wdXRlQ29vcmRzRnJvbVBsYWNlbWVudChyZWN0cywgc3RhdGVmdWxQbGFjZW1lbnQsIHJ0bCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGkgPSAtMTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIHgsXHJcbiAgICB5LFxyXG4gICAgcGxhY2VtZW50OiBzdGF0ZWZ1bFBsYWNlbWVudCxcclxuICAgIHN0cmF0ZWd5LFxyXG4gICAgbWlkZGxld2FyZURhdGFcclxuICB9O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFJlc29sdmVzIHdpdGggYW4gb2JqZWN0IG9mIG92ZXJmbG93IHNpZGUgb2Zmc2V0cyB0aGF0IGRldGVybWluZSBob3cgbXVjaCB0aGVcclxuICogZWxlbWVudCBpcyBvdmVyZmxvd2luZyBhIGdpdmVuIGNsaXBwaW5nIGJvdW5kYXJ5IG9uIGVhY2ggc2lkZS5cclxuICogLSBwb3NpdGl2ZSA9IG92ZXJmbG93aW5nIHRoZSBib3VuZGFyeSBieSB0aGF0IG51bWJlciBvZiBwaXhlbHNcclxuICogLSBuZWdhdGl2ZSA9IGhvdyBtYW55IHBpeGVscyBsZWZ0IGJlZm9yZSBpdCB3aWxsIG92ZXJmbG93XHJcbiAqIC0gMCA9IGxpZXMgZmx1c2ggd2l0aCB0aGUgYm91bmRhcnlcclxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2RldGVjdE92ZXJmbG93XHJcbiAqL1xyXG5hc3luYyBmdW5jdGlvbiBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgb3B0aW9ucykge1xyXG4gIHZhciBfYXdhaXQkcGxhdGZvcm0kaXNFbGU7XHJcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xyXG4gICAgb3B0aW9ucyA9IHt9O1xyXG4gIH1cclxuICBjb25zdCB7XHJcbiAgICB4LFxyXG4gICAgeSxcclxuICAgIHBsYXRmb3JtLFxyXG4gICAgcmVjdHMsXHJcbiAgICBlbGVtZW50cyxcclxuICAgIHN0cmF0ZWd5XHJcbiAgfSA9IHN0YXRlO1xyXG4gIGNvbnN0IHtcclxuICAgIGJvdW5kYXJ5ID0gJ2NsaXBwaW5nQW5jZXN0b3JzJyxcclxuICAgIHJvb3RCb3VuZGFyeSA9ICd2aWV3cG9ydCcsXHJcbiAgICBlbGVtZW50Q29udGV4dCA9ICdmbG9hdGluZycsXHJcbiAgICBhbHRCb3VuZGFyeSA9IGZhbHNlLFxyXG4gICAgcGFkZGluZyA9IDBcclxuICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xyXG4gIGNvbnN0IHBhZGRpbmdPYmplY3QgPSBnZXRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpO1xyXG4gIGNvbnN0IGFsdENvbnRleHQgPSBlbGVtZW50Q29udGV4dCA9PT0gJ2Zsb2F0aW5nJyA/ICdyZWZlcmVuY2UnIDogJ2Zsb2F0aW5nJztcclxuICBjb25zdCBlbGVtZW50ID0gZWxlbWVudHNbYWx0Qm91bmRhcnkgPyBhbHRDb250ZXh0IDogZWxlbWVudENvbnRleHRdO1xyXG4gIGNvbnN0IGNsaXBwaW5nQ2xpZW50UmVjdCA9IHJlY3RUb0NsaWVudFJlY3QoYXdhaXQgcGxhdGZvcm0uZ2V0Q2xpcHBpbmdSZWN0KHtcclxuICAgIGVsZW1lbnQ6ICgoX2F3YWl0JHBsYXRmb3JtJGlzRWxlID0gYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KGVsZW1lbnQpKSkgIT0gbnVsbCA/IF9hd2FpdCRwbGF0Zm9ybSRpc0VsZSA6IHRydWUpID8gZWxlbWVudCA6IGVsZW1lbnQuY29udGV4dEVsZW1lbnQgfHwgKGF3YWl0IChwbGF0Zm9ybS5nZXREb2N1bWVudEVsZW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldERvY3VtZW50RWxlbWVudChlbGVtZW50cy5mbG9hdGluZykpKSxcclxuICAgIGJvdW5kYXJ5LFxyXG4gICAgcm9vdEJvdW5kYXJ5LFxyXG4gICAgc3RyYXRlZ3lcclxuICB9KSk7XHJcbiAgY29uc3QgcmVjdCA9IGVsZW1lbnRDb250ZXh0ID09PSAnZmxvYXRpbmcnID8ge1xyXG4gICAgeCxcclxuICAgIHksXHJcbiAgICB3aWR0aDogcmVjdHMuZmxvYXRpbmcud2lkdGgsXHJcbiAgICBoZWlnaHQ6IHJlY3RzLmZsb2F0aW5nLmhlaWdodFxyXG4gIH0gOiByZWN0cy5yZWZlcmVuY2U7XHJcbiAgY29uc3Qgb2Zmc2V0UGFyZW50ID0gYXdhaXQgKHBsYXRmb3JtLmdldE9mZnNldFBhcmVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnRzLmZsb2F0aW5nKSk7XHJcbiAgY29uc3Qgb2Zmc2V0U2NhbGUgPSAoYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KG9mZnNldFBhcmVudCkpKSA/IChhd2FpdCAocGxhdGZvcm0uZ2V0U2NhbGUgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldFNjYWxlKG9mZnNldFBhcmVudCkpKSB8fCB7XHJcbiAgICB4OiAxLFxyXG4gICAgeTogMVxyXG4gIH0gOiB7XHJcbiAgICB4OiAxLFxyXG4gICAgeTogMVxyXG4gIH07XHJcbiAgY29uc3QgZWxlbWVudENsaWVudFJlY3QgPSByZWN0VG9DbGllbnRSZWN0KHBsYXRmb3JtLmNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0ID8gYXdhaXQgcGxhdGZvcm0uY29udmVydE9mZnNldFBhcmVudFJlbGF0aXZlUmVjdFRvVmlld3BvcnRSZWxhdGl2ZVJlY3Qoe1xyXG4gICAgZWxlbWVudHMsXHJcbiAgICByZWN0LFxyXG4gICAgb2Zmc2V0UGFyZW50LFxyXG4gICAgc3RyYXRlZ3lcclxuICB9KSA6IHJlY3QpO1xyXG4gIHJldHVybiB7XHJcbiAgICB0b3A6IChjbGlwcGluZ0NsaWVudFJlY3QudG9wIC0gZWxlbWVudENsaWVudFJlY3QudG9wICsgcGFkZGluZ09iamVjdC50b3ApIC8gb2Zmc2V0U2NhbGUueSxcclxuICAgIGJvdHRvbTogKGVsZW1lbnRDbGllbnRSZWN0LmJvdHRvbSAtIGNsaXBwaW5nQ2xpZW50UmVjdC5ib3R0b20gKyBwYWRkaW5nT2JqZWN0LmJvdHRvbSkgLyBvZmZzZXRTY2FsZS55LFxyXG4gICAgbGVmdDogKGNsaXBwaW5nQ2xpZW50UmVjdC5sZWZ0IC0gZWxlbWVudENsaWVudFJlY3QubGVmdCArIHBhZGRpbmdPYmplY3QubGVmdCkgLyBvZmZzZXRTY2FsZS54LFxyXG4gICAgcmlnaHQ6IChlbGVtZW50Q2xpZW50UmVjdC5yaWdodCAtIGNsaXBwaW5nQ2xpZW50UmVjdC5yaWdodCArIHBhZGRpbmdPYmplY3QucmlnaHQpIC8gb2Zmc2V0U2NhbGUueFxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGFuIGlubmVyIGVsZW1lbnQgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgc28gdGhhdCBpdFxyXG4gKiBhcHBlYXJzIGNlbnRlcmVkIHRvIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cclxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2Fycm93XHJcbiAqL1xyXG5jb25zdCBhcnJvdyA9IG9wdGlvbnMgPT4gKHtcclxuICBuYW1lOiAnYXJyb3cnLFxyXG4gIG9wdGlvbnMsXHJcbiAgYXN5bmMgZm4oc3RhdGUpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgeCxcclxuICAgICAgeSxcclxuICAgICAgcGxhY2VtZW50LFxyXG4gICAgICByZWN0cyxcclxuICAgICAgcGxhdGZvcm0sXHJcbiAgICAgIGVsZW1lbnRzLFxyXG4gICAgICBtaWRkbGV3YXJlRGF0YVxyXG4gICAgfSA9IHN0YXRlO1xyXG4gICAgLy8gU2luY2UgYGVsZW1lbnRgIGlzIHJlcXVpcmVkLCB3ZSBkb24ndCBQYXJ0aWFsPD4gdGhlIHR5cGUuXHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGVsZW1lbnQsXHJcbiAgICAgIHBhZGRpbmcgPSAwXHJcbiAgICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpIHx8IHt9O1xyXG4gICAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4ge307XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYWRkaW5nT2JqZWN0ID0gZ2V0UGFkZGluZ09iamVjdChwYWRkaW5nKTtcclxuICAgIGNvbnN0IGNvb3JkcyA9IHtcclxuICAgICAgeCxcclxuICAgICAgeVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGF4aXMgPSBnZXRBbGlnbm1lbnRBeGlzKHBsYWNlbWVudCk7XHJcbiAgICBjb25zdCBsZW5ndGggPSBnZXRBeGlzTGVuZ3RoKGF4aXMpO1xyXG4gICAgY29uc3QgYXJyb3dEaW1lbnNpb25zID0gYXdhaXQgcGxhdGZvcm0uZ2V0RGltZW5zaW9ucyhlbGVtZW50KTtcclxuICAgIGNvbnN0IGlzWUF4aXMgPSBheGlzID09PSAneSc7XHJcbiAgICBjb25zdCBtaW5Qcm9wID0gaXNZQXhpcyA/ICd0b3AnIDogJ2xlZnQnO1xyXG4gICAgY29uc3QgbWF4UHJvcCA9IGlzWUF4aXMgPyAnYm90dG9tJyA6ICdyaWdodCc7XHJcbiAgICBjb25zdCBjbGllbnRQcm9wID0gaXNZQXhpcyA/ICdjbGllbnRIZWlnaHQnIDogJ2NsaWVudFdpZHRoJztcclxuICAgIGNvbnN0IGVuZERpZmYgPSByZWN0cy5yZWZlcmVuY2VbbGVuZ3RoXSArIHJlY3RzLnJlZmVyZW5jZVtheGlzXSAtIGNvb3Jkc1theGlzXSAtIHJlY3RzLmZsb2F0aW5nW2xlbmd0aF07XHJcbiAgICBjb25zdCBzdGFydERpZmYgPSBjb29yZHNbYXhpc10gLSByZWN0cy5yZWZlcmVuY2VbYXhpc107XHJcbiAgICBjb25zdCBhcnJvd09mZnNldFBhcmVudCA9IGF3YWl0IChwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldE9mZnNldFBhcmVudChlbGVtZW50KSk7XHJcbiAgICBsZXQgY2xpZW50U2l6ZSA9IGFycm93T2Zmc2V0UGFyZW50ID8gYXJyb3dPZmZzZXRQYXJlbnRbY2xpZW50UHJvcF0gOiAwO1xyXG5cclxuICAgIC8vIERPTSBwbGF0Zm9ybSBjYW4gcmV0dXJuIGB3aW5kb3dgIGFzIHRoZSBgb2Zmc2V0UGFyZW50YC5cclxuICAgIGlmICghY2xpZW50U2l6ZSB8fCAhKGF3YWl0IChwbGF0Zm9ybS5pc0VsZW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzRWxlbWVudChhcnJvd09mZnNldFBhcmVudCkpKSkge1xyXG4gICAgICBjbGllbnRTaXplID0gZWxlbWVudHMuZmxvYXRpbmdbY2xpZW50UHJvcF0gfHwgcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNlbnRlclRvUmVmZXJlbmNlID0gZW5kRGlmZiAvIDIgLSBzdGFydERpZmYgLyAyO1xyXG5cclxuICAgIC8vIElmIHRoZSBwYWRkaW5nIGlzIGxhcmdlIGVub3VnaCB0aGF0IGl0IGNhdXNlcyB0aGUgYXJyb3cgdG8gbm8gbG9uZ2VyIGJlXHJcbiAgICAvLyBjZW50ZXJlZCwgbW9kaWZ5IHRoZSBwYWRkaW5nIHNvIHRoYXQgaXQgaXMgY2VudGVyZWQuXHJcbiAgICBjb25zdCBsYXJnZXN0UG9zc2libGVQYWRkaW5nID0gY2xpZW50U2l6ZSAvIDIgLSBhcnJvd0RpbWVuc2lvbnNbbGVuZ3RoXSAvIDIgLSAxO1xyXG4gICAgY29uc3QgbWluUGFkZGluZyA9IG1pbihwYWRkaW5nT2JqZWN0W21pblByb3BdLCBsYXJnZXN0UG9zc2libGVQYWRkaW5nKTtcclxuICAgIGNvbnN0IG1heFBhZGRpbmcgPSBtaW4ocGFkZGluZ09iamVjdFttYXhQcm9wXSwgbGFyZ2VzdFBvc3NpYmxlUGFkZGluZyk7XHJcblxyXG4gICAgLy8gTWFrZSBzdXJlIHRoZSBhcnJvdyBkb2Vzbid0IG92ZXJmbG93IHRoZSBmbG9hdGluZyBlbGVtZW50IGlmIHRoZSBjZW50ZXJcclxuICAgIC8vIHBvaW50IGlzIG91dHNpZGUgdGhlIGZsb2F0aW5nIGVsZW1lbnQncyBib3VuZHMuXHJcbiAgICBjb25zdCBtaW4kMSA9IG1pblBhZGRpbmc7XHJcbiAgICBjb25zdCBtYXggPSBjbGllbnRTaXplIC0gYXJyb3dEaW1lbnNpb25zW2xlbmd0aF0gLSBtYXhQYWRkaW5nO1xyXG4gICAgY29uc3QgY2VudGVyID0gY2xpZW50U2l6ZSAvIDIgLSBhcnJvd0RpbWVuc2lvbnNbbGVuZ3RoXSAvIDIgKyBjZW50ZXJUb1JlZmVyZW5jZTtcclxuICAgIGNvbnN0IG9mZnNldCA9IGNsYW1wKG1pbiQxLCBjZW50ZXIsIG1heCk7XHJcblxyXG4gICAgLy8gSWYgdGhlIHJlZmVyZW5jZSBpcyBzbWFsbCBlbm91Z2ggdGhhdCB0aGUgYXJyb3cncyBwYWRkaW5nIGNhdXNlcyBpdCB0b1xyXG4gICAgLy8gdG8gcG9pbnQgdG8gbm90aGluZyBmb3IgYW4gYWxpZ25lZCBwbGFjZW1lbnQsIGFkanVzdCB0aGUgb2Zmc2V0IG9mIHRoZVxyXG4gICAgLy8gZmxvYXRpbmcgZWxlbWVudCBpdHNlbGYuIFRvIGVuc3VyZSBgc2hpZnQoKWAgY29udGludWVzIHRvIHRha2UgYWN0aW9uLFxyXG4gICAgLy8gYSBzaW5nbGUgcmVzZXQgaXMgcGVyZm9ybWVkIHdoZW4gdGhpcyBpcyB0cnVlLlxyXG4gICAgY29uc3Qgc2hvdWxkQWRkT2Zmc2V0ID0gIW1pZGRsZXdhcmVEYXRhLmFycm93ICYmIGdldEFsaWdubWVudChwbGFjZW1lbnQpICE9IG51bGwgJiYgY2VudGVyICE9PSBvZmZzZXQgJiYgcmVjdHMucmVmZXJlbmNlW2xlbmd0aF0gLyAyIC0gKGNlbnRlciA8IG1pbiQxID8gbWluUGFkZGluZyA6IG1heFBhZGRpbmcpIC0gYXJyb3dEaW1lbnNpb25zW2xlbmd0aF0gLyAyIDwgMDtcclxuICAgIGNvbnN0IGFsaWdubWVudE9mZnNldCA9IHNob3VsZEFkZE9mZnNldCA/IGNlbnRlciA8IG1pbiQxID8gY2VudGVyIC0gbWluJDEgOiBjZW50ZXIgLSBtYXggOiAwO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgW2F4aXNdOiBjb29yZHNbYXhpc10gKyBhbGlnbm1lbnRPZmZzZXQsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBbYXhpc106IG9mZnNldCxcclxuICAgICAgICBjZW50ZXJPZmZzZXQ6IGNlbnRlciAtIG9mZnNldCAtIGFsaWdubWVudE9mZnNldCxcclxuICAgICAgICAuLi4oc2hvdWxkQWRkT2Zmc2V0ICYmIHtcclxuICAgICAgICAgIGFsaWdubWVudE9mZnNldFxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0sXHJcbiAgICAgIHJlc2V0OiBzaG91bGRBZGRPZmZzZXRcclxuICAgIH07XHJcbiAgfVxyXG59KTtcclxuXHJcbmZ1bmN0aW9uIGdldFBsYWNlbWVudExpc3QoYWxpZ25tZW50LCBhdXRvQWxpZ25tZW50LCBhbGxvd2VkUGxhY2VtZW50cykge1xyXG4gIGNvbnN0IGFsbG93ZWRQbGFjZW1lbnRzU29ydGVkQnlBbGlnbm1lbnQgPSBhbGlnbm1lbnQgPyBbLi4uYWxsb3dlZFBsYWNlbWVudHMuZmlsdGVyKHBsYWNlbWVudCA9PiBnZXRBbGlnbm1lbnQocGxhY2VtZW50KSA9PT0gYWxpZ25tZW50KSwgLi4uYWxsb3dlZFBsYWNlbWVudHMuZmlsdGVyKHBsYWNlbWVudCA9PiBnZXRBbGlnbm1lbnQocGxhY2VtZW50KSAhPT0gYWxpZ25tZW50KV0gOiBhbGxvd2VkUGxhY2VtZW50cy5maWx0ZXIocGxhY2VtZW50ID0+IGdldFNpZGUocGxhY2VtZW50KSA9PT0gcGxhY2VtZW50KTtcclxuICByZXR1cm4gYWxsb3dlZFBsYWNlbWVudHNTb3J0ZWRCeUFsaWdubWVudC5maWx0ZXIocGxhY2VtZW50ID0+IHtcclxuICAgIGlmIChhbGlnbm1lbnQpIHtcclxuICAgICAgcmV0dXJuIGdldEFsaWdubWVudChwbGFjZW1lbnQpID09PSBhbGlnbm1lbnQgfHwgKGF1dG9BbGlnbm1lbnQgPyBnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudChwbGFjZW1lbnQpICE9PSBwbGFjZW1lbnQgOiBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9KTtcclxufVxyXG4vKipcclxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGNob29zaW5nIHRoZSBwbGFjZW1lbnRcclxuICogdGhhdCBoYXMgdGhlIG1vc3Qgc3BhY2UgYXZhaWxhYmxlIGF1dG9tYXRpY2FsbHksIHdpdGhvdXQgbmVlZGluZyB0byBzcGVjaWZ5IGFcclxuICogcHJlZmVycmVkIHBsYWNlbWVudC4gQWx0ZXJuYXRpdmUgdG8gYGZsaXBgLlxyXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1BsYWNlbWVudFxyXG4gKi9cclxuY29uc3QgYXV0b1BsYWNlbWVudCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XHJcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xyXG4gICAgb3B0aW9ucyA9IHt9O1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgbmFtZTogJ2F1dG9QbGFjZW1lbnQnLFxyXG4gICAgb3B0aW9ucyxcclxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XHJcbiAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkYXV0b1AsIF9taWRkbGV3YXJlRGF0YSRhdXRvUDIsIF9wbGFjZW1lbnRzVGhhdEZpdE9uRTtcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHJlY3RzLFxyXG4gICAgICAgIG1pZGRsZXdhcmVEYXRhLFxyXG4gICAgICAgIHBsYWNlbWVudCxcclxuICAgICAgICBwbGF0Zm9ybSxcclxuICAgICAgICBlbGVtZW50c1xyXG4gICAgICB9ID0gc3RhdGU7XHJcbiAgICAgIGNvbnN0IHtcclxuICAgICAgICBjcm9zc0F4aXMgPSBmYWxzZSxcclxuICAgICAgICBhbGlnbm1lbnQsXHJcbiAgICAgICAgYWxsb3dlZFBsYWNlbWVudHMgPSBwbGFjZW1lbnRzLFxyXG4gICAgICAgIGF1dG9BbGlnbm1lbnQgPSB0cnVlLFxyXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xyXG4gICAgICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xyXG4gICAgICBjb25zdCBwbGFjZW1lbnRzJDEgPSBhbGlnbm1lbnQgIT09IHVuZGVmaW5lZCB8fCBhbGxvd2VkUGxhY2VtZW50cyA9PT0gcGxhY2VtZW50cyA/IGdldFBsYWNlbWVudExpc3QoYWxpZ25tZW50IHx8IG51bGwsIGF1dG9BbGlnbm1lbnQsIGFsbG93ZWRQbGFjZW1lbnRzKSA6IGFsbG93ZWRQbGFjZW1lbnRzO1xyXG4gICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCBkZXRlY3RPdmVyZmxvd09wdGlvbnMpO1xyXG4gICAgICBjb25zdCBjdXJyZW50SW5kZXggPSAoKF9taWRkbGV3YXJlRGF0YSRhdXRvUCA9IG1pZGRsZXdhcmVEYXRhLmF1dG9QbGFjZW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGEkYXV0b1AuaW5kZXgpIHx8IDA7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRQbGFjZW1lbnQgPSBwbGFjZW1lbnRzJDFbY3VycmVudEluZGV4XTtcclxuICAgICAgaWYgKGN1cnJlbnRQbGFjZW1lbnQgPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB7fTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBhbGlnbm1lbnRTaWRlcyA9IGdldEFsaWdubWVudFNpZGVzKGN1cnJlbnRQbGFjZW1lbnQsIHJlY3RzLCBhd2FpdCAocGxhdGZvcm0uaXNSVEwgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzUlRMKGVsZW1lbnRzLmZsb2F0aW5nKSkpO1xyXG5cclxuICAgICAgLy8gTWFrZSBgY29tcHV0ZUNvb3Jkc2Agc3RhcnQgZnJvbSB0aGUgcmlnaHQgcGxhY2UuXHJcbiAgICAgIGlmIChwbGFjZW1lbnQgIT09IGN1cnJlbnRQbGFjZW1lbnQpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgcmVzZXQ6IHtcclxuICAgICAgICAgICAgcGxhY2VtZW50OiBwbGFjZW1lbnRzJDFbMF1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRPdmVyZmxvd3MgPSBbb3ZlcmZsb3dbZ2V0U2lkZShjdXJyZW50UGxhY2VtZW50KV0sIG92ZXJmbG93W2FsaWdubWVudFNpZGVzWzBdXSwgb3ZlcmZsb3dbYWxpZ25tZW50U2lkZXNbMV1dXTtcclxuICAgICAgY29uc3QgYWxsT3ZlcmZsb3dzID0gWy4uLigoKF9taWRkbGV3YXJlRGF0YSRhdXRvUDIgPSBtaWRkbGV3YXJlRGF0YS5hdXRvUGxhY2VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGF1dG9QMi5vdmVyZmxvd3MpIHx8IFtdKSwge1xyXG4gICAgICAgIHBsYWNlbWVudDogY3VycmVudFBsYWNlbWVudCxcclxuICAgICAgICBvdmVyZmxvd3M6IGN1cnJlbnRPdmVyZmxvd3NcclxuICAgICAgfV07XHJcbiAgICAgIGNvbnN0IG5leHRQbGFjZW1lbnQgPSBwbGFjZW1lbnRzJDFbY3VycmVudEluZGV4ICsgMV07XHJcblxyXG4gICAgICAvLyBUaGVyZSBhcmUgbW9yZSBwbGFjZW1lbnRzIHRvIGNoZWNrLlxyXG4gICAgICBpZiAobmV4dFBsYWNlbWVudCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIGluZGV4OiBjdXJyZW50SW5kZXggKyAxLFxyXG4gICAgICAgICAgICBvdmVyZmxvd3M6IGFsbE92ZXJmbG93c1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHJlc2V0OiB7XHJcbiAgICAgICAgICAgIHBsYWNlbWVudDogbmV4dFBsYWNlbWVudFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcGxhY2VtZW50c1NvcnRlZEJ5TW9zdFNwYWNlID0gYWxsT3ZlcmZsb3dzLm1hcChkID0+IHtcclxuICAgICAgICBjb25zdCBhbGlnbm1lbnQgPSBnZXRBbGlnbm1lbnQoZC5wbGFjZW1lbnQpO1xyXG4gICAgICAgIHJldHVybiBbZC5wbGFjZW1lbnQsIGFsaWdubWVudCAmJiBjcm9zc0F4aXMgP1xyXG4gICAgICAgIC8vIENoZWNrIGFsb25nIHRoZSBtYWluQXhpcyBhbmQgbWFpbiBjcm9zc0F4aXMgc2lkZS5cclxuICAgICAgICBkLm92ZXJmbG93cy5zbGljZSgwLCAyKS5yZWR1Y2UoKGFjYywgdikgPT4gYWNjICsgdiwgMCkgOlxyXG4gICAgICAgIC8vIENoZWNrIG9ubHkgdGhlIG1haW5BeGlzLlxyXG4gICAgICAgIGQub3ZlcmZsb3dzWzBdLCBkLm92ZXJmbG93c107XHJcbiAgICAgIH0pLnNvcnQoKGEsIGIpID0+IGFbMV0gLSBiWzFdKTtcclxuICAgICAgY29uc3QgcGxhY2VtZW50c1RoYXRGaXRPbkVhY2hTaWRlID0gcGxhY2VtZW50c1NvcnRlZEJ5TW9zdFNwYWNlLmZpbHRlcihkID0+IGRbMl0uc2xpY2UoMCxcclxuICAgICAgLy8gQWxpZ25lZCBwbGFjZW1lbnRzIHNob3VsZCBub3QgY2hlY2sgdGhlaXIgb3Bwb3NpdGUgY3Jvc3NBeGlzXHJcbiAgICAgIC8vIHNpZGUuXHJcbiAgICAgIGdldEFsaWdubWVudChkWzBdKSA/IDIgOiAzKS5ldmVyeSh2ID0+IHYgPD0gMCkpO1xyXG4gICAgICBjb25zdCByZXNldFBsYWNlbWVudCA9ICgoX3BsYWNlbWVudHNUaGF0Rml0T25FID0gcGxhY2VtZW50c1RoYXRGaXRPbkVhY2hTaWRlWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX3BsYWNlbWVudHNUaGF0Rml0T25FWzBdKSB8fCBwbGFjZW1lbnRzU29ydGVkQnlNb3N0U3BhY2VbMF1bMF07XHJcbiAgICAgIGlmIChyZXNldFBsYWNlbWVudCAhPT0gcGxhY2VtZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgaW5kZXg6IGN1cnJlbnRJbmRleCArIDEsXHJcbiAgICAgICAgICAgIG92ZXJmbG93czogYWxsT3ZlcmZsb3dzXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcmVzZXQ6IHtcclxuICAgICAgICAgICAgcGxhY2VtZW50OiByZXNldFBsYWNlbWVudFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHt9O1xyXG4gICAgfVxyXG4gIH07XHJcbn07XHJcblxyXG4vKipcclxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGZsaXBwaW5nIHRoZSBgcGxhY2VtZW50YFxyXG4gKiBpbiBvcmRlciB0byBrZWVwIGl0IGluIHZpZXcgd2hlbiB0aGUgcHJlZmVycmVkIHBsYWNlbWVudChzKSB3aWxsIG92ZXJmbG93IHRoZVxyXG4gKiBjbGlwcGluZyBib3VuZGFyeS4gQWx0ZXJuYXRpdmUgdG8gYGF1dG9QbGFjZW1lbnRgLlxyXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvZmxpcFxyXG4gKi9cclxuY29uc3QgZmxpcCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XHJcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xyXG4gICAgb3B0aW9ucyA9IHt9O1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgbmFtZTogJ2ZsaXAnLFxyXG4gICAgb3B0aW9ucyxcclxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XHJcbiAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkYXJyb3csIF9taWRkbGV3YXJlRGF0YSRmbGlwO1xyXG4gICAgICBjb25zdCB7XHJcbiAgICAgICAgcGxhY2VtZW50LFxyXG4gICAgICAgIG1pZGRsZXdhcmVEYXRhLFxyXG4gICAgICAgIHJlY3RzLFxyXG4gICAgICAgIGluaXRpYWxQbGFjZW1lbnQsXHJcbiAgICAgICAgcGxhdGZvcm0sXHJcbiAgICAgICAgZWxlbWVudHNcclxuICAgICAgfSA9IHN0YXRlO1xyXG4gICAgICBjb25zdCB7XHJcbiAgICAgICAgbWFpbkF4aXM6IGNoZWNrTWFpbkF4aXMgPSB0cnVlLFxyXG4gICAgICAgIGNyb3NzQXhpczogY2hlY2tDcm9zc0F4aXMgPSB0cnVlLFxyXG4gICAgICAgIGZhbGxiYWNrUGxhY2VtZW50czogc3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzLFxyXG4gICAgICAgIGZhbGxiYWNrU3RyYXRlZ3kgPSAnYmVzdEZpdCcsXHJcbiAgICAgICAgZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbiA9ICdub25lJyxcclxuICAgICAgICBmbGlwQWxpZ25tZW50ID0gdHJ1ZSxcclxuICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnNcclxuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcclxuXHJcbiAgICAgIC8vIElmIGEgcmVzZXQgYnkgdGhlIGFycm93IHdhcyBjYXVzZWQgZHVlIHRvIGFuIGFsaWdubWVudCBvZmZzZXQgYmVpbmdcclxuICAgICAgLy8gYWRkZWQsIHdlIHNob3VsZCBza2lwIGFueSBsb2dpYyBub3cgc2luY2UgYGZsaXAoKWAgaGFzIGFscmVhZHkgZG9uZSBpdHNcclxuICAgICAgLy8gd29yay5cclxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2Zsb2F0aW5nLXVpL2Zsb2F0aW5nLXVpL2lzc3Vlcy8yNTQ5I2lzc3VlY29tbWVudC0xNzE5NjAxNjQzXHJcbiAgICAgIGlmICgoX21pZGRsZXdhcmVEYXRhJGFycm93ID0gbWlkZGxld2FyZURhdGEuYXJyb3cpICE9IG51bGwgJiYgX21pZGRsZXdhcmVEYXRhJGFycm93LmFsaWdubWVudE9mZnNldCkge1xyXG4gICAgICAgIHJldHVybiB7fTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpO1xyXG4gICAgICBjb25zdCBpbml0aWFsU2lkZUF4aXMgPSBnZXRTaWRlQXhpcyhpbml0aWFsUGxhY2VtZW50KTtcclxuICAgICAgY29uc3QgaXNCYXNlUGxhY2VtZW50ID0gZ2V0U2lkZShpbml0aWFsUGxhY2VtZW50KSA9PT0gaW5pdGlhbFBsYWNlbWVudDtcclxuICAgICAgY29uc3QgcnRsID0gYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpO1xyXG4gICAgICBjb25zdCBmYWxsYmFja1BsYWNlbWVudHMgPSBzcGVjaWZpZWRGYWxsYmFja1BsYWNlbWVudHMgfHwgKGlzQmFzZVBsYWNlbWVudCB8fCAhZmxpcEFsaWdubWVudCA/IFtnZXRPcHBvc2l0ZVBsYWNlbWVudChpbml0aWFsUGxhY2VtZW50KV0gOiBnZXRFeHBhbmRlZFBsYWNlbWVudHMoaW5pdGlhbFBsYWNlbWVudCkpO1xyXG4gICAgICBjb25zdCBoYXNGYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uID0gZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbiAhPT0gJ25vbmUnO1xyXG4gICAgICBpZiAoIXNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyAmJiBoYXNGYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uKSB7XHJcbiAgICAgICAgZmFsbGJhY2tQbGFjZW1lbnRzLnB1c2goLi4uZ2V0T3Bwb3NpdGVBeGlzUGxhY2VtZW50cyhpbml0aWFsUGxhY2VtZW50LCBmbGlwQWxpZ25tZW50LCBmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uLCBydGwpKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBwbGFjZW1lbnRzID0gW2luaXRpYWxQbGFjZW1lbnQsIC4uLmZhbGxiYWNrUGxhY2VtZW50c107XHJcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIGRldGVjdE92ZXJmbG93T3B0aW9ucyk7XHJcbiAgICAgIGNvbnN0IG92ZXJmbG93cyA9IFtdO1xyXG4gICAgICBsZXQgb3ZlcmZsb3dzRGF0YSA9ICgoX21pZGRsZXdhcmVEYXRhJGZsaXAgPSBtaWRkbGV3YXJlRGF0YS5mbGlwKSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGZsaXAub3ZlcmZsb3dzKSB8fCBbXTtcclxuICAgICAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcclxuICAgICAgICBvdmVyZmxvd3MucHVzaChvdmVyZmxvd1tzaWRlXSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNoZWNrQ3Jvc3NBeGlzKSB7XHJcbiAgICAgICAgY29uc3Qgc2lkZXMgPSBnZXRBbGlnbm1lbnRTaWRlcyhwbGFjZW1lbnQsIHJlY3RzLCBydGwpO1xyXG4gICAgICAgIG92ZXJmbG93cy5wdXNoKG92ZXJmbG93W3NpZGVzWzBdXSwgb3ZlcmZsb3dbc2lkZXNbMV1dKTtcclxuICAgICAgfVxyXG4gICAgICBvdmVyZmxvd3NEYXRhID0gWy4uLm92ZXJmbG93c0RhdGEsIHtcclxuICAgICAgICBwbGFjZW1lbnQsXHJcbiAgICAgICAgb3ZlcmZsb3dzXHJcbiAgICAgIH1dO1xyXG5cclxuICAgICAgLy8gT25lIG9yIG1vcmUgc2lkZXMgaXMgb3ZlcmZsb3dpbmcuXHJcbiAgICAgIGlmICghb3ZlcmZsb3dzLmV2ZXJ5KHNpZGUgPT4gc2lkZSA8PSAwKSkge1xyXG4gICAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkZmxpcDIsIF9vdmVyZmxvd3NEYXRhJGZpbHRlcjtcclxuICAgICAgICBjb25zdCBuZXh0SW5kZXggPSAoKChfbWlkZGxld2FyZURhdGEkZmxpcDIgPSBtaWRkbGV3YXJlRGF0YS5mbGlwKSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGZsaXAyLmluZGV4KSB8fCAwKSArIDE7XHJcbiAgICAgICAgY29uc3QgbmV4dFBsYWNlbWVudCA9IHBsYWNlbWVudHNbbmV4dEluZGV4XTtcclxuICAgICAgICBpZiAobmV4dFBsYWNlbWVudCkge1xyXG4gICAgICAgICAgLy8gVHJ5IG5leHQgcGxhY2VtZW50IGFuZCByZS1ydW4gdGhlIGxpZmVjeWNsZS5cclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICBpbmRleDogbmV4dEluZGV4LFxyXG4gICAgICAgICAgICAgIG92ZXJmbG93czogb3ZlcmZsb3dzRGF0YVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICByZXNldDoge1xyXG4gICAgICAgICAgICAgIHBsYWNlbWVudDogbmV4dFBsYWNlbWVudFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRmlyc3QsIGZpbmQgdGhlIGNhbmRpZGF0ZXMgdGhhdCBmaXQgb24gdGhlIG1haW5BeGlzIHNpZGUgb2Ygb3ZlcmZsb3csXHJcbiAgICAgICAgLy8gdGhlbiBmaW5kIHRoZSBwbGFjZW1lbnQgdGhhdCBmaXRzIHRoZSBiZXN0IG9uIHRoZSBtYWluIGNyb3NzQXhpcyBzaWRlLlxyXG4gICAgICAgIGxldCByZXNldFBsYWNlbWVudCA9IChfb3ZlcmZsb3dzRGF0YSRmaWx0ZXIgPSBvdmVyZmxvd3NEYXRhLmZpbHRlcihkID0+IGQub3ZlcmZsb3dzWzBdIDw9IDApLnNvcnQoKGEsIGIpID0+IGEub3ZlcmZsb3dzWzFdIC0gYi5vdmVyZmxvd3NbMV0pWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX292ZXJmbG93c0RhdGEkZmlsdGVyLnBsYWNlbWVudDtcclxuXHJcbiAgICAgICAgLy8gT3RoZXJ3aXNlIGZhbGxiYWNrLlxyXG4gICAgICAgIGlmICghcmVzZXRQbGFjZW1lbnQpIHtcclxuICAgICAgICAgIHN3aXRjaCAoZmFsbGJhY2tTdHJhdGVneSkge1xyXG4gICAgICAgICAgICBjYXNlICdiZXN0Rml0JzpcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YXIgX292ZXJmbG93c0RhdGEkZmlsdGVyMjtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBsYWNlbWVudCA9IChfb3ZlcmZsb3dzRGF0YSRmaWx0ZXIyID0gb3ZlcmZsb3dzRGF0YS5maWx0ZXIoZCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChoYXNGYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNpZGVBeGlzID0gZ2V0U2lkZUF4aXMoZC5wbGFjZW1lbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50U2lkZUF4aXMgPT09IGluaXRpYWxTaWRlQXhpcyB8fFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhIGJpYXMgdG8gdGhlIGB5YCBzaWRlIGF4aXMgZHVlIHRvIGhvcml6b250YWxcclxuICAgICAgICAgICAgICAgICAgICAvLyByZWFkaW5nIGRpcmVjdGlvbnMgZmF2b3JpbmcgZ3JlYXRlciB3aWR0aC5cclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2lkZUF4aXMgPT09ICd5JztcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0pLm1hcChkID0+IFtkLnBsYWNlbWVudCwgZC5vdmVyZmxvd3MuZmlsdGVyKG92ZXJmbG93ID0+IG92ZXJmbG93ID4gMCkucmVkdWNlKChhY2MsIG92ZXJmbG93KSA9PiBhY2MgKyBvdmVyZmxvdywgMCldKS5zb3J0KChhLCBiKSA9PiBhWzFdIC0gYlsxXSlbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfb3ZlcmZsb3dzRGF0YSRmaWx0ZXIyWzBdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHBsYWNlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICByZXNldFBsYWNlbWVudCA9IHBsYWNlbWVudDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnaW5pdGlhbFBsYWNlbWVudCc6XHJcbiAgICAgICAgICAgICAgcmVzZXRQbGFjZW1lbnQgPSBpbml0aWFsUGxhY2VtZW50O1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocGxhY2VtZW50ICE9PSByZXNldFBsYWNlbWVudCkge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgcmVzZXQ6IHtcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ6IHJlc2V0UGxhY2VtZW50XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7fTtcclxuICAgIH1cclxuICB9O1xyXG59O1xyXG5cclxuZnVuY3Rpb24gZ2V0U2lkZU9mZnNldHMob3ZlcmZsb3csIHJlY3QpIHtcclxuICByZXR1cm4ge1xyXG4gICAgdG9wOiBvdmVyZmxvdy50b3AgLSByZWN0LmhlaWdodCxcclxuICAgIHJpZ2h0OiBvdmVyZmxvdy5yaWdodCAtIHJlY3Qud2lkdGgsXHJcbiAgICBib3R0b206IG92ZXJmbG93LmJvdHRvbSAtIHJlY3QuaGVpZ2h0LFxyXG4gICAgbGVmdDogb3ZlcmZsb3cubGVmdCAtIHJlY3Qud2lkdGhcclxuICB9O1xyXG59XHJcbmZ1bmN0aW9uIGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChvdmVyZmxvdykge1xyXG4gIHJldHVybiBzaWRlcy5zb21lKHNpZGUgPT4gb3ZlcmZsb3dbc2lkZV0gPj0gMCk7XHJcbn1cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGRhdGEgdG8gaGlkZSB0aGUgZmxvYXRpbmcgZWxlbWVudCBpbiBhcHBsaWNhYmxlIHNpdHVhdGlvbnMsIHN1Y2ggYXNcclxuICogd2hlbiBpdCBpcyBub3QgaW4gdGhlIHNhbWUgY2xpcHBpbmcgY29udGV4dCBhcyB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXHJcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9oaWRlXHJcbiAqL1xyXG5jb25zdCBoaWRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcclxuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XHJcbiAgICBvcHRpb25zID0ge307XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICBuYW1lOiAnaGlkZScsXHJcbiAgICBvcHRpb25zLFxyXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHJlY3RzXHJcbiAgICAgIH0gPSBzdGF0ZTtcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHN0cmF0ZWd5ID0gJ3JlZmVyZW5jZUhpZGRlbicsXHJcbiAgICAgICAgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zXHJcbiAgICAgIH0gPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XHJcbiAgICAgIHN3aXRjaCAoc3RyYXRlZ3kpIHtcclxuICAgICAgICBjYXNlICdyZWZlcmVuY2VIaWRkZW4nOlxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XHJcbiAgICAgICAgICAgICAgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zLFxyXG4gICAgICAgICAgICAgIGVsZW1lbnRDb250ZXh0OiAncmVmZXJlbmNlJ1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0cy5yZWZlcmVuY2UpO1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZUhpZGRlbk9mZnNldHM6IG9mZnNldHMsXHJcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VIaWRkZW46IGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChvZmZzZXRzKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICBjYXNlICdlc2NhcGVkJzpcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgY29uc3Qgb3ZlcmZsb3cgPSBhd2FpdCBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xyXG4gICAgICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcclxuICAgICAgICAgICAgICBhbHRCb3VuZGFyeTogdHJ1ZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0cy5mbG9hdGluZyk7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgZXNjYXBlZE9mZnNldHM6IG9mZnNldHMsXHJcbiAgICAgICAgICAgICAgICBlc2NhcGVkOiBpc0FueVNpZGVGdWxseUNsaXBwZWQob2Zmc2V0cylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGdldEJvdW5kaW5nUmVjdChyZWN0cykge1xyXG4gIGNvbnN0IG1pblggPSBtaW4oLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC5sZWZ0KSk7XHJcbiAgY29uc3QgbWluWSA9IG1pbiguLi5yZWN0cy5tYXAocmVjdCA9PiByZWN0LnRvcCkpO1xyXG4gIGNvbnN0IG1heFggPSBtYXgoLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC5yaWdodCkpO1xyXG4gIGNvbnN0IG1heFkgPSBtYXgoLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC5ib3R0b20pKTtcclxuICByZXR1cm4ge1xyXG4gICAgeDogbWluWCxcclxuICAgIHk6IG1pblksXHJcbiAgICB3aWR0aDogbWF4WCAtIG1pblgsXHJcbiAgICBoZWlnaHQ6IG1heFkgLSBtaW5ZXHJcbiAgfTtcclxufVxyXG5mdW5jdGlvbiBnZXRSZWN0c0J5TGluZShyZWN0cykge1xyXG4gIGNvbnN0IHNvcnRlZFJlY3RzID0gcmVjdHMuc2xpY2UoKS5zb3J0KChhLCBiKSA9PiBhLnkgLSBiLnkpO1xyXG4gIGNvbnN0IGdyb3VwcyA9IFtdO1xyXG4gIGxldCBwcmV2UmVjdCA9IG51bGw7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzb3J0ZWRSZWN0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgY29uc3QgcmVjdCA9IHNvcnRlZFJlY3RzW2ldO1xyXG4gICAgaWYgKCFwcmV2UmVjdCB8fCByZWN0LnkgLSBwcmV2UmVjdC55ID4gcHJldlJlY3QuaGVpZ2h0IC8gMikge1xyXG4gICAgICBncm91cHMucHVzaChbcmVjdF0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZ3JvdXBzW2dyb3Vwcy5sZW5ndGggLSAxXS5wdXNoKHJlY3QpO1xyXG4gICAgfVxyXG4gICAgcHJldlJlY3QgPSByZWN0O1xyXG4gIH1cclxuICByZXR1cm4gZ3JvdXBzLm1hcChyZWN0ID0+IHJlY3RUb0NsaWVudFJlY3QoZ2V0Qm91bmRpbmdSZWN0KHJlY3QpKSk7XHJcbn1cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cclxuICogb3ZlciBtdWx0aXBsZSBsaW5lcywgc3VjaCBhcyBoeXBlcmxpbmtzIG9yIHJhbmdlIHNlbGVjdGlvbnMuXHJcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9pbmxpbmVcclxuICovXHJcbmNvbnN0IGlubGluZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XHJcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xyXG4gICAgb3B0aW9ucyA9IHt9O1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgbmFtZTogJ2lubGluZScsXHJcbiAgICBvcHRpb25zLFxyXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHBsYWNlbWVudCxcclxuICAgICAgICBlbGVtZW50cyxcclxuICAgICAgICByZWN0cyxcclxuICAgICAgICBwbGF0Zm9ybSxcclxuICAgICAgICBzdHJhdGVneVxyXG4gICAgICB9ID0gc3RhdGU7XHJcbiAgICAgIC8vIEEgTW91c2VFdmVudCdzIGNsaWVudHtYLFl9IGNvb3JkcyBjYW4gYmUgdXAgdG8gMiBwaXhlbHMgb2ZmIGFcclxuICAgICAgLy8gQ2xpZW50UmVjdCdzIGJvdW5kcywgZGVzcGl0ZSB0aGUgZXZlbnQgbGlzdGVuZXIgYmVpbmcgdHJpZ2dlcmVkLiBBXHJcbiAgICAgIC8vIHBhZGRpbmcgb2YgMiBzZWVtcyB0byBoYW5kbGUgdGhpcyBpc3N1ZS5cclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHBhZGRpbmcgPSAyLFxyXG4gICAgICAgIHgsXHJcbiAgICAgICAgeVxyXG4gICAgICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xyXG4gICAgICBjb25zdCBuYXRpdmVDbGllbnRSZWN0cyA9IEFycmF5LmZyb20oKGF3YWl0IChwbGF0Zm9ybS5nZXRDbGllbnRSZWN0cyA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uZ2V0Q2xpZW50UmVjdHMoZWxlbWVudHMucmVmZXJlbmNlKSkpIHx8IFtdKTtcclxuICAgICAgY29uc3QgY2xpZW50UmVjdHMgPSBnZXRSZWN0c0J5TGluZShuYXRpdmVDbGllbnRSZWN0cyk7XHJcbiAgICAgIGNvbnN0IGZhbGxiYWNrID0gcmVjdFRvQ2xpZW50UmVjdChnZXRCb3VuZGluZ1JlY3QobmF0aXZlQ2xpZW50UmVjdHMpKTtcclxuICAgICAgY29uc3QgcGFkZGluZ09iamVjdCA9IGdldFBhZGRpbmdPYmplY3QocGFkZGluZyk7XHJcbiAgICAgIGZ1bmN0aW9uIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHtcclxuICAgICAgICAvLyBUaGVyZSBhcmUgdHdvIHJlY3RzIGFuZCB0aGV5IGFyZSBkaXNqb2luZWQuXHJcbiAgICAgICAgaWYgKGNsaWVudFJlY3RzLmxlbmd0aCA9PT0gMiAmJiBjbGllbnRSZWN0c1swXS5sZWZ0ID4gY2xpZW50UmVjdHNbMV0ucmlnaHQgJiYgeCAhPSBudWxsICYmIHkgIT0gbnVsbCkge1xyXG4gICAgICAgICAgLy8gRmluZCB0aGUgZmlyc3QgcmVjdCBpbiB3aGljaCB0aGUgcG9pbnQgaXMgZnVsbHkgaW5zaWRlLlxyXG4gICAgICAgICAgcmV0dXJuIGNsaWVudFJlY3RzLmZpbmQocmVjdCA9PiB4ID4gcmVjdC5sZWZ0IC0gcGFkZGluZ09iamVjdC5sZWZ0ICYmIHggPCByZWN0LnJpZ2h0ICsgcGFkZGluZ09iamVjdC5yaWdodCAmJiB5ID4gcmVjdC50b3AgLSBwYWRkaW5nT2JqZWN0LnRvcCAmJiB5IDwgcmVjdC5ib3R0b20gKyBwYWRkaW5nT2JqZWN0LmJvdHRvbSkgfHwgZmFsbGJhY2s7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBUaGVyZSBhcmUgMiBvciBtb3JlIGNvbm5lY3RlZCByZWN0cy5cclxuICAgICAgICBpZiAoY2xpZW50UmVjdHMubGVuZ3RoID49IDIpIHtcclxuICAgICAgICAgIGlmIChnZXRTaWRlQXhpcyhwbGFjZW1lbnQpID09PSAneScpIHtcclxuICAgICAgICAgICAgY29uc3QgZmlyc3RSZWN0ID0gY2xpZW50UmVjdHNbMF07XHJcbiAgICAgICAgICAgIGNvbnN0IGxhc3RSZWN0ID0gY2xpZW50UmVjdHNbY2xpZW50UmVjdHMubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgIGNvbnN0IGlzVG9wID0gZ2V0U2lkZShwbGFjZW1lbnQpID09PSAndG9wJztcclxuICAgICAgICAgICAgY29uc3QgdG9wID0gZmlyc3RSZWN0LnRvcDtcclxuICAgICAgICAgICAgY29uc3QgYm90dG9tID0gbGFzdFJlY3QuYm90dG9tO1xyXG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gaXNUb3AgPyBmaXJzdFJlY3QubGVmdCA6IGxhc3RSZWN0LmxlZnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gaXNUb3AgPyBmaXJzdFJlY3QucmlnaHQgOiBsYXN0UmVjdC5yaWdodDtcclxuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSByaWdodCAtIGxlZnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IGJvdHRvbSAtIHRvcDtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICB0b3AsXHJcbiAgICAgICAgICAgICAgYm90dG9tLFxyXG4gICAgICAgICAgICAgIGxlZnQsXHJcbiAgICAgICAgICAgICAgcmlnaHQsXHJcbiAgICAgICAgICAgICAgd2lkdGgsXHJcbiAgICAgICAgICAgICAgaGVpZ2h0LFxyXG4gICAgICAgICAgICAgIHg6IGxlZnQsXHJcbiAgICAgICAgICAgICAgeTogdG9wXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCBpc0xlZnRTaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpID09PSAnbGVmdCc7XHJcbiAgICAgICAgICBjb25zdCBtYXhSaWdodCA9IG1heCguLi5jbGllbnRSZWN0cy5tYXAocmVjdCA9PiByZWN0LnJpZ2h0KSk7XHJcbiAgICAgICAgICBjb25zdCBtaW5MZWZ0ID0gbWluKC4uLmNsaWVudFJlY3RzLm1hcChyZWN0ID0+IHJlY3QubGVmdCkpO1xyXG4gICAgICAgICAgY29uc3QgbWVhc3VyZVJlY3RzID0gY2xpZW50UmVjdHMuZmlsdGVyKHJlY3QgPT4gaXNMZWZ0U2lkZSA/IHJlY3QubGVmdCA9PT0gbWluTGVmdCA6IHJlY3QucmlnaHQgPT09IG1heFJpZ2h0KTtcclxuICAgICAgICAgIGNvbnN0IHRvcCA9IG1lYXN1cmVSZWN0c1swXS50b3A7XHJcbiAgICAgICAgICBjb25zdCBib3R0b20gPSBtZWFzdXJlUmVjdHNbbWVhc3VyZVJlY3RzLmxlbmd0aCAtIDFdLmJvdHRvbTtcclxuICAgICAgICAgIGNvbnN0IGxlZnQgPSBtaW5MZWZ0O1xyXG4gICAgICAgICAgY29uc3QgcmlnaHQgPSBtYXhSaWdodDtcclxuICAgICAgICAgIGNvbnN0IHdpZHRoID0gcmlnaHQgLSBsZWZ0O1xyXG4gICAgICAgICAgY29uc3QgaGVpZ2h0ID0gYm90dG9tIC0gdG9wO1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdG9wLFxyXG4gICAgICAgICAgICBib3R0b20sXHJcbiAgICAgICAgICAgIGxlZnQsXHJcbiAgICAgICAgICAgIHJpZ2h0LFxyXG4gICAgICAgICAgICB3aWR0aCxcclxuICAgICAgICAgICAgaGVpZ2h0LFxyXG4gICAgICAgICAgICB4OiBsZWZ0LFxyXG4gICAgICAgICAgICB5OiB0b3BcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxsYmFjaztcclxuICAgICAgfVxyXG4gICAgICBjb25zdCByZXNldFJlY3RzID0gYXdhaXQgcGxhdGZvcm0uZ2V0RWxlbWVudFJlY3RzKHtcclxuICAgICAgICByZWZlcmVuY2U6IHtcclxuICAgICAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmxvYXRpbmc6IGVsZW1lbnRzLmZsb2F0aW5nLFxyXG4gICAgICAgIHN0cmF0ZWd5XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAocmVjdHMucmVmZXJlbmNlLnggIT09IHJlc2V0UmVjdHMucmVmZXJlbmNlLnggfHwgcmVjdHMucmVmZXJlbmNlLnkgIT09IHJlc2V0UmVjdHMucmVmZXJlbmNlLnkgfHwgcmVjdHMucmVmZXJlbmNlLndpZHRoICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS53aWR0aCB8fCByZWN0cy5yZWZlcmVuY2UuaGVpZ2h0ICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS5oZWlnaHQpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgcmVzZXQ6IHtcclxuICAgICAgICAgICAgcmVjdHM6IHJlc2V0UmVjdHNcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7fTtcclxuICAgIH1cclxuICB9O1xyXG59O1xyXG5cclxuLy8gRm9yIHR5cGUgYmFja3dhcmRzLWNvbXBhdGliaWxpdHksIHRoZSBgT2Zmc2V0T3B0aW9uc2AgdHlwZSB3YXMgYWxzb1xyXG4vLyBEZXJpdmFibGUuXHJcblxyXG5hc3luYyBmdW5jdGlvbiBjb252ZXJ0VmFsdWVUb0Nvb3JkcyhzdGF0ZSwgb3B0aW9ucykge1xyXG4gIGNvbnN0IHtcclxuICAgIHBsYWNlbWVudCxcclxuICAgIHBsYXRmb3JtLFxyXG4gICAgZWxlbWVudHNcclxuICB9ID0gc3RhdGU7XHJcbiAgY29uc3QgcnRsID0gYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpO1xyXG4gIGNvbnN0IHNpZGUgPSBnZXRTaWRlKHBsYWNlbWVudCk7XHJcbiAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XHJcbiAgY29uc3QgaXNWZXJ0aWNhbCA9IGdldFNpZGVBeGlzKHBsYWNlbWVudCkgPT09ICd5JztcclxuICBjb25zdCBtYWluQXhpc011bHRpID0gWydsZWZ0JywgJ3RvcCddLmluY2x1ZGVzKHNpZGUpID8gLTEgOiAxO1xyXG4gIGNvbnN0IGNyb3NzQXhpc011bHRpID0gcnRsICYmIGlzVmVydGljYWwgPyAtMSA6IDE7XHJcbiAgY29uc3QgcmF3VmFsdWUgPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcclxuICBsZXQge1xyXG4gICAgbWFpbkF4aXMsXHJcbiAgICBjcm9zc0F4aXMsXHJcbiAgICBhbGlnbm1lbnRBeGlzXHJcbiAgfSA9IHR5cGVvZiByYXdWYWx1ZSA9PT0gJ251bWJlcicgPyB7XHJcbiAgICBtYWluQXhpczogcmF3VmFsdWUsXHJcbiAgICBjcm9zc0F4aXM6IDAsXHJcbiAgICBhbGlnbm1lbnRBeGlzOiBudWxsXHJcbiAgfSA6IHtcclxuICAgIG1haW5BeGlzOiByYXdWYWx1ZS5tYWluQXhpcyB8fCAwLFxyXG4gICAgY3Jvc3NBeGlzOiByYXdWYWx1ZS5jcm9zc0F4aXMgfHwgMCxcclxuICAgIGFsaWdubWVudEF4aXM6IHJhd1ZhbHVlLmFsaWdubWVudEF4aXNcclxuICB9O1xyXG4gIGlmIChhbGlnbm1lbnQgJiYgdHlwZW9mIGFsaWdubWVudEF4aXMgPT09ICdudW1iZXInKSB7XHJcbiAgICBjcm9zc0F4aXMgPSBhbGlnbm1lbnQgPT09ICdlbmQnID8gYWxpZ25tZW50QXhpcyAqIC0xIDogYWxpZ25tZW50QXhpcztcclxuICB9XHJcbiAgcmV0dXJuIGlzVmVydGljYWwgPyB7XHJcbiAgICB4OiBjcm9zc0F4aXMgKiBjcm9zc0F4aXNNdWx0aSxcclxuICAgIHk6IG1haW5BeGlzICogbWFpbkF4aXNNdWx0aVxyXG4gIH0gOiB7XHJcbiAgICB4OiBtYWluQXhpcyAqIG1haW5BeGlzTXVsdGksXHJcbiAgICB5OiBjcm9zc0F4aXMgKiBjcm9zc0F4aXNNdWx0aVxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBNb2RpZmllcyB0aGUgcGxhY2VtZW50IGJ5IHRyYW5zbGF0aW5nIHRoZSBmbG9hdGluZyBlbGVtZW50IGFsb25nIHRoZVxyXG4gKiBzcGVjaWZpZWQgYXhlcy5cclxuICogQSBudW1iZXIgKHNob3J0aGFuZCBmb3IgYG1haW5BeGlzYCBvciBkaXN0YW5jZSksIG9yIGFuIGF4ZXMgY29uZmlndXJhdGlvblxyXG4gKiBvYmplY3QgbWF5IGJlIHBhc3NlZC5cclxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL29mZnNldFxyXG4gKi9cclxuY29uc3Qgb2Zmc2V0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcclxuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XHJcbiAgICBvcHRpb25zID0gMDtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIG5hbWU6ICdvZmZzZXQnLFxyXG4gICAgb3B0aW9ucyxcclxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XHJcbiAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkb2Zmc2UsIF9taWRkbGV3YXJlRGF0YSRhcnJvdztcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHgsXHJcbiAgICAgICAgeSxcclxuICAgICAgICBwbGFjZW1lbnQsXHJcbiAgICAgICAgbWlkZGxld2FyZURhdGFcclxuICAgICAgfSA9IHN0YXRlO1xyXG4gICAgICBjb25zdCBkaWZmQ29vcmRzID0gYXdhaXQgY29udmVydFZhbHVlVG9Db29yZHMoc3RhdGUsIG9wdGlvbnMpO1xyXG5cclxuICAgICAgLy8gSWYgdGhlIHBsYWNlbWVudCBpcyB0aGUgc2FtZSBhbmQgdGhlIGFycm93IGNhdXNlZCBhbiBhbGlnbm1lbnQgb2Zmc2V0XHJcbiAgICAgIC8vIHRoZW4gd2UgZG9uJ3QgbmVlZCB0byBjaGFuZ2UgdGhlIHBvc2l0aW9uaW5nIGNvb3JkaW5hdGVzLlxyXG4gICAgICBpZiAocGxhY2VtZW50ID09PSAoKF9taWRkbGV3YXJlRGF0YSRvZmZzZSA9IG1pZGRsZXdhcmVEYXRhLm9mZnNldCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRvZmZzZS5wbGFjZW1lbnQpICYmIChfbWlkZGxld2FyZURhdGEkYXJyb3cgPSBtaWRkbGV3YXJlRGF0YS5hcnJvdykgIT0gbnVsbCAmJiBfbWlkZGxld2FyZURhdGEkYXJyb3cuYWxpZ25tZW50T2Zmc2V0KSB7XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgeDogeCArIGRpZmZDb29yZHMueCxcclxuICAgICAgICB5OiB5ICsgZGlmZkNvb3Jkcy55LFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIC4uLmRpZmZDb29yZHMsXHJcbiAgICAgICAgICBwbGFjZW1lbnRcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgc2hpZnRpbmcgaXQgaW4gb3JkZXIgdG9cclxuICoga2VlcCBpdCBpbiB2aWV3IHdoZW4gaXQgd2lsbCBvdmVyZmxvdyB0aGUgY2xpcHBpbmcgYm91bmRhcnkuXHJcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaGlmdFxyXG4gKi9cclxuY29uc3Qgc2hpZnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xyXG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcclxuICAgIG9wdGlvbnMgPSB7fTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIG5hbWU6ICdzaGlmdCcsXHJcbiAgICBvcHRpb25zLFxyXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHgsXHJcbiAgICAgICAgeSxcclxuICAgICAgICBwbGFjZW1lbnRcclxuICAgICAgfSA9IHN0YXRlO1xyXG4gICAgICBjb25zdCB7XHJcbiAgICAgICAgbWFpbkF4aXM6IGNoZWNrTWFpbkF4aXMgPSB0cnVlLFxyXG4gICAgICAgIGNyb3NzQXhpczogY2hlY2tDcm9zc0F4aXMgPSBmYWxzZSxcclxuICAgICAgICBsaW1pdGVyID0ge1xyXG4gICAgICAgICAgZm46IF9yZWYgPT4ge1xyXG4gICAgICAgICAgICBsZXQge1xyXG4gICAgICAgICAgICAgIHgsXHJcbiAgICAgICAgICAgICAgeVxyXG4gICAgICAgICAgICB9ID0gX3JlZjtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICB4LFxyXG4gICAgICAgICAgICAgIHlcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xyXG4gICAgICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xyXG4gICAgICBjb25zdCBjb29yZHMgPSB7XHJcbiAgICAgICAgeCxcclxuICAgICAgICB5XHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIGRldGVjdE92ZXJmbG93T3B0aW9ucyk7XHJcbiAgICAgIGNvbnN0IGNyb3NzQXhpcyA9IGdldFNpZGVBeGlzKGdldFNpZGUocGxhY2VtZW50KSk7XHJcbiAgICAgIGNvbnN0IG1haW5BeGlzID0gZ2V0T3Bwb3NpdGVBeGlzKGNyb3NzQXhpcyk7XHJcbiAgICAgIGxldCBtYWluQXhpc0Nvb3JkID0gY29vcmRzW21haW5BeGlzXTtcclxuICAgICAgbGV0IGNyb3NzQXhpc0Nvb3JkID0gY29vcmRzW2Nyb3NzQXhpc107XHJcbiAgICAgIGlmIChjaGVja01haW5BeGlzKSB7XHJcbiAgICAgICAgY29uc3QgbWluU2lkZSA9IG1haW5BeGlzID09PSAneScgPyAndG9wJyA6ICdsZWZ0JztcclxuICAgICAgICBjb25zdCBtYXhTaWRlID0gbWFpbkF4aXMgPT09ICd5JyA/ICdib3R0b20nIDogJ3JpZ2h0JztcclxuICAgICAgICBjb25zdCBtaW4gPSBtYWluQXhpc0Nvb3JkICsgb3ZlcmZsb3dbbWluU2lkZV07XHJcbiAgICAgICAgY29uc3QgbWF4ID0gbWFpbkF4aXNDb29yZCAtIG92ZXJmbG93W21heFNpZGVdO1xyXG4gICAgICAgIG1haW5BeGlzQ29vcmQgPSBjbGFtcChtaW4sIG1haW5BeGlzQ29vcmQsIG1heCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNoZWNrQ3Jvc3NBeGlzKSB7XHJcbiAgICAgICAgY29uc3QgbWluU2lkZSA9IGNyb3NzQXhpcyA9PT0gJ3knID8gJ3RvcCcgOiAnbGVmdCc7XHJcbiAgICAgICAgY29uc3QgbWF4U2lkZSA9IGNyb3NzQXhpcyA9PT0gJ3knID8gJ2JvdHRvbScgOiAncmlnaHQnO1xyXG4gICAgICAgIGNvbnN0IG1pbiA9IGNyb3NzQXhpc0Nvb3JkICsgb3ZlcmZsb3dbbWluU2lkZV07XHJcbiAgICAgICAgY29uc3QgbWF4ID0gY3Jvc3NBeGlzQ29vcmQgLSBvdmVyZmxvd1ttYXhTaWRlXTtcclxuICAgICAgICBjcm9zc0F4aXNDb29yZCA9IGNsYW1wKG1pbiwgY3Jvc3NBeGlzQ29vcmQsIG1heCk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgbGltaXRlZENvb3JkcyA9IGxpbWl0ZXIuZm4oe1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIFttYWluQXhpc106IG1haW5BeGlzQ29vcmQsXHJcbiAgICAgICAgW2Nyb3NzQXhpc106IGNyb3NzQXhpc0Nvb3JkXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLmxpbWl0ZWRDb29yZHMsXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgeDogbGltaXRlZENvb3Jkcy54IC0geCxcclxuICAgICAgICAgIHk6IGxpbWl0ZWRDb29yZHMueSAtIHksXHJcbiAgICAgICAgICBlbmFibGVkOiB7XHJcbiAgICAgICAgICAgIFttYWluQXhpc106IGNoZWNrTWFpbkF4aXMsXHJcbiAgICAgICAgICAgIFtjcm9zc0F4aXNdOiBjaGVja0Nyb3NzQXhpc1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH1cclxuICB9O1xyXG59O1xyXG4vKipcclxuICogQnVpbHQtaW4gYGxpbWl0ZXJgIHRoYXQgd2lsbCBzdG9wIGBzaGlmdCgpYCBhdCBhIGNlcnRhaW4gcG9pbnQuXHJcbiAqL1xyXG5jb25zdCBsaW1pdFNoaWZ0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcclxuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XHJcbiAgICBvcHRpb25zID0ge307XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICBvcHRpb25zLFxyXG4gICAgZm4oc3RhdGUpIHtcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHgsXHJcbiAgICAgICAgeSxcclxuICAgICAgICBwbGFjZW1lbnQsXHJcbiAgICAgICAgcmVjdHMsXHJcbiAgICAgICAgbWlkZGxld2FyZURhdGFcclxuICAgICAgfSA9IHN0YXRlO1xyXG4gICAgICBjb25zdCB7XHJcbiAgICAgICAgb2Zmc2V0ID0gMCxcclxuICAgICAgICBtYWluQXhpczogY2hlY2tNYWluQXhpcyA9IHRydWUsXHJcbiAgICAgICAgY3Jvc3NBeGlzOiBjaGVja0Nyb3NzQXhpcyA9IHRydWVcclxuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcclxuICAgICAgY29uc3QgY29vcmRzID0ge1xyXG4gICAgICAgIHgsXHJcbiAgICAgICAgeVxyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBjcm9zc0F4aXMgPSBnZXRTaWRlQXhpcyhwbGFjZW1lbnQpO1xyXG4gICAgICBjb25zdCBtYWluQXhpcyA9IGdldE9wcG9zaXRlQXhpcyhjcm9zc0F4aXMpO1xyXG4gICAgICBsZXQgbWFpbkF4aXNDb29yZCA9IGNvb3Jkc1ttYWluQXhpc107XHJcbiAgICAgIGxldCBjcm9zc0F4aXNDb29yZCA9IGNvb3Jkc1tjcm9zc0F4aXNdO1xyXG4gICAgICBjb25zdCByYXdPZmZzZXQgPSBldmFsdWF0ZShvZmZzZXQsIHN0YXRlKTtcclxuICAgICAgY29uc3QgY29tcHV0ZWRPZmZzZXQgPSB0eXBlb2YgcmF3T2Zmc2V0ID09PSAnbnVtYmVyJyA/IHtcclxuICAgICAgICBtYWluQXhpczogcmF3T2Zmc2V0LFxyXG4gICAgICAgIGNyb3NzQXhpczogMFxyXG4gICAgICB9IDoge1xyXG4gICAgICAgIG1haW5BeGlzOiAwLFxyXG4gICAgICAgIGNyb3NzQXhpczogMCxcclxuICAgICAgICAuLi5yYXdPZmZzZXRcclxuICAgICAgfTtcclxuICAgICAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcclxuICAgICAgICBjb25zdCBsZW4gPSBtYWluQXhpcyA9PT0gJ3knID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xyXG4gICAgICAgIGNvbnN0IGxpbWl0TWluID0gcmVjdHMucmVmZXJlbmNlW21haW5BeGlzXSAtIHJlY3RzLmZsb2F0aW5nW2xlbl0gKyBjb21wdXRlZE9mZnNldC5tYWluQXhpcztcclxuICAgICAgICBjb25zdCBsaW1pdE1heCA9IHJlY3RzLnJlZmVyZW5jZVttYWluQXhpc10gKyByZWN0cy5yZWZlcmVuY2VbbGVuXSAtIGNvbXB1dGVkT2Zmc2V0Lm1haW5BeGlzO1xyXG4gICAgICAgIGlmIChtYWluQXhpc0Nvb3JkIDwgbGltaXRNaW4pIHtcclxuICAgICAgICAgIG1haW5BeGlzQ29vcmQgPSBsaW1pdE1pbjtcclxuICAgICAgICB9IGVsc2UgaWYgKG1haW5BeGlzQ29vcmQgPiBsaW1pdE1heCkge1xyXG4gICAgICAgICAgbWFpbkF4aXNDb29yZCA9IGxpbWl0TWF4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoY2hlY2tDcm9zc0F4aXMpIHtcclxuICAgICAgICB2YXIgX21pZGRsZXdhcmVEYXRhJG9mZnNlLCBfbWlkZGxld2FyZURhdGEkb2Zmc2UyO1xyXG4gICAgICAgIGNvbnN0IGxlbiA9IG1haW5BeGlzID09PSAneScgPyAnd2lkdGgnIDogJ2hlaWdodCc7XHJcbiAgICAgICAgY29uc3QgaXNPcmlnaW5TaWRlID0gWyd0b3AnLCAnbGVmdCddLmluY2x1ZGVzKGdldFNpZGUocGxhY2VtZW50KSk7XHJcbiAgICAgICAgY29uc3QgbGltaXRNaW4gPSByZWN0cy5yZWZlcmVuY2VbY3Jvc3NBeGlzXSAtIHJlY3RzLmZsb2F0aW5nW2xlbl0gKyAoaXNPcmlnaW5TaWRlID8gKChfbWlkZGxld2FyZURhdGEkb2Zmc2UgPSBtaWRkbGV3YXJlRGF0YS5vZmZzZXQpID09IG51bGwgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGEkb2Zmc2VbY3Jvc3NBeGlzXSkgfHwgMCA6IDApICsgKGlzT3JpZ2luU2lkZSA/IDAgOiBjb21wdXRlZE9mZnNldC5jcm9zc0F4aXMpO1xyXG4gICAgICAgIGNvbnN0IGxpbWl0TWF4ID0gcmVjdHMucmVmZXJlbmNlW2Nyb3NzQXhpc10gKyByZWN0cy5yZWZlcmVuY2VbbGVuXSArIChpc09yaWdpblNpZGUgPyAwIDogKChfbWlkZGxld2FyZURhdGEkb2Zmc2UyID0gbWlkZGxld2FyZURhdGEub2Zmc2V0KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJG9mZnNlMltjcm9zc0F4aXNdKSB8fCAwKSAtIChpc09yaWdpblNpZGUgPyBjb21wdXRlZE9mZnNldC5jcm9zc0F4aXMgOiAwKTtcclxuICAgICAgICBpZiAoY3Jvc3NBeGlzQ29vcmQgPCBsaW1pdE1pbikge1xyXG4gICAgICAgICAgY3Jvc3NBeGlzQ29vcmQgPSBsaW1pdE1pbjtcclxuICAgICAgICB9IGVsc2UgaWYgKGNyb3NzQXhpc0Nvb3JkID4gbGltaXRNYXgpIHtcclxuICAgICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gbGltaXRNYXg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgW21haW5BeGlzXTogbWFpbkF4aXNDb29yZCxcclxuICAgICAgICBbY3Jvc3NBeGlzXTogY3Jvc3NBeGlzQ29vcmRcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGRhdGEgdGhhdCBhbGxvd3MgeW91IHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCDigJRcclxuICogZm9yIGluc3RhbmNlLCBwcmV2ZW50IGl0IGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNsaXBwaW5nIGJvdW5kYXJ5IG9yIG1hdGNoIHRoZVxyXG4gKiB3aWR0aCBvZiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXHJcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaXplXHJcbiAqL1xyXG5jb25zdCBzaXplID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcclxuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XHJcbiAgICBvcHRpb25zID0ge307XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICBuYW1lOiAnc2l6ZScsXHJcbiAgICBvcHRpb25zLFxyXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcclxuICAgICAgdmFyIF9zdGF0ZSRtaWRkbGV3YXJlRGF0YSwgX3N0YXRlJG1pZGRsZXdhcmVEYXRhMjtcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHBsYWNlbWVudCxcclxuICAgICAgICByZWN0cyxcclxuICAgICAgICBwbGF0Zm9ybSxcclxuICAgICAgICBlbGVtZW50c1xyXG4gICAgICB9ID0gc3RhdGU7XHJcbiAgICAgIGNvbnN0IHtcclxuICAgICAgICBhcHBseSA9ICgpID0+IHt9LFxyXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xyXG4gICAgICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xyXG4gICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCBkZXRlY3RPdmVyZmxvd09wdGlvbnMpO1xyXG4gICAgICBjb25zdCBzaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpO1xyXG4gICAgICBjb25zdCBhbGlnbm1lbnQgPSBnZXRBbGlnbm1lbnQocGxhY2VtZW50KTtcclxuICAgICAgY29uc3QgaXNZQXhpcyA9IGdldFNpZGVBeGlzKHBsYWNlbWVudCkgPT09ICd5JztcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHdpZHRoLFxyXG4gICAgICAgIGhlaWdodFxyXG4gICAgICB9ID0gcmVjdHMuZmxvYXRpbmc7XHJcbiAgICAgIGxldCBoZWlnaHRTaWRlO1xyXG4gICAgICBsZXQgd2lkdGhTaWRlO1xyXG4gICAgICBpZiAoc2lkZSA9PT0gJ3RvcCcgfHwgc2lkZSA9PT0gJ2JvdHRvbScpIHtcclxuICAgICAgICBoZWlnaHRTaWRlID0gc2lkZTtcclxuICAgICAgICB3aWR0aFNpZGUgPSBhbGlnbm1lbnQgPT09ICgoYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpKSA/ICdzdGFydCcgOiAnZW5kJykgPyAnbGVmdCcgOiAncmlnaHQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHdpZHRoU2lkZSA9IHNpZGU7XHJcbiAgICAgICAgaGVpZ2h0U2lkZSA9IGFsaWdubWVudCA9PT0gJ2VuZCcgPyAndG9wJyA6ICdib3R0b20nO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG1heGltdW1DbGlwcGluZ0hlaWdodCA9IGhlaWdodCAtIG92ZXJmbG93LnRvcCAtIG92ZXJmbG93LmJvdHRvbTtcclxuICAgICAgY29uc3QgbWF4aW11bUNsaXBwaW5nV2lkdGggPSB3aWR0aCAtIG92ZXJmbG93LmxlZnQgLSBvdmVyZmxvdy5yaWdodDtcclxuICAgICAgY29uc3Qgb3ZlcmZsb3dBdmFpbGFibGVIZWlnaHQgPSBtaW4oaGVpZ2h0IC0gb3ZlcmZsb3dbaGVpZ2h0U2lkZV0sIG1heGltdW1DbGlwcGluZ0hlaWdodCk7XHJcbiAgICAgIGNvbnN0IG92ZXJmbG93QXZhaWxhYmxlV2lkdGggPSBtaW4od2lkdGggLSBvdmVyZmxvd1t3aWR0aFNpZGVdLCBtYXhpbXVtQ2xpcHBpbmdXaWR0aCk7XHJcbiAgICAgIGNvbnN0IG5vU2hpZnQgPSAhc3RhdGUubWlkZGxld2FyZURhdGEuc2hpZnQ7XHJcbiAgICAgIGxldCBhdmFpbGFibGVIZWlnaHQgPSBvdmVyZmxvd0F2YWlsYWJsZUhlaWdodDtcclxuICAgICAgbGV0IGF2YWlsYWJsZVdpZHRoID0gb3ZlcmZsb3dBdmFpbGFibGVXaWR0aDtcclxuICAgICAgaWYgKChfc3RhdGUkbWlkZGxld2FyZURhdGEgPSBzdGF0ZS5taWRkbGV3YXJlRGF0YS5zaGlmdCkgIT0gbnVsbCAmJiBfc3RhdGUkbWlkZGxld2FyZURhdGEuZW5hYmxlZC54KSB7XHJcbiAgICAgICAgYXZhaWxhYmxlV2lkdGggPSBtYXhpbXVtQ2xpcHBpbmdXaWR0aDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoKF9zdGF0ZSRtaWRkbGV3YXJlRGF0YTIgPSBzdGF0ZS5taWRkbGV3YXJlRGF0YS5zaGlmdCkgIT0gbnVsbCAmJiBfc3RhdGUkbWlkZGxld2FyZURhdGEyLmVuYWJsZWQueSkge1xyXG4gICAgICAgIGF2YWlsYWJsZUhlaWdodCA9IG1heGltdW1DbGlwcGluZ0hlaWdodDtcclxuICAgICAgfVxyXG4gICAgICBpZiAobm9TaGlmdCAmJiAhYWxpZ25tZW50KSB7XHJcbiAgICAgICAgY29uc3QgeE1pbiA9IG1heChvdmVyZmxvdy5sZWZ0LCAwKTtcclxuICAgICAgICBjb25zdCB4TWF4ID0gbWF4KG92ZXJmbG93LnJpZ2h0LCAwKTtcclxuICAgICAgICBjb25zdCB5TWluID0gbWF4KG92ZXJmbG93LnRvcCwgMCk7XHJcbiAgICAgICAgY29uc3QgeU1heCA9IG1heChvdmVyZmxvdy5ib3R0b20sIDApO1xyXG4gICAgICAgIGlmIChpc1lBeGlzKSB7XHJcbiAgICAgICAgICBhdmFpbGFibGVXaWR0aCA9IHdpZHRoIC0gMiAqICh4TWluICE9PSAwIHx8IHhNYXggIT09IDAgPyB4TWluICsgeE1heCA6IG1heChvdmVyZmxvdy5sZWZ0LCBvdmVyZmxvdy5yaWdodCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhdmFpbGFibGVIZWlnaHQgPSBoZWlnaHQgLSAyICogKHlNaW4gIT09IDAgfHwgeU1heCAhPT0gMCA/IHlNaW4gKyB5TWF4IDogbWF4KG92ZXJmbG93LnRvcCwgb3ZlcmZsb3cuYm90dG9tKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGF3YWl0IGFwcGx5KHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBhdmFpbGFibGVXaWR0aCxcclxuICAgICAgICBhdmFpbGFibGVIZWlnaHRcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IG5leHREaW1lbnNpb25zID0gYXdhaXQgcGxhdGZvcm0uZ2V0RGltZW5zaW9ucyhlbGVtZW50cy5mbG9hdGluZyk7XHJcbiAgICAgIGlmICh3aWR0aCAhPT0gbmV4dERpbWVuc2lvbnMud2lkdGggfHwgaGVpZ2h0ICE9PSBuZXh0RGltZW5zaW9ucy5oZWlnaHQpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgcmVzZXQ6IHtcclxuICAgICAgICAgICAgcmVjdHM6IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7fTtcclxuICAgIH1cclxuICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IHsgYXJyb3csIGF1dG9QbGFjZW1lbnQsIGNvbXB1dGVQb3NpdGlvbiwgZGV0ZWN0T3ZlcmZsb3csIGZsaXAsIGhpZGUsIGlubGluZSwgbGltaXRTaGlmdCwgb2Zmc2V0LCBzaGlmdCwgc2l6ZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs ***!
|
||
\****************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ arrow: function() { return /* binding */ arrow; },\n/* harmony export */ autoPlacement: function() { return /* binding */ autoPlacement; },\n/* harmony export */ autoUpdate: function() { return /* binding */ autoUpdate; },\n/* harmony export */ computePosition: function() { return /* binding */ computePosition; },\n/* harmony export */ detectOverflow: function() { return /* binding */ detectOverflow; },\n/* harmony export */ flip: function() { return /* binding */ flip; },\n/* harmony export */ getOverflowAncestors: function() { return /* reexport safe */ _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getOverflowAncestors; },\n/* harmony export */ hide: function() { return /* binding */ hide; },\n/* harmony export */ inline: function() { return /* binding */ inline; },\n/* harmony export */ limitShift: function() { return /* binding */ limitShift; },\n/* harmony export */ offset: function() { return /* binding */ offset; },\n/* harmony export */ platform: function() { return /* binding */ platform; },\n/* harmony export */ shift: function() { return /* binding */ shift; },\n/* harmony export */ size: function() { return /* binding */ size; }\n/* harmony export */ });\n/* harmony import */ var _floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @floating-ui/utils */ \"(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\");\n/* harmony import */ var _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @floating-ui/core */ \"(app-pages-browser)/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs\");\n/* harmony import */ var _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/utils/dom */ \"(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs\");\n\r\n\r\n\r\n\r\n\r\nfunction getCssDimensions(element) {\r\n const css = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element);\r\n // In testing environments, the `width` and `height` properties are empty\r\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\r\n let width = parseFloat(css.width) || 0;\r\n let height = parseFloat(css.height) || 0;\r\n const hasOffset = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element);\r\n const offsetWidth = hasOffset ? element.offsetWidth : width;\r\n const offsetHeight = hasOffset ? element.offsetHeight : height;\r\n const shouldFallback = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.round)(width) !== offsetWidth || (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.round)(height) !== offsetHeight;\r\n if (shouldFallback) {\r\n width = offsetWidth;\r\n height = offsetHeight;\r\n }\r\n return {\r\n width,\r\n height,\r\n $: shouldFallback\r\n };\r\n}\r\n\r\nfunction unwrapElement(element) {\r\n return !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? element.contextElement : element;\r\n}\r\n\r\nfunction getScale(element) {\r\n const domElement = unwrapElement(element);\r\n if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(domElement)) {\r\n return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(1);\r\n }\r\n const rect = domElement.getBoundingClientRect();\r\n const {\r\n width,\r\n height,\r\n $\r\n } = getCssDimensions(domElement);\r\n let x = ($ ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.round)(rect.width) : rect.width) / width;\r\n let y = ($ ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.round)(rect.height) : rect.height) / height;\r\n\r\n // 0, NaN, or Infinity should always fallback to 1.\r\n\r\n if (!x || !Number.isFinite(x)) {\r\n x = 1;\r\n }\r\n if (!y || !Number.isFinite(y)) {\r\n y = 1;\r\n }\r\n return {\r\n x,\r\n y\r\n };\r\n}\r\n\r\nconst noOffsets = /*#__PURE__*/(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\r\nfunction getVisualOffsets(element) {\r\n const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(element);\r\n if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isWebKit)() || !win.visualViewport) {\r\n return noOffsets;\r\n }\r\n return {\r\n x: win.visualViewport.offsetLeft,\r\n y: win.visualViewport.offsetTop\r\n };\r\n}\r\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\r\n if (isFixed === void 0) {\r\n isFixed = false;\r\n }\r\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(element)) {\r\n return false;\r\n }\r\n return isFixed;\r\n}\r\n\r\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\r\n if (includeScale === void 0) {\r\n includeScale = false;\r\n }\r\n if (isFixedStrategy === void 0) {\r\n isFixedStrategy = false;\r\n }\r\n const clientRect = element.getBoundingClientRect();\r\n const domElement = unwrapElement(element);\r\n let scale = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(1);\r\n if (includeScale) {\r\n if (offsetParent) {\r\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(offsetParent)) {\r\n scale = getScale(offsetParent);\r\n }\r\n } else {\r\n scale = getScale(element);\r\n }\r\n }\r\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\r\n let x = (clientRect.left + visualOffsets.x) / scale.x;\r\n let y = (clientRect.top + visualOffsets.y) / scale.y;\r\n let width = clientRect.width / scale.x;\r\n let height = clientRect.height / scale.y;\r\n if (domElement) {\r\n const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(domElement);\r\n const offsetWin = offsetParent && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(offsetParent) ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(offsetParent) : offsetParent;\r\n let currentWin = win;\r\n let currentIFrame = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getFrameElement)(currentWin);\r\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\r\n const iframeScale = getScale(currentIFrame);\r\n const iframeRect = currentIFrame.getBoundingClientRect();\r\n const css = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(currentIFrame);\r\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\r\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\r\n x *= iframeScale.x;\r\n y *= iframeScale.y;\r\n width *= iframeScale.x;\r\n height *= iframeScale.y;\r\n x += left;\r\n y += top;\r\n currentWin = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(currentIFrame);\r\n currentIFrame = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getFrameElement)(currentWin);\r\n }\r\n }\r\n return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.rectToClientRect)({\r\n width,\r\n height,\r\n x,\r\n y\r\n });\r\n}\r\n\r\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\r\n let {\r\n elements,\r\n rect,\r\n offsetParent,\r\n strategy\r\n } = _ref;\r\n const isFixed = strategy === 'fixed';\r\n const documentElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(offsetParent);\r\n const topLayer = elements ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isTopLayer)(elements.floating) : false;\r\n if (offsetParent === documentElement || topLayer && isFixed) {\r\n return rect;\r\n }\r\n let scroll = {\r\n scrollLeft: 0,\r\n scrollTop: 0\r\n };\r\n let scale = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(1);\r\n const offsets = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\r\n const isOffsetParentAnElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(offsetParent);\r\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\r\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeName)(offsetParent) !== 'body' || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isOverflowElement)(documentElement)) {\r\n scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeScroll)(offsetParent);\r\n }\r\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(offsetParent)) {\r\n const offsetRect = getBoundingClientRect(offsetParent);\r\n scale = getScale(offsetParent);\r\n offsets.x = offsetRect.x + offsetParent.clientLeft;\r\n offsets.y = offsetRect.y + offsetParent.clientTop;\r\n }\r\n }\r\n return {\r\n width: rect.width * scale.x,\r\n height: rect.height * scale.y,\r\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\r\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\r\n };\r\n}\r\n\r\nfunction getClientRects(element) {\r\n return Array.from(element.getClientRects());\r\n}\r\n\r\n// If <html> has a CSS width greater than the viewport, then this will be\r\n// incorrect for RTL.\r\nfunction getWindowScrollBarX(element, rect) {\r\n const leftScroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeScroll)(element).scrollLeft;\r\n if (!rect) {\r\n return getBoundingClientRect((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element)).left + leftScroll;\r\n }\r\n return rect.left + leftScroll;\r\n}\r\n\r\n// Gets the entire size of the scrollable document area, even extending outside\r\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\r\nfunction getDocumentRect(element) {\r\n const html = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element);\r\n const scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeScroll)(element);\r\n const body = element.ownerDocument.body;\r\n const width = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\r\n const height = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\r\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\r\n const y = -scroll.scrollTop;\r\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(body).direction === 'rtl') {\r\n x += (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(html.clientWidth, body.clientWidth) - width;\r\n }\r\n return {\r\n width,\r\n height,\r\n x,\r\n y\r\n };\r\n}\r\n\r\nfunction getViewportRect(element, strategy) {\r\n const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(element);\r\n const html = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element);\r\n const visualViewport = win.visualViewport;\r\n let width = html.clientWidth;\r\n let height = html.clientHeight;\r\n let x = 0;\r\n let y = 0;\r\n if (visualViewport) {\r\n width = visualViewport.width;\r\n height = visualViewport.height;\r\n const visualViewportBased = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isWebKit)();\r\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\r\n x = visualViewport.offsetLeft;\r\n y = visualViewport.offsetTop;\r\n }\r\n }\r\n return {\r\n width,\r\n height,\r\n x,\r\n y\r\n };\r\n}\r\n\r\n// Returns the inner client rect, subtracting scrollbars if present.\r\nfunction getInnerBoundingClientRect(element, strategy) {\r\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\r\n const top = clientRect.top + element.clientTop;\r\n const left = clientRect.left + element.clientLeft;\r\n const scale = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) ? getScale(element) : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(1);\r\n const width = element.clientWidth * scale.x;\r\n const height = element.clientHeight * scale.y;\r\n const x = left * scale.x;\r\n const y = top * scale.y;\r\n return {\r\n width,\r\n height,\r\n x,\r\n y\r\n };\r\n}\r\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\r\n let rect;\r\n if (clippingAncestor === 'viewport') {\r\n rect = getViewportRect(element, strategy);\r\n } else if (clippingAncestor === 'document') {\r\n rect = getDocumentRect((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element));\r\n } else if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(clippingAncestor)) {\r\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\r\n } else {\r\n const visualOffsets = getVisualOffsets(element);\r\n rect = {\r\n ...clippingAncestor,\r\n x: clippingAncestor.x - visualOffsets.x,\r\n y: clippingAncestor.y - visualOffsets.y\r\n };\r\n }\r\n return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.rectToClientRect)(rect);\r\n}\r\nfunction hasFixedPositionAncestor(element, stopNode) {\r\n const parentNode = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(element);\r\n if (parentNode === stopNode || !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(parentNode) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isLastTraversableNode)(parentNode)) {\r\n return false;\r\n }\r\n return (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\r\n}\r\n\r\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\r\n// clipping (or hiding) child elements. This returns all clipping ancestors\r\n// of the given element up the tree.\r\nfunction getClippingElementAncestors(element, cache) {\r\n const cachedResult = cache.get(element);\r\n if (cachedResult) {\r\n return cachedResult;\r\n }\r\n let result = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getOverflowAncestors)(element, [], false).filter(el => (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(el) && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeName)(el) !== 'body');\r\n let currentContainingBlockComputedStyle = null;\r\n const elementIsFixed = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element).position === 'fixed';\r\n let currentNode = elementIsFixed ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(element) : element;\r\n\r\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\r\n while ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(currentNode) && !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isLastTraversableNode)(currentNode)) {\r\n const computedStyle = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(currentNode);\r\n const currentNodeIsContaining = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isContainingBlock)(currentNode);\r\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\r\n currentContainingBlockComputedStyle = null;\r\n }\r\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isOverflowElement)(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\r\n if (shouldDropCurrentNode) {\r\n // Drop non-containing blocks.\r\n result = result.filter(ancestor => ancestor !== currentNode);\r\n } else {\r\n // Record last containing block for next iteration.\r\n currentContainingBlockComputedStyle = computedStyle;\r\n }\r\n currentNode = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(currentNode);\r\n }\r\n cache.set(element, result);\r\n return result;\r\n}\r\n\r\n// Gets the maximum area that the element is visible in due to any number of\r\n// clipping ancestors.\r\nfunction getClippingRect(_ref) {\r\n let {\r\n element,\r\n boundary,\r\n rootBoundary,\r\n strategy\r\n } = _ref;\r\n const elementClippingAncestors = boundary === 'clippingAncestors' ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isTopLayer)(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\r\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\r\n const firstClippingAncestor = clippingAncestors[0];\r\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\r\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\r\n accRect.top = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(rect.top, accRect.top);\r\n accRect.right = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.min)(rect.right, accRect.right);\r\n accRect.bottom = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.min)(rect.bottom, accRect.bottom);\r\n accRect.left = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(rect.left, accRect.left);\r\n return accRect;\r\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\r\n return {\r\n width: clippingRect.right - clippingRect.left,\r\n height: clippingRect.bottom - clippingRect.top,\r\n x: clippingRect.left,\r\n y: clippingRect.top\r\n };\r\n}\r\n\r\nfunction getDimensions(element) {\r\n const {\r\n width,\r\n height\r\n } = getCssDimensions(element);\r\n return {\r\n width,\r\n height\r\n };\r\n}\r\n\r\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\r\n const isOffsetParentAnElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(offsetParent);\r\n const documentElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(offsetParent);\r\n const isFixed = strategy === 'fixed';\r\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\r\n let scroll = {\r\n scrollLeft: 0,\r\n scrollTop: 0\r\n };\r\n const offsets = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\r\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\r\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeName)(offsetParent) !== 'body' || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isOverflowElement)(documentElement)) {\r\n scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeScroll)(offsetParent);\r\n }\r\n if (isOffsetParentAnElement) {\r\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\r\n offsets.x = offsetRect.x + offsetParent.clientLeft;\r\n offsets.y = offsetRect.y + offsetParent.clientTop;\r\n } else if (documentElement) {\r\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\r\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\r\n offsets.x = getWindowScrollBarX(documentElement);\r\n }\r\n }\r\n let htmlX = 0;\r\n let htmlY = 0;\r\n if (documentElement && !isOffsetParentAnElement && !isFixed) {\r\n const htmlRect = documentElement.getBoundingClientRect();\r\n htmlY = htmlRect.top + scroll.scrollTop;\r\n htmlX = htmlRect.left + scroll.scrollLeft -\r\n // RTL <body> scrollbar.\r\n getWindowScrollBarX(documentElement, htmlRect);\r\n }\r\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlX;\r\n const y = rect.top + scroll.scrollTop - offsets.y - htmlY;\r\n return {\r\n x,\r\n y,\r\n width: rect.width,\r\n height: rect.height\r\n };\r\n}\r\n\r\nfunction isStaticPositioned(element) {\r\n return (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element).position === 'static';\r\n}\r\n\r\nfunction getTrueOffsetParent(element, polyfill) {\r\n if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element).position === 'fixed') {\r\n return null;\r\n }\r\n if (polyfill) {\r\n return polyfill(element);\r\n }\r\n let rawOffsetParent = element.offsetParent;\r\n\r\n // Firefox returns the <html> element as the offsetParent if it's non-static,\r\n // while Chrome and Safari return the <body> element. The <body> element must\r\n // be used to perform the correct calculations even if the <html> element is\r\n // non-static.\r\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element) === rawOffsetParent) {\r\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\r\n }\r\n return rawOffsetParent;\r\n}\r\n\r\n// Gets the closest ancestor positioned element. Handles some edge cases,\r\n// such as table ancestors and cross browser bugs.\r\nfunction getOffsetParent(element, polyfill) {\r\n const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(element);\r\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isTopLayer)(element)) {\r\n return win;\r\n }\r\n if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element)) {\r\n let svgOffsetParent = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(element);\r\n while (svgOffsetParent && !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isLastTraversableNode)(svgOffsetParent)) {\r\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\r\n return svgOffsetParent;\r\n }\r\n svgOffsetParent = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(svgOffsetParent);\r\n }\r\n return win;\r\n }\r\n let offsetParent = getTrueOffsetParent(element, polyfill);\r\n while (offsetParent && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isTableElement)(offsetParent) && isStaticPositioned(offsetParent)) {\r\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\r\n }\r\n if (offsetParent && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isLastTraversableNode)(offsetParent) && isStaticPositioned(offsetParent) && !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isContainingBlock)(offsetParent)) {\r\n return win;\r\n }\r\n return offsetParent || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getContainingBlock)(element) || win;\r\n}\r\n\r\nconst getElementRects = async function (data) {\r\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\r\n const getDimensionsFn = this.getDimensions;\r\n const floatingDimensions = await getDimensionsFn(data.floating);\r\n return {\r\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\r\n floating: {\r\n x: 0,\r\n y: 0,\r\n width: floatingDimensions.width,\r\n height: floatingDimensions.height\r\n }\r\n };\r\n};\r\n\r\nfunction isRTL(element) {\r\n return (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element).direction === 'rtl';\r\n}\r\n\r\nconst platform = {\r\n convertOffsetParentRelativeRectToViewportRelativeRect,\r\n getDocumentElement: _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement,\r\n getClippingRect,\r\n getOffsetParent,\r\n getElementRects,\r\n getClientRects,\r\n getDimensions,\r\n getScale,\r\n isElement: _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement,\r\n isRTL\r\n};\r\n\r\n// https://samthor.au/2021/observing-dom/\r\nfunction observeMove(element, onMove) {\r\n let io = null;\r\n let timeoutId;\r\n const root = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element);\r\n function cleanup() {\r\n var _io;\r\n clearTimeout(timeoutId);\r\n (_io = io) == null || _io.disconnect();\r\n io = null;\r\n }\r\n function refresh(skip, threshold) {\r\n if (skip === void 0) {\r\n skip = false;\r\n }\r\n if (threshold === void 0) {\r\n threshold = 1;\r\n }\r\n cleanup();\r\n const {\r\n left,\r\n top,\r\n width,\r\n height\r\n } = element.getBoundingClientRect();\r\n if (!skip) {\r\n onMove();\r\n }\r\n if (!width || !height) {\r\n return;\r\n }\r\n const insetTop = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.floor)(top);\r\n const insetRight = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.floor)(root.clientWidth - (left + width));\r\n const insetBottom = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.floor)(root.clientHeight - (top + height));\r\n const insetLeft = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.floor)(left);\r\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\r\n const options = {\r\n rootMargin,\r\n threshold: (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(0, (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.min)(1, threshold)) || 1\r\n };\r\n let isFirstUpdate = true;\r\n function handleObserve(entries) {\r\n const ratio = entries[0].intersectionRatio;\r\n if (ratio !== threshold) {\r\n if (!isFirstUpdate) {\r\n return refresh();\r\n }\r\n if (!ratio) {\r\n // If the reference is clipped, the ratio is 0. Throttle the refresh\r\n // to prevent an infinite loop of updates.\r\n timeoutId = setTimeout(() => {\r\n refresh(false, 1e-7);\r\n }, 1000);\r\n } else {\r\n refresh(false, ratio);\r\n }\r\n }\r\n isFirstUpdate = false;\r\n }\r\n\r\n // Older browsers don't support a `document` as the root and will throw an\r\n // error.\r\n try {\r\n io = new IntersectionObserver(handleObserve, {\r\n ...options,\r\n // Handle <iframe>s\r\n root: root.ownerDocument\r\n });\r\n } catch (e) {\r\n io = new IntersectionObserver(handleObserve, options);\r\n }\r\n io.observe(element);\r\n }\r\n refresh(true);\r\n return cleanup;\r\n}\r\n\r\n/**\r\n * Automatically updates the position of the floating element when necessary.\r\n * Should only be called when the floating element is mounted on the DOM or\r\n * visible on the screen.\r\n * @returns cleanup function that should be invoked when the floating element is\r\n * removed from the DOM or hidden from the screen.\r\n * @see https://floating-ui.com/docs/autoUpdate\r\n */\r\nfunction autoUpdate(reference, floating, update, options) {\r\n if (options === void 0) {\r\n options = {};\r\n }\r\n const {\r\n ancestorScroll = true,\r\n ancestorResize = true,\r\n elementResize = typeof ResizeObserver === 'function',\r\n layoutShift = typeof IntersectionObserver === 'function',\r\n animationFrame = false\r\n } = options;\r\n const referenceEl = unwrapElement(reference);\r\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getOverflowAncestors)(referenceEl) : []), ...(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getOverflowAncestors)(floating)] : [];\r\n ancestors.forEach(ancestor => {\r\n ancestorScroll && ancestor.addEventListener('scroll', update, {\r\n passive: true\r\n });\r\n ancestorResize && ancestor.addEventListener('resize', update);\r\n });\r\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\r\n let reobserveFrame = -1;\r\n let resizeObserver = null;\r\n if (elementResize) {\r\n resizeObserver = new ResizeObserver(_ref => {\r\n let [firstEntry] = _ref;\r\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\r\n // Prevent update loops when using the `size` middleware.\r\n // https://github.com/floating-ui/floating-ui/issues/1740\r\n resizeObserver.unobserve(floating);\r\n cancelAnimationFrame(reobserveFrame);\r\n reobserveFrame = requestAnimationFrame(() => {\r\n var _resizeObserver;\r\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\r\n });\r\n }\r\n update();\r\n });\r\n if (referenceEl && !animationFrame) {\r\n resizeObserver.observe(referenceEl);\r\n }\r\n resizeObserver.observe(floating);\r\n }\r\n let frameId;\r\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\r\n if (animationFrame) {\r\n frameLoop();\r\n }\r\n function frameLoop() {\r\n const nextRefRect = getBoundingClientRect(reference);\r\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\r\n update();\r\n }\r\n prevRefRect = nextRefRect;\r\n frameId = requestAnimationFrame(frameLoop);\r\n }\r\n update();\r\n return () => {\r\n var _resizeObserver2;\r\n ancestors.forEach(ancestor => {\r\n ancestorScroll && ancestor.removeEventListener('scroll', update);\r\n ancestorResize && ancestor.removeEventListener('resize', update);\r\n });\r\n cleanupIo == null || cleanupIo();\r\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\r\n resizeObserver = null;\r\n if (animationFrame) {\r\n cancelAnimationFrame(frameId);\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * Resolves with an object of overflow side offsets that determine how much the\r\n * element is overflowing a given clipping boundary on each side.\r\n * - positive = overflowing the boundary by that number of pixels\r\n * - negative = how many pixels left before it will overflow\r\n * - 0 = lies flush with the boundary\r\n * @see https://floating-ui.com/docs/detectOverflow\r\n */\r\nconst detectOverflow = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.detectOverflow;\r\n\r\n/**\r\n * Modifies the placement by translating the floating element along the\r\n * specified axes.\r\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\r\n * object may be passed.\r\n * @see https://floating-ui.com/docs/offset\r\n */\r\nconst offset = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.offset;\r\n\r\n/**\r\n * Optimizes the visibility of the floating element by choosing the placement\r\n * that has the most space available automatically, without needing to specify a\r\n * preferred placement. Alternative to `flip`.\r\n * @see https://floating-ui.com/docs/autoPlacement\r\n */\r\nconst autoPlacement = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.autoPlacement;\r\n\r\n/**\r\n * Optimizes the visibility of the floating element by shifting it in order to\r\n * keep it in view when it will overflow the clipping boundary.\r\n * @see https://floating-ui.com/docs/shift\r\n */\r\nconst shift = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.shift;\r\n\r\n/**\r\n * Optimizes the visibility of the floating element by flipping the `placement`\r\n * in order to keep it in view when the preferred placement(s) will overflow the\r\n * clipping boundary. Alternative to `autoPlacement`.\r\n * @see https://floating-ui.com/docs/flip\r\n */\r\nconst flip = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.flip;\r\n\r\n/**\r\n * Provides data that allows you to change the size of the floating element —\r\n * for instance, prevent it from overflowing the clipping boundary or match the\r\n * width of the reference element.\r\n * @see https://floating-ui.com/docs/size\r\n */\r\nconst size = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.size;\r\n\r\n/**\r\n * Provides data to hide the floating element in applicable situations, such as\r\n * when it is not in the same clipping context as the reference element.\r\n * @see https://floating-ui.com/docs/hide\r\n */\r\nconst hide = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.hide;\r\n\r\n/**\r\n * Provides data to position an inner element of the floating element so that it\r\n * appears centered to the reference element.\r\n * @see https://floating-ui.com/docs/arrow\r\n */\r\nconst arrow = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.arrow;\r\n\r\n/**\r\n * Provides improved positioning for inline reference elements that can span\r\n * over multiple lines, such as hyperlinks or range selections.\r\n * @see https://floating-ui.com/docs/inline\r\n */\r\nconst inline = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.inline;\r\n\r\n/**\r\n * Built-in `limiter` that will stop `shift()` at a certain point.\r\n */\r\nconst limitShift = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.limitShift;\r\n\r\n/**\r\n * Computes the `x` and `y` coordinates that will place the floating element\r\n * next to a given reference element.\r\n */\r\nconst computePosition = (reference, floating, options) => {\r\n // This caches the expensive `getClippingElementAncestors` function so that\r\n // multiple lifecycle resets re-use the same result. It only lives for a\r\n // single call. If other functions become expensive, we can add them as well.\r\n const cache = new Map();\r\n const mergedOptions = {\r\n platform,\r\n ...options\r\n };\r\n const platformWithCache = {\r\n ...mergedOptions.platform,\r\n _c: cache\r\n };\r\n return (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.computePosition)(reference, floating, {\r\n ...mergedOptions,\r\n platform: platformWithCache\r\n });\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvZG9tL2Rpc3QvZmxvYXRpbmctdWkuZG9tLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF5VDtBQUMvTztBQUNrUDtBQUM5UDtBQUM5RDtBQUNBO0FBQ0EsY0FBYyx3RUFBZ0I7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IscUVBQWE7QUFDakM7QUFDQTtBQUNBLHlCQUF5Qix5REFBSywyQkFBMkIseURBQUs7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxpRUFBUztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8scUVBQWE7QUFDcEIsV0FBVyxnRUFBWTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osZUFBZSx5REFBSztBQUNwQixlQUFlLHlEQUFLO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixnRUFBWTtBQUMzQztBQUNBLGNBQWMsaUVBQVM7QUFDdkIsT0FBTyxnRUFBUTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRUFBbUUsaUVBQVM7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsZ0VBQVk7QUFDMUI7QUFDQTtBQUNBLFVBQVUsaUVBQVM7QUFDbkI7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSwySEFBMkgsZ0VBQVk7QUFDdkk7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixpRUFBUztBQUN6QixzQ0FBc0MsaUVBQVMsaUJBQWlCLGlFQUFTO0FBQ3pFO0FBQ0Esd0JBQXdCLHVFQUFlO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQix3RUFBZ0I7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixpRUFBUztBQUM1QixzQkFBc0IsdUVBQWU7QUFDckM7QUFDQTtBQUNBLFNBQVMsb0VBQWdCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSwwQkFBMEIsMEVBQWtCO0FBQzVDLDhCQUE4QixrRUFBVTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsZ0VBQVk7QUFDMUIsa0JBQWtCLGdFQUFZO0FBQzlCLGtDQUFrQyxxRUFBYTtBQUMvQztBQUNBLFFBQVEsbUVBQVcsNkJBQTZCLHlFQUFpQjtBQUNqRSxlQUFlLHFFQUFhO0FBQzVCO0FBQ0EsUUFBUSxxRUFBYTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIscUVBQWE7QUFDbEM7QUFDQSxpQ0FBaUMsMEVBQWtCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSwwRUFBa0I7QUFDakMsaUJBQWlCLHFFQUFhO0FBQzlCO0FBQ0EsZ0JBQWdCLHVEQUFHO0FBQ25CLGlCQUFpQix1REFBRztBQUNwQjtBQUNBO0FBQ0EsTUFBTSx3RUFBZ0I7QUFDdEIsU0FBUyx1REFBRztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxpRUFBUztBQUN2QixlQUFlLDBFQUFrQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLGdFQUFRO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxRUFBYSxnQ0FBZ0MsZ0VBQVk7QUFDekU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLDJCQUEyQiwwRUFBa0I7QUFDN0MsSUFBSSxTQUFTLGlFQUFTO0FBQ3RCO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxvRUFBZ0I7QUFDekI7QUFDQTtBQUNBLHFCQUFxQixxRUFBYTtBQUNsQyxrQ0FBa0MsaUVBQVMsZ0JBQWdCLDZFQUFxQjtBQUNoRjtBQUNBO0FBQ0EsU0FBUyx3RUFBZ0I7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDRFQUFvQixrQ0FBa0MsaUVBQVMsUUFBUSxtRUFBVztBQUNqRztBQUNBLHlCQUF5Qix3RUFBZ0I7QUFDekMscUNBQXFDLHFFQUFhO0FBQ2xEO0FBQ0E7QUFDQSxTQUFTLGlFQUFTLGtCQUFrQiw2RUFBcUI7QUFDekQsMEJBQTBCLHdFQUFnQjtBQUMxQyxvQ0FBb0MseUVBQWlCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBLGtUQUFrVCx5RUFBaUI7QUFDblU7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixxRUFBYTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSixzRUFBc0Usa0VBQVU7QUFDaEY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsdURBQUc7QUFDckIsb0JBQW9CLHVEQUFHO0FBQ3ZCLHFCQUFxQix1REFBRztBQUN4QixtQkFBbUIsdURBQUc7QUFDdEI7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLHFFQUFhO0FBQy9DLDBCQUEwQiwwRUFBa0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGdFQUFZO0FBQzlCO0FBQ0EsUUFBUSxtRUFBVyw2QkFBNkIseUVBQWlCO0FBQ2pFLGVBQWUscUVBQWE7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsd0VBQWdCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLE9BQU8scUVBQWEsYUFBYSx3RUFBZ0I7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sMEVBQWtCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLGlFQUFTO0FBQ3ZCLE1BQU0sa0VBQVU7QUFDaEI7QUFDQTtBQUNBLE9BQU8scUVBQWE7QUFDcEIsMEJBQTBCLHFFQUFhO0FBQ3ZDLCtCQUErQiw2RUFBcUI7QUFDcEQsVUFBVSxpRUFBUztBQUNuQjtBQUNBO0FBQ0Esd0JBQXdCLHFFQUFhO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLHNFQUFjO0FBQ3ZDO0FBQ0E7QUFDQSxzQkFBc0IsNkVBQXFCLHVEQUF1RCx5RUFBaUI7QUFDbkg7QUFDQTtBQUNBLHlCQUF5QiwwRUFBa0I7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyx3RUFBZ0I7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSwwRUFBa0I7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLHlEQUFLO0FBQzFCLHVCQUF1Qix5REFBSztBQUM1Qix3QkFBd0IseURBQUs7QUFDN0Isc0JBQXNCLHlEQUFLO0FBQzNCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQix1REFBRyxJQUFJLHVEQUFHO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLDBFQUEwRSw0RUFBb0Isd0JBQXdCLDRFQUFvQjtBQUMxSTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLDZEQUFnQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxxREFBUTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQiw0REFBZTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLG9EQUFPO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxtREFBTTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsbURBQU07QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxtREFBTTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLG9EQUFPO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUscURBQVE7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIseURBQVk7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxrRUFBaUI7QUFDMUI7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQzRJIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvZG9tL2Rpc3QvZmxvYXRpbmctdWkuZG9tLm1qcz8wZDMxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlY3RUb0NsaWVudFJlY3QsIGRldGVjdE92ZXJmbG93IGFzIGRldGVjdE92ZXJmbG93JDEsIG9mZnNldCBhcyBvZmZzZXQkMSwgYXV0b1BsYWNlbWVudCBhcyBhdXRvUGxhY2VtZW50JDEsIHNoaWZ0IGFzIHNoaWZ0JDEsIGZsaXAgYXMgZmxpcCQxLCBzaXplIGFzIHNpemUkMSwgaGlkZSBhcyBoaWRlJDEsIGFycm93IGFzIGFycm93JDEsIGlubGluZSBhcyBpbmxpbmUkMSwgbGltaXRTaGlmdCBhcyBsaW1pdFNoaWZ0JDEsIGNvbXB1dGVQb3NpdGlvbiBhcyBjb21wdXRlUG9zaXRpb24kMSB9IGZyb20gJ0BmbG9hdGluZy11aS9jb3JlJztcclxuaW1wb3J0IHsgcm91bmQsIGNyZWF0ZUNvb3JkcywgbWF4LCBtaW4sIGZsb29yIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3V0aWxzJztcclxuaW1wb3J0IHsgZ2V0Q29tcHV0ZWRTdHlsZSwgaXNIVE1MRWxlbWVudCwgaXNFbGVtZW50LCBnZXRXaW5kb3csIGlzV2ViS2l0LCBnZXRGcmFtZUVsZW1lbnQsIGdldERvY3VtZW50RWxlbWVudCwgaXNUb3BMYXllciwgZ2V0Tm9kZU5hbWUsIGlzT3ZlcmZsb3dFbGVtZW50LCBnZXROb2RlU2Nyb2xsLCBnZXRPdmVyZmxvd0FuY2VzdG9ycywgZ2V0UGFyZW50Tm9kZSwgaXNMYXN0VHJhdmVyc2FibGVOb2RlLCBpc0NvbnRhaW5pbmdCbG9jaywgaXNUYWJsZUVsZW1lbnQsIGdldENvbnRhaW5pbmdCbG9jayB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscy9kb20nO1xyXG5leHBvcnQgeyBnZXRPdmVyZmxvd0FuY2VzdG9ycyB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscy9kb20nO1xyXG5cclxuZnVuY3Rpb24gZ2V0Q3NzRGltZW5zaW9ucyhlbGVtZW50KSB7XHJcbiAgY29uc3QgY3NzID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcclxuICAvLyBJbiB0ZXN0aW5nIGVudmlyb25tZW50cywgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIHByb3BlcnRpZXMgYXJlIGVtcHR5XHJcbiAgLy8gc3RyaW5ncyBmb3IgU1ZHIGVsZW1lbnRzLCByZXR1cm5pbmcgTmFOLiBGYWxsYmFjayB0byBgMGAgaW4gdGhpcyBjYXNlLlxyXG4gIGxldCB3aWR0aCA9IHBhcnNlRmxvYXQoY3NzLndpZHRoKSB8fCAwO1xyXG4gIGxldCBoZWlnaHQgPSBwYXJzZUZsb2F0KGNzcy5oZWlnaHQpIHx8IDA7XHJcbiAgY29uc3QgaGFzT2Zmc2V0ID0gaXNIVE1MRWxlbWVudChlbGVtZW50KTtcclxuICBjb25zdCBvZmZzZXRXaWR0aCA9IGhhc09mZnNldCA/IGVsZW1lbnQub2Zmc2V0V2lkdGggOiB3aWR0aDtcclxuICBjb25zdCBvZmZzZXRIZWlnaHQgPSBoYXNPZmZzZXQgPyBlbGVtZW50Lm9mZnNldEhlaWdodCA6IGhlaWdodDtcclxuICBjb25zdCBzaG91bGRGYWxsYmFjayA9IHJvdW5kKHdpZHRoKSAhPT0gb2Zmc2V0V2lkdGggfHwgcm91bmQoaGVpZ2h0KSAhPT0gb2Zmc2V0SGVpZ2h0O1xyXG4gIGlmIChzaG91bGRGYWxsYmFjaykge1xyXG4gICAgd2lkdGggPSBvZmZzZXRXaWR0aDtcclxuICAgIGhlaWdodCA9IG9mZnNldEhlaWdodDtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIHdpZHRoLFxyXG4gICAgaGVpZ2h0LFxyXG4gICAgJDogc2hvdWxkRmFsbGJhY2tcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiB1bndyYXBFbGVtZW50KGVsZW1lbnQpIHtcclxuICByZXR1cm4gIWlzRWxlbWVudChlbGVtZW50KSA/IGVsZW1lbnQuY29udGV4dEVsZW1lbnQgOiBlbGVtZW50O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTY2FsZShlbGVtZW50KSB7XHJcbiAgY29uc3QgZG9tRWxlbWVudCA9IHVud3JhcEVsZW1lbnQoZWxlbWVudCk7XHJcbiAgaWYgKCFpc0hUTUxFbGVtZW50KGRvbUVsZW1lbnQpKSB7XHJcbiAgICByZXR1cm4gY3JlYXRlQ29vcmRzKDEpO1xyXG4gIH1cclxuICBjb25zdCByZWN0ID0gZG9tRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICBjb25zdCB7XHJcbiAgICB3aWR0aCxcclxuICAgIGhlaWdodCxcclxuICAgICRcclxuICB9ID0gZ2V0Q3NzRGltZW5zaW9ucyhkb21FbGVtZW50KTtcclxuICBsZXQgeCA9ICgkID8gcm91bmQocmVjdC53aWR0aCkgOiByZWN0LndpZHRoKSAvIHdpZHRoO1xyXG4gIGxldCB5ID0gKCQgPyByb3VuZChyZWN0LmhlaWdodCkgOiByZWN0LmhlaWdodCkgLyBoZWlnaHQ7XHJcblxyXG4gIC8vIDAsIE5hTiwgb3IgSW5maW5pdHkgc2hvdWxkIGFsd2F5cyBmYWxsYmFjayB0byAxLlxyXG5cclxuICBpZiAoIXggfHwgIU51bWJlci5pc0Zpbml0ZSh4KSkge1xyXG4gICAgeCA9IDE7XHJcbiAgfVxyXG4gIGlmICgheSB8fCAhTnVtYmVyLmlzRmluaXRlKHkpKSB7XHJcbiAgICB5ID0gMTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIHgsXHJcbiAgICB5XHJcbiAgfTtcclxufVxyXG5cclxuY29uc3Qgbm9PZmZzZXRzID0gLyojX19QVVJFX18qL2NyZWF0ZUNvb3JkcygwKTtcclxuZnVuY3Rpb24gZ2V0VmlzdWFsT2Zmc2V0cyhlbGVtZW50KSB7XHJcbiAgY29uc3Qgd2luID0gZ2V0V2luZG93KGVsZW1lbnQpO1xyXG4gIGlmICghaXNXZWJLaXQoKSB8fCAhd2luLnZpc3VhbFZpZXdwb3J0KSB7XHJcbiAgICByZXR1cm4gbm9PZmZzZXRzO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgeDogd2luLnZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQsXHJcbiAgICB5OiB3aW4udmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wXHJcbiAgfTtcclxufVxyXG5mdW5jdGlvbiBzaG91bGRBZGRWaXN1YWxPZmZzZXRzKGVsZW1lbnQsIGlzRml4ZWQsIGZsb2F0aW5nT2Zmc2V0UGFyZW50KSB7XHJcbiAgaWYgKGlzRml4ZWQgPT09IHZvaWQgMCkge1xyXG4gICAgaXNGaXhlZCA9IGZhbHNlO1xyXG4gIH1cclxuICBpZiAoIWZsb2F0aW5nT2Zmc2V0UGFyZW50IHx8IGlzRml4ZWQgJiYgZmxvYXRpbmdPZmZzZXRQYXJlbnQgIT09IGdldFdpbmRvdyhlbGVtZW50KSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICByZXR1cm4gaXNGaXhlZDtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIGluY2x1ZGVTY2FsZSwgaXNGaXhlZFN0cmF0ZWd5LCBvZmZzZXRQYXJlbnQpIHtcclxuICBpZiAoaW5jbHVkZVNjYWxlID09PSB2b2lkIDApIHtcclxuICAgIGluY2x1ZGVTY2FsZSA9IGZhbHNlO1xyXG4gIH1cclxuICBpZiAoaXNGaXhlZFN0cmF0ZWd5ID09PSB2b2lkIDApIHtcclxuICAgIGlzRml4ZWRTdHJhdGVneSA9IGZhbHNlO1xyXG4gIH1cclxuICBjb25zdCBjbGllbnRSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICBjb25zdCBkb21FbGVtZW50ID0gdW53cmFwRWxlbWVudChlbGVtZW50KTtcclxuICBsZXQgc2NhbGUgPSBjcmVhdGVDb29yZHMoMSk7XHJcbiAgaWYgKGluY2x1ZGVTY2FsZSkge1xyXG4gICAgaWYgKG9mZnNldFBhcmVudCkge1xyXG4gICAgICBpZiAoaXNFbGVtZW50KG9mZnNldFBhcmVudCkpIHtcclxuICAgICAgICBzY2FsZSA9IGdldFNjYWxlKG9mZnNldFBhcmVudCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNjYWxlID0gZ2V0U2NhbGUoZWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnN0IHZpc3VhbE9mZnNldHMgPSBzaG91bGRBZGRWaXN1YWxPZmZzZXRzKGRvbUVsZW1lbnQsIGlzRml4ZWRTdHJhdGVneSwgb2Zmc2V0UGFyZW50KSA/IGdldFZpc3VhbE9mZnNldHMoZG9tRWxlbWVudCkgOiBjcmVhdGVDb29yZHMoMCk7XHJcbiAgbGV0IHggPSAoY2xpZW50UmVjdC5sZWZ0ICsgdmlzdWFsT2Zmc2V0cy54KSAvIHNjYWxlLng7XHJcbiAgbGV0IHkgPSAoY2xpZW50UmVjdC50b3AgKyB2aXN1YWxPZmZzZXRzLnkpIC8gc2NhbGUueTtcclxuICBsZXQgd2lkdGggPSBjbGllbnRSZWN0LndpZHRoIC8gc2NhbGUueDtcclxuICBsZXQgaGVpZ2h0ID0gY2xpZW50UmVjdC5oZWlnaHQgLyBzY2FsZS55O1xyXG4gIGlmIChkb21FbGVtZW50KSB7XHJcbiAgICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZG9tRWxlbWVudCk7XHJcbiAgICBjb25zdCBvZmZzZXRXaW4gPSBvZmZzZXRQYXJlbnQgJiYgaXNFbGVtZW50KG9mZnNldFBhcmVudCkgPyBnZXRXaW5kb3cob2Zmc2V0UGFyZW50KSA6IG9mZnNldFBhcmVudDtcclxuICAgIGxldCBjdXJyZW50V2luID0gd2luO1xyXG4gICAgbGV0IGN1cnJlbnRJRnJhbWUgPSBnZXRGcmFtZUVsZW1lbnQoY3VycmVudFdpbik7XHJcbiAgICB3aGlsZSAoY3VycmVudElGcmFtZSAmJiBvZmZzZXRQYXJlbnQgJiYgb2Zmc2V0V2luICE9PSBjdXJyZW50V2luKSB7XHJcbiAgICAgIGNvbnN0IGlmcmFtZVNjYWxlID0gZ2V0U2NhbGUoY3VycmVudElGcmFtZSk7XHJcbiAgICAgIGNvbnN0IGlmcmFtZVJlY3QgPSBjdXJyZW50SUZyYW1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCBjc3MgPSBnZXRDb21wdXRlZFN0eWxlKGN1cnJlbnRJRnJhbWUpO1xyXG4gICAgICBjb25zdCBsZWZ0ID0gaWZyYW1lUmVjdC5sZWZ0ICsgKGN1cnJlbnRJRnJhbWUuY2xpZW50TGVmdCArIHBhcnNlRmxvYXQoY3NzLnBhZGRpbmdMZWZ0KSkgKiBpZnJhbWVTY2FsZS54O1xyXG4gICAgICBjb25zdCB0b3AgPSBpZnJhbWVSZWN0LnRvcCArIChjdXJyZW50SUZyYW1lLmNsaWVudFRvcCArIHBhcnNlRmxvYXQoY3NzLnBhZGRpbmdUb3ApKSAqIGlmcmFtZVNjYWxlLnk7XHJcbiAgICAgIHggKj0gaWZyYW1lU2NhbGUueDtcclxuICAgICAgeSAqPSBpZnJhbWVTY2FsZS55O1xyXG4gICAgICB3aWR0aCAqPSBpZnJhbWVTY2FsZS54O1xyXG4gICAgICBoZWlnaHQgKj0gaWZyYW1lU2NhbGUueTtcclxuICAgICAgeCArPSBsZWZ0O1xyXG4gICAgICB5ICs9IHRvcDtcclxuICAgICAgY3VycmVudFdpbiA9IGdldFdpbmRvdyhjdXJyZW50SUZyYW1lKTtcclxuICAgICAgY3VycmVudElGcmFtZSA9IGdldEZyYW1lRWxlbWVudChjdXJyZW50V2luKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHJlY3RUb0NsaWVudFJlY3Qoe1xyXG4gICAgd2lkdGgsXHJcbiAgICBoZWlnaHQsXHJcbiAgICB4LFxyXG4gICAgeVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdChfcmVmKSB7XHJcbiAgbGV0IHtcclxuICAgIGVsZW1lbnRzLFxyXG4gICAgcmVjdCxcclxuICAgIG9mZnNldFBhcmVudCxcclxuICAgIHN0cmF0ZWd5XHJcbiAgfSA9IF9yZWY7XHJcbiAgY29uc3QgaXNGaXhlZCA9IHN0cmF0ZWd5ID09PSAnZml4ZWQnO1xyXG4gIGNvbnN0IGRvY3VtZW50RWxlbWVudCA9IGdldERvY3VtZW50RWxlbWVudChvZmZzZXRQYXJlbnQpO1xyXG4gIGNvbnN0IHRvcExheWVyID0gZWxlbWVudHMgPyBpc1RvcExheWVyKGVsZW1lbnRzLmZsb2F0aW5nKSA6IGZhbHNlO1xyXG4gIGlmIChvZmZzZXRQYXJlbnQgPT09IGRvY3VtZW50RWxlbWVudCB8fCB0b3BMYXllciAmJiBpc0ZpeGVkKSB7XHJcbiAgICByZXR1cm4gcmVjdDtcclxuICB9XHJcbiAgbGV0IHNjcm9sbCA9IHtcclxuICAgIHNjcm9sbExlZnQ6IDAsXHJcbiAgICBzY3JvbGxUb3A6IDBcclxuICB9O1xyXG4gIGxldCBzY2FsZSA9IGNyZWF0ZUNvb3JkcygxKTtcclxuICBjb25zdCBvZmZzZXRzID0gY3JlYXRlQ29vcmRzKDApO1xyXG4gIGNvbnN0IGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ID0gaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpO1xyXG4gIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCB8fCAhaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgJiYgIWlzRml4ZWQpIHtcclxuICAgIGlmIChnZXROb2RlTmFtZShvZmZzZXRQYXJlbnQpICE9PSAnYm9keScgfHwgaXNPdmVyZmxvd0VsZW1lbnQoZG9jdW1lbnRFbGVtZW50KSkge1xyXG4gICAgICBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKG9mZnNldFBhcmVudCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpKSB7XHJcbiAgICAgIGNvbnN0IG9mZnNldFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3Qob2Zmc2V0UGFyZW50KTtcclxuICAgICAgc2NhbGUgPSBnZXRTY2FsZShvZmZzZXRQYXJlbnQpO1xyXG4gICAgICBvZmZzZXRzLnggPSBvZmZzZXRSZWN0LnggKyBvZmZzZXRQYXJlbnQuY2xpZW50TGVmdDtcclxuICAgICAgb2Zmc2V0cy55ID0gb2Zmc2V0UmVjdC55ICsgb2Zmc2V0UGFyZW50LmNsaWVudFRvcDtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIHdpZHRoOiByZWN0LndpZHRoICogc2NhbGUueCxcclxuICAgIGhlaWdodDogcmVjdC5oZWlnaHQgKiBzY2FsZS55LFxyXG4gICAgeDogcmVjdC54ICogc2NhbGUueCAtIHNjcm9sbC5zY3JvbGxMZWZ0ICogc2NhbGUueCArIG9mZnNldHMueCxcclxuICAgIHk6IHJlY3QueSAqIHNjYWxlLnkgLSBzY3JvbGwuc2Nyb2xsVG9wICogc2NhbGUueSArIG9mZnNldHMueVxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsaWVudFJlY3RzKGVsZW1lbnQpIHtcclxuICByZXR1cm4gQXJyYXkuZnJvbShlbGVtZW50LmdldENsaWVudFJlY3RzKCkpO1xyXG59XHJcblxyXG4vLyBJZiA8aHRtbD4gaGFzIGEgQ1NTIHdpZHRoIGdyZWF0ZXIgdGhhbiB0aGUgdmlld3BvcnQsIHRoZW4gdGhpcyB3aWxsIGJlXHJcbi8vIGluY29ycmVjdCBmb3IgUlRMLlxyXG5mdW5jdGlvbiBnZXRXaW5kb3dTY3JvbGxCYXJYKGVsZW1lbnQsIHJlY3QpIHtcclxuICBjb25zdCBsZWZ0U2Nyb2xsID0gZ2V0Tm9kZVNjcm9sbChlbGVtZW50KS5zY3JvbGxMZWZ0O1xyXG4gIGlmICghcmVjdCkge1xyXG4gICAgcmV0dXJuIGdldEJvdW5kaW5nQ2xpZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpLmxlZnQgKyBsZWZ0U2Nyb2xsO1xyXG4gIH1cclxuICByZXR1cm4gcmVjdC5sZWZ0ICsgbGVmdFNjcm9sbDtcclxufVxyXG5cclxuLy8gR2V0cyB0aGUgZW50aXJlIHNpemUgb2YgdGhlIHNjcm9sbGFibGUgZG9jdW1lbnQgYXJlYSwgZXZlbiBleHRlbmRpbmcgb3V0c2lkZVxyXG4vLyBvZiB0aGUgYDxodG1sPmAgYW5kIGA8Ym9keT5gIHJlY3QgYm91bmRzIGlmIGhvcml6b250YWxseSBzY3JvbGxhYmxlLlxyXG5mdW5jdGlvbiBnZXREb2N1bWVudFJlY3QoZWxlbWVudCkge1xyXG4gIGNvbnN0IGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XHJcbiAgY29uc3Qgc2Nyb2xsID0gZ2V0Tm9kZVNjcm9sbChlbGVtZW50KTtcclxuICBjb25zdCBib2R5ID0gZWxlbWVudC5vd25lckRvY3VtZW50LmJvZHk7XHJcbiAgY29uc3Qgd2lkdGggPSBtYXgoaHRtbC5zY3JvbGxXaWR0aCwgaHRtbC5jbGllbnRXaWR0aCwgYm9keS5zY3JvbGxXaWR0aCwgYm9keS5jbGllbnRXaWR0aCk7XHJcbiAgY29uc3QgaGVpZ2h0ID0gbWF4KGh0bWwuc2Nyb2xsSGVpZ2h0LCBodG1sLmNsaWVudEhlaWdodCwgYm9keS5zY3JvbGxIZWlnaHQsIGJvZHkuY2xpZW50SGVpZ2h0KTtcclxuICBsZXQgeCA9IC1zY3JvbGwuc2Nyb2xsTGVmdCArIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCk7XHJcbiAgY29uc3QgeSA9IC1zY3JvbGwuc2Nyb2xsVG9wO1xyXG4gIGlmIChnZXRDb21wdXRlZFN0eWxlKGJvZHkpLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcclxuICAgIHggKz0gbWF4KGh0bWwuY2xpZW50V2lkdGgsIGJvZHkuY2xpZW50V2lkdGgpIC0gd2lkdGg7XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICB3aWR0aCxcclxuICAgIGhlaWdodCxcclxuICAgIHgsXHJcbiAgICB5XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KSB7XHJcbiAgY29uc3Qgd2luID0gZ2V0V2luZG93KGVsZW1lbnQpO1xyXG4gIGNvbnN0IGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XHJcbiAgY29uc3QgdmlzdWFsVmlld3BvcnQgPSB3aW4udmlzdWFsVmlld3BvcnQ7XHJcbiAgbGV0IHdpZHRoID0gaHRtbC5jbGllbnRXaWR0aDtcclxuICBsZXQgaGVpZ2h0ID0gaHRtbC5jbGllbnRIZWlnaHQ7XHJcbiAgbGV0IHggPSAwO1xyXG4gIGxldCB5ID0gMDtcclxuICBpZiAodmlzdWFsVmlld3BvcnQpIHtcclxuICAgIHdpZHRoID0gdmlzdWFsVmlld3BvcnQud2lkdGg7XHJcbiAgICBoZWlnaHQgPSB2aXN1YWxWaWV3cG9ydC5oZWlnaHQ7XHJcbiAgICBjb25zdCB2aXN1YWxWaWV3cG9ydEJhc2VkID0gaXNXZWJLaXQoKTtcclxuICAgIGlmICghdmlzdWFsVmlld3BvcnRCYXNlZCB8fCB2aXN1YWxWaWV3cG9ydEJhc2VkICYmIHN0cmF0ZWd5ID09PSAnZml4ZWQnKSB7XHJcbiAgICAgIHggPSB2aXN1YWxWaWV3cG9ydC5vZmZzZXRMZWZ0O1xyXG4gICAgICB5ID0gdmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgd2lkdGgsXHJcbiAgICBoZWlnaHQsXHJcbiAgICB4LFxyXG4gICAgeVxyXG4gIH07XHJcbn1cclxuXHJcbi8vIFJldHVybnMgdGhlIGlubmVyIGNsaWVudCByZWN0LCBzdWJ0cmFjdGluZyBzY3JvbGxiYXJzIGlmIHByZXNlbnQuXHJcbmZ1bmN0aW9uIGdldElubmVyQm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KSB7XHJcbiAgY29uc3QgY2xpZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50LCB0cnVlLCBzdHJhdGVneSA9PT0gJ2ZpeGVkJyk7XHJcbiAgY29uc3QgdG9wID0gY2xpZW50UmVjdC50b3AgKyBlbGVtZW50LmNsaWVudFRvcDtcclxuICBjb25zdCBsZWZ0ID0gY2xpZW50UmVjdC5sZWZ0ICsgZWxlbWVudC5jbGllbnRMZWZ0O1xyXG4gIGNvbnN0IHNjYWxlID0gaXNIVE1MRWxlbWVudChlbGVtZW50KSA/IGdldFNjYWxlKGVsZW1lbnQpIDogY3JlYXRlQ29vcmRzKDEpO1xyXG4gIGNvbnN0IHdpZHRoID0gZWxlbWVudC5jbGllbnRXaWR0aCAqIHNjYWxlLng7XHJcbiAgY29uc3QgaGVpZ2h0ID0gZWxlbWVudC5jbGllbnRIZWlnaHQgKiBzY2FsZS55O1xyXG4gIGNvbnN0IHggPSBsZWZ0ICogc2NhbGUueDtcclxuICBjb25zdCB5ID0gdG9wICogc2NhbGUueTtcclxuICByZXR1cm4ge1xyXG4gICAgd2lkdGgsXHJcbiAgICBoZWlnaHQsXHJcbiAgICB4LFxyXG4gICAgeVxyXG4gIH07XHJcbn1cclxuZnVuY3Rpb24gZ2V0Q2xpZW50UmVjdEZyb21DbGlwcGluZ0FuY2VzdG9yKGVsZW1lbnQsIGNsaXBwaW5nQW5jZXN0b3IsIHN0cmF0ZWd5KSB7XHJcbiAgbGV0IHJlY3Q7XHJcbiAgaWYgKGNsaXBwaW5nQW5jZXN0b3IgPT09ICd2aWV3cG9ydCcpIHtcclxuICAgIHJlY3QgPSBnZXRWaWV3cG9ydFJlY3QoZWxlbWVudCwgc3RyYXRlZ3kpO1xyXG4gIH0gZWxzZSBpZiAoY2xpcHBpbmdBbmNlc3RvciA9PT0gJ2RvY3VtZW50Jykge1xyXG4gICAgcmVjdCA9IGdldERvY3VtZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpO1xyXG4gIH0gZWxzZSBpZiAoaXNFbGVtZW50KGNsaXBwaW5nQW5jZXN0b3IpKSB7XHJcbiAgICByZWN0ID0gZ2V0SW5uZXJCb3VuZGluZ0NsaWVudFJlY3QoY2xpcHBpbmdBbmNlc3Rvciwgc3RyYXRlZ3kpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCB2aXN1YWxPZmZzZXRzID0gZ2V0VmlzdWFsT2Zmc2V0cyhlbGVtZW50KTtcclxuICAgIHJlY3QgPSB7XHJcbiAgICAgIC4uLmNsaXBwaW5nQW5jZXN0b3IsXHJcbiAgICAgIHg6IGNsaXBwaW5nQW5jZXN0b3IueCAtIHZpc3VhbE9mZnNldHMueCxcclxuICAgICAgeTogY2xpcHBpbmdBbmNlc3Rvci55IC0gdmlzdWFsT2Zmc2V0cy55XHJcbiAgICB9O1xyXG4gIH1cclxuICByZXR1cm4gcmVjdFRvQ2xpZW50UmVjdChyZWN0KTtcclxufVxyXG5mdW5jdGlvbiBoYXNGaXhlZFBvc2l0aW9uQW5jZXN0b3IoZWxlbWVudCwgc3RvcE5vZGUpIHtcclxuICBjb25zdCBwYXJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcclxuICBpZiAocGFyZW50Tm9kZSA9PT0gc3RvcE5vZGUgfHwgIWlzRWxlbWVudChwYXJlbnROb2RlKSB8fCBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUocGFyZW50Tm9kZSkpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUocGFyZW50Tm9kZSkucG9zaXRpb24gPT09ICdmaXhlZCcgfHwgaGFzRml4ZWRQb3NpdGlvbkFuY2VzdG9yKHBhcmVudE5vZGUsIHN0b3BOb2RlKTtcclxufVxyXG5cclxuLy8gQSBcImNsaXBwaW5nIGFuY2VzdG9yXCIgaXMgYW4gYG92ZXJmbG93YCBlbGVtZW50IHdpdGggdGhlIGNoYXJhY3RlcmlzdGljIG9mXHJcbi8vIGNsaXBwaW5nIChvciBoaWRpbmcpIGNoaWxkIGVsZW1lbnRzLiBUaGlzIHJldHVybnMgYWxsIGNsaXBwaW5nIGFuY2VzdG9yc1xyXG4vLyBvZiB0aGUgZ2l2ZW4gZWxlbWVudCB1cCB0aGUgdHJlZS5cclxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdFbGVtZW50QW5jZXN0b3JzKGVsZW1lbnQsIGNhY2hlKSB7XHJcbiAgY29uc3QgY2FjaGVkUmVzdWx0ID0gY2FjaGUuZ2V0KGVsZW1lbnQpO1xyXG4gIGlmIChjYWNoZWRSZXN1bHQpIHtcclxuICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XHJcbiAgfVxyXG4gIGxldCByZXN1bHQgPSBnZXRPdmVyZmxvd0FuY2VzdG9ycyhlbGVtZW50LCBbXSwgZmFsc2UpLmZpbHRlcihlbCA9PiBpc0VsZW1lbnQoZWwpICYmIGdldE5vZGVOYW1lKGVsKSAhPT0gJ2JvZHknKTtcclxuICBsZXQgY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUgPSBudWxsO1xyXG4gIGNvbnN0IGVsZW1lbnRJc0ZpeGVkID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJztcclxuICBsZXQgY3VycmVudE5vZGUgPSBlbGVtZW50SXNGaXhlZCA/IGdldFBhcmVudE5vZGUoZWxlbWVudCkgOiBlbGVtZW50O1xyXG5cclxuICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQ29udGFpbmluZ19ibG9jayNpZGVudGlmeWluZ190aGVfY29udGFpbmluZ19ibG9ja1xyXG4gIHdoaWxlIChpc0VsZW1lbnQoY3VycmVudE5vZGUpICYmICFpc0xhc3RUcmF2ZXJzYWJsZU5vZGUoY3VycmVudE5vZGUpKSB7XHJcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShjdXJyZW50Tm9kZSk7XHJcbiAgICBjb25zdCBjdXJyZW50Tm9kZUlzQ29udGFpbmluZyA9IGlzQ29udGFpbmluZ0Jsb2NrKGN1cnJlbnROb2RlKTtcclxuICAgIGlmICghY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgJiYgY29tcHV0ZWRTdHlsZS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xyXG4gICAgICBjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzaG91bGREcm9wQ3VycmVudE5vZGUgPSBlbGVtZW50SXNGaXhlZCA/ICFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiAhY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUgOiAhY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgJiYgY29tcHV0ZWRTdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycgJiYgISFjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSAmJiBbJ2Fic29sdXRlJywgJ2ZpeGVkJ10uaW5jbHVkZXMoY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUucG9zaXRpb24pIHx8IGlzT3ZlcmZsb3dFbGVtZW50KGN1cnJlbnROb2RlKSAmJiAhY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgJiYgaGFzRml4ZWRQb3NpdGlvbkFuY2VzdG9yKGVsZW1lbnQsIGN1cnJlbnROb2RlKTtcclxuICAgIGlmIChzaG91bGREcm9wQ3VycmVudE5vZGUpIHtcclxuICAgICAgLy8gRHJvcCBub24tY29udGFpbmluZyBibG9ja3MuXHJcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5maWx0ZXIoYW5jZXN0b3IgPT4gYW5jZXN0b3IgIT09IGN1cnJlbnROb2RlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIFJlY29yZCBsYXN0IGNvbnRhaW5pbmcgYmxvY2sgZm9yIG5leHQgaXRlcmF0aW9uLlxyXG4gICAgICBjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSA9IGNvbXB1dGVkU3R5bGU7XHJcbiAgICB9XHJcbiAgICBjdXJyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoY3VycmVudE5vZGUpO1xyXG4gIH1cclxuICBjYWNoZS5zZXQoZWxlbWVudCwgcmVzdWx0KTtcclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vLyBHZXRzIHRoZSBtYXhpbXVtIGFyZWEgdGhhdCB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIGluIGR1ZSB0byBhbnkgbnVtYmVyIG9mXHJcbi8vIGNsaXBwaW5nIGFuY2VzdG9ycy5cclxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdSZWN0KF9yZWYpIHtcclxuICBsZXQge1xyXG4gICAgZWxlbWVudCxcclxuICAgIGJvdW5kYXJ5LFxyXG4gICAgcm9vdEJvdW5kYXJ5LFxyXG4gICAgc3RyYXRlZ3lcclxuICB9ID0gX3JlZjtcclxuICBjb25zdCBlbGVtZW50Q2xpcHBpbmdBbmNlc3RvcnMgPSBib3VuZGFyeSA9PT0gJ2NsaXBwaW5nQW5jZXN0b3JzJyA/IGlzVG9wTGF5ZXIoZWxlbWVudCkgPyBbXSA6IGdldENsaXBwaW5nRWxlbWVudEFuY2VzdG9ycyhlbGVtZW50LCB0aGlzLl9jKSA6IFtdLmNvbmNhdChib3VuZGFyeSk7XHJcbiAgY29uc3QgY2xpcHBpbmdBbmNlc3RvcnMgPSBbLi4uZWxlbWVudENsaXBwaW5nQW5jZXN0b3JzLCByb290Qm91bmRhcnldO1xyXG4gIGNvbnN0IGZpcnN0Q2xpcHBpbmdBbmNlc3RvciA9IGNsaXBwaW5nQW5jZXN0b3JzWzBdO1xyXG4gIGNvbnN0IGNsaXBwaW5nUmVjdCA9IGNsaXBwaW5nQW5jZXN0b3JzLnJlZHVjZSgoYWNjUmVjdCwgY2xpcHBpbmdBbmNlc3RvcikgPT4ge1xyXG4gICAgY29uc3QgcmVjdCA9IGdldENsaWVudFJlY3RGcm9tQ2xpcHBpbmdBbmNlc3RvcihlbGVtZW50LCBjbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSk7XHJcbiAgICBhY2NSZWN0LnRvcCA9IG1heChyZWN0LnRvcCwgYWNjUmVjdC50b3ApO1xyXG4gICAgYWNjUmVjdC5yaWdodCA9IG1pbihyZWN0LnJpZ2h0LCBhY2NSZWN0LnJpZ2h0KTtcclxuICAgIGFjY1JlY3QuYm90dG9tID0gbWluKHJlY3QuYm90dG9tLCBhY2NSZWN0LmJvdHRvbSk7XHJcbiAgICBhY2NSZWN0LmxlZnQgPSBtYXgocmVjdC5sZWZ0LCBhY2NSZWN0LmxlZnQpO1xyXG4gICAgcmV0dXJuIGFjY1JlY3Q7XHJcbiAgfSwgZ2V0Q2xpZW50UmVjdEZyb21DbGlwcGluZ0FuY2VzdG9yKGVsZW1lbnQsIGZpcnN0Q2xpcHBpbmdBbmNlc3Rvciwgc3RyYXRlZ3kpKTtcclxuICByZXR1cm4ge1xyXG4gICAgd2lkdGg6IGNsaXBwaW5nUmVjdC5yaWdodCAtIGNsaXBwaW5nUmVjdC5sZWZ0LFxyXG4gICAgaGVpZ2h0OiBjbGlwcGluZ1JlY3QuYm90dG9tIC0gY2xpcHBpbmdSZWN0LnRvcCxcclxuICAgIHg6IGNsaXBwaW5nUmVjdC5sZWZ0LFxyXG4gICAgeTogY2xpcHBpbmdSZWN0LnRvcFxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldERpbWVuc2lvbnMoZWxlbWVudCkge1xyXG4gIGNvbnN0IHtcclxuICAgIHdpZHRoLFxyXG4gICAgaGVpZ2h0XHJcbiAgfSA9IGdldENzc0RpbWVuc2lvbnMoZWxlbWVudCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHdpZHRoLFxyXG4gICAgaGVpZ2h0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0UmVjdFJlbGF0aXZlVG9PZmZzZXRQYXJlbnQoZWxlbWVudCwgb2Zmc2V0UGFyZW50LCBzdHJhdGVneSkge1xyXG4gIGNvbnN0IGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ID0gaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpO1xyXG4gIGNvbnN0IGRvY3VtZW50RWxlbWVudCA9IGdldERvY3VtZW50RWxlbWVudChvZmZzZXRQYXJlbnQpO1xyXG4gIGNvbnN0IGlzRml4ZWQgPSBzdHJhdGVneSA9PT0gJ2ZpeGVkJztcclxuICBjb25zdCByZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIHRydWUsIGlzRml4ZWQsIG9mZnNldFBhcmVudCk7XHJcbiAgbGV0IHNjcm9sbCA9IHtcclxuICAgIHNjcm9sbExlZnQ6IDAsXHJcbiAgICBzY3JvbGxUb3A6IDBcclxuICB9O1xyXG4gIGNvbnN0IG9mZnNldHMgPSBjcmVhdGVDb29yZHMoMCk7XHJcbiAgaWYgKGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50IHx8ICFpc09mZnNldFBhcmVudEFuRWxlbWVudCAmJiAhaXNGaXhlZCkge1xyXG4gICAgaWYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgIT09ICdib2R5JyB8fCBpc092ZXJmbG93RWxlbWVudChkb2N1bWVudEVsZW1lbnQpKSB7XHJcbiAgICAgIHNjcm9sbCA9IGdldE5vZGVTY3JvbGwob2Zmc2V0UGFyZW50KTtcclxuICAgIH1cclxuICAgIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCkge1xyXG4gICAgICBjb25zdCBvZmZzZXRSZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KG9mZnNldFBhcmVudCwgdHJ1ZSwgaXNGaXhlZCwgb2Zmc2V0UGFyZW50KTtcclxuICAgICAgb2Zmc2V0cy54ID0gb2Zmc2V0UmVjdC54ICsgb2Zmc2V0UGFyZW50LmNsaWVudExlZnQ7XHJcbiAgICAgIG9mZnNldHMueSA9IG9mZnNldFJlY3QueSArIG9mZnNldFBhcmVudC5jbGllbnRUb3A7XHJcbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50RWxlbWVudCkge1xyXG4gICAgICAvLyBJZiB0aGUgPGJvZHk+IHNjcm9sbGJhciBhcHBlYXJzIG9uIHRoZSBsZWZ0IChlLmcuIFJUTCBzeXN0ZW1zKS4gVXNlXHJcbiAgICAgIC8vIEZpcmVmb3ggd2l0aCBsYXlvdXQuc2Nyb2xsYmFyLnNpZGUgPSAzIGluIGFib3V0OmNvbmZpZyB0byB0ZXN0IHRoaXMuXHJcbiAgICAgIG9mZnNldHMueCA9IGdldFdpbmRvd1Njcm9sbEJhclgoZG9jdW1lbnRFbGVtZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgbGV0IGh0bWxYID0gMDtcclxuICBsZXQgaHRtbFkgPSAwO1xyXG4gIGlmIChkb2N1bWVudEVsZW1lbnQgJiYgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkKSB7XHJcbiAgICBjb25zdCBodG1sUmVjdCA9IGRvY3VtZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGh0bWxZID0gaHRtbFJlY3QudG9wICsgc2Nyb2xsLnNjcm9sbFRvcDtcclxuICAgIGh0bWxYID0gaHRtbFJlY3QubGVmdCArIHNjcm9sbC5zY3JvbGxMZWZ0IC1cclxuICAgIC8vIFJUTCA8Ym9keT4gc2Nyb2xsYmFyLlxyXG4gICAgZ2V0V2luZG93U2Nyb2xsQmFyWChkb2N1bWVudEVsZW1lbnQsIGh0bWxSZWN0KTtcclxuICB9XHJcbiAgY29uc3QgeCA9IHJlY3QubGVmdCArIHNjcm9sbC5zY3JvbGxMZWZ0IC0gb2Zmc2V0cy54IC0gaHRtbFg7XHJcbiAgY29uc3QgeSA9IHJlY3QudG9wICsgc2Nyb2xsLnNjcm9sbFRvcCAtIG9mZnNldHMueSAtIGh0bWxZO1xyXG4gIHJldHVybiB7XHJcbiAgICB4LFxyXG4gICAgeSxcclxuICAgIHdpZHRoOiByZWN0LndpZHRoLFxyXG4gICAgaGVpZ2h0OiByZWN0LmhlaWdodFxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzU3RhdGljUG9zaXRpb25lZChlbGVtZW50KSB7XHJcbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdzdGF0aWMnO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQsIHBvbHlmaWxsKSB7XHJcbiAgaWYgKCFpc0hUTUxFbGVtZW50KGVsZW1lbnQpIHx8IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICBpZiAocG9seWZpbGwpIHtcclxuICAgIHJldHVybiBwb2x5ZmlsbChlbGVtZW50KTtcclxuICB9XHJcbiAgbGV0IHJhd09mZnNldFBhcmVudCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50O1xyXG5cclxuICAvLyBGaXJlZm94IHJldHVybnMgdGhlIDxodG1sPiBlbGVtZW50IGFzIHRoZSBvZmZzZXRQYXJlbnQgaWYgaXQncyBub24tc3RhdGljLFxyXG4gIC8vIHdoaWxlIENocm9tZSBhbmQgU2FmYXJpIHJldHVybiB0aGUgPGJvZHk+IGVsZW1lbnQuIFRoZSA8Ym9keT4gZWxlbWVudCBtdXN0XHJcbiAgLy8gYmUgdXNlZCB0byBwZXJmb3JtIHRoZSBjb3JyZWN0IGNhbGN1bGF0aW9ucyBldmVuIGlmIHRoZSA8aHRtbD4gZWxlbWVudCBpc1xyXG4gIC8vIG5vbi1zdGF0aWMuXHJcbiAgaWYgKGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSA9PT0gcmF3T2Zmc2V0UGFyZW50KSB7XHJcbiAgICByYXdPZmZzZXRQYXJlbnQgPSByYXdPZmZzZXRQYXJlbnQub3duZXJEb2N1bWVudC5ib2R5O1xyXG4gIH1cclxuICByZXR1cm4gcmF3T2Zmc2V0UGFyZW50O1xyXG59XHJcblxyXG4vLyBHZXRzIHRoZSBjbG9zZXN0IGFuY2VzdG9yIHBvc2l0aW9uZWQgZWxlbWVudC4gSGFuZGxlcyBzb21lIGVkZ2UgY2FzZXMsXHJcbi8vIHN1Y2ggYXMgdGFibGUgYW5jZXN0b3JzIGFuZCBjcm9zcyBicm93c2VyIGJ1Z3MuXHJcbmZ1bmN0aW9uIGdldE9mZnNldFBhcmVudChlbGVtZW50LCBwb2x5ZmlsbCkge1xyXG4gIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhlbGVtZW50KTtcclxuICBpZiAoaXNUb3BMYXllcihlbGVtZW50KSkge1xyXG4gICAgcmV0dXJuIHdpbjtcclxuICB9XHJcbiAgaWYgKCFpc0hUTUxFbGVtZW50KGVsZW1lbnQpKSB7XHJcbiAgICBsZXQgc3ZnT2Zmc2V0UGFyZW50ID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcclxuICAgIHdoaWxlIChzdmdPZmZzZXRQYXJlbnQgJiYgIWlzTGFzdFRyYXZlcnNhYmxlTm9kZShzdmdPZmZzZXRQYXJlbnQpKSB7XHJcbiAgICAgIGlmIChpc0VsZW1lbnQoc3ZnT2Zmc2V0UGFyZW50KSAmJiAhaXNTdGF0aWNQb3NpdGlvbmVkKHN2Z09mZnNldFBhcmVudCkpIHtcclxuICAgICAgICByZXR1cm4gc3ZnT2Zmc2V0UGFyZW50O1xyXG4gICAgICB9XHJcbiAgICAgIHN2Z09mZnNldFBhcmVudCA9IGdldFBhcmVudE5vZGUoc3ZnT2Zmc2V0UGFyZW50KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aW47XHJcbiAgfVxyXG4gIGxldCBvZmZzZXRQYXJlbnQgPSBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQsIHBvbHlmaWxsKTtcclxuICB3aGlsZSAob2Zmc2V0UGFyZW50ICYmIGlzVGFibGVFbGVtZW50KG9mZnNldFBhcmVudCkgJiYgaXNTdGF0aWNQb3NpdGlvbmVkKG9mZnNldFBhcmVudCkpIHtcclxuICAgIG9mZnNldFBhcmVudCA9IGdldFRydWVPZmZzZXRQYXJlbnQob2Zmc2V0UGFyZW50LCBwb2x5ZmlsbCk7XHJcbiAgfVxyXG4gIGlmIChvZmZzZXRQYXJlbnQgJiYgaXNMYXN0VHJhdmVyc2FibGVOb2RlKG9mZnNldFBhcmVudCkgJiYgaXNTdGF0aWNQb3NpdGlvbmVkKG9mZnNldFBhcmVudCkgJiYgIWlzQ29udGFpbmluZ0Jsb2NrKG9mZnNldFBhcmVudCkpIHtcclxuICAgIHJldHVybiB3aW47XHJcbiAgfVxyXG4gIHJldHVybiBvZmZzZXRQYXJlbnQgfHwgZ2V0Q29udGFpbmluZ0Jsb2NrKGVsZW1lbnQpIHx8IHdpbjtcclxufVxyXG5cclxuY29uc3QgZ2V0RWxlbWVudFJlY3RzID0gYXN5bmMgZnVuY3Rpb24gKGRhdGEpIHtcclxuICBjb25zdCBnZXRPZmZzZXRQYXJlbnRGbiA9IHRoaXMuZ2V0T2Zmc2V0UGFyZW50IHx8IGdldE9mZnNldFBhcmVudDtcclxuICBjb25zdCBnZXREaW1lbnNpb25zRm4gPSB0aGlzLmdldERpbWVuc2lvbnM7XHJcbiAgY29uc3QgZmxvYXRpbmdEaW1lbnNpb25zID0gYXdhaXQgZ2V0RGltZW5zaW9uc0ZuKGRhdGEuZmxvYXRpbmcpO1xyXG4gIHJldHVybiB7XHJcbiAgICByZWZlcmVuY2U6IGdldFJlY3RSZWxhdGl2ZVRvT2Zmc2V0UGFyZW50KGRhdGEucmVmZXJlbmNlLCBhd2FpdCBnZXRPZmZzZXRQYXJlbnRGbihkYXRhLmZsb2F0aW5nKSwgZGF0YS5zdHJhdGVneSksXHJcbiAgICBmbG9hdGluZzoge1xyXG4gICAgICB4OiAwLFxyXG4gICAgICB5OiAwLFxyXG4gICAgICB3aWR0aDogZmxvYXRpbmdEaW1lbnNpb25zLndpZHRoLFxyXG4gICAgICBoZWlnaHQ6IGZsb2F0aW5nRGltZW5zaW9ucy5oZWlnaHRcclxuICAgIH1cclxuICB9O1xyXG59O1xyXG5cclxuZnVuY3Rpb24gaXNSVEwoZWxlbWVudCkge1xyXG4gIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmRpcmVjdGlvbiA9PT0gJ3J0bCc7XHJcbn1cclxuXHJcbmNvbnN0IHBsYXRmb3JtID0ge1xyXG4gIGNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0LFxyXG4gIGdldERvY3VtZW50RWxlbWVudCxcclxuICBnZXRDbGlwcGluZ1JlY3QsXHJcbiAgZ2V0T2Zmc2V0UGFyZW50LFxyXG4gIGdldEVsZW1lbnRSZWN0cyxcclxuICBnZXRDbGllbnRSZWN0cyxcclxuICBnZXREaW1lbnNpb25zLFxyXG4gIGdldFNjYWxlLFxyXG4gIGlzRWxlbWVudCxcclxuICBpc1JUTFxyXG59O1xyXG5cclxuLy8gaHR0cHM6Ly9zYW10aG9yLmF1LzIwMjEvb2JzZXJ2aW5nLWRvbS9cclxuZnVuY3Rpb24gb2JzZXJ2ZU1vdmUoZWxlbWVudCwgb25Nb3ZlKSB7XHJcbiAgbGV0IGlvID0gbnVsbDtcclxuICBsZXQgdGltZW91dElkO1xyXG4gIGNvbnN0IHJvb3QgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XHJcbiAgZnVuY3Rpb24gY2xlYW51cCgpIHtcclxuICAgIHZhciBfaW87XHJcbiAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcclxuICAgIChfaW8gPSBpbykgPT0gbnVsbCB8fCBfaW8uZGlzY29ubmVjdCgpO1xyXG4gICAgaW8gPSBudWxsO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZWZyZXNoKHNraXAsIHRocmVzaG9sZCkge1xyXG4gICAgaWYgKHNraXAgPT09IHZvaWQgMCkge1xyXG4gICAgICBza2lwID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAodGhyZXNob2xkID09PSB2b2lkIDApIHtcclxuICAgICAgdGhyZXNob2xkID0gMTtcclxuICAgIH1cclxuICAgIGNsZWFudXAoKTtcclxuICAgIGNvbnN0IHtcclxuICAgICAgbGVmdCxcclxuICAgICAgdG9wLFxyXG4gICAgICB3aWR0aCxcclxuICAgICAgaGVpZ2h0XHJcbiAgICB9ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGlmICghc2tpcCkge1xyXG4gICAgICBvbk1vdmUoKTtcclxuICAgIH1cclxuICAgIGlmICghd2lkdGggfHwgIWhlaWdodCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBpbnNldFRvcCA9IGZsb29yKHRvcCk7XHJcbiAgICBjb25zdCBpbnNldFJpZ2h0ID0gZmxvb3Iocm9vdC5jbGllbnRXaWR0aCAtIChsZWZ0ICsgd2lkdGgpKTtcclxuICAgIGNvbnN0IGluc2V0Qm90dG9tID0gZmxvb3Iocm9vdC5jbGllbnRIZWlnaHQgLSAodG9wICsgaGVpZ2h0KSk7XHJcbiAgICBjb25zdCBpbnNldExlZnQgPSBmbG9vcihsZWZ0KTtcclxuICAgIGNvbnN0IHJvb3RNYXJnaW4gPSAtaW5zZXRUb3AgKyBcInB4IFwiICsgLWluc2V0UmlnaHQgKyBcInB4IFwiICsgLWluc2V0Qm90dG9tICsgXCJweCBcIiArIC1pbnNldExlZnQgKyBcInB4XCI7XHJcbiAgICBjb25zdCBvcHRpb25zID0ge1xyXG4gICAgICByb290TWFyZ2luLFxyXG4gICAgICB0aHJlc2hvbGQ6IG1heCgwLCBtaW4oMSwgdGhyZXNob2xkKSkgfHwgMVxyXG4gICAgfTtcclxuICAgIGxldCBpc0ZpcnN0VXBkYXRlID0gdHJ1ZTtcclxuICAgIGZ1bmN0aW9uIGhhbmRsZU9ic2VydmUoZW50cmllcykge1xyXG4gICAgICBjb25zdCByYXRpbyA9IGVudHJpZXNbMF0uaW50ZXJzZWN0aW9uUmF0aW87XHJcbiAgICAgIGlmIChyYXRpbyAhPT0gdGhyZXNob2xkKSB7XHJcbiAgICAgICAgaWYgKCFpc0ZpcnN0VXBkYXRlKSB7XHJcbiAgICAgICAgICByZXR1cm4gcmVmcmVzaCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXJhdGlvKSB7XHJcbiAgICAgICAgICAvLyBJZiB0aGUgcmVmZXJlbmNlIGlzIGNsaXBwZWQsIHRoZSByYXRpbyBpcyAwLiBUaHJvdHRsZSB0aGUgcmVmcmVzaFxyXG4gICAgICAgICAgLy8gdG8gcHJldmVudCBhbiBpbmZpbml0ZSBsb29wIG9mIHVwZGF0ZXMuXHJcbiAgICAgICAgICB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgcmVmcmVzaChmYWxzZSwgMWUtNyk7XHJcbiAgICAgICAgICB9LCAxMDAwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVmcmVzaChmYWxzZSwgcmF0aW8pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpc0ZpcnN0VXBkYXRlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gT2xkZXIgYnJvd3NlcnMgZG9uJ3Qgc3VwcG9ydCBhIGBkb2N1bWVudGAgYXMgdGhlIHJvb3QgYW5kIHdpbGwgdGhyb3cgYW5cclxuICAgIC8vIGVycm9yLlxyXG4gICAgdHJ5IHtcclxuICAgICAgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlT2JzZXJ2ZSwge1xyXG4gICAgICAgIC4uLm9wdGlvbnMsXHJcbiAgICAgICAgLy8gSGFuZGxlIDxpZnJhbWU+c1xyXG4gICAgICAgIHJvb3Q6IHJvb3Qub3duZXJEb2N1bWVudFxyXG4gICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlT2JzZXJ2ZSwgb3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgICBpby5vYnNlcnZlKGVsZW1lbnQpO1xyXG4gIH1cclxuICByZWZyZXNoKHRydWUpO1xyXG4gIHJldHVybiBjbGVhbnVwO1xyXG59XHJcblxyXG4vKipcclxuICogQXV0b21hdGljYWxseSB1cGRhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCB3aGVuIG5lY2Vzc2FyeS5cclxuICogU2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIGZsb2F0aW5nIGVsZW1lbnQgaXMgbW91bnRlZCBvbiB0aGUgRE9NIG9yXHJcbiAqIHZpc2libGUgb24gdGhlIHNjcmVlbi5cclxuICogQHJldHVybnMgY2xlYW51cCBmdW5jdGlvbiB0aGF0IHNob3VsZCBiZSBpbnZva2VkIHdoZW4gdGhlIGZsb2F0aW5nIGVsZW1lbnQgaXNcclxuICogcmVtb3ZlZCBmcm9tIHRoZSBET00gb3IgaGlkZGVuIGZyb20gdGhlIHNjcmVlbi5cclxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2F1dG9VcGRhdGVcclxuICovXHJcbmZ1bmN0aW9uIGF1dG9VcGRhdGUocmVmZXJlbmNlLCBmbG9hdGluZywgdXBkYXRlLCBvcHRpb25zKSB7XHJcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xyXG4gICAgb3B0aW9ucyA9IHt9O1xyXG4gIH1cclxuICBjb25zdCB7XHJcbiAgICBhbmNlc3RvclNjcm9sbCA9IHRydWUsXHJcbiAgICBhbmNlc3RvclJlc2l6ZSA9IHRydWUsXHJcbiAgICBlbGVtZW50UmVzaXplID0gdHlwZW9mIFJlc2l6ZU9ic2VydmVyID09PSAnZnVuY3Rpb24nLFxyXG4gICAgbGF5b3V0U2hpZnQgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPT09ICdmdW5jdGlvbicsXHJcbiAgICBhbmltYXRpb25GcmFtZSA9IGZhbHNlXHJcbiAgfSA9IG9wdGlvbnM7XHJcbiAgY29uc3QgcmVmZXJlbmNlRWwgPSB1bndyYXBFbGVtZW50KHJlZmVyZW5jZSk7XHJcbiAgY29uc3QgYW5jZXN0b3JzID0gYW5jZXN0b3JTY3JvbGwgfHwgYW5jZXN0b3JSZXNpemUgPyBbLi4uKHJlZmVyZW5jZUVsID8gZ2V0T3ZlcmZsb3dBbmNlc3RvcnMocmVmZXJlbmNlRWwpIDogW10pLCAuLi5nZXRPdmVyZmxvd0FuY2VzdG9ycyhmbG9hdGluZyldIDogW107XHJcbiAgYW5jZXN0b3JzLmZvckVhY2goYW5jZXN0b3IgPT4ge1xyXG4gICAgYW5jZXN0b3JTY3JvbGwgJiYgYW5jZXN0b3IuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlLCB7XHJcbiAgICAgIHBhc3NpdmU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgYW5jZXN0b3JSZXNpemUgJiYgYW5jZXN0b3IuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKTtcclxuICB9KTtcclxuICBjb25zdCBjbGVhbnVwSW8gPSByZWZlcmVuY2VFbCAmJiBsYXlvdXRTaGlmdCA/IG9ic2VydmVNb3ZlKHJlZmVyZW5jZUVsLCB1cGRhdGUpIDogbnVsbDtcclxuICBsZXQgcmVvYnNlcnZlRnJhbWUgPSAtMTtcclxuICBsZXQgcmVzaXplT2JzZXJ2ZXIgPSBudWxsO1xyXG4gIGlmIChlbGVtZW50UmVzaXplKSB7XHJcbiAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihfcmVmID0+IHtcclxuICAgICAgbGV0IFtmaXJzdEVudHJ5XSA9IF9yZWY7XHJcbiAgICAgIGlmIChmaXJzdEVudHJ5ICYmIGZpcnN0RW50cnkudGFyZ2V0ID09PSByZWZlcmVuY2VFbCAmJiByZXNpemVPYnNlcnZlcikge1xyXG4gICAgICAgIC8vIFByZXZlbnQgdXBkYXRlIGxvb3BzIHdoZW4gdXNpbmcgdGhlIGBzaXplYCBtaWRkbGV3YXJlLlxyXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMTc0MFxyXG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZShmbG9hdGluZyk7XHJcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmVvYnNlcnZlRnJhbWUpO1xyXG4gICAgICAgIHJlb2JzZXJ2ZUZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgICAgIHZhciBfcmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgICAoX3Jlc2l6ZU9ic2VydmVyID0gcmVzaXplT2JzZXJ2ZXIpID09IG51bGwgfHwgX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoZmxvYXRpbmcpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHVwZGF0ZSgpO1xyXG4gICAgfSk7XHJcbiAgICBpZiAocmVmZXJlbmNlRWwgJiYgIWFuaW1hdGlvbkZyYW1lKSB7XHJcbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUocmVmZXJlbmNlRWwpO1xyXG4gICAgfVxyXG4gICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShmbG9hdGluZyk7XHJcbiAgfVxyXG4gIGxldCBmcmFtZUlkO1xyXG4gIGxldCBwcmV2UmVmUmVjdCA9IGFuaW1hdGlvbkZyYW1lID8gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KHJlZmVyZW5jZSkgOiBudWxsO1xyXG4gIGlmIChhbmltYXRpb25GcmFtZSkge1xyXG4gICAgZnJhbWVMb29wKCk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGZyYW1lTG9vcCgpIHtcclxuICAgIGNvbnN0IG5leHRSZWZSZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KHJlZmVyZW5jZSk7XHJcbiAgICBpZiAocHJldlJlZlJlY3QgJiYgKG5leHRSZWZSZWN0LnggIT09IHByZXZSZWZSZWN0LnggfHwgbmV4dFJlZlJlY3QueSAhPT0gcHJldlJlZlJlY3QueSB8fCBuZXh0UmVmUmVjdC53aWR0aCAhPT0gcHJldlJlZlJlY3Qud2lkdGggfHwgbmV4dFJlZlJlY3QuaGVpZ2h0ICE9PSBwcmV2UmVmUmVjdC5oZWlnaHQpKSB7XHJcbiAgICAgIHVwZGF0ZSgpO1xyXG4gICAgfVxyXG4gICAgcHJldlJlZlJlY3QgPSBuZXh0UmVmUmVjdDtcclxuICAgIGZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWVMb29wKTtcclxuICB9XHJcbiAgdXBkYXRlKCk7XHJcbiAgcmV0dXJuICgpID0+IHtcclxuICAgIHZhciBfcmVzaXplT2JzZXJ2ZXIyO1xyXG4gICAgYW5jZXN0b3JzLmZvckVhY2goYW5jZXN0b3IgPT4ge1xyXG4gICAgICBhbmNlc3RvclNjcm9sbCAmJiBhbmNlc3Rvci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpO1xyXG4gICAgICBhbmNlc3RvclJlc2l6ZSAmJiBhbmNlc3Rvci5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpO1xyXG4gICAgfSk7XHJcbiAgICBjbGVhbnVwSW8gPT0gbnVsbCB8fCBjbGVhbnVwSW8oKTtcclxuICAgIChfcmVzaXplT2JzZXJ2ZXIyID0gcmVzaXplT2JzZXJ2ZXIpID09IG51bGwgfHwgX3Jlc2l6ZU9ic2VydmVyMi5kaXNjb25uZWN0KCk7XHJcbiAgICByZXNpemVPYnNlcnZlciA9IG51bGw7XHJcbiAgICBpZiAoYW5pbWF0aW9uRnJhbWUpIHtcclxuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoZnJhbWVJZCk7XHJcbiAgICB9XHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlc29sdmVzIHdpdGggYW4gb2JqZWN0IG9mIG92ZXJmbG93IHNpZGUgb2Zmc2V0cyB0aGF0IGRldGVybWluZSBob3cgbXVjaCB0aGVcclxuICogZWxlbWVudCBpcyBvdmVyZmxvd2luZyBhIGdpdmVuIGNsaXBwaW5nIGJvdW5kYXJ5IG9uIGVhY2ggc2lkZS5cclxuICogLSBwb3NpdGl2ZSA9IG92ZXJmbG93aW5nIHRoZSBib3VuZGFyeSBieSB0aGF0IG51bWJlciBvZiBwaXhlbHNcclxuICogLSBuZWdhdGl2ZSA9IGhvdyBtYW55IHBpeGVscyBsZWZ0IGJlZm9yZSBpdCB3aWxsIG92ZXJmbG93XHJcbiAqIC0gMCA9IGxpZXMgZmx1c2ggd2l0aCB0aGUgYm91bmRhcnlcclxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2RldGVjdE92ZXJmbG93XHJcbiAqL1xyXG5jb25zdCBkZXRlY3RPdmVyZmxvdyA9IGRldGVjdE92ZXJmbG93JDE7XHJcblxyXG4vKipcclxuICogTW9kaWZpZXMgdGhlIHBsYWNlbWVudCBieSB0cmFuc2xhdGluZyB0aGUgZmxvYXRpbmcgZWxlbWVudCBhbG9uZyB0aGVcclxuICogc3BlY2lmaWVkIGF4ZXMuXHJcbiAqIEEgbnVtYmVyIChzaG9ydGhhbmQgZm9yIGBtYWluQXhpc2Agb3IgZGlzdGFuY2UpLCBvciBhbiBheGVzIGNvbmZpZ3VyYXRpb25cclxuICogb2JqZWN0IG1heSBiZSBwYXNzZWQuXHJcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9vZmZzZXRcclxuICovXHJcbmNvbnN0IG9mZnNldCA9IG9mZnNldCQxO1xyXG5cclxuLyoqXHJcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBjaG9vc2luZyB0aGUgcGxhY2VtZW50XHJcbiAqIHRoYXQgaGFzIHRoZSBtb3N0IHNwYWNlIGF2YWlsYWJsZSBhdXRvbWF0aWNhbGx5LCB3aXRob3V0IG5lZWRpbmcgdG8gc3BlY2lmeSBhXHJcbiAqIHByZWZlcnJlZCBwbGFjZW1lbnQuIEFsdGVybmF0aXZlIHRvIGBmbGlwYC5cclxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2F1dG9QbGFjZW1lbnRcclxuICovXHJcbmNvbnN0IGF1dG9QbGFjZW1lbnQgPSBhdXRvUGxhY2VtZW50JDE7XHJcblxyXG4vKipcclxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IHNoaWZ0aW5nIGl0IGluIG9yZGVyIHRvXHJcbiAqIGtlZXAgaXQgaW4gdmlldyB3aGVuIGl0IHdpbGwgb3ZlcmZsb3cgdGhlIGNsaXBwaW5nIGJvdW5kYXJ5LlxyXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2hpZnRcclxuICovXHJcbmNvbnN0IHNoaWZ0ID0gc2hpZnQkMTtcclxuXHJcbi8qKlxyXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgZmxpcHBpbmcgdGhlIGBwbGFjZW1lbnRgXHJcbiAqIGluIG9yZGVyIHRvIGtlZXAgaXQgaW4gdmlldyB3aGVuIHRoZSBwcmVmZXJyZWQgcGxhY2VtZW50KHMpIHdpbGwgb3ZlcmZsb3cgdGhlXHJcbiAqIGNsaXBwaW5nIGJvdW5kYXJ5LiBBbHRlcm5hdGl2ZSB0byBgYXV0b1BsYWNlbWVudGAuXHJcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9mbGlwXHJcbiAqL1xyXG5jb25zdCBmbGlwID0gZmxpcCQxO1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGRhdGEgdGhhdCBhbGxvd3MgeW91IHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCDigJRcclxuICogZm9yIGluc3RhbmNlLCBwcmV2ZW50IGl0IGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNsaXBwaW5nIGJvdW5kYXJ5IG9yIG1hdGNoIHRoZVxyXG4gKiB3aWR0aCBvZiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXHJcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaXplXHJcbiAqL1xyXG5jb25zdCBzaXplID0gc2l6ZSQxO1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGRhdGEgdG8gaGlkZSB0aGUgZmxvYXRpbmcgZWxlbWVudCBpbiBhcHBsaWNhYmxlIHNpdHVhdGlvbnMsIHN1Y2ggYXNcclxuICogd2hlbiBpdCBpcyBub3QgaW4gdGhlIHNhbWUgY2xpcHBpbmcgY29udGV4dCBhcyB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXHJcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9oaWRlXHJcbiAqL1xyXG5jb25zdCBoaWRlID0gaGlkZSQxO1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGRhdGEgdG8gcG9zaXRpb24gYW4gaW5uZXIgZWxlbWVudCBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBzbyB0aGF0IGl0XHJcbiAqIGFwcGVhcnMgY2VudGVyZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxyXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXJyb3dcclxuICovXHJcbmNvbnN0IGFycm93ID0gYXJyb3ckMTtcclxuXHJcbi8qKlxyXG4gKiBQcm92aWRlcyBpbXByb3ZlZCBwb3NpdGlvbmluZyBmb3IgaW5saW5lIHJlZmVyZW5jZSBlbGVtZW50cyB0aGF0IGNhbiBzcGFuXHJcbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxyXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvaW5saW5lXHJcbiAqL1xyXG5jb25zdCBpbmxpbmUgPSBpbmxpbmUkMTtcclxuXHJcbi8qKlxyXG4gKiBCdWlsdC1pbiBgbGltaXRlcmAgdGhhdCB3aWxsIHN0b3AgYHNoaWZ0KClgIGF0IGEgY2VydGFpbiBwb2ludC5cclxuICovXHJcbmNvbnN0IGxpbWl0U2hpZnQgPSBsaW1pdFNoaWZ0JDE7XHJcblxyXG4vKipcclxuICogQ29tcHV0ZXMgdGhlIGB4YCBhbmQgYHlgIGNvb3JkaW5hdGVzIHRoYXQgd2lsbCBwbGFjZSB0aGUgZmxvYXRpbmcgZWxlbWVudFxyXG4gKiBuZXh0IHRvIGEgZ2l2ZW4gcmVmZXJlbmNlIGVsZW1lbnQuXHJcbiAqL1xyXG5jb25zdCBjb21wdXRlUG9zaXRpb24gPSAocmVmZXJlbmNlLCBmbG9hdGluZywgb3B0aW9ucykgPT4ge1xyXG4gIC8vIFRoaXMgY2FjaGVzIHRoZSBleHBlbnNpdmUgYGdldENsaXBwaW5nRWxlbWVudEFuY2VzdG9yc2AgZnVuY3Rpb24gc28gdGhhdFxyXG4gIC8vIG11bHRpcGxlIGxpZmVjeWNsZSByZXNldHMgcmUtdXNlIHRoZSBzYW1lIHJlc3VsdC4gSXQgb25seSBsaXZlcyBmb3IgYVxyXG4gIC8vIHNpbmdsZSBjYWxsLiBJZiBvdGhlciBmdW5jdGlvbnMgYmVjb21lIGV4cGVuc2l2ZSwgd2UgY2FuIGFkZCB0aGVtIGFzIHdlbGwuXHJcbiAgY29uc3QgY2FjaGUgPSBuZXcgTWFwKCk7XHJcbiAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IHtcclxuICAgIHBsYXRmb3JtLFxyXG4gICAgLi4ub3B0aW9uc1xyXG4gIH07XHJcbiAgY29uc3QgcGxhdGZvcm1XaXRoQ2FjaGUgPSB7XHJcbiAgICAuLi5tZXJnZWRPcHRpb25zLnBsYXRmb3JtLFxyXG4gICAgX2M6IGNhY2hlXHJcbiAgfTtcclxuICByZXR1cm4gY29tcHV0ZVBvc2l0aW9uJDEocmVmZXJlbmNlLCBmbG9hdGluZywge1xyXG4gICAgLi4ubWVyZ2VkT3B0aW9ucyxcclxuICAgIHBsYXRmb3JtOiBwbGF0Zm9ybVdpdGhDYWNoZVxyXG4gIH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IHsgYXJyb3csIGF1dG9QbGFjZW1lbnQsIGF1dG9VcGRhdGUsIGNvbXB1dGVQb3NpdGlvbiwgZGV0ZWN0T3ZlcmZsb3csIGZsaXAsIGhpZGUsIGlubGluZSwgbGltaXRTaGlmdCwgb2Zmc2V0LCBwbGF0Zm9ybSwgc2hpZnQsIHNpemUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ arrow: function() { return /* binding */ arrow; },\n/* harmony export */ autoPlacement: function() { return /* binding */ autoPlacement; },\n/* harmony export */ autoUpdate: function() { return /* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.autoUpdate; },\n/* harmony export */ computePosition: function() { return /* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.computePosition; },\n/* harmony export */ detectOverflow: function() { return /* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.detectOverflow; },\n/* harmony export */ flip: function() { return /* binding */ flip; },\n/* harmony export */ getOverflowAncestors: function() { return /* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_1__.getOverflowAncestors; },\n/* harmony export */ hide: function() { return /* binding */ hide; },\n/* harmony export */ inline: function() { return /* binding */ inline; },\n/* harmony export */ limitShift: function() { return /* binding */ limitShift; },\n/* harmony export */ offset: function() { return /* binding */ offset; },\n/* harmony export */ platform: function() { return /* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.platform; },\n/* harmony export */ shift: function() { return /* binding */ shift; },\n/* harmony export */ size: function() { return /* binding */ size; },\n/* harmony export */ useFloating: function() { return /* binding */ useFloating; }\n/* harmony export */ });\n/* harmony import */ var _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/dom */ \"(app-pages-browser)/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\");\n/* harmony import */ var _floating_ui_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @floating-ui/dom */ \"(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n\r\n\r\n\r\n\r\n\r\n\r\nvar index = typeof document !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_2__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_2__.useEffect;\r\n\r\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\r\n// functions\r\nfunction deepEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (typeof a !== typeof b) {\r\n return false;\r\n }\r\n if (typeof a === 'function' && a.toString() === b.toString()) {\r\n return true;\r\n }\r\n let length;\r\n let i;\r\n let keys;\r\n if (a && b && typeof a === 'object') {\r\n if (Array.isArray(a)) {\r\n length = a.length;\r\n if (length !== b.length) return false;\r\n for (i = length; i-- !== 0;) {\r\n if (!deepEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n keys = Object.keys(a);\r\n length = keys.length;\r\n if (length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (i = length; i-- !== 0;) {\r\n if (!{}.hasOwnProperty.call(b, keys[i])) {\r\n return false;\r\n }\r\n }\r\n for (i = length; i-- !== 0;) {\r\n const key = keys[i];\r\n if (key === '_owner' && a.$$typeof) {\r\n continue;\r\n }\r\n if (!deepEqual(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n return a !== a && b !== b;\r\n}\r\n\r\nfunction getDPR(element) {\r\n if (typeof window === 'undefined') {\r\n return 1;\r\n }\r\n const win = element.ownerDocument.defaultView || window;\r\n return win.devicePixelRatio || 1;\r\n}\r\n\r\nfunction roundByDPR(element, value) {\r\n const dpr = getDPR(element);\r\n return Math.round(value * dpr) / dpr;\r\n}\r\n\r\nfunction useLatestRef(value) {\r\n const ref = react__WEBPACK_IMPORTED_MODULE_2__.useRef(value);\r\n index(() => {\r\n ref.current = value;\r\n });\r\n return ref;\r\n}\r\n\r\n/**\r\n * Provides data to position a floating element.\r\n * @see https://floating-ui.com/docs/useFloating\r\n */\r\nfunction useFloating(options) {\r\n if (options === void 0) {\r\n options = {};\r\n }\r\n const {\r\n placement = 'bottom',\r\n strategy = 'absolute',\r\n middleware = [],\r\n platform,\r\n elements: {\r\n reference: externalReference,\r\n floating: externalFloating\r\n } = {},\r\n transform = true,\r\n whileElementsMounted,\r\n open\r\n } = options;\r\n const [data, setData] = react__WEBPACK_IMPORTED_MODULE_2__.useState({\r\n x: 0,\r\n y: 0,\r\n strategy,\r\n placement,\r\n middlewareData: {},\r\n isPositioned: false\r\n });\r\n const [latestMiddleware, setLatestMiddleware] = react__WEBPACK_IMPORTED_MODULE_2__.useState(middleware);\r\n if (!deepEqual(latestMiddleware, middleware)) {\r\n setLatestMiddleware(middleware);\r\n }\r\n const [_reference, _setReference] = react__WEBPACK_IMPORTED_MODULE_2__.useState(null);\r\n const [_floating, _setFloating] = react__WEBPACK_IMPORTED_MODULE_2__.useState(null);\r\n const setReference = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(node => {\r\n if (node !== referenceRef.current) {\r\n referenceRef.current = node;\r\n _setReference(node);\r\n }\r\n }, []);\r\n const setFloating = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(node => {\r\n if (node !== floatingRef.current) {\r\n floatingRef.current = node;\r\n _setFloating(node);\r\n }\r\n }, []);\r\n const referenceEl = externalReference || _reference;\r\n const floatingEl = externalFloating || _floating;\r\n const referenceRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(null);\r\n const floatingRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(null);\r\n const dataRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(data);\r\n const hasWhileElementsMounted = whileElementsMounted != null;\r\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\r\n const platformRef = useLatestRef(platform);\r\n const openRef = useLatestRef(open);\r\n const update = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(() => {\r\n if (!referenceRef.current || !floatingRef.current) {\r\n return;\r\n }\r\n const config = {\r\n placement,\r\n strategy,\r\n middleware: latestMiddleware\r\n };\r\n if (platformRef.current) {\r\n config.platform = platformRef.current;\r\n }\r\n (0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.computePosition)(referenceRef.current, floatingRef.current, config).then(data => {\r\n const fullData = {\r\n ...data,\r\n // The floating element's position may be recomputed while it's closed\r\n // but still mounted (such as when transitioning out). To ensure\r\n // `isPositioned` will be `false` initially on the next open, avoid\r\n // setting it to `true` when `open === false` (must be specified).\r\n isPositioned: openRef.current !== false\r\n };\r\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\r\n dataRef.current = fullData;\r\n react_dom__WEBPACK_IMPORTED_MODULE_3__.flushSync(() => {\r\n setData(fullData);\r\n });\r\n }\r\n });\r\n }, [latestMiddleware, placement, strategy, platformRef, openRef]);\r\n index(() => {\r\n if (open === false && dataRef.current.isPositioned) {\r\n dataRef.current.isPositioned = false;\r\n setData(data => ({\r\n ...data,\r\n isPositioned: false\r\n }));\r\n }\r\n }, [open]);\r\n const isMountedRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(false);\r\n index(() => {\r\n isMountedRef.current = true;\r\n return () => {\r\n isMountedRef.current = false;\r\n };\r\n }, []);\r\n index(() => {\r\n if (referenceEl) referenceRef.current = referenceEl;\r\n if (floatingEl) floatingRef.current = floatingEl;\r\n if (referenceEl && floatingEl) {\r\n if (whileElementsMountedRef.current) {\r\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\r\n }\r\n update();\r\n }\r\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\r\n const refs = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(() => ({\r\n reference: referenceRef,\r\n floating: floatingRef,\r\n setReference,\r\n setFloating\r\n }), [setReference, setFloating]);\r\n const elements = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(() => ({\r\n reference: referenceEl,\r\n floating: floatingEl\r\n }), [referenceEl, floatingEl]);\r\n const floatingStyles = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(() => {\r\n const initialStyles = {\r\n position: strategy,\r\n left: 0,\r\n top: 0\r\n };\r\n if (!elements.floating) {\r\n return initialStyles;\r\n }\r\n const x = roundByDPR(elements.floating, data.x);\r\n const y = roundByDPR(elements.floating, data.y);\r\n if (transform) {\r\n return {\r\n ...initialStyles,\r\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\r\n ...(getDPR(elements.floating) >= 1.5 && {\r\n willChange: 'transform'\r\n })\r\n };\r\n }\r\n return {\r\n position: strategy,\r\n left: x,\r\n top: y\r\n };\r\n }, [strategy, transform, elements.floating, data.x, data.y]);\r\n return react__WEBPACK_IMPORTED_MODULE_2__.useMemo(() => ({\r\n ...data,\r\n update,\r\n refs,\r\n elements,\r\n floatingStyles\r\n }), [data, update, refs, elements, floatingStyles]);\r\n}\r\n\r\n/**\r\n * Provides data to position an inner element of the floating element so that it\r\n * appears centered to the reference element.\r\n * This wraps the core `arrow` middleware to allow React refs as the element.\r\n * @see https://floating-ui.com/docs/arrow\r\n */\r\nconst arrow$1 = options => {\r\n function isRef(value) {\r\n return {}.hasOwnProperty.call(value, 'current');\r\n }\r\n return {\r\n name: 'arrow',\r\n options,\r\n fn(state) {\r\n const {\r\n element,\r\n padding\r\n } = typeof options === 'function' ? options(state) : options;\r\n if (element && isRef(element)) {\r\n if (element.current != null) {\r\n return (0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.arrow)({\r\n element: element.current,\r\n padding\r\n }).fn(state);\r\n }\r\n return {};\r\n }\r\n if (element) {\r\n return (0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.arrow)({\r\n element,\r\n padding\r\n }).fn(state);\r\n }\r\n return {};\r\n }\r\n };\r\n};\r\n\r\n/**\r\n * Modifies the placement by translating the floating element along the\r\n * specified axes.\r\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\r\n * object may be passed.\r\n * @see https://floating-ui.com/docs/offset\r\n */\r\nconst offset = (options, deps) => ({\r\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.offset)(options),\r\n options: [options, deps]\r\n});\r\n\r\n/**\r\n * Optimizes the visibility of the floating element by shifting it in order to\r\n * keep it in view when it will overflow the clipping boundary.\r\n * @see https://floating-ui.com/docs/shift\r\n */\r\nconst shift = (options, deps) => ({\r\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.shift)(options),\r\n options: [options, deps]\r\n});\r\n\r\n/**\r\n * Built-in `limiter` that will stop `shift()` at a certain point.\r\n */\r\nconst limitShift = (options, deps) => ({\r\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.limitShift)(options),\r\n options: [options, deps]\r\n});\r\n\r\n/**\r\n * Optimizes the visibility of the floating element by flipping the `placement`\r\n * in order to keep it in view when the preferred placement(s) will overflow the\r\n * clipping boundary. Alternative to `autoPlacement`.\r\n * @see https://floating-ui.com/docs/flip\r\n */\r\nconst flip = (options, deps) => ({\r\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.flip)(options),\r\n options: [options, deps]\r\n});\r\n\r\n/**\r\n * Provides data that allows you to change the size of the floating element —\r\n * for instance, prevent it from overflowing the clipping boundary or match the\r\n * width of the reference element.\r\n * @see https://floating-ui.com/docs/size\r\n */\r\nconst size = (options, deps) => ({\r\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.size)(options),\r\n options: [options, deps]\r\n});\r\n\r\n/**\r\n * Optimizes the visibility of the floating element by choosing the placement\r\n * that has the most space available automatically, without needing to specify a\r\n * preferred placement. Alternative to `flip`.\r\n * @see https://floating-ui.com/docs/autoPlacement\r\n */\r\nconst autoPlacement = (options, deps) => ({\r\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.autoPlacement)(options),\r\n options: [options, deps]\r\n});\r\n\r\n/**\r\n * Provides data to hide the floating element in applicable situations, such as\r\n * when it is not in the same clipping context as the reference element.\r\n * @see https://floating-ui.com/docs/hide\r\n */\r\nconst hide = (options, deps) => ({\r\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.hide)(options),\r\n options: [options, deps]\r\n});\r\n\r\n/**\r\n * Provides improved positioning for inline reference elements that can span\r\n * over multiple lines, such as hyperlinks or range selections.\r\n * @see https://floating-ui.com/docs/inline\r\n */\r\nconst inline = (options, deps) => ({\r\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.inline)(options),\r\n options: [options, deps]\r\n});\r\n\r\n/**\r\n * Provides data to position an inner element of the floating element so that it\r\n * appears centered to the reference element.\r\n * This wraps the core `arrow` middleware to allow React refs as the element.\r\n * @see https://floating-ui.com/docs/arrow\r\n */\r\nconst arrow = (options, deps) => ({\r\n ...arrow$1(options),\r\n options: [options, deps]\r\n});\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvcmVhY3QtZG9tL2Rpc3QvZmxvYXRpbmctdWkucmVhY3QtZG9tLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTZPO0FBQzlIO0FBQ2hGO0FBQ29CO0FBQ2I7QUFDdEM7QUFDQSw4Q0FBOEMsa0RBQWUsR0FBRyw0Q0FBUztBQUN6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLFVBQVU7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixVQUFVO0FBQy9CLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsVUFBVTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLHlDQUFZO0FBQzFCO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQUk7QUFDVjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osMEJBQTBCLDJDQUFjO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0EsR0FBRztBQUNILGtEQUFrRCwyQ0FBYztBQUNoRTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsMkNBQWM7QUFDcEQsb0NBQW9DLDJDQUFjO0FBQ2xELHVCQUF1Qiw4Q0FBaUI7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsc0JBQXNCLDhDQUFpQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsdUJBQXVCLHlDQUFZO0FBQ25DLHNCQUFzQix5Q0FBWTtBQUNsQyxrQkFBa0IseUNBQVk7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsOENBQWlCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGlFQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxnREFBa0I7QUFDMUI7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSCx1QkFBdUIseUNBQVk7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsZUFBZSwwQ0FBYTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxtQkFBbUIsMENBQWE7QUFDaEM7QUFDQTtBQUNBLEdBQUc7QUFDSCx5QkFBeUIsMENBQWE7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsU0FBUywwQ0FBYTtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLGlCQUFpQix1REFBTztBQUN4QjtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSx1REFBTztBQUN0QjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLHdEQUFRO0FBQ2I7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLHVEQUFPO0FBQ1o7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssNERBQVk7QUFDakI7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssc0RBQU07QUFDWDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxzREFBTTtBQUNYO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLCtEQUFlO0FBQ3BCO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxzREFBTTtBQUNYO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyx3REFBUTtBQUNiO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ2tHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvcmVhY3QtZG9tL2Rpc3QvZmxvYXRpbmctdWkucmVhY3QtZG9tLm1qcz81Y2ZlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVQb3NpdGlvbiwgYXJyb3cgYXMgYXJyb3ckMiwgb2Zmc2V0IGFzIG9mZnNldCQxLCBzaGlmdCBhcyBzaGlmdCQxLCBsaW1pdFNoaWZ0IGFzIGxpbWl0U2hpZnQkMSwgZmxpcCBhcyBmbGlwJDEsIHNpemUgYXMgc2l6ZSQxLCBhdXRvUGxhY2VtZW50IGFzIGF1dG9QbGFjZW1lbnQkMSwgaGlkZSBhcyBoaWRlJDEsIGlubGluZSBhcyBpbmxpbmUkMSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xyXG5leHBvcnQgeyBhdXRvVXBkYXRlLCBjb21wdXRlUG9zaXRpb24sIGRldGVjdE92ZXJmbG93LCBnZXRPdmVyZmxvd0FuY2VzdG9ycywgcGxhdGZvcm0gfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcclxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcclxuXHJcbnZhciBpbmRleCA9IHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgPyB1c2VMYXlvdXRFZmZlY3QgOiB1c2VFZmZlY3Q7XHJcblxyXG4vLyBGb3JrIG9mIGBmYXN0LWRlZXAtZXF1YWxgIHRoYXQgb25seSBkb2VzIHRoZSBjb21wYXJpc29ucyB3ZSBuZWVkIGFuZCBjb21wYXJlc1xyXG4vLyBmdW5jdGlvbnNcclxuZnVuY3Rpb24gZGVlcEVxdWFsKGEsIGIpIHtcclxuICBpZiAoYSA9PT0gYikge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIGlmICh0eXBlb2YgYSAhPT0gdHlwZW9mIGIpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgaWYgKHR5cGVvZiBhID09PSAnZnVuY3Rpb24nICYmIGEudG9TdHJpbmcoKSA9PT0gYi50b1N0cmluZygpKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgbGV0IGxlbmd0aDtcclxuICBsZXQgaTtcclxuICBsZXQga2V5cztcclxuICBpZiAoYSAmJiBiICYmIHR5cGVvZiBhID09PSAnb2JqZWN0Jykge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHtcclxuICAgICAgbGVuZ3RoID0gYS5sZW5ndGg7XHJcbiAgICAgIGlmIChsZW5ndGggIT09IGIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOykge1xyXG4gICAgICAgIGlmICghZGVlcEVxdWFsKGFbaV0sIGJbaV0pKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAga2V5cyA9IE9iamVjdC5rZXlzKGEpO1xyXG4gICAgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XHJcbiAgICBpZiAobGVuZ3RoICE9PSBPYmplY3Qua2V5cyhiKS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7KSB7XHJcbiAgICAgIGlmICghe30uaGFzT3duUHJvcGVydHkuY2FsbChiLCBrZXlzW2ldKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7KSB7XHJcbiAgICAgIGNvbnN0IGtleSA9IGtleXNbaV07XHJcbiAgICAgIGlmIChrZXkgPT09ICdfb3duZXInICYmIGEuJCR0eXBlb2YpIHtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIWRlZXBFcXVhbChhW2tleV0sIGJba2V5XSkpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICByZXR1cm4gYSAhPT0gYSAmJiBiICE9PSBiO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXREUFIoZWxlbWVudCkge1xyXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgcmV0dXJuIDE7XHJcbiAgfVxyXG4gIGNvbnN0IHdpbiA9IGVsZW1lbnQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3c7XHJcbiAgcmV0dXJuIHdpbi5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJvdW5kQnlEUFIoZWxlbWVudCwgdmFsdWUpIHtcclxuICBjb25zdCBkcHIgPSBnZXREUFIoZWxlbWVudCk7XHJcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiBkcHIpIC8gZHByO1xyXG59XHJcblxyXG5mdW5jdGlvbiB1c2VMYXRlc3RSZWYodmFsdWUpIHtcclxuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYodmFsdWUpO1xyXG4gIGluZGV4KCgpID0+IHtcclxuICAgIHJlZi5jdXJyZW50ID0gdmFsdWU7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHJlZjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGRhdGEgdG8gcG9zaXRpb24gYSBmbG9hdGluZyBlbGVtZW50LlxyXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvdXNlRmxvYXRpbmdcclxuICovXHJcbmZ1bmN0aW9uIHVzZUZsb2F0aW5nKG9wdGlvbnMpIHtcclxuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XHJcbiAgICBvcHRpb25zID0ge307XHJcbiAgfVxyXG4gIGNvbnN0IHtcclxuICAgIHBsYWNlbWVudCA9ICdib3R0b20nLFxyXG4gICAgc3RyYXRlZ3kgPSAnYWJzb2x1dGUnLFxyXG4gICAgbWlkZGxld2FyZSA9IFtdLFxyXG4gICAgcGxhdGZvcm0sXHJcbiAgICBlbGVtZW50czoge1xyXG4gICAgICByZWZlcmVuY2U6IGV4dGVybmFsUmVmZXJlbmNlLFxyXG4gICAgICBmbG9hdGluZzogZXh0ZXJuYWxGbG9hdGluZ1xyXG4gICAgfSA9IHt9LFxyXG4gICAgdHJhbnNmb3JtID0gdHJ1ZSxcclxuICAgIHdoaWxlRWxlbWVudHNNb3VudGVkLFxyXG4gICAgb3BlblxyXG4gIH0gPSBvcHRpb25zO1xyXG4gIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IFJlYWN0LnVzZVN0YXRlKHtcclxuICAgIHg6IDAsXHJcbiAgICB5OiAwLFxyXG4gICAgc3RyYXRlZ3ksXHJcbiAgICBwbGFjZW1lbnQsXHJcbiAgICBtaWRkbGV3YXJlRGF0YToge30sXHJcbiAgICBpc1Bvc2l0aW9uZWQ6IGZhbHNlXHJcbiAgfSk7XHJcbiAgY29uc3QgW2xhdGVzdE1pZGRsZXdhcmUsIHNldExhdGVzdE1pZGRsZXdhcmVdID0gUmVhY3QudXNlU3RhdGUobWlkZGxld2FyZSk7XHJcbiAgaWYgKCFkZWVwRXF1YWwobGF0ZXN0TWlkZGxld2FyZSwgbWlkZGxld2FyZSkpIHtcclxuICAgIHNldExhdGVzdE1pZGRsZXdhcmUobWlkZGxld2FyZSk7XHJcbiAgfVxyXG4gIGNvbnN0IFtfcmVmZXJlbmNlLCBfc2V0UmVmZXJlbmNlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xyXG4gIGNvbnN0IFtfZmxvYXRpbmcsIF9zZXRGbG9hdGluZ10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcclxuICBjb25zdCBzZXRSZWZlcmVuY2UgPSBSZWFjdC51c2VDYWxsYmFjayhub2RlID0+IHtcclxuICAgIGlmIChub2RlICE9PSByZWZlcmVuY2VSZWYuY3VycmVudCkge1xyXG4gICAgICByZWZlcmVuY2VSZWYuY3VycmVudCA9IG5vZGU7XHJcbiAgICAgIF9zZXRSZWZlcmVuY2Uobm9kZSk7XHJcbiAgICB9XHJcbiAgfSwgW10pO1xyXG4gIGNvbnN0IHNldEZsb2F0aW5nID0gUmVhY3QudXNlQ2FsbGJhY2sobm9kZSA9PiB7XHJcbiAgICBpZiAobm9kZSAhPT0gZmxvYXRpbmdSZWYuY3VycmVudCkge1xyXG4gICAgICBmbG9hdGluZ1JlZi5jdXJyZW50ID0gbm9kZTtcclxuICAgICAgX3NldEZsb2F0aW5nKG5vZGUpO1xyXG4gICAgfVxyXG4gIH0sIFtdKTtcclxuICBjb25zdCByZWZlcmVuY2VFbCA9IGV4dGVybmFsUmVmZXJlbmNlIHx8IF9yZWZlcmVuY2U7XHJcbiAgY29uc3QgZmxvYXRpbmdFbCA9IGV4dGVybmFsRmxvYXRpbmcgfHwgX2Zsb2F0aW5nO1xyXG4gIGNvbnN0IHJlZmVyZW5jZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBjb25zdCBmbG9hdGluZ1JlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBjb25zdCBkYXRhUmVmID0gUmVhY3QudXNlUmVmKGRhdGEpO1xyXG4gIGNvbnN0IGhhc1doaWxlRWxlbWVudHNNb3VudGVkID0gd2hpbGVFbGVtZW50c01vdW50ZWQgIT0gbnVsbDtcclxuICBjb25zdCB3aGlsZUVsZW1lbnRzTW91bnRlZFJlZiA9IHVzZUxhdGVzdFJlZih3aGlsZUVsZW1lbnRzTW91bnRlZCk7XHJcbiAgY29uc3QgcGxhdGZvcm1SZWYgPSB1c2VMYXRlc3RSZWYocGxhdGZvcm0pO1xyXG4gIGNvbnN0IG9wZW5SZWYgPSB1c2VMYXRlc3RSZWYob3Blbik7XHJcbiAgY29uc3QgdXBkYXRlID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xyXG4gICAgaWYgKCFyZWZlcmVuY2VSZWYuY3VycmVudCB8fCAhZmxvYXRpbmdSZWYuY3VycmVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWcgPSB7XHJcbiAgICAgIHBsYWNlbWVudCxcclxuICAgICAgc3RyYXRlZ3ksXHJcbiAgICAgIG1pZGRsZXdhcmU6IGxhdGVzdE1pZGRsZXdhcmVcclxuICAgIH07XHJcbiAgICBpZiAocGxhdGZvcm1SZWYuY3VycmVudCkge1xyXG4gICAgICBjb25maWcucGxhdGZvcm0gPSBwbGF0Zm9ybVJlZi5jdXJyZW50O1xyXG4gICAgfVxyXG4gICAgY29tcHV0ZVBvc2l0aW9uKHJlZmVyZW5jZVJlZi5jdXJyZW50LCBmbG9hdGluZ1JlZi5jdXJyZW50LCBjb25maWcpLnRoZW4oZGF0YSA9PiB7XHJcbiAgICAgIGNvbnN0IGZ1bGxEYXRhID0ge1xyXG4gICAgICAgIC4uLmRhdGEsXHJcbiAgICAgICAgLy8gVGhlIGZsb2F0aW5nIGVsZW1lbnQncyBwb3NpdGlvbiBtYXkgYmUgcmVjb21wdXRlZCB3aGlsZSBpdCdzIGNsb3NlZFxyXG4gICAgICAgIC8vIGJ1dCBzdGlsbCBtb3VudGVkIChzdWNoIGFzIHdoZW4gdHJhbnNpdGlvbmluZyBvdXQpLiBUbyBlbnN1cmVcclxuICAgICAgICAvLyBgaXNQb3NpdGlvbmVkYCB3aWxsIGJlIGBmYWxzZWAgaW5pdGlhbGx5IG9uIHRoZSBuZXh0IG9wZW4sIGF2b2lkXHJcbiAgICAgICAgLy8gc2V0dGluZyBpdCB0byBgdHJ1ZWAgd2hlbiBgb3BlbiA9PT0gZmFsc2VgIChtdXN0IGJlIHNwZWNpZmllZCkuXHJcbiAgICAgICAgaXNQb3NpdGlvbmVkOiBvcGVuUmVmLmN1cnJlbnQgIT09IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGlmIChpc01vdW50ZWRSZWYuY3VycmVudCAmJiAhZGVlcEVxdWFsKGRhdGFSZWYuY3VycmVudCwgZnVsbERhdGEpKSB7XHJcbiAgICAgICAgZGF0YVJlZi5jdXJyZW50ID0gZnVsbERhdGE7XHJcbiAgICAgICAgUmVhY3RET00uZmx1c2hTeW5jKCgpID0+IHtcclxuICAgICAgICAgIHNldERhdGEoZnVsbERhdGEpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9LCBbbGF0ZXN0TWlkZGxld2FyZSwgcGxhY2VtZW50LCBzdHJhdGVneSwgcGxhdGZvcm1SZWYsIG9wZW5SZWZdKTtcclxuICBpbmRleCgoKSA9PiB7XHJcbiAgICBpZiAob3BlbiA9PT0gZmFsc2UgJiYgZGF0YVJlZi5jdXJyZW50LmlzUG9zaXRpb25lZCkge1xyXG4gICAgICBkYXRhUmVmLmN1cnJlbnQuaXNQb3NpdGlvbmVkID0gZmFsc2U7XHJcbiAgICAgIHNldERhdGEoZGF0YSA9PiAoe1xyXG4gICAgICAgIC4uLmRhdGEsXHJcbiAgICAgICAgaXNQb3NpdGlvbmVkOiBmYWxzZVxyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcbiAgfSwgW29wZW5dKTtcclxuICBjb25zdCBpc01vdW50ZWRSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xyXG4gIGluZGV4KCgpID0+IHtcclxuICAgIGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIGlzTW91bnRlZFJlZi5jdXJyZW50ID0gZmFsc2U7XHJcbiAgICB9O1xyXG4gIH0sIFtdKTtcclxuICBpbmRleCgoKSA9PiB7XHJcbiAgICBpZiAocmVmZXJlbmNlRWwpIHJlZmVyZW5jZVJlZi5jdXJyZW50ID0gcmVmZXJlbmNlRWw7XHJcbiAgICBpZiAoZmxvYXRpbmdFbCkgZmxvYXRpbmdSZWYuY3VycmVudCA9IGZsb2F0aW5nRWw7XHJcbiAgICBpZiAocmVmZXJlbmNlRWwgJiYgZmxvYXRpbmdFbCkge1xyXG4gICAgICBpZiAod2hpbGVFbGVtZW50c01vdW50ZWRSZWYuY3VycmVudCkge1xyXG4gICAgICAgIHJldHVybiB3aGlsZUVsZW1lbnRzTW91bnRlZFJlZi5jdXJyZW50KHJlZmVyZW5jZUVsLCBmbG9hdGluZ0VsLCB1cGRhdGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHVwZGF0ZSgpO1xyXG4gICAgfVxyXG4gIH0sIFtyZWZlcmVuY2VFbCwgZmxvYXRpbmdFbCwgdXBkYXRlLCB3aGlsZUVsZW1lbnRzTW91bnRlZFJlZiwgaGFzV2hpbGVFbGVtZW50c01vdW50ZWRdKTtcclxuICBjb25zdCByZWZzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xyXG4gICAgcmVmZXJlbmNlOiByZWZlcmVuY2VSZWYsXHJcbiAgICBmbG9hdGluZzogZmxvYXRpbmdSZWYsXHJcbiAgICBzZXRSZWZlcmVuY2UsXHJcbiAgICBzZXRGbG9hdGluZ1xyXG4gIH0pLCBbc2V0UmVmZXJlbmNlLCBzZXRGbG9hdGluZ10pO1xyXG4gIGNvbnN0IGVsZW1lbnRzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xyXG4gICAgcmVmZXJlbmNlOiByZWZlcmVuY2VFbCxcclxuICAgIGZsb2F0aW5nOiBmbG9hdGluZ0VsXHJcbiAgfSksIFtyZWZlcmVuY2VFbCwgZmxvYXRpbmdFbF0pO1xyXG4gIGNvbnN0IGZsb2F0aW5nU3R5bGVzID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XHJcbiAgICBjb25zdCBpbml0aWFsU3R5bGVzID0ge1xyXG4gICAgICBwb3NpdGlvbjogc3RyYXRlZ3ksXHJcbiAgICAgIGxlZnQ6IDAsXHJcbiAgICAgIHRvcDogMFxyXG4gICAgfTtcclxuICAgIGlmICghZWxlbWVudHMuZmxvYXRpbmcpIHtcclxuICAgICAgcmV0dXJuIGluaXRpYWxTdHlsZXM7XHJcbiAgICB9XHJcbiAgICBjb25zdCB4ID0gcm91bmRCeURQUihlbGVtZW50cy5mbG9hdGluZywgZGF0YS54KTtcclxuICAgIGNvbnN0IHkgPSByb3VuZEJ5RFBSKGVsZW1lbnRzLmZsb2F0aW5nLCBkYXRhLnkpO1xyXG4gICAgaWYgKHRyYW5zZm9ybSkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLmluaXRpYWxTdHlsZXMsXHJcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZShcIiArIHggKyBcInB4LCBcIiArIHkgKyBcInB4KVwiLFxyXG4gICAgICAgIC4uLihnZXREUFIoZWxlbWVudHMuZmxvYXRpbmcpID49IDEuNSAmJiB7XHJcbiAgICAgICAgICB3aWxsQ2hhbmdlOiAndHJhbnNmb3JtJ1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBwb3NpdGlvbjogc3RyYXRlZ3ksXHJcbiAgICAgIGxlZnQ6IHgsXHJcbiAgICAgIHRvcDogeVxyXG4gICAgfTtcclxuICB9LCBbc3RyYXRlZ3ksIHRyYW5zZm9ybSwgZWxlbWVudHMuZmxvYXRpbmcsIGRhdGEueCwgZGF0YS55XSk7XHJcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcclxuICAgIC4uLmRhdGEsXHJcbiAgICB1cGRhdGUsXHJcbiAgICByZWZzLFxyXG4gICAgZWxlbWVudHMsXHJcbiAgICBmbG9hdGluZ1N0eWxlc1xyXG4gIH0pLCBbZGF0YSwgdXBkYXRlLCByZWZzLCBlbGVtZW50cywgZmxvYXRpbmdTdHlsZXNdKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGRhdGEgdG8gcG9zaXRpb24gYW4gaW5uZXIgZWxlbWVudCBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBzbyB0aGF0IGl0XHJcbiAqIGFwcGVhcnMgY2VudGVyZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxyXG4gKiBUaGlzIHdyYXBzIHRoZSBjb3JlIGBhcnJvd2AgbWlkZGxld2FyZSB0byBhbGxvdyBSZWFjdCByZWZzIGFzIHRoZSBlbGVtZW50LlxyXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXJyb3dcclxuICovXHJcbmNvbnN0IGFycm93JDEgPSBvcHRpb25zID0+IHtcclxuICBmdW5jdGlvbiBpc1JlZih2YWx1ZSkge1xyXG4gICAgcmV0dXJuIHt9Lmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjdXJyZW50Jyk7XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICBuYW1lOiAnYXJyb3cnLFxyXG4gICAgb3B0aW9ucyxcclxuICAgIGZuKHN0YXRlKSB7XHJcbiAgICAgIGNvbnN0IHtcclxuICAgICAgICBlbGVtZW50LFxyXG4gICAgICAgIHBhZGRpbmdcclxuICAgICAgfSA9IHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nID8gb3B0aW9ucyhzdGF0ZSkgOiBvcHRpb25zO1xyXG4gICAgICBpZiAoZWxlbWVudCAmJiBpc1JlZihlbGVtZW50KSkge1xyXG4gICAgICAgIGlmIChlbGVtZW50LmN1cnJlbnQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgcmV0dXJuIGFycm93JDIoe1xyXG4gICAgICAgICAgICBlbGVtZW50OiBlbGVtZW50LmN1cnJlbnQsXHJcbiAgICAgICAgICAgIHBhZGRpbmdcclxuICAgICAgICAgIH0pLmZuKHN0YXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIGFycm93JDIoe1xyXG4gICAgICAgICAgZWxlbWVudCxcclxuICAgICAgICAgIHBhZGRpbmdcclxuICAgICAgICB9KS5mbihzdGF0ZSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHt9O1xyXG4gICAgfVxyXG4gIH07XHJcbn07XHJcblxyXG4vKipcclxuICogTW9kaWZpZXMgdGhlIHBsYWNlbWVudCBieSB0cmFuc2xhdGluZyB0aGUgZmxvYXRpbmcgZWxlbWVudCBhbG9uZyB0aGVcclxuICogc3BlY2lmaWVkIGF4ZXMuXHJcbiAqIEEgbnVtYmVyIChzaG9ydGhhbmQgZm9yIGBtYWluQXhpc2Agb3IgZGlzdGFuY2UpLCBvciBhbiBheGVzIGNvbmZpZ3VyYXRpb25cclxuICogb2JqZWN0IG1heSBiZSBwYXNzZWQuXHJcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9vZmZzZXRcclxuICovXHJcbmNvbnN0IG9mZnNldCA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xyXG4gIC4uLm9mZnNldCQxKG9wdGlvbnMpLFxyXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgc2hpZnRpbmcgaXQgaW4gb3JkZXIgdG9cclxuICoga2VlcCBpdCBpbiB2aWV3IHdoZW4gaXQgd2lsbCBvdmVyZmxvdyB0aGUgY2xpcHBpbmcgYm91bmRhcnkuXHJcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaGlmdFxyXG4gKi9cclxuY29uc3Qgc2hpZnQgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcclxuICAuLi5zaGlmdCQxKG9wdGlvbnMpLFxyXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBCdWlsdC1pbiBgbGltaXRlcmAgdGhhdCB3aWxsIHN0b3AgYHNoaWZ0KClgIGF0IGEgY2VydGFpbiBwb2ludC5cclxuICovXHJcbmNvbnN0IGxpbWl0U2hpZnQgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcclxuICAuLi5saW1pdFNoaWZ0JDEob3B0aW9ucyksXHJcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXHJcbn0pO1xyXG5cclxuLyoqXHJcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBmbGlwcGluZyB0aGUgYHBsYWNlbWVudGBcclxuICogaW4gb3JkZXIgdG8ga2VlcCBpdCBpbiB2aWV3IHdoZW4gdGhlIHByZWZlcnJlZCBwbGFjZW1lbnQocykgd2lsbCBvdmVyZmxvdyB0aGVcclxuICogY2xpcHBpbmcgYm91bmRhcnkuIEFsdGVybmF0aXZlIHRvIGBhdXRvUGxhY2VtZW50YC5cclxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2ZsaXBcclxuICovXHJcbmNvbnN0IGZsaXAgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcclxuICAuLi5mbGlwJDEob3B0aW9ucyksXHJcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXHJcbn0pO1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGRhdGEgdGhhdCBhbGxvd3MgeW91IHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCDigJRcclxuICogZm9yIGluc3RhbmNlLCBwcmV2ZW50IGl0IGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNsaXBwaW5nIGJvdW5kYXJ5IG9yIG1hdGNoIHRoZVxyXG4gKiB3aWR0aCBvZiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXHJcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaXplXHJcbiAqL1xyXG5jb25zdCBzaXplID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XHJcbiAgLi4uc2l6ZSQxKG9wdGlvbnMpLFxyXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgY2hvb3NpbmcgdGhlIHBsYWNlbWVudFxyXG4gKiB0aGF0IGhhcyB0aGUgbW9zdCBzcGFjZSBhdmFpbGFibGUgYXV0b21hdGljYWxseSwgd2l0aG91dCBuZWVkaW5nIHRvIHNwZWNpZnkgYVxyXG4gKiBwcmVmZXJyZWQgcGxhY2VtZW50LiBBbHRlcm5hdGl2ZSB0byBgZmxpcGAuXHJcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hdXRvUGxhY2VtZW50XHJcbiAqL1xyXG5jb25zdCBhdXRvUGxhY2VtZW50ID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XHJcbiAgLi4uYXV0b1BsYWNlbWVudCQxKG9wdGlvbnMpLFxyXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBQcm92aWRlcyBkYXRhIHRvIGhpZGUgdGhlIGZsb2F0aW5nIGVsZW1lbnQgaW4gYXBwbGljYWJsZSBzaXR1YXRpb25zLCBzdWNoIGFzXHJcbiAqIHdoZW4gaXQgaXMgbm90IGluIHRoZSBzYW1lIGNsaXBwaW5nIGNvbnRleHQgYXMgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxyXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvaGlkZVxyXG4gKi9cclxuY29uc3QgaGlkZSA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xyXG4gIC4uLmhpZGUkMShvcHRpb25zKSxcclxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cclxufSk7XHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgaW1wcm92ZWQgcG9zaXRpb25pbmcgZm9yIGlubGluZSByZWZlcmVuY2UgZWxlbWVudHMgdGhhdCBjYW4gc3BhblxyXG4gKiBvdmVyIG11bHRpcGxlIGxpbmVzLCBzdWNoIGFzIGh5cGVybGlua3Mgb3IgcmFuZ2Ugc2VsZWN0aW9ucy5cclxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxyXG4gKi9cclxuY29uc3QgaW5saW5lID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XHJcbiAgLi4uaW5saW5lJDEob3B0aW9ucyksXHJcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXHJcbn0pO1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGRhdGEgdG8gcG9zaXRpb24gYW4gaW5uZXIgZWxlbWVudCBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBzbyB0aGF0IGl0XHJcbiAqIGFwcGVhcnMgY2VudGVyZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxyXG4gKiBUaGlzIHdyYXBzIHRoZSBjb3JlIGBhcnJvd2AgbWlkZGxld2FyZSB0byBhbGxvdyBSZWFjdCByZWZzIGFzIHRoZSBlbGVtZW50LlxyXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXJyb3dcclxuICovXHJcbmNvbnN0IGFycm93ID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XHJcbiAgLi4uYXJyb3ckMShvcHRpb25zKSxcclxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cclxufSk7XHJcblxyXG5leHBvcnQgeyBhcnJvdywgYXV0b1BsYWNlbWVudCwgZmxpcCwgaGlkZSwgaW5saW5lLCBsaW1pdFNoaWZ0LCBvZmZzZXQsIHNoaWZ0LCBzaXplLCB1c2VGbG9hdGluZyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getComputedStyle: function() { return /* binding */ getComputedStyle; },\n/* harmony export */ getContainingBlock: function() { return /* binding */ getContainingBlock; },\n/* harmony export */ getDocumentElement: function() { return /* binding */ getDocumentElement; },\n/* harmony export */ getFrameElement: function() { return /* binding */ getFrameElement; },\n/* harmony export */ getNearestOverflowAncestor: function() { return /* binding */ getNearestOverflowAncestor; },\n/* harmony export */ getNodeName: function() { return /* binding */ getNodeName; },\n/* harmony export */ getNodeScroll: function() { return /* binding */ getNodeScroll; },\n/* harmony export */ getOverflowAncestors: function() { return /* binding */ getOverflowAncestors; },\n/* harmony export */ getParentNode: function() { return /* binding */ getParentNode; },\n/* harmony export */ getWindow: function() { return /* binding */ getWindow; },\n/* harmony export */ isContainingBlock: function() { return /* binding */ isContainingBlock; },\n/* harmony export */ isElement: function() { return /* binding */ isElement; },\n/* harmony export */ isHTMLElement: function() { return /* binding */ isHTMLElement; },\n/* harmony export */ isLastTraversableNode: function() { return /* binding */ isLastTraversableNode; },\n/* harmony export */ isNode: function() { return /* binding */ isNode; },\n/* harmony export */ isOverflowElement: function() { return /* binding */ isOverflowElement; },\n/* harmony export */ isShadowRoot: function() { return /* binding */ isShadowRoot; },\n/* harmony export */ isTableElement: function() { return /* binding */ isTableElement; },\n/* harmony export */ isTopLayer: function() { return /* binding */ isTopLayer; },\n/* harmony export */ isWebKit: function() { return /* binding */ isWebKit; }\n/* harmony export */ });\nfunction hasWindow() {\r\n return typeof window !== 'undefined';\r\n}\r\nfunction getNodeName(node) {\r\n if (isNode(node)) {\r\n return (node.nodeName || '').toLowerCase();\r\n }\r\n // Mocked nodes in testing environments may not be instances of Node. By\r\n // returning `#document` an infinite loop won't occur.\r\n // https://github.com/floating-ui/floating-ui/issues/2317\r\n return '#document';\r\n}\r\nfunction getWindow(node) {\r\n var _node$ownerDocument;\r\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\r\n}\r\nfunction getDocumentElement(node) {\r\n var _ref;\r\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\r\n}\r\nfunction isNode(value) {\r\n if (!hasWindow()) {\r\n return false;\r\n }\r\n return value instanceof Node || value instanceof getWindow(value).Node;\r\n}\r\nfunction isElement(value) {\r\n if (!hasWindow()) {\r\n return false;\r\n }\r\n return value instanceof Element || value instanceof getWindow(value).Element;\r\n}\r\nfunction isHTMLElement(value) {\r\n if (!hasWindow()) {\r\n return false;\r\n }\r\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\r\n}\r\nfunction isShadowRoot(value) {\r\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\r\n return false;\r\n }\r\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\r\n}\r\nfunction isOverflowElement(element) {\r\n const {\r\n overflow,\r\n overflowX,\r\n overflowY,\r\n display\r\n } = getComputedStyle(element);\r\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\r\n}\r\nfunction isTableElement(element) {\r\n return ['table', 'td', 'th'].includes(getNodeName(element));\r\n}\r\nfunction isTopLayer(element) {\r\n return [':popover-open', ':modal'].some(selector => {\r\n try {\r\n return element.matches(selector);\r\n } catch (e) {\r\n return false;\r\n }\r\n });\r\n}\r\nfunction isContainingBlock(elementOrCss) {\r\n const webkit = isWebKit();\r\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\r\n\r\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\r\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\r\n}\r\nfunction getContainingBlock(element) {\r\n let currentNode = getParentNode(element);\r\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\r\n if (isContainingBlock(currentNode)) {\r\n return currentNode;\r\n } else if (isTopLayer(currentNode)) {\r\n return null;\r\n }\r\n currentNode = getParentNode(currentNode);\r\n }\r\n return null;\r\n}\r\nfunction isWebKit() {\r\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\r\n return CSS.supports('-webkit-backdrop-filter', 'none');\r\n}\r\nfunction isLastTraversableNode(node) {\r\n return ['html', 'body', '#document'].includes(getNodeName(node));\r\n}\r\nfunction getComputedStyle(element) {\r\n return getWindow(element).getComputedStyle(element);\r\n}\r\nfunction getNodeScroll(element) {\r\n if (isElement(element)) {\r\n return {\r\n scrollLeft: element.scrollLeft,\r\n scrollTop: element.scrollTop\r\n };\r\n }\r\n return {\r\n scrollLeft: element.scrollX,\r\n scrollTop: element.scrollY\r\n };\r\n}\r\nfunction getParentNode(node) {\r\n if (getNodeName(node) === 'html') {\r\n return node;\r\n }\r\n const result =\r\n // Step into the shadow DOM of the parent of a slotted node.\r\n node.assignedSlot ||\r\n // DOM Element detected.\r\n node.parentNode ||\r\n // ShadowRoot detected.\r\n isShadowRoot(node) && node.host ||\r\n // Fallback.\r\n getDocumentElement(node);\r\n return isShadowRoot(result) ? result.host : result;\r\n}\r\nfunction getNearestOverflowAncestor(node) {\r\n const parentNode = getParentNode(node);\r\n if (isLastTraversableNode(parentNode)) {\r\n return node.ownerDocument ? node.ownerDocument.body : node.body;\r\n }\r\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\r\n return parentNode;\r\n }\r\n return getNearestOverflowAncestor(parentNode);\r\n}\r\nfunction getOverflowAncestors(node, list, traverseIframes) {\r\n var _node$ownerDocument2;\r\n if (list === void 0) {\r\n list = [];\r\n }\r\n if (traverseIframes === void 0) {\r\n traverseIframes = true;\r\n }\r\n const scrollableAncestor = getNearestOverflowAncestor(node);\r\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\r\n const win = getWindow(scrollableAncestor);\r\n if (isBody) {\r\n const frameElement = getFrameElement(win);\r\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\r\n }\r\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\r\n}\r\nfunction getFrameElement(win) {\r\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvdXRpbHMvZGlzdC9mbG9hdGluZy11aS51dGlscy5kb20ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2dWIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvdXRpbHMvZGlzdC9mbG9hdGluZy11aS51dGlscy5kb20ubWpzPzc3MjMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gaGFzV2luZG93KCkge1xyXG4gIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcclxufVxyXG5mdW5jdGlvbiBnZXROb2RlTmFtZShub2RlKSB7XHJcbiAgaWYgKGlzTm9kZShub2RlKSkge1xyXG4gICAgcmV0dXJuIChub2RlLm5vZGVOYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuICAvLyBNb2NrZWQgbm9kZXMgaW4gdGVzdGluZyBlbnZpcm9ubWVudHMgbWF5IG5vdCBiZSBpbnN0YW5jZXMgb2YgTm9kZS4gQnlcclxuICAvLyByZXR1cm5pbmcgYCNkb2N1bWVudGAgYW4gaW5maW5pdGUgbG9vcCB3b24ndCBvY2N1ci5cclxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzIzMTdcclxuICByZXR1cm4gJyNkb2N1bWVudCc7XHJcbn1cclxuZnVuY3Rpb24gZ2V0V2luZG93KG5vZGUpIHtcclxuICB2YXIgX25vZGUkb3duZXJEb2N1bWVudDtcclxuICByZXR1cm4gKG5vZGUgPT0gbnVsbCB8fCAoX25vZGUkb3duZXJEb2N1bWVudCA9IG5vZGUub3duZXJEb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9ub2RlJG93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpIHx8IHdpbmRvdztcclxufVxyXG5mdW5jdGlvbiBnZXREb2N1bWVudEVsZW1lbnQobm9kZSkge1xyXG4gIHZhciBfcmVmO1xyXG4gIHJldHVybiAoX3JlZiA9IChpc05vZGUobm9kZSkgPyBub2RlLm93bmVyRG9jdW1lbnQgOiBub2RlLmRvY3VtZW50KSB8fCB3aW5kb3cuZG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfcmVmLmRvY3VtZW50RWxlbWVudDtcclxufVxyXG5mdW5jdGlvbiBpc05vZGUodmFsdWUpIHtcclxuICBpZiAoIWhhc1dpbmRvdygpKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIE5vZGUgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLk5vZGU7XHJcbn1cclxuZnVuY3Rpb24gaXNFbGVtZW50KHZhbHVlKSB7XHJcbiAgaWYgKCFoYXNXaW5kb3coKSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBFbGVtZW50IHx8IHZhbHVlIGluc3RhbmNlb2YgZ2V0V2luZG93KHZhbHVlKS5FbGVtZW50O1xyXG59XHJcbmZ1bmN0aW9uIGlzSFRNTEVsZW1lbnQodmFsdWUpIHtcclxuICBpZiAoIWhhc1dpbmRvdygpKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50IHx8IHZhbHVlIGluc3RhbmNlb2YgZ2V0V2luZG93KHZhbHVlKS5IVE1MRWxlbWVudDtcclxufVxyXG5mdW5jdGlvbiBpc1NoYWRvd1Jvb3QodmFsdWUpIHtcclxuICBpZiAoIWhhc1dpbmRvdygpIHx8IHR5cGVvZiBTaGFkb3dSb290ID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBTaGFkb3dSb290IHx8IHZhbHVlIGluc3RhbmNlb2YgZ2V0V2luZG93KHZhbHVlKS5TaGFkb3dSb290O1xyXG59XHJcbmZ1bmN0aW9uIGlzT3ZlcmZsb3dFbGVtZW50KGVsZW1lbnQpIHtcclxuICBjb25zdCB7XHJcbiAgICBvdmVyZmxvdyxcclxuICAgIG92ZXJmbG93WCxcclxuICAgIG92ZXJmbG93WSxcclxuICAgIGRpc3BsYXlcclxuICB9ID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcclxuICByZXR1cm4gL2F1dG98c2Nyb2xsfG92ZXJsYXl8aGlkZGVufGNsaXAvLnRlc3Qob3ZlcmZsb3cgKyBvdmVyZmxvd1kgKyBvdmVyZmxvd1gpICYmICFbJ2lubGluZScsICdjb250ZW50cyddLmluY2x1ZGVzKGRpc3BsYXkpO1xyXG59XHJcbmZ1bmN0aW9uIGlzVGFibGVFbGVtZW50KGVsZW1lbnQpIHtcclxuICByZXR1cm4gWyd0YWJsZScsICd0ZCcsICd0aCddLmluY2x1ZGVzKGdldE5vZGVOYW1lKGVsZW1lbnQpKTtcclxufVxyXG5mdW5jdGlvbiBpc1RvcExheWVyKGVsZW1lbnQpIHtcclxuICByZXR1cm4gWyc6cG9wb3Zlci1vcGVuJywgJzptb2RhbCddLnNvbWUoc2VsZWN0b3IgPT4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIGVsZW1lbnQubWF0Y2hlcyhzZWxlY3Rvcik7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5mdW5jdGlvbiBpc0NvbnRhaW5pbmdCbG9jayhlbGVtZW50T3JDc3MpIHtcclxuICBjb25zdCB3ZWJraXQgPSBpc1dlYktpdCgpO1xyXG4gIGNvbnN0IGNzcyA9IGlzRWxlbWVudChlbGVtZW50T3JDc3MpID8gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50T3JDc3MpIDogZWxlbWVudE9yQ3NzO1xyXG5cclxuICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQ29udGFpbmluZ19ibG9jayNpZGVudGlmeWluZ190aGVfY29udGFpbmluZ19ibG9ja1xyXG4gIHJldHVybiBjc3MudHJhbnNmb3JtICE9PSAnbm9uZScgfHwgY3NzLnBlcnNwZWN0aXZlICE9PSAnbm9uZScgfHwgKGNzcy5jb250YWluZXJUeXBlID8gY3NzLmNvbnRhaW5lclR5cGUgIT09ICdub3JtYWwnIDogZmFsc2UpIHx8ICF3ZWJraXQgJiYgKGNzcy5iYWNrZHJvcEZpbHRlciA/IGNzcy5iYWNrZHJvcEZpbHRlciAhPT0gJ25vbmUnIDogZmFsc2UpIHx8ICF3ZWJraXQgJiYgKGNzcy5maWx0ZXIgPyBjc3MuZmlsdGVyICE9PSAnbm9uZScgOiBmYWxzZSkgfHwgWyd0cmFuc2Zvcm0nLCAncGVyc3BlY3RpdmUnLCAnZmlsdGVyJ10uc29tZSh2YWx1ZSA9PiAoY3NzLndpbGxDaGFuZ2UgfHwgJycpLmluY2x1ZGVzKHZhbHVlKSkgfHwgWydwYWludCcsICdsYXlvdXQnLCAnc3RyaWN0JywgJ2NvbnRlbnQnXS5zb21lKHZhbHVlID0+IChjc3MuY29udGFpbiB8fCAnJykuaW5jbHVkZXModmFsdWUpKTtcclxufVxyXG5mdW5jdGlvbiBnZXRDb250YWluaW5nQmxvY2soZWxlbWVudCkge1xyXG4gIGxldCBjdXJyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XHJcbiAgd2hpbGUgKGlzSFRNTEVsZW1lbnQoY3VycmVudE5vZGUpICYmICFpc0xhc3RUcmF2ZXJzYWJsZU5vZGUoY3VycmVudE5vZGUpKSB7XHJcbiAgICBpZiAoaXNDb250YWluaW5nQmxvY2soY3VycmVudE5vZGUpKSB7XHJcbiAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcclxuICAgIH0gZWxzZSBpZiAoaXNUb3BMYXllcihjdXJyZW50Tm9kZSkpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjdXJyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoY3VycmVudE5vZGUpO1xyXG4gIH1cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG5mdW5jdGlvbiBpc1dlYktpdCgpIHtcclxuICBpZiAodHlwZW9mIENTUyA9PT0gJ3VuZGVmaW5lZCcgfHwgIUNTUy5zdXBwb3J0cykgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBDU1Muc3VwcG9ydHMoJy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyJywgJ25vbmUnKTtcclxufVxyXG5mdW5jdGlvbiBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUobm9kZSkge1xyXG4gIHJldHVybiBbJ2h0bWwnLCAnYm9keScsICcjZG9jdW1lbnQnXS5pbmNsdWRlcyhnZXROb2RlTmFtZShub2RlKSk7XHJcbn1cclxuZnVuY3Rpb24gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSB7XHJcbiAgcmV0dXJuIGdldFdpbmRvdyhlbGVtZW50KS5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xyXG59XHJcbmZ1bmN0aW9uIGdldE5vZGVTY3JvbGwoZWxlbWVudCkge1xyXG4gIGlmIChpc0VsZW1lbnQoZWxlbWVudCkpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNjcm9sbExlZnQ6IGVsZW1lbnQuc2Nyb2xsTGVmdCxcclxuICAgICAgc2Nyb2xsVG9wOiBlbGVtZW50LnNjcm9sbFRvcFxyXG4gICAgfTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIHNjcm9sbExlZnQ6IGVsZW1lbnQuc2Nyb2xsWCxcclxuICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxZXHJcbiAgfTtcclxufVxyXG5mdW5jdGlvbiBnZXRQYXJlbnROb2RlKG5vZGUpIHtcclxuICBpZiAoZ2V0Tm9kZU5hbWUobm9kZSkgPT09ICdodG1sJykge1xyXG4gICAgcmV0dXJuIG5vZGU7XHJcbiAgfVxyXG4gIGNvbnN0IHJlc3VsdCA9XHJcbiAgLy8gU3RlcCBpbnRvIHRoZSBzaGFkb3cgRE9NIG9mIHRoZSBwYXJlbnQgb2YgYSBzbG90dGVkIG5vZGUuXHJcbiAgbm9kZS5hc3NpZ25lZFNsb3QgfHxcclxuICAvLyBET00gRWxlbWVudCBkZXRlY3RlZC5cclxuICBub2RlLnBhcmVudE5vZGUgfHxcclxuICAvLyBTaGFkb3dSb290IGRldGVjdGVkLlxyXG4gIGlzU2hhZG93Um9vdChub2RlKSAmJiBub2RlLmhvc3QgfHxcclxuICAvLyBGYWxsYmFjay5cclxuICBnZXREb2N1bWVudEVsZW1lbnQobm9kZSk7XHJcbiAgcmV0dXJuIGlzU2hhZG93Um9vdChyZXN1bHQpID8gcmVzdWx0Lmhvc3QgOiByZXN1bHQ7XHJcbn1cclxuZnVuY3Rpb24gZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3Iobm9kZSkge1xyXG4gIGNvbnN0IHBhcmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKG5vZGUpO1xyXG4gIGlmIChpc0xhc3RUcmF2ZXJzYWJsZU5vZGUocGFyZW50Tm9kZSkpIHtcclxuICAgIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQgPyBub2RlLm93bmVyRG9jdW1lbnQuYm9keSA6IG5vZGUuYm9keTtcclxuICB9XHJcbiAgaWYgKGlzSFRNTEVsZW1lbnQocGFyZW50Tm9kZSkgJiYgaXNPdmVyZmxvd0VsZW1lbnQocGFyZW50Tm9kZSkpIHtcclxuICAgIHJldHVybiBwYXJlbnROb2RlO1xyXG4gIH1cclxuICByZXR1cm4gZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3IocGFyZW50Tm9kZSk7XHJcbn1cclxuZnVuY3Rpb24gZ2V0T3ZlcmZsb3dBbmNlc3RvcnMobm9kZSwgbGlzdCwgdHJhdmVyc2VJZnJhbWVzKSB7XHJcbiAgdmFyIF9ub2RlJG93bmVyRG9jdW1lbnQyO1xyXG4gIGlmIChsaXN0ID09PSB2b2lkIDApIHtcclxuICAgIGxpc3QgPSBbXTtcclxuICB9XHJcbiAgaWYgKHRyYXZlcnNlSWZyYW1lcyA9PT0gdm9pZCAwKSB7XHJcbiAgICB0cmF2ZXJzZUlmcmFtZXMgPSB0cnVlO1xyXG4gIH1cclxuICBjb25zdCBzY3JvbGxhYmxlQW5jZXN0b3IgPSBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3Rvcihub2RlKTtcclxuICBjb25zdCBpc0JvZHkgPSBzY3JvbGxhYmxlQW5jZXN0b3IgPT09ICgoX25vZGUkb3duZXJEb2N1bWVudDIgPSBub2RlLm93bmVyRG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZSRvd25lckRvY3VtZW50Mi5ib2R5KTtcclxuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coc2Nyb2xsYWJsZUFuY2VzdG9yKTtcclxuICBpZiAoaXNCb2R5KSB7XHJcbiAgICBjb25zdCBmcmFtZUVsZW1lbnQgPSBnZXRGcmFtZUVsZW1lbnQod2luKTtcclxuICAgIHJldHVybiBsaXN0LmNvbmNhdCh3aW4sIHdpbi52aXN1YWxWaWV3cG9ydCB8fCBbXSwgaXNPdmVyZmxvd0VsZW1lbnQoc2Nyb2xsYWJsZUFuY2VzdG9yKSA/IHNjcm9sbGFibGVBbmNlc3RvciA6IFtdLCBmcmFtZUVsZW1lbnQgJiYgdHJhdmVyc2VJZnJhbWVzID8gZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoZnJhbWVFbGVtZW50KSA6IFtdKTtcclxuICB9XHJcbiAgcmV0dXJuIGxpc3QuY29uY2F0KHNjcm9sbGFibGVBbmNlc3RvciwgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoc2Nyb2xsYWJsZUFuY2VzdG9yLCBbXSwgdHJhdmVyc2VJZnJhbWVzKSk7XHJcbn1cclxuZnVuY3Rpb24gZ2V0RnJhbWVFbGVtZW50KHdpbikge1xyXG4gIHJldHVybiB3aW4ucGFyZW50ICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZih3aW4ucGFyZW50KSA/IHdpbi5mcmFtZUVsZW1lbnQgOiBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgeyBnZXRDb21wdXRlZFN0eWxlLCBnZXRDb250YWluaW5nQmxvY2ssIGdldERvY3VtZW50RWxlbWVudCwgZ2V0RnJhbWVFbGVtZW50LCBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3RvciwgZ2V0Tm9kZU5hbWUsIGdldE5vZGVTY3JvbGwsIGdldE92ZXJmbG93QW5jZXN0b3JzLCBnZXRQYXJlbnROb2RlLCBnZXRXaW5kb3csIGlzQ29udGFpbmluZ0Jsb2NrLCBpc0VsZW1lbnQsIGlzSFRNTEVsZW1lbnQsIGlzTGFzdFRyYXZlcnNhYmxlTm9kZSwgaXNOb2RlLCBpc092ZXJmbG93RWxlbWVudCwgaXNTaGFkb3dSb290LCBpc1RhYmxlRWxlbWVudCwgaXNUb3BMYXllciwgaXNXZWJLaXQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ alignments: function() { return /* binding */ alignments; },\n/* harmony export */ clamp: function() { return /* binding */ clamp; },\n/* harmony export */ createCoords: function() { return /* binding */ createCoords; },\n/* harmony export */ evaluate: function() { return /* binding */ evaluate; },\n/* harmony export */ expandPaddingObject: function() { return /* binding */ expandPaddingObject; },\n/* harmony export */ floor: function() { return /* binding */ floor; },\n/* harmony export */ getAlignment: function() { return /* binding */ getAlignment; },\n/* harmony export */ getAlignmentAxis: function() { return /* binding */ getAlignmentAxis; },\n/* harmony export */ getAlignmentSides: function() { return /* binding */ getAlignmentSides; },\n/* harmony export */ getAxisLength: function() { return /* binding */ getAxisLength; },\n/* harmony export */ getExpandedPlacements: function() { return /* binding */ getExpandedPlacements; },\n/* harmony export */ getOppositeAlignmentPlacement: function() { return /* binding */ getOppositeAlignmentPlacement; },\n/* harmony export */ getOppositeAxis: function() { return /* binding */ getOppositeAxis; },\n/* harmony export */ getOppositeAxisPlacements: function() { return /* binding */ getOppositeAxisPlacements; },\n/* harmony export */ getOppositePlacement: function() { return /* binding */ getOppositePlacement; },\n/* harmony export */ getPaddingObject: function() { return /* binding */ getPaddingObject; },\n/* harmony export */ getSide: function() { return /* binding */ getSide; },\n/* harmony export */ getSideAxis: function() { return /* binding */ getSideAxis; },\n/* harmony export */ max: function() { return /* binding */ max; },\n/* harmony export */ min: function() { return /* binding */ min; },\n/* harmony export */ placements: function() { return /* binding */ placements; },\n/* harmony export */ rectToClientRect: function() { return /* binding */ rectToClientRect; },\n/* harmony export */ round: function() { return /* binding */ round; },\n/* harmony export */ sides: function() { return /* binding */ sides; }\n/* harmony export */ });\n/**\r\n * Custom positioning reference element.\r\n * @see https://floating-ui.com/docs/virtual-elements\r\n */\r\n\r\nconst sides = ['top', 'right', 'bottom', 'left'];\r\nconst alignments = ['start', 'end'];\r\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\r\nconst min = Math.min;\r\nconst max = Math.max;\r\nconst round = Math.round;\r\nconst floor = Math.floor;\r\nconst createCoords = v => ({\r\n x: v,\r\n y: v\r\n});\r\nconst oppositeSideMap = {\r\n left: 'right',\r\n right: 'left',\r\n bottom: 'top',\r\n top: 'bottom'\r\n};\r\nconst oppositeAlignmentMap = {\r\n start: 'end',\r\n end: 'start'\r\n};\r\nfunction clamp(start, value, end) {\r\n return max(start, min(value, end));\r\n}\r\nfunction evaluate(value, param) {\r\n return typeof value === 'function' ? value(param) : value;\r\n}\r\nfunction getSide(placement) {\r\n return placement.split('-')[0];\r\n}\r\nfunction getAlignment(placement) {\r\n return placement.split('-')[1];\r\n}\r\nfunction getOppositeAxis(axis) {\r\n return axis === 'x' ? 'y' : 'x';\r\n}\r\nfunction getAxisLength(axis) {\r\n return axis === 'y' ? 'height' : 'width';\r\n}\r\nfunction getSideAxis(placement) {\r\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\r\n}\r\nfunction getAlignmentAxis(placement) {\r\n return getOppositeAxis(getSideAxis(placement));\r\n}\r\nfunction getAlignmentSides(placement, rects, rtl) {\r\n if (rtl === void 0) {\r\n rtl = false;\r\n }\r\n const alignment = getAlignment(placement);\r\n const alignmentAxis = getAlignmentAxis(placement);\r\n const length = getAxisLength(alignmentAxis);\r\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\r\n if (rects.reference[length] > rects.floating[length]) {\r\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\r\n }\r\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\r\n}\r\nfunction getExpandedPlacements(placement) {\r\n const oppositePlacement = getOppositePlacement(placement);\r\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\r\n}\r\nfunction getOppositeAlignmentPlacement(placement) {\r\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\r\n}\r\nfunction getSideList(side, isStart, rtl) {\r\n const lr = ['left', 'right'];\r\n const rl = ['right', 'left'];\r\n const tb = ['top', 'bottom'];\r\n const bt = ['bottom', 'top'];\r\n switch (side) {\r\n case 'top':\r\n case 'bottom':\r\n if (rtl) return isStart ? rl : lr;\r\n return isStart ? lr : rl;\r\n case 'left':\r\n case 'right':\r\n return isStart ? tb : bt;\r\n default:\r\n return [];\r\n }\r\n}\r\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\r\n const alignment = getAlignment(placement);\r\n let list = getSideList(getSide(placement), direction === 'start', rtl);\r\n if (alignment) {\r\n list = list.map(side => side + \"-\" + alignment);\r\n if (flipAlignment) {\r\n list = list.concat(list.map(getOppositeAlignmentPlacement));\r\n }\r\n }\r\n return list;\r\n}\r\nfunction getOppositePlacement(placement) {\r\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\r\n}\r\nfunction expandPaddingObject(padding) {\r\n return {\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0,\r\n ...padding\r\n };\r\n}\r\nfunction getPaddingObject(padding) {\r\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\r\n top: padding,\r\n right: padding,\r\n bottom: padding,\r\n left: padding\r\n };\r\n}\r\nfunction rectToClientRect(rect) {\r\n const {\r\n x,\r\n y,\r\n width,\r\n height\r\n } = rect;\r\n return {\r\n width,\r\n height,\r\n top: y,\r\n left: x,\r\n right: x + width,\r\n bottom: y + height,\r\n x,\r\n y\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvdXRpbHMvZGlzdC9mbG9hdGluZy11aS51dGlscy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDeVciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BmbG9hdGluZy11aS91dGlscy9kaXN0L2Zsb2F0aW5nLXVpLnV0aWxzLm1qcz9iN2UyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDdXN0b20gcG9zaXRpb25pbmcgcmVmZXJlbmNlIGVsZW1lbnQuXHJcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy92aXJ0dWFsLWVsZW1lbnRzXHJcbiAqL1xyXG5cclxuY29uc3Qgc2lkZXMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddO1xyXG5jb25zdCBhbGlnbm1lbnRzID0gWydzdGFydCcsICdlbmQnXTtcclxuY29uc3QgcGxhY2VtZW50cyA9IC8qI19fUFVSRV9fKi9zaWRlcy5yZWR1Y2UoKGFjYywgc2lkZSkgPT4gYWNjLmNvbmNhdChzaWRlLCBzaWRlICsgXCItXCIgKyBhbGlnbm1lbnRzWzBdLCBzaWRlICsgXCItXCIgKyBhbGlnbm1lbnRzWzFdKSwgW10pO1xyXG5jb25zdCBtaW4gPSBNYXRoLm1pbjtcclxuY29uc3QgbWF4ID0gTWF0aC5tYXg7XHJcbmNvbnN0IHJvdW5kID0gTWF0aC5yb3VuZDtcclxuY29uc3QgZmxvb3IgPSBNYXRoLmZsb29yO1xyXG5jb25zdCBjcmVhdGVDb29yZHMgPSB2ID0+ICh7XHJcbiAgeDogdixcclxuICB5OiB2XHJcbn0pO1xyXG5jb25zdCBvcHBvc2l0ZVNpZGVNYXAgPSB7XHJcbiAgbGVmdDogJ3JpZ2h0JyxcclxuICByaWdodDogJ2xlZnQnLFxyXG4gIGJvdHRvbTogJ3RvcCcsXHJcbiAgdG9wOiAnYm90dG9tJ1xyXG59O1xyXG5jb25zdCBvcHBvc2l0ZUFsaWdubWVudE1hcCA9IHtcclxuICBzdGFydDogJ2VuZCcsXHJcbiAgZW5kOiAnc3RhcnQnXHJcbn07XHJcbmZ1bmN0aW9uIGNsYW1wKHN0YXJ0LCB2YWx1ZSwgZW5kKSB7XHJcbiAgcmV0dXJuIG1heChzdGFydCwgbWluKHZhbHVlLCBlbmQpKTtcclxufVxyXG5mdW5jdGlvbiBldmFsdWF0ZSh2YWx1ZSwgcGFyYW0pIHtcclxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nID8gdmFsdWUocGFyYW0pIDogdmFsdWU7XHJcbn1cclxuZnVuY3Rpb24gZ2V0U2lkZShwbGFjZW1lbnQpIHtcclxuICByZXR1cm4gcGxhY2VtZW50LnNwbGl0KCctJylbMF07XHJcbn1cclxuZnVuY3Rpb24gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkge1xyXG4gIHJldHVybiBwbGFjZW1lbnQuc3BsaXQoJy0nKVsxXTtcclxufVxyXG5mdW5jdGlvbiBnZXRPcHBvc2l0ZUF4aXMoYXhpcykge1xyXG4gIHJldHVybiBheGlzID09PSAneCcgPyAneScgOiAneCc7XHJcbn1cclxuZnVuY3Rpb24gZ2V0QXhpc0xlbmd0aChheGlzKSB7XHJcbiAgcmV0dXJuIGF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcclxufVxyXG5mdW5jdGlvbiBnZXRTaWRlQXhpcyhwbGFjZW1lbnQpIHtcclxuICByZXR1cm4gWyd0b3AnLCAnYm90dG9tJ10uaW5jbHVkZXMoZ2V0U2lkZShwbGFjZW1lbnQpKSA/ICd5JyA6ICd4JztcclxufVxyXG5mdW5jdGlvbiBnZXRBbGlnbm1lbnRBeGlzKHBsYWNlbWVudCkge1xyXG4gIHJldHVybiBnZXRPcHBvc2l0ZUF4aXMoZ2V0U2lkZUF4aXMocGxhY2VtZW50KSk7XHJcbn1cclxuZnVuY3Rpb24gZ2V0QWxpZ25tZW50U2lkZXMocGxhY2VtZW50LCByZWN0cywgcnRsKSB7XHJcbiAgaWYgKHJ0bCA9PT0gdm9pZCAwKSB7XHJcbiAgICBydGwgPSBmYWxzZTtcclxuICB9XHJcbiAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XHJcbiAgY29uc3QgYWxpZ25tZW50QXhpcyA9IGdldEFsaWdubWVudEF4aXMocGxhY2VtZW50KTtcclxuICBjb25zdCBsZW5ndGggPSBnZXRBeGlzTGVuZ3RoKGFsaWdubWVudEF4aXMpO1xyXG4gIGxldCBtYWluQWxpZ25tZW50U2lkZSA9IGFsaWdubWVudEF4aXMgPT09ICd4JyA/IGFsaWdubWVudCA9PT0gKHJ0bCA/ICdlbmQnIDogJ3N0YXJ0JykgPyAncmlnaHQnIDogJ2xlZnQnIDogYWxpZ25tZW50ID09PSAnc3RhcnQnID8gJ2JvdHRvbScgOiAndG9wJztcclxuICBpZiAocmVjdHMucmVmZXJlbmNlW2xlbmd0aF0gPiByZWN0cy5mbG9hdGluZ1tsZW5ndGhdKSB7XHJcbiAgICBtYWluQWxpZ25tZW50U2lkZSA9IGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5BbGlnbm1lbnRTaWRlKTtcclxuICB9XHJcbiAgcmV0dXJuIFttYWluQWxpZ25tZW50U2lkZSwgZ2V0T3Bwb3NpdGVQbGFjZW1lbnQobWFpbkFsaWdubWVudFNpZGUpXTtcclxufVxyXG5mdW5jdGlvbiBnZXRFeHBhbmRlZFBsYWNlbWVudHMocGxhY2VtZW50KSB7XHJcbiAgY29uc3Qgb3Bwb3NpdGVQbGFjZW1lbnQgPSBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpO1xyXG4gIHJldHVybiBbZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQocGxhY2VtZW50KSwgb3Bwb3NpdGVQbGFjZW1lbnQsIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KG9wcG9zaXRlUGxhY2VtZW50KV07XHJcbn1cclxuZnVuY3Rpb24gZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQocGxhY2VtZW50KSB7XHJcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9zdGFydHxlbmQvZywgYWxpZ25tZW50ID0+IG9wcG9zaXRlQWxpZ25tZW50TWFwW2FsaWdubWVudF0pO1xyXG59XHJcbmZ1bmN0aW9uIGdldFNpZGVMaXN0KHNpZGUsIGlzU3RhcnQsIHJ0bCkge1xyXG4gIGNvbnN0IGxyID0gWydsZWZ0JywgJ3JpZ2h0J107XHJcbiAgY29uc3QgcmwgPSBbJ3JpZ2h0JywgJ2xlZnQnXTtcclxuICBjb25zdCB0YiA9IFsndG9wJywgJ2JvdHRvbSddO1xyXG4gIGNvbnN0IGJ0ID0gWydib3R0b20nLCAndG9wJ107XHJcbiAgc3dpdGNoIChzaWRlKSB7XHJcbiAgICBjYXNlICd0b3AnOlxyXG4gICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgaWYgKHJ0bCkgcmV0dXJuIGlzU3RhcnQgPyBybCA6IGxyO1xyXG4gICAgICByZXR1cm4gaXNTdGFydCA/IGxyIDogcmw7XHJcbiAgICBjYXNlICdsZWZ0JzpcclxuICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgcmV0dXJuIGlzU3RhcnQgPyB0YiA6IGJ0O1xyXG4gICAgZGVmYXVsdDpcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gIH1cclxufVxyXG5mdW5jdGlvbiBnZXRPcHBvc2l0ZUF4aXNQbGFjZW1lbnRzKHBsYWNlbWVudCwgZmxpcEFsaWdubWVudCwgZGlyZWN0aW9uLCBydGwpIHtcclxuICBjb25zdCBhbGlnbm1lbnQgPSBnZXRBbGlnbm1lbnQocGxhY2VtZW50KTtcclxuICBsZXQgbGlzdCA9IGdldFNpZGVMaXN0KGdldFNpZGUocGxhY2VtZW50KSwgZGlyZWN0aW9uID09PSAnc3RhcnQnLCBydGwpO1xyXG4gIGlmIChhbGlnbm1lbnQpIHtcclxuICAgIGxpc3QgPSBsaXN0Lm1hcChzaWRlID0+IHNpZGUgKyBcIi1cIiArIGFsaWdubWVudCk7XHJcbiAgICBpZiAoZmxpcEFsaWdubWVudCkge1xyXG4gICAgICBsaXN0ID0gbGlzdC5jb25jYXQobGlzdC5tYXAoZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQpKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGxpc3Q7XHJcbn1cclxuZnVuY3Rpb24gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocGxhY2VtZW50KSB7XHJcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZywgc2lkZSA9PiBvcHBvc2l0ZVNpZGVNYXBbc2lkZV0pO1xyXG59XHJcbmZ1bmN0aW9uIGV4cGFuZFBhZGRpbmdPYmplY3QocGFkZGluZykge1xyXG4gIHJldHVybiB7XHJcbiAgICB0b3A6IDAsXHJcbiAgICByaWdodDogMCxcclxuICAgIGJvdHRvbTogMCxcclxuICAgIGxlZnQ6IDAsXHJcbiAgICAuLi5wYWRkaW5nXHJcbiAgfTtcclxufVxyXG5mdW5jdGlvbiBnZXRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpIHtcclxuICByZXR1cm4gdHlwZW9mIHBhZGRpbmcgIT09ICdudW1iZXInID8gZXhwYW5kUGFkZGluZ09iamVjdChwYWRkaW5nKSA6IHtcclxuICAgIHRvcDogcGFkZGluZyxcclxuICAgIHJpZ2h0OiBwYWRkaW5nLFxyXG4gICAgYm90dG9tOiBwYWRkaW5nLFxyXG4gICAgbGVmdDogcGFkZGluZ1xyXG4gIH07XHJcbn1cclxuZnVuY3Rpb24gcmVjdFRvQ2xpZW50UmVjdChyZWN0KSB7XHJcbiAgY29uc3Qge1xyXG4gICAgeCxcclxuICAgIHksXHJcbiAgICB3aWR0aCxcclxuICAgIGhlaWdodFxyXG4gIH0gPSByZWN0O1xyXG4gIHJldHVybiB7XHJcbiAgICB3aWR0aCxcclxuICAgIGhlaWdodCxcclxuICAgIHRvcDogeSxcclxuICAgIGxlZnQ6IHgsXHJcbiAgICByaWdodDogeCArIHdpZHRoLFxyXG4gICAgYm90dG9tOiB5ICsgaGVpZ2h0LFxyXG4gICAgeCxcclxuICAgIHlcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgeyBhbGlnbm1lbnRzLCBjbGFtcCwgY3JlYXRlQ29vcmRzLCBldmFsdWF0ZSwgZXhwYW5kUGFkZGluZ09iamVjdCwgZmxvb3IsIGdldEFsaWdubWVudCwgZ2V0QWxpZ25tZW50QXhpcywgZ2V0QWxpZ25tZW50U2lkZXMsIGdldEF4aXNMZW5ndGgsIGdldEV4cGFuZGVkUGxhY2VtZW50cywgZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQsIGdldE9wcG9zaXRlQXhpcywgZ2V0T3Bwb3NpdGVBeGlzUGxhY2VtZW50cywgZ2V0T3Bwb3NpdGVQbGFjZW1lbnQsIGdldFBhZGRpbmdPYmplY3QsIGdldFNpZGUsIGdldFNpZGVBeGlzLCBtYXgsIG1pbiwgcGxhY2VtZW50cywgcmVjdFRvQ2xpZW50UmVjdCwgcm91bmQsIHNpZGVzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs":
|
||
/*!*********************************************************!*\
|
||
!*** ./node_modules/@radix-ui/primitive/dist/index.mjs ***!
|
||
\*********************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ composeEventHandlers: function() { return /* binding */ composeEventHandlers; }\n/* harmony export */ });\n// packages/core/primitive/src/primitive.tsx\r\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\r\n return function handleEvent(event) {\r\n originalEventHandler?.(event);\r\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\r\n return ourEventHandler?.(event);\r\n }\r\n };\r\n}\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLHVFQUF1RSxrQ0FBa0MsSUFBSTtBQUM3RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9wcmltaXRpdmUvZGlzdC9pbmRleC5tanM/ODQwYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9jb3JlL3ByaW1pdGl2ZS9zcmMvcHJpbWl0aXZlLnRzeFxyXG5mdW5jdGlvbiBjb21wb3NlRXZlbnRIYW5kbGVycyhvcmlnaW5hbEV2ZW50SGFuZGxlciwgb3VyRXZlbnRIYW5kbGVyLCB7IGNoZWNrRm9yRGVmYXVsdFByZXZlbnRlZCA9IHRydWUgfSA9IHt9KSB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uIGhhbmRsZUV2ZW50KGV2ZW50KSB7XHJcbiAgICBvcmlnaW5hbEV2ZW50SGFuZGxlcj8uKGV2ZW50KTtcclxuICAgIGlmIChjaGVja0ZvckRlZmF1bHRQcmV2ZW50ZWQgPT09IGZhbHNlIHx8ICFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XHJcbiAgICAgIHJldHVybiBvdXJFdmVudEhhbmRsZXI/LihldmVudCk7XHJcbiAgICB9XHJcbiAgfTtcclxufVxyXG5leHBvcnQge1xyXG4gIGNvbXBvc2VFdmVudEhhbmRsZXJzXHJcbn07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-arrow/dist/index.mjs":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-arrow/dist/index.mjs ***!
|
||
\***********************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Arrow: function() { return /* binding */ Arrow; },\n/* harmony export */ Root: function() { return /* binding */ Root; }\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 _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/arrow/src/Arrow.tsx\r\n\r\n\r\n\r\nvar NAME = \"Arrow\";\r\nvar Arrow = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\r\n const { children, width = 10, height = 5, ...arrowProps } = props;\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.svg,\r\n {\r\n ...arrowProps,\r\n ref: forwardedRef,\r\n width,\r\n height,\r\n viewBox: \"0 0 30 10\",\r\n preserveAspectRatio: \"none\",\r\n children: props.asChild ? children : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"polygon\", { points: \"0,0 30,0 15,10\" })\r\n }\r\n );\r\n});\r\nArrow.displayName = NAME;\r\nvar Root = Arrow;\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXJyb3cvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUN1QjtBQUNkO0FBQ3hDO0FBQ0EsWUFBWSw2Q0FBZ0I7QUFDNUIsVUFBVSxrREFBa0Q7QUFDNUQseUJBQXlCLHNEQUFHO0FBQzVCLElBQUksZ0VBQVM7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxzREFBRyxjQUFjLDBCQUEwQjtBQUN0RztBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFJRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXJyb3cvZGlzdC9pbmRleC5tanM/YWNhOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9hcnJvdy9zcmMvQXJyb3cudHN4XHJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZVwiO1xyXG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcclxudmFyIE5BTUUgPSBcIkFycm93XCI7XHJcbnZhciBBcnJvdyA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICBjb25zdCB7IGNoaWxkcmVuLCB3aWR0aCA9IDEwLCBoZWlnaHQgPSA1LCAuLi5hcnJvd1Byb3BzIH0gPSBwcm9wcztcclxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcclxuICAgIFByaW1pdGl2ZS5zdmcsXHJcbiAgICB7XHJcbiAgICAgIC4uLmFycm93UHJvcHMsXHJcbiAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxyXG4gICAgICB3aWR0aCxcclxuICAgICAgaGVpZ2h0LFxyXG4gICAgICB2aWV3Qm94OiBcIjAgMCAzMCAxMFwiLFxyXG4gICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBcIm5vbmVcIixcclxuICAgICAgY2hpbGRyZW46IHByb3BzLmFzQ2hpbGQgPyBjaGlsZHJlbiA6IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJwb2x5Z29uXCIsIHsgcG9pbnRzOiBcIjAsMCAzMCwwIDE1LDEwXCIgfSlcclxuICAgIH1cclxuICApO1xyXG59KTtcclxuQXJyb3cuZGlzcGxheU5hbWUgPSBOQU1FO1xyXG52YXIgUm9vdCA9IEFycm93O1xyXG5leHBvcnQge1xyXG4gIEFycm93LFxyXG4gIFJvb3RcclxufTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-arrow/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-checkbox/dist/index.mjs":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-checkbox/dist/index.mjs ***!
|
||
\**************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Checkbox: function() { return /* binding */ Checkbox; },\n/* harmony export */ CheckboxIndicator: function() { return /* binding */ CheckboxIndicator; },\n/* harmony export */ Indicator: function() { return /* binding */ Indicator; },\n/* harmony export */ Root: function() { return /* binding */ Root; },\n/* harmony export */ createCheckboxScope: function() { return /* binding */ createCheckboxScope; }\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 _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_previous__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-use-previous */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-previous/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-use-size */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-size/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n\"use client\";\r\n\r\n// packages/react/checkbox/src/Checkbox.tsx\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar CHECKBOX_NAME = \"Checkbox\";\r\nvar [createCheckboxContext, createCheckboxScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(CHECKBOX_NAME);\r\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\r\nvar Checkbox = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\r\n (props, forwardedRef) => {\r\n const {\r\n __scopeCheckbox,\r\n name,\r\n checked: checkedProp,\r\n defaultChecked,\r\n required,\r\n disabled,\r\n value = \"on\",\r\n onCheckedChange,\r\n form,\r\n ...checkboxProps\r\n } = props;\r\n const [button, setButton] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\r\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, (node) => setButton(node));\r\n const hasConsumerStoppedPropagationRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\r\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\r\n const [checked = false, setChecked] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState)({\r\n prop: checkedProp,\r\n defaultProp: defaultChecked,\r\n onChange: onCheckedChange\r\n });\r\n const initialCheckedStateRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(checked);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n const form2 = button?.form;\r\n if (form2) {\r\n const reset = () => setChecked(initialCheckedStateRef.current);\r\n form2.addEventListener(\"reset\", reset);\r\n return () => form2.removeEventListener(\"reset\", reset);\r\n }\r\n }, [button, setChecked]);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\r\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.button,\r\n {\r\n type: \"button\",\r\n role: \"checkbox\",\r\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\r\n \"aria-required\": required,\r\n \"data-state\": getState(checked),\r\n \"data-disabled\": disabled ? \"\" : void 0,\r\n disabled,\r\n value,\r\n ...checkboxProps,\r\n ref: composedRefs,\r\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_6__.composeEventHandlers)(props.onKeyDown, (event) => {\r\n if (event.key === \"Enter\") event.preventDefault();\r\n }),\r\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_6__.composeEventHandlers)(props.onClick, (event) => {\r\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\r\n if (isFormControl) {\r\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\r\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\r\n }\r\n })\r\n }\r\n ),\r\n isFormControl && /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n BubbleInput,\r\n {\r\n control: button,\r\n bubbles: !hasConsumerStoppedPropagationRef.current,\r\n name,\r\n value,\r\n checked,\r\n required,\r\n disabled,\r\n form,\r\n style: { transform: \"translateX(-100%)\" },\r\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\r\n }\r\n )\r\n ] });\r\n }\r\n);\r\nCheckbox.displayName = CHECKBOX_NAME;\r\nvar INDICATOR_NAME = \"CheckboxIndicator\";\r\nvar CheckboxIndicator = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\r\n (props, forwardedRef) => {\r\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\r\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_7__.Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.span,\r\n {\r\n \"data-state\": getState(context.state),\r\n \"data-disabled\": context.disabled ? \"\" : void 0,\r\n ...indicatorProps,\r\n ref: forwardedRef,\r\n style: { pointerEvents: \"none\", ...props.style }\r\n }\r\n ) });\r\n }\r\n);\r\nCheckboxIndicator.displayName = INDICATOR_NAME;\r\nvar BubbleInput = (props) => {\r\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\r\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\r\n const prevChecked = (0,_radix_ui_react_use_previous__WEBPACK_IMPORTED_MODULE_8__.usePrevious)(checked);\r\n const controlSize = (0,_radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_9__.useSize)(control);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n const input = ref.current;\r\n const inputProto = window.HTMLInputElement.prototype;\r\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\r\n const setChecked = descriptor.set;\r\n if (prevChecked !== checked && setChecked) {\r\n const event = new Event(\"click\", { bubbles });\r\n input.indeterminate = isIndeterminate(checked);\r\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\r\n input.dispatchEvent(event);\r\n }\r\n }, [prevChecked, checked, bubbles]);\r\n const defaultCheckedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(isIndeterminate(checked) ? false : checked);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n \"input\",\r\n {\r\n type: \"checkbox\",\r\n \"aria-hidden\": true,\r\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\r\n ...inputProps,\r\n tabIndex: -1,\r\n ref,\r\n style: {\r\n ...props.style,\r\n ...controlSize,\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n opacity: 0,\r\n margin: 0\r\n }\r\n }\r\n );\r\n};\r\nfunction isIndeterminate(checked) {\r\n return checked === \"indeterminate\";\r\n}\r\nfunction getState(checked) {\r\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\r\n}\r\nvar Root = Checkbox;\r\nvar Indicator = CheckboxIndicator;\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY2hlY2tib3gvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQytCO0FBQ2dDO0FBQ0Y7QUFDRjtBQUNtQjtBQUNuQjtBQUNSO0FBQ0M7QUFDRTtBQUNSO0FBQzlDO0FBQ0EsbURBQW1ELDJFQUFrQjtBQUNyRTtBQUNBLGVBQWUsNkNBQWdCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTixnQ0FBZ0MsMkNBQWM7QUFDOUMseUJBQXlCLDZFQUFlO0FBQ3hDLDZDQUE2Qyx5Q0FBWTtBQUN6RDtBQUNBLDBDQUEwQyw0RkFBb0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLG1DQUFtQyx5Q0FBWTtBQUMvQyxJQUFJLDRDQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCwyQkFBMkIsdURBQUkscUJBQXFCO0FBQ3BELHNCQUFzQixzREFBRztBQUN6QixRQUFRLGdFQUFTO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIseUVBQW9CO0FBQ3pDO0FBQ0EsV0FBVztBQUNYLG1CQUFtQix5RUFBb0I7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0EsdUNBQXVDLHNEQUFHO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLGdDQUFnQztBQUNuRDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsNkNBQWdCO0FBQ3hDO0FBQ0EsWUFBWSxpREFBaUQ7QUFDN0Q7QUFDQSwyQkFBMkIsc0RBQUcsQ0FBQyw4REFBUSxJQUFJLDJHQUEyRyxzREFBRztBQUN6SixNQUFNLGdFQUFTO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsa0VBQWtFO0FBQzVFLGNBQWMseUNBQVk7QUFDMUIsc0JBQXNCLHlFQUFXO0FBQ2pDLHNCQUFzQixpRUFBTztBQUM3QixFQUFFLDRDQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsU0FBUztBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCw0QkFBNEIseUNBQVk7QUFDeEMseUJBQXlCLHNEQUFHO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU9FO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1jaGVja2JveC9kaXN0L2luZGV4Lm1qcz9jZDQwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5cclxuLy8gcGFja2FnZXMvcmVhY3QvY2hlY2tib3gvc3JjL0NoZWNrYm94LnRzeFxyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnNcIjtcclxuaW1wb3J0IHsgY3JlYXRlQ29udGV4dFNjb3BlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb250ZXh0XCI7XHJcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSBcIkByYWRpeC11aS9wcmltaXRpdmVcIjtcclxuaW1wb3J0IHsgdXNlQ29udHJvbGxhYmxlU3RhdGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1jb250cm9sbGFibGUtc3RhdGVcIjtcclxuaW1wb3J0IHsgdXNlUHJldmlvdXMgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1wcmV2aW91c1wiO1xyXG5pbXBvcnQgeyB1c2VTaXplIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2Utc2l6ZVwiO1xyXG5pbXBvcnQgeyBQcmVzZW5jZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2VcIjtcclxuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmltaXRpdmVcIjtcclxuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XHJcbnZhciBDSEVDS0JPWF9OQU1FID0gXCJDaGVja2JveFwiO1xyXG52YXIgW2NyZWF0ZUNoZWNrYm94Q29udGV4dCwgY3JlYXRlQ2hlY2tib3hTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoQ0hFQ0tCT1hfTkFNRSk7XHJcbnZhciBbQ2hlY2tib3hQcm92aWRlciwgdXNlQ2hlY2tib3hDb250ZXh0XSA9IGNyZWF0ZUNoZWNrYm94Q29udGV4dChDSEVDS0JPWF9OQU1FKTtcclxudmFyIENoZWNrYm94ID0gUmVhY3QuZm9yd2FyZFJlZihcclxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBfX3Njb3BlQ2hlY2tib3gsXHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIGNoZWNrZWQ6IGNoZWNrZWRQcm9wLFxyXG4gICAgICBkZWZhdWx0Q2hlY2tlZCxcclxuICAgICAgcmVxdWlyZWQsXHJcbiAgICAgIGRpc2FibGVkLFxyXG4gICAgICB2YWx1ZSA9IFwib25cIixcclxuICAgICAgb25DaGVja2VkQ2hhbmdlLFxyXG4gICAgICBmb3JtLFxyXG4gICAgICAuLi5jaGVja2JveFByb3BzXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBbYnV0dG9uLCBzZXRCdXR0b25dID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XHJcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCAobm9kZSkgPT4gc2V0QnV0dG9uKG5vZGUpKTtcclxuICAgIGNvbnN0IGhhc0NvbnN1bWVyU3RvcHBlZFByb3BhZ2F0aW9uUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcclxuICAgIGNvbnN0IGlzRm9ybUNvbnRyb2wgPSBidXR0b24gPyBmb3JtIHx8ICEhYnV0dG9uLmNsb3Nlc3QoXCJmb3JtXCIpIDogdHJ1ZTtcclxuICAgIGNvbnN0IFtjaGVja2VkID0gZmFsc2UsIHNldENoZWNrZWRdID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xyXG4gICAgICBwcm9wOiBjaGVja2VkUHJvcCxcclxuICAgICAgZGVmYXVsdFByb3A6IGRlZmF1bHRDaGVja2VkLFxyXG4gICAgICBvbkNoYW5nZTogb25DaGVja2VkQ2hhbmdlXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGluaXRpYWxDaGVja2VkU3RhdGVSZWYgPSBSZWFjdC51c2VSZWYoY2hlY2tlZCk7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICBjb25zdCBmb3JtMiA9IGJ1dHRvbj8uZm9ybTtcclxuICAgICAgaWYgKGZvcm0yKSB7XHJcbiAgICAgICAgY29uc3QgcmVzZXQgPSAoKSA9PiBzZXRDaGVja2VkKGluaXRpYWxDaGVja2VkU3RhdGVSZWYuY3VycmVudCk7XHJcbiAgICAgICAgZm9ybTIuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2V0XCIsIHJlc2V0KTtcclxuICAgICAgICByZXR1cm4gKCkgPT4gZm9ybTIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2V0XCIsIHJlc2V0KTtcclxuICAgICAgfVxyXG4gICAgfSwgW2J1dHRvbiwgc2V0Q2hlY2tlZF0pO1xyXG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKENoZWNrYm94UHJvdmlkZXIsIHsgc2NvcGU6IF9fc2NvcGVDaGVja2JveCwgc3RhdGU6IGNoZWNrZWQsIGRpc2FibGVkLCBjaGlsZHJlbjogW1xyXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFxyXG4gICAgICAgIFByaW1pdGl2ZS5idXR0b24sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogXCJidXR0b25cIixcclxuICAgICAgICAgIHJvbGU6IFwiY2hlY2tib3hcIixcclxuICAgICAgICAgIFwiYXJpYS1jaGVja2VkXCI6IGlzSW5kZXRlcm1pbmF0ZShjaGVja2VkKSA/IFwibWl4ZWRcIiA6IGNoZWNrZWQsXHJcbiAgICAgICAgICBcImFyaWEtcmVxdWlyZWRcIjogcmVxdWlyZWQsXHJcbiAgICAgICAgICBcImRhdGEtc3RhdGVcIjogZ2V0U3RhdGUoY2hlY2tlZCksXHJcbiAgICAgICAgICBcImRhdGEtZGlzYWJsZWRcIjogZGlzYWJsZWQgPyBcIlwiIDogdm9pZCAwLFxyXG4gICAgICAgICAgZGlzYWJsZWQsXHJcbiAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgIC4uLmNoZWNrYm94UHJvcHMsXHJcbiAgICAgICAgICByZWY6IGNvbXBvc2VkUmVmcyxcclxuICAgICAgICAgIG9uS2V5RG93bjogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25LZXlEb3duLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBvbkNsaWNrOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgc2V0Q2hlY2tlZCgocHJldkNoZWNrZWQpID0+IGlzSW5kZXRlcm1pbmF0ZShwcmV2Q2hlY2tlZCkgPyB0cnVlIDogIXByZXZDaGVja2VkKTtcclxuICAgICAgICAgICAgaWYgKGlzRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICAgICAgICBoYXNDb25zdW1lclN0b3BwZWRQcm9wYWdhdGlvblJlZi5jdXJyZW50ID0gZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKTtcclxuICAgICAgICAgICAgICBpZiAoIWhhc0NvbnN1bWVyU3RvcHBlZFByb3BhZ2F0aW9uUmVmLmN1cnJlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgKSxcclxuICAgICAgaXNGb3JtQ29udHJvbCAmJiAvKiBAX19QVVJFX18gKi8ganN4KFxyXG4gICAgICAgIEJ1YmJsZUlucHV0LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNvbnRyb2w6IGJ1dHRvbixcclxuICAgICAgICAgIGJ1YmJsZXM6ICFoYXNDb25zdW1lclN0b3BwZWRQcm9wYWdhdGlvblJlZi5jdXJyZW50LFxyXG4gICAgICAgICAgbmFtZSxcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgY2hlY2tlZCxcclxuICAgICAgICAgIHJlcXVpcmVkLFxyXG4gICAgICAgICAgZGlzYWJsZWQsXHJcbiAgICAgICAgICBmb3JtLFxyXG4gICAgICAgICAgc3R5bGU6IHsgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoLTEwMCUpXCIgfSxcclxuICAgICAgICAgIGRlZmF1bHRDaGVja2VkOiBpc0luZGV0ZXJtaW5hdGUoZGVmYXVsdENoZWNrZWQpID8gZmFsc2UgOiBkZWZhdWx0Q2hlY2tlZFxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgXSB9KTtcclxuICB9XHJcbik7XHJcbkNoZWNrYm94LmRpc3BsYXlOYW1lID0gQ0hFQ0tCT1hfTkFNRTtcclxudmFyIElORElDQVRPUl9OQU1FID0gXCJDaGVja2JveEluZGljYXRvclwiO1xyXG52YXIgQ2hlY2tib3hJbmRpY2F0b3IgPSBSZWFjdC5mb3J3YXJkUmVmKFxyXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IF9fc2NvcGVDaGVja2JveCwgZm9yY2VNb3VudCwgLi4uaW5kaWNhdG9yUHJvcHMgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgY29udGV4dCA9IHVzZUNoZWNrYm94Q29udGV4dChJTkRJQ0FUT1JfTkFNRSwgX19zY29wZUNoZWNrYm94KTtcclxuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFByZXNlbmNlLCB7IHByZXNlbnQ6IGZvcmNlTW91bnQgfHwgaXNJbmRldGVybWluYXRlKGNvbnRleHQuc3RhdGUpIHx8IGNvbnRleHQuc3RhdGUgPT09IHRydWUsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxyXG4gICAgICBQcmltaXRpdmUuc3BhbixcclxuICAgICAge1xyXG4gICAgICAgIFwiZGF0YS1zdGF0ZVwiOiBnZXRTdGF0ZShjb250ZXh0LnN0YXRlKSxcclxuICAgICAgICBcImRhdGEtZGlzYWJsZWRcIjogY29udGV4dC5kaXNhYmxlZCA/IFwiXCIgOiB2b2lkIDAsXHJcbiAgICAgICAgLi4uaW5kaWNhdG9yUHJvcHMsXHJcbiAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXHJcbiAgICAgICAgc3R5bGU6IHsgcG9pbnRlckV2ZW50czogXCJub25lXCIsIC4uLnByb3BzLnN0eWxlIH1cclxuICAgICAgfVxyXG4gICAgKSB9KTtcclxuICB9XHJcbik7XHJcbkNoZWNrYm94SW5kaWNhdG9yLmRpc3BsYXlOYW1lID0gSU5ESUNBVE9SX05BTUU7XHJcbnZhciBCdWJibGVJbnB1dCA9IChwcm9wcykgPT4ge1xyXG4gIGNvbnN0IHsgY29udHJvbCwgY2hlY2tlZCwgYnViYmxlcyA9IHRydWUsIGRlZmF1bHRDaGVja2VkLCAuLi5pbnB1dFByb3BzIH0gPSBwcm9wcztcclxuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcbiAgY29uc3QgcHJldkNoZWNrZWQgPSB1c2VQcmV2aW91cyhjaGVja2VkKTtcclxuICBjb25zdCBjb250cm9sU2l6ZSA9IHVzZVNpemUoY29udHJvbCk7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IGlucHV0ID0gcmVmLmN1cnJlbnQ7XHJcbiAgICBjb25zdCBpbnB1dFByb3RvID0gd2luZG93LkhUTUxJbnB1dEVsZW1lbnQucHJvdG90eXBlO1xyXG4gICAgY29uc3QgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaW5wdXRQcm90bywgXCJjaGVja2VkXCIpO1xyXG4gICAgY29uc3Qgc2V0Q2hlY2tlZCA9IGRlc2NyaXB0b3Iuc2V0O1xyXG4gICAgaWYgKHByZXZDaGVja2VkICE9PSBjaGVja2VkICYmIHNldENoZWNrZWQpIHtcclxuICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRXZlbnQoXCJjbGlja1wiLCB7IGJ1YmJsZXMgfSk7XHJcbiAgICAgIGlucHV0LmluZGV0ZXJtaW5hdGUgPSBpc0luZGV0ZXJtaW5hdGUoY2hlY2tlZCk7XHJcbiAgICAgIHNldENoZWNrZWQuY2FsbChpbnB1dCwgaXNJbmRldGVybWluYXRlKGNoZWNrZWQpID8gZmFsc2UgOiBjaGVja2VkKTtcclxuICAgICAgaW5wdXQuZGlzcGF0Y2hFdmVudChldmVudCk7XHJcbiAgICB9XHJcbiAgfSwgW3ByZXZDaGVja2VkLCBjaGVja2VkLCBidWJibGVzXSk7XHJcbiAgY29uc3QgZGVmYXVsdENoZWNrZWRSZWYgPSBSZWFjdC51c2VSZWYoaXNJbmRldGVybWluYXRlKGNoZWNrZWQpID8gZmFsc2UgOiBjaGVja2VkKTtcclxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcclxuICAgIFwiaW5wdXRcIixcclxuICAgIHtcclxuICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxyXG4gICAgICBcImFyaWEtaGlkZGVuXCI6IHRydWUsXHJcbiAgICAgIGRlZmF1bHRDaGVja2VkOiBkZWZhdWx0Q2hlY2tlZCA/PyBkZWZhdWx0Q2hlY2tlZFJlZi5jdXJyZW50LFxyXG4gICAgICAuLi5pbnB1dFByb3BzLFxyXG4gICAgICB0YWJJbmRleDogLTEsXHJcbiAgICAgIHJlZixcclxuICAgICAgc3R5bGU6IHtcclxuICAgICAgICAuLi5wcm9wcy5zdHlsZSxcclxuICAgICAgICAuLi5jb250cm9sU2l6ZSxcclxuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxyXG4gICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxyXG4gICAgICAgIG9wYWNpdHk6IDAsXHJcbiAgICAgICAgbWFyZ2luOiAwXHJcbiAgICAgIH1cclxuICAgIH1cclxuICApO1xyXG59O1xyXG5mdW5jdGlvbiBpc0luZGV0ZXJtaW5hdGUoY2hlY2tlZCkge1xyXG4gIHJldHVybiBjaGVja2VkID09PSBcImluZGV0ZXJtaW5hdGVcIjtcclxufVxyXG5mdW5jdGlvbiBnZXRTdGF0ZShjaGVja2VkKSB7XHJcbiAgcmV0dXJuIGlzSW5kZXRlcm1pbmF0ZShjaGVja2VkKSA/IFwiaW5kZXRlcm1pbmF0ZVwiIDogY2hlY2tlZCA/IFwiY2hlY2tlZFwiIDogXCJ1bmNoZWNrZWRcIjtcclxufVxyXG52YXIgUm9vdCA9IENoZWNrYm94O1xyXG52YXIgSW5kaWNhdG9yID0gQ2hlY2tib3hJbmRpY2F0b3I7XHJcbmV4cG9ydCB7XHJcbiAgQ2hlY2tib3gsXHJcbiAgQ2hlY2tib3hJbmRpY2F0b3IsXHJcbiAgSW5kaWNhdG9yLFxyXG4gIFJvb3QsXHJcbiAgY3JlYXRlQ2hlY2tib3hTY29wZVxyXG59O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-checkbox/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-collapsible/dist/index.mjs":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-collapsible/dist/index.mjs ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Collapsible: function() { return /* binding */ Collapsible; },\n/* harmony export */ CollapsibleContent: function() { return /* binding */ CollapsibleContent; },\n/* harmony export */ CollapsibleTrigger: function() { return /* binding */ CollapsibleTrigger; },\n/* harmony export */ Content: function() { return /* binding */ Content; },\n/* harmony export */ Root: function() { return /* binding */ Root; },\n/* harmony export */ Trigger: function() { return /* binding */ Trigger; },\n/* harmony export */ createCollapsibleScope: function() { return /* binding */ createCollapsibleScope; }\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 _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n\"use client\";\r\n\r\n// packages/react/collapsible/src/Collapsible.tsx\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar COLLAPSIBLE_NAME = \"Collapsible\";\r\nvar [createCollapsibleContext, createCollapsibleScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(COLLAPSIBLE_NAME);\r\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\r\nvar Collapsible = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\r\n (props, forwardedRef) => {\r\n const {\r\n __scopeCollapsible,\r\n open: openProp,\r\n defaultOpen,\r\n disabled,\r\n onOpenChange,\r\n ...collapsibleProps\r\n } = props;\r\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__.useControllableState)({\r\n prop: openProp,\r\n defaultProp: defaultOpen,\r\n onChange: onOpenChange\r\n });\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n CollapsibleProvider,\r\n {\r\n scope: __scopeCollapsible,\r\n disabled,\r\n contentId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\r\n open,\r\n onOpenToggle: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\r\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.div,\r\n {\r\n \"data-state\": getState(open),\r\n \"data-disabled\": disabled ? \"\" : void 0,\r\n ...collapsibleProps,\r\n ref: forwardedRef\r\n }\r\n )\r\n }\r\n );\r\n }\r\n);\r\nCollapsible.displayName = COLLAPSIBLE_NAME;\r\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\r\nvar CollapsibleTrigger = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\r\n (props, forwardedRef) => {\r\n const { __scopeCollapsible, ...triggerProps } = props;\r\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.button,\r\n {\r\n type: \"button\",\r\n \"aria-controls\": context.contentId,\r\n \"aria-expanded\": context.open || false,\r\n \"data-state\": getState(context.open),\r\n \"data-disabled\": context.disabled ? \"\" : void 0,\r\n disabled: context.disabled,\r\n ...triggerProps,\r\n ref: forwardedRef,\r\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_6__.composeEventHandlers)(props.onClick, context.onOpenToggle)\r\n }\r\n );\r\n }\r\n);\r\nCollapsibleTrigger.displayName = TRIGGER_NAME;\r\nvar CONTENT_NAME = \"CollapsibleContent\";\r\nvar CollapsibleContent = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\r\n (props, forwardedRef) => {\r\n const { forceMount, ...contentProps } = props;\r\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_7__.Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\r\n }\r\n);\r\nCollapsibleContent.displayName = CONTENT_NAME;\r\nvar CollapsibleContentImpl = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\r\n const { __scopeCollapsible, present, children, ...contentProps } = props;\r\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\r\n const [isPresent, setIsPresent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(present);\r\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\r\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_8__.useComposedRefs)(forwardedRef, ref);\r\n const heightRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\r\n const height = heightRef.current;\r\n const widthRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\r\n const width = widthRef.current;\r\n const isOpen = context.open || isPresent;\r\n const isMountAnimationPreventedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(isOpen);\r\n const originalStylesRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef();\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\r\n return () => cancelAnimationFrame(rAF);\r\n }, []);\r\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__.useLayoutEffect)(() => {\r\n const node = ref.current;\r\n if (node) {\r\n originalStylesRef.current = originalStylesRef.current || {\r\n transitionDuration: node.style.transitionDuration,\r\n animationName: node.style.animationName\r\n };\r\n node.style.transitionDuration = \"0s\";\r\n node.style.animationName = \"none\";\r\n const rect = node.getBoundingClientRect();\r\n heightRef.current = rect.height;\r\n widthRef.current = rect.width;\r\n if (!isMountAnimationPreventedRef.current) {\r\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\r\n node.style.animationName = originalStylesRef.current.animationName;\r\n }\r\n setIsPresent(present);\r\n }\r\n }, [context.open, present]);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.div,\r\n {\r\n \"data-state\": getState(context.open),\r\n \"data-disabled\": context.disabled ? \"\" : void 0,\r\n id: context.contentId,\r\n hidden: !isOpen,\r\n ...contentProps,\r\n ref: composedRefs,\r\n style: {\r\n [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\r\n [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\r\n ...props.style\r\n },\r\n children: isOpen && children\r\n }\r\n );\r\n});\r\nfunction getState(open) {\r\n return open ? \"open\" : \"closed\";\r\n}\r\nvar Root = Collapsible;\r\nvar Trigger = CollapsibleTrigger;\r\nvar Content = CollapsibleContent;\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29sbGFwc2libGUvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDK0I7QUFDNEI7QUFDRTtBQUNpQjtBQUNWO0FBQ0w7QUFDVDtBQUNGO0FBQ1Q7QUFDSDtBQUN4QztBQUNBLHlEQUF5RCwyRUFBa0I7QUFDM0U7QUFDQSxrQkFBa0IsNkNBQWdCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sb0NBQW9DLDRGQUFvQjtBQUN4RDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsMkJBQTJCLHNEQUFHO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLHlEQUFLO0FBQ3hCO0FBQ0Esc0JBQXNCLDhDQUFpQjtBQUN2QyxrQ0FBa0Msc0RBQUc7QUFDckMsVUFBVSxnRUFBUztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5Qiw2Q0FBZ0I7QUFDekM7QUFDQSxZQUFZLHNDQUFzQztBQUNsRDtBQUNBLDJCQUEyQixzREFBRztBQUM5QixNQUFNLGdFQUFTO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHlFQUFvQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsNkNBQWdCO0FBQ3pDO0FBQ0EsWUFBWSw4QkFBOEI7QUFDMUM7QUFDQSwyQkFBMkIsc0RBQUcsQ0FBQyw4REFBUSxJQUFJLGtEQUFrRCxTQUFTLHFCQUFxQixzREFBRywyQkFBMkIsNkNBQTZDLEdBQUc7QUFDek07QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLDZDQUFnQjtBQUM3QyxVQUFVLHlEQUF5RDtBQUNuRTtBQUNBLG9DQUFvQywyQ0FBYztBQUNsRCxjQUFjLHlDQUFZO0FBQzFCLHVCQUF1Qiw2RUFBZTtBQUN0QyxvQkFBb0IseUNBQVk7QUFDaEM7QUFDQSxtQkFBbUIseUNBQVk7QUFDL0I7QUFDQTtBQUNBLHVDQUF1Qyx5Q0FBWTtBQUNuRCw0QkFBNEIseUNBQVk7QUFDeEMsRUFBRSw0Q0FBZTtBQUNqQjtBQUNBO0FBQ0EsR0FBRztBQUNILEVBQUUsa0ZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCx5QkFBeUIsc0RBQUc7QUFDNUIsSUFBSSxnRUFBUztBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQsT0FBTztBQUNuRSwwREFBMEQsTUFBTTtBQUNoRTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBU0U7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWNvbGxhcHNpYmxlL2Rpc3QvaW5kZXgubWpzPzdiNDMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcblxyXG4vLyBwYWNrYWdlcy9yZWFjdC9jb2xsYXBzaWJsZS9zcmMvQ29sbGFwc2libGUudHN4XHJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gXCJAcmFkaXgtdWkvcHJpbWl0aXZlXCI7XHJcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29udGV4dFwiO1xyXG5pbXBvcnQgeyB1c2VDb250cm9sbGFibGVTdGF0ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZVwiO1xyXG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0XCI7XHJcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XHJcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XHJcbmltcG9ydCB7IFByZXNlbmNlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmVzZW5jZVwiO1xyXG5pbXBvcnQgeyB1c2VJZCB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtaWRcIjtcclxuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XHJcbnZhciBDT0xMQVBTSUJMRV9OQU1FID0gXCJDb2xsYXBzaWJsZVwiO1xyXG52YXIgW2NyZWF0ZUNvbGxhcHNpYmxlQ29udGV4dCwgY3JlYXRlQ29sbGFwc2libGVTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoQ09MTEFQU0lCTEVfTkFNRSk7XHJcbnZhciBbQ29sbGFwc2libGVQcm92aWRlciwgdXNlQ29sbGFwc2libGVDb250ZXh0XSA9IGNyZWF0ZUNvbGxhcHNpYmxlQ29udGV4dChDT0xMQVBTSUJMRV9OQU1FKTtcclxudmFyIENvbGxhcHNpYmxlID0gUmVhY3QuZm9yd2FyZFJlZihcclxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBfX3Njb3BlQ29sbGFwc2libGUsXHJcbiAgICAgIG9wZW46IG9wZW5Qcm9wLFxyXG4gICAgICBkZWZhdWx0T3BlbixcclxuICAgICAgZGlzYWJsZWQsXHJcbiAgICAgIG9uT3BlbkNoYW5nZSxcclxuICAgICAgLi4uY29sbGFwc2libGVQcm9wc1xyXG4gICAgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgW29wZW4gPSBmYWxzZSwgc2V0T3Blbl0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XHJcbiAgICAgIHByb3A6IG9wZW5Qcm9wLFxyXG4gICAgICBkZWZhdWx0UHJvcDogZGVmYXVsdE9wZW4sXHJcbiAgICAgIG9uQ2hhbmdlOiBvbk9wZW5DaGFuZ2VcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXHJcbiAgICAgIENvbGxhcHNpYmxlUHJvdmlkZXIsXHJcbiAgICAgIHtcclxuICAgICAgICBzY29wZTogX19zY29wZUNvbGxhcHNpYmxlLFxyXG4gICAgICAgIGRpc2FibGVkLFxyXG4gICAgICAgIGNvbnRlbnRJZDogdXNlSWQoKSxcclxuICAgICAgICBvcGVuLFxyXG4gICAgICAgIG9uT3BlblRvZ2dsZTogUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4gc2V0T3BlbigocHJldk9wZW4pID0+ICFwcmV2T3BlbiksIFtzZXRPcGVuXSksXHJcbiAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXHJcbiAgICAgICAgICBQcmltaXRpdmUuZGl2LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImRhdGEtc3RhdGVcIjogZ2V0U3RhdGUob3BlbiksXHJcbiAgICAgICAgICAgIFwiZGF0YS1kaXNhYmxlZFwiOiBkaXNhYmxlZCA/IFwiXCIgOiB2b2lkIDAsXHJcbiAgICAgICAgICAgIC4uLmNvbGxhcHNpYmxlUHJvcHMsXHJcbiAgICAgICAgICAgIHJlZjogZm9yd2FyZGVkUmVmXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuKTtcclxuQ29sbGFwc2libGUuZGlzcGxheU5hbWUgPSBDT0xMQVBTSUJMRV9OQU1FO1xyXG52YXIgVFJJR0dFUl9OQU1FID0gXCJDb2xsYXBzaWJsZVRyaWdnZXJcIjtcclxudmFyIENvbGxhcHNpYmxlVHJpZ2dlciA9IFJlYWN0LmZvcndhcmRSZWYoXHJcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgX19zY29wZUNvbGxhcHNpYmxlLCAuLi50cmlnZ2VyUHJvcHMgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgY29udGV4dCA9IHVzZUNvbGxhcHNpYmxlQ29udGV4dChUUklHR0VSX05BTUUsIF9fc2NvcGVDb2xsYXBzaWJsZSk7XHJcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcclxuICAgICAgUHJpbWl0aXZlLmJ1dHRvbixcclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXHJcbiAgICAgICAgXCJhcmlhLWNvbnRyb2xzXCI6IGNvbnRleHQuY29udGVudElkLFxyXG4gICAgICAgIFwiYXJpYS1leHBhbmRlZFwiOiBjb250ZXh0Lm9wZW4gfHwgZmFsc2UsXHJcbiAgICAgICAgXCJkYXRhLXN0YXRlXCI6IGdldFN0YXRlKGNvbnRleHQub3BlbiksXHJcbiAgICAgICAgXCJkYXRhLWRpc2FibGVkXCI6IGNvbnRleHQuZGlzYWJsZWQgPyBcIlwiIDogdm9pZCAwLFxyXG4gICAgICAgIGRpc2FibGVkOiBjb250ZXh0LmRpc2FibGVkLFxyXG4gICAgICAgIC4uLnRyaWdnZXJQcm9wcyxcclxuICAgICAgICByZWY6IGZvcndhcmRlZFJlZixcclxuICAgICAgICBvbkNsaWNrOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCBjb250ZXh0Lm9uT3BlblRvZ2dsZSlcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbik7XHJcbkNvbGxhcHNpYmxlVHJpZ2dlci5kaXNwbGF5TmFtZSA9IFRSSUdHRVJfTkFNRTtcclxudmFyIENPTlRFTlRfTkFNRSA9IFwiQ29sbGFwc2libGVDb250ZW50XCI7XHJcbnZhciBDb2xsYXBzaWJsZUNvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmKFxyXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGZvcmNlTW91bnQsIC4uLmNvbnRlbnRQcm9wcyB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29sbGFwc2libGVDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZUNvbGxhcHNpYmxlKTtcclxuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFByZXNlbmNlLCB7IHByZXNlbnQ6IGZvcmNlTW91bnQgfHwgY29udGV4dC5vcGVuLCBjaGlsZHJlbjogKHsgcHJlc2VudCB9KSA9PiAvKiBAX19QVVJFX18gKi8ganN4KENvbGxhcHNpYmxlQ29udGVudEltcGwsIHsgLi4uY29udGVudFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiwgcHJlc2VudCB9KSB9KTtcclxuICB9XHJcbik7XHJcbkNvbGxhcHNpYmxlQ29udGVudC5kaXNwbGF5TmFtZSA9IENPTlRFTlRfTkFNRTtcclxudmFyIENvbGxhcHNpYmxlQ29udGVudEltcGwgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgY29uc3QgeyBfX3Njb3BlQ29sbGFwc2libGUsIHByZXNlbnQsIGNoaWxkcmVuLCAuLi5jb250ZW50UHJvcHMgfSA9IHByb3BzO1xyXG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb2xsYXBzaWJsZUNvbnRleHQoQ09OVEVOVF9OQU1FLCBfX3Njb3BlQ29sbGFwc2libGUpO1xyXG4gIGNvbnN0IFtpc1ByZXNlbnQsIHNldElzUHJlc2VudF0gPSBSZWFjdC51c2VTdGF0ZShwcmVzZW50KTtcclxuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcbiAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgcmVmKTtcclxuICBjb25zdCBoZWlnaHRSZWYgPSBSZWFjdC51c2VSZWYoMCk7XHJcbiAgY29uc3QgaGVpZ2h0ID0gaGVpZ2h0UmVmLmN1cnJlbnQ7XHJcbiAgY29uc3Qgd2lkdGhSZWYgPSBSZWFjdC51c2VSZWYoMCk7XHJcbiAgY29uc3Qgd2lkdGggPSB3aWR0aFJlZi5jdXJyZW50O1xyXG4gIGNvbnN0IGlzT3BlbiA9IGNvbnRleHQub3BlbiB8fCBpc1ByZXNlbnQ7XHJcbiAgY29uc3QgaXNNb3VudEFuaW1hdGlvblByZXZlbnRlZFJlZiA9IFJlYWN0LnVzZVJlZihpc09wZW4pO1xyXG4gIGNvbnN0IG9yaWdpbmFsU3R5bGVzUmVmID0gUmVhY3QudXNlUmVmKCk7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IHJBRiA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiBpc01vdW50QW5pbWF0aW9uUHJldmVudGVkUmVmLmN1cnJlbnQgPSBmYWxzZSk7XHJcbiAgICByZXR1cm4gKCkgPT4gY2FuY2VsQW5pbWF0aW9uRnJhbWUockFGKTtcclxuICB9LCBbXSk7XHJcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IG5vZGUgPSByZWYuY3VycmVudDtcclxuICAgIGlmIChub2RlKSB7XHJcbiAgICAgIG9yaWdpbmFsU3R5bGVzUmVmLmN1cnJlbnQgPSBvcmlnaW5hbFN0eWxlc1JlZi5jdXJyZW50IHx8IHtcclxuICAgICAgICB0cmFuc2l0aW9uRHVyYXRpb246IG5vZGUuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uLFxyXG4gICAgICAgIGFuaW1hdGlvbk5hbWU6IG5vZGUuc3R5bGUuYW5pbWF0aW9uTmFtZVxyXG4gICAgICB9O1xyXG4gICAgICBub2RlLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9IFwiMHNcIjtcclxuICAgICAgbm9kZS5zdHlsZS5hbmltYXRpb25OYW1lID0gXCJub25lXCI7XHJcbiAgICAgIGNvbnN0IHJlY3QgPSBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBoZWlnaHRSZWYuY3VycmVudCA9IHJlY3QuaGVpZ2h0O1xyXG4gICAgICB3aWR0aFJlZi5jdXJyZW50ID0gcmVjdC53aWR0aDtcclxuICAgICAgaWYgKCFpc01vdW50QW5pbWF0aW9uUHJldmVudGVkUmVmLmN1cnJlbnQpIHtcclxuICAgICAgICBub2RlLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9IG9yaWdpbmFsU3R5bGVzUmVmLmN1cnJlbnQudHJhbnNpdGlvbkR1cmF0aW9uO1xyXG4gICAgICAgIG5vZGUuc3R5bGUuYW5pbWF0aW9uTmFtZSA9IG9yaWdpbmFsU3R5bGVzUmVmLmN1cnJlbnQuYW5pbWF0aW9uTmFtZTtcclxuICAgICAgfVxyXG4gICAgICBzZXRJc1ByZXNlbnQocHJlc2VudCk7XHJcbiAgICB9XHJcbiAgfSwgW2NvbnRleHQub3BlbiwgcHJlc2VudF0pO1xyXG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxyXG4gICAgUHJpbWl0aXZlLmRpdixcclxuICAgIHtcclxuICAgICAgXCJkYXRhLXN0YXRlXCI6IGdldFN0YXRlKGNvbnRleHQub3BlbiksXHJcbiAgICAgIFwiZGF0YS1kaXNhYmxlZFwiOiBjb250ZXh0LmRpc2FibGVkID8gXCJcIiA6IHZvaWQgMCxcclxuICAgICAgaWQ6IGNvbnRleHQuY29udGVudElkLFxyXG4gICAgICBoaWRkZW46ICFpc09wZW4sXHJcbiAgICAgIC4uLmNvbnRlbnRQcm9wcyxcclxuICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgW2AtLXJhZGl4LWNvbGxhcHNpYmxlLWNvbnRlbnQtaGVpZ2h0YF06IGhlaWdodCA/IGAke2hlaWdodH1weGAgOiB2b2lkIDAsXHJcbiAgICAgICAgW2AtLXJhZGl4LWNvbGxhcHNpYmxlLWNvbnRlbnQtd2lkdGhgXTogd2lkdGggPyBgJHt3aWR0aH1weGAgOiB2b2lkIDAsXHJcbiAgICAgICAgLi4ucHJvcHMuc3R5bGVcclxuICAgICAgfSxcclxuICAgICAgY2hpbGRyZW46IGlzT3BlbiAmJiBjaGlsZHJlblxyXG4gICAgfVxyXG4gICk7XHJcbn0pO1xyXG5mdW5jdGlvbiBnZXRTdGF0ZShvcGVuKSB7XHJcbiAgcmV0dXJuIG9wZW4gPyBcIm9wZW5cIiA6IFwiY2xvc2VkXCI7XHJcbn1cclxudmFyIFJvb3QgPSBDb2xsYXBzaWJsZTtcclxudmFyIFRyaWdnZXIgPSBDb2xsYXBzaWJsZVRyaWdnZXI7XHJcbnZhciBDb250ZW50ID0gQ29sbGFwc2libGVDb250ZW50O1xyXG5leHBvcnQge1xyXG4gIENvbGxhcHNpYmxlLFxyXG4gIENvbGxhcHNpYmxlQ29udGVudCxcclxuICBDb2xsYXBzaWJsZVRyaWdnZXIsXHJcbiAgQ29udGVudCxcclxuICBSb290LFxyXG4gIFRyaWdnZXIsXHJcbiAgY3JlYXRlQ29sbGFwc2libGVTY29wZVxyXG59O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-collapsible/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-compose-refs/dist/index.mjs ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ composeRefs: function() { return /* binding */ composeRefs; },\n/* harmony export */ useComposedRefs: function() { return /* binding */ useComposedRefs; }\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// packages/react/compose-refs/src/composeRefs.tsx\r\n\r\nfunction setRef(ref, value) {\r\n if (typeof ref === \"function\") {\r\n ref(value);\r\n } else if (ref !== null && ref !== void 0) {\r\n ref.current = value;\r\n }\r\n}\r\nfunction composeRefs(...refs) {\r\n return (node) => refs.forEach((ref) => setRef(ref, node));\r\n}\r\nfunction useComposedRefs(...refs) {\r\n return react__WEBPACK_IMPORTED_MODULE_0__.useCallback(composeRefs(...refs), refs);\r\n}\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQytCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsOENBQWlCO0FBQzFCO0FBSUU7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcy9kaXN0L2luZGV4Lm1qcz84YmQ2Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L2NvbXBvc2UtcmVmcy9zcmMvY29tcG9zZVJlZnMudHN4XHJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5mdW5jdGlvbiBzZXRSZWYocmVmLCB2YWx1ZSkge1xyXG4gIGlmICh0eXBlb2YgcmVmID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgIHJlZih2YWx1ZSk7XHJcbiAgfSBlbHNlIGlmIChyZWYgIT09IG51bGwgJiYgcmVmICE9PSB2b2lkIDApIHtcclxuICAgIHJlZi5jdXJyZW50ID0gdmFsdWU7XHJcbiAgfVxyXG59XHJcbmZ1bmN0aW9uIGNvbXBvc2VSZWZzKC4uLnJlZnMpIHtcclxuICByZXR1cm4gKG5vZGUpID0+IHJlZnMuZm9yRWFjaCgocmVmKSA9PiBzZXRSZWYocmVmLCBub2RlKSk7XHJcbn1cclxuZnVuY3Rpb24gdXNlQ29tcG9zZWRSZWZzKC4uLnJlZnMpIHtcclxuICByZXR1cm4gUmVhY3QudXNlQ2FsbGJhY2soY29tcG9zZVJlZnMoLi4ucmVmcyksIHJlZnMpO1xyXG59XHJcbmV4cG9ydCB7XHJcbiAgY29tcG9zZVJlZnMsXHJcbiAgdXNlQ29tcG9zZWRSZWZzXHJcbn07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-context/dist/index.mjs ***!
|
||
\*************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createContext: function() { return /* binding */ createContext2; },\n/* harmony export */ createContextScope: function() { return /* binding */ createContextScope; }\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_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/context/src/createContext.tsx\r\n\r\n\r\nfunction createContext2(rootComponentName, defaultContext) {\r\n const Context = react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\r\n const Provider = (props) => {\r\n const { children, ...context } = props;\r\n const value = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => context, Object.values(context));\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Context.Provider, { value, children });\r\n };\r\n Provider.displayName = rootComponentName + \"Provider\";\r\n function useContext2(consumerName) {\r\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context);\r\n if (context) return context;\r\n if (defaultContext !== void 0) return defaultContext;\r\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\r\n }\r\n return [Provider, useContext2];\r\n}\r\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\r\n let defaultContexts = [];\r\n function createContext3(rootComponentName, defaultContext) {\r\n const BaseContext = react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\r\n const index = defaultContexts.length;\r\n defaultContexts = [...defaultContexts, defaultContext];\r\n const Provider = (props) => {\r\n const { scope, children, ...context } = props;\r\n const Context = scope?.[scopeName]?.[index] || BaseContext;\r\n const value = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => context, Object.values(context));\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Context.Provider, { value, children });\r\n };\r\n Provider.displayName = rootComponentName + \"Provider\";\r\n function useContext2(consumerName, scope) {\r\n const Context = scope?.[scopeName]?.[index] || BaseContext;\r\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context);\r\n if (context) return context;\r\n if (defaultContext !== void 0) return defaultContext;\r\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\r\n }\r\n return [Provider, useContext2];\r\n }\r\n const createScope = () => {\r\n const scopeContexts = defaultContexts.map((defaultContext) => {\r\n return react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\r\n });\r\n return function useScope(scope) {\r\n const contexts = scope?.[scopeName] || scopeContexts;\r\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(\r\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\r\n [scope, contexts]\r\n );\r\n };\r\n };\r\n createScope.scopeName = scopeName;\r\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\r\n}\r\nfunction composeContextScopes(...scopes) {\r\n const baseScope = scopes[0];\r\n if (scopes.length === 1) return baseScope;\r\n const createScope = () => {\r\n const scopeHooks = scopes.map((createScope2) => ({\r\n useScope: createScope2(),\r\n scopeName: createScope2.scopeName\r\n }));\r\n return function useComposedScopes(overrideScopes) {\r\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\r\n const scopeProps = useScope(overrideScopes);\r\n const currentScope = scopeProps[`__scope${scopeName}`];\r\n return { ...nextScopes2, ...currentScope };\r\n }, {});\r\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\r\n };\r\n };\r\n createScope.scopeName = baseScope.scopeName;\r\n return createScope;\r\n}\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29udGV4dC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDK0I7QUFDUztBQUN4QztBQUNBLGtCQUFrQixnREFBbUI7QUFDckM7QUFDQSxZQUFZLHVCQUF1QjtBQUNuQyxrQkFBa0IsMENBQWE7QUFDL0IsMkJBQTJCLHNEQUFHLHFCQUFxQixpQkFBaUI7QUFDcEU7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDZDQUFnQjtBQUNwQztBQUNBO0FBQ0EseUJBQXlCLGFBQWEsMkJBQTJCLGtCQUFrQjtBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0RBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBLGNBQWMsOEJBQThCO0FBQzVDO0FBQ0Esb0JBQW9CLDBDQUFhO0FBQ2pDLDZCQUE2QixzREFBRyxxQkFBcUIsaUJBQWlCO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDZDQUFnQjtBQUN0QztBQUNBO0FBQ0EsMkJBQTJCLGFBQWEsMkJBQTJCLGtCQUFrQjtBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxnREFBbUI7QUFDaEMsS0FBSztBQUNMO0FBQ0E7QUFDQSxhQUFhLDBDQUFhO0FBQzFCLGlCQUFpQixXQUFXLFVBQVUsTUFBTSxtQ0FBbUM7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLDJEQUEyRCxxQkFBcUI7QUFDaEY7QUFDQSxrREFBa0QsVUFBVTtBQUM1RCxpQkFBaUI7QUFDakIsT0FBTyxJQUFJO0FBQ1gsYUFBYSwwQ0FBYSxVQUFVLFdBQVcsb0JBQW9CLGdCQUFnQjtBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUU7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQvZGlzdC9pbmRleC5tanM/OWU1MCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9jb250ZXh0L3NyYy9jcmVhdGVDb250ZXh0LnRzeFxyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XHJcbmZ1bmN0aW9uIGNyZWF0ZUNvbnRleHQyKHJvb3RDb21wb25lbnROYW1lLCBkZWZhdWx0Q29udGV4dCkge1xyXG4gIGNvbnN0IENvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KGRlZmF1bHRDb250ZXh0KTtcclxuICBjb25zdCBQcm92aWRlciA9IChwcm9wcykgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgLi4uY29udGV4dCB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB2YWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gY29udGV4dCwgT2JqZWN0LnZhbHVlcyhjb250ZXh0KSk7XHJcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlLCBjaGlsZHJlbiB9KTtcclxuICB9O1xyXG4gIFByb3ZpZGVyLmRpc3BsYXlOYW1lID0gcm9vdENvbXBvbmVudE5hbWUgKyBcIlByb3ZpZGVyXCI7XHJcbiAgZnVuY3Rpb24gdXNlQ29udGV4dDIoY29uc3VtZXJOYW1lKSB7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChDb250ZXh0KTtcclxuICAgIGlmIChjb250ZXh0KSByZXR1cm4gY29udGV4dDtcclxuICAgIGlmIChkZWZhdWx0Q29udGV4dCAhPT0gdm9pZCAwKSByZXR1cm4gZGVmYXVsdENvbnRleHQ7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFxcYCR7Y29uc3VtZXJOYW1lfVxcYCBtdXN0IGJlIHVzZWQgd2l0aGluIFxcYCR7cm9vdENvbXBvbmVudE5hbWV9XFxgYCk7XHJcbiAgfVxyXG4gIHJldHVybiBbUHJvdmlkZXIsIHVzZUNvbnRleHQyXTtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVDb250ZXh0U2NvcGUoc2NvcGVOYW1lLCBjcmVhdGVDb250ZXh0U2NvcGVEZXBzID0gW10pIHtcclxuICBsZXQgZGVmYXVsdENvbnRleHRzID0gW107XHJcbiAgZnVuY3Rpb24gY3JlYXRlQ29udGV4dDMocm9vdENvbXBvbmVudE5hbWUsIGRlZmF1bHRDb250ZXh0KSB7XHJcbiAgICBjb25zdCBCYXNlQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoZGVmYXVsdENvbnRleHQpO1xyXG4gICAgY29uc3QgaW5kZXggPSBkZWZhdWx0Q29udGV4dHMubGVuZ3RoO1xyXG4gICAgZGVmYXVsdENvbnRleHRzID0gWy4uLmRlZmF1bHRDb250ZXh0cywgZGVmYXVsdENvbnRleHRdO1xyXG4gICAgY29uc3QgUHJvdmlkZXIgPSAocHJvcHMpID0+IHtcclxuICAgICAgY29uc3QgeyBzY29wZSwgY2hpbGRyZW4sIC4uLmNvbnRleHQgfSA9IHByb3BzO1xyXG4gICAgICBjb25zdCBDb250ZXh0ID0gc2NvcGU/LltzY29wZU5hbWVdPy5baW5kZXhdIHx8IEJhc2VDb250ZXh0O1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gY29udGV4dCwgT2JqZWN0LnZhbHVlcyhjb250ZXh0KSk7XHJcbiAgICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWUsIGNoaWxkcmVuIH0pO1xyXG4gICAgfTtcclxuICAgIFByb3ZpZGVyLmRpc3BsYXlOYW1lID0gcm9vdENvbXBvbmVudE5hbWUgKyBcIlByb3ZpZGVyXCI7XHJcbiAgICBmdW5jdGlvbiB1c2VDb250ZXh0Mihjb25zdW1lck5hbWUsIHNjb3BlKSB7XHJcbiAgICAgIGNvbnN0IENvbnRleHQgPSBzY29wZT8uW3Njb3BlTmFtZV0/LltpbmRleF0gfHwgQmFzZUNvbnRleHQ7XHJcbiAgICAgIGNvbnN0IGNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KENvbnRleHQpO1xyXG4gICAgICBpZiAoY29udGV4dCkgcmV0dXJuIGNvbnRleHQ7XHJcbiAgICAgIGlmIChkZWZhdWx0Q29udGV4dCAhPT0gdm9pZCAwKSByZXR1cm4gZGVmYXVsdENvbnRleHQ7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgXFxgJHtjb25zdW1lck5hbWV9XFxgIG11c3QgYmUgdXNlZCB3aXRoaW4gXFxgJHtyb290Q29tcG9uZW50TmFtZX1cXGBgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBbUHJvdmlkZXIsIHVzZUNvbnRleHQyXTtcclxuICB9XHJcbiAgY29uc3QgY3JlYXRlU2NvcGUgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBzY29wZUNvbnRleHRzID0gZGVmYXVsdENvbnRleHRzLm1hcCgoZGVmYXVsdENvbnRleHQpID0+IHtcclxuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUNvbnRleHQoZGVmYXVsdENvbnRleHQpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gdXNlU2NvcGUoc2NvcGUpIHtcclxuICAgICAgY29uc3QgY29udGV4dHMgPSBzY29wZT8uW3Njb3BlTmFtZV0gfHwgc2NvcGVDb250ZXh0cztcclxuICAgICAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oXHJcbiAgICAgICAgKCkgPT4gKHsgW2BfX3Njb3BlJHtzY29wZU5hbWV9YF06IHsgLi4uc2NvcGUsIFtzY29wZU5hbWVdOiBjb250ZXh0cyB9IH0pLFxyXG4gICAgICAgIFtzY29wZSwgY29udGV4dHNdXHJcbiAgICAgICk7XHJcbiAgICB9O1xyXG4gIH07XHJcbiAgY3JlYXRlU2NvcGUuc2NvcGVOYW1lID0gc2NvcGVOYW1lO1xyXG4gIHJldHVybiBbY3JlYXRlQ29udGV4dDMsIGNvbXBvc2VDb250ZXh0U2NvcGVzKGNyZWF0ZVNjb3BlLCAuLi5jcmVhdGVDb250ZXh0U2NvcGVEZXBzKV07XHJcbn1cclxuZnVuY3Rpb24gY29tcG9zZUNvbnRleHRTY29wZXMoLi4uc2NvcGVzKSB7XHJcbiAgY29uc3QgYmFzZVNjb3BlID0gc2NvcGVzWzBdO1xyXG4gIGlmIChzY29wZXMubGVuZ3RoID09PSAxKSByZXR1cm4gYmFzZVNjb3BlO1xyXG4gIGNvbnN0IGNyZWF0ZVNjb3BlID0gKCkgPT4ge1xyXG4gICAgY29uc3Qgc2NvcGVIb29rcyA9IHNjb3Blcy5tYXAoKGNyZWF0ZVNjb3BlMikgPT4gKHtcclxuICAgICAgdXNlU2NvcGU6IGNyZWF0ZVNjb3BlMigpLFxyXG4gICAgICBzY29wZU5hbWU6IGNyZWF0ZVNjb3BlMi5zY29wZU5hbWVcclxuICAgIH0pKTtcclxuICAgIHJldHVybiBmdW5jdGlvbiB1c2VDb21wb3NlZFNjb3BlcyhvdmVycmlkZVNjb3Blcykge1xyXG4gICAgICBjb25zdCBuZXh0U2NvcGVzID0gc2NvcGVIb29rcy5yZWR1Y2UoKG5leHRTY29wZXMyLCB7IHVzZVNjb3BlLCBzY29wZU5hbWUgfSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHNjb3BlUHJvcHMgPSB1c2VTY29wZShvdmVycmlkZVNjb3Blcyk7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFNjb3BlID0gc2NvcGVQcm9wc1tgX19zY29wZSR7c2NvcGVOYW1lfWBdO1xyXG4gICAgICAgIHJldHVybiB7IC4uLm5leHRTY29wZXMyLCAuLi5jdXJyZW50U2NvcGUgfTtcclxuICAgICAgfSwge30pO1xyXG4gICAgICByZXR1cm4gUmVhY3QudXNlTWVtbygoKSA9PiAoeyBbYF9fc2NvcGUke2Jhc2VTY29wZS5zY29wZU5hbWV9YF06IG5leHRTY29wZXMgfSksIFtuZXh0U2NvcGVzXSk7XHJcbiAgICB9O1xyXG4gIH07XHJcbiAgY3JlYXRlU2NvcGUuc2NvcGVOYW1lID0gYmFzZVNjb3BlLnNjb3BlTmFtZTtcclxuICByZXR1cm4gY3JlYXRlU2NvcGU7XHJcbn1cclxuZXhwb3J0IHtcclxuICBjcmVhdGVDb250ZXh0MiBhcyBjcmVhdGVDb250ZXh0LFxyXG4gIGNyZWF0ZUNvbnRleHRTY29wZVxyXG59O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Branch: function() { return /* binding */ Branch; },\n/* harmony export */ DismissableLayer: function() { return /* binding */ DismissableLayer; },\n/* harmony export */ DismissableLayerBranch: function() { return /* binding */ DismissableLayerBranch; },\n/* harmony export */ Root: function() { return /* binding */ Root; }\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 _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-escape-keydown */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n\"use client\";\r\n\r\n// packages/react/dismissable-layer/src/DismissableLayer.tsx\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\r\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\r\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\r\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\r\nvar originalBodyPointerEvents;\r\nvar DismissableLayerContext = react__WEBPACK_IMPORTED_MODULE_0__.createContext({\r\n layers: /* @__PURE__ */ new Set(),\r\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\r\n branches: /* @__PURE__ */ new Set()\r\n});\r\nvar DismissableLayer = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\r\n (props, forwardedRef) => {\r\n const {\r\n disableOutsidePointerEvents = false,\r\n onEscapeKeyDown,\r\n onPointerDownOutside,\r\n onFocusOutside,\r\n onInteractOutside,\r\n onDismiss,\r\n ...layerProps\r\n } = props;\r\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DismissableLayerContext);\r\n const [node, setNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\r\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\r\n const [, force] = react__WEBPACK_IMPORTED_MODULE_0__.useState({});\r\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(forwardedRef, (node2) => setNode(node2));\r\n const layers = Array.from(context.layers);\r\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\r\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\r\n const index = node ? layers.indexOf(node) : -1;\r\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\r\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\r\n const pointerDownOutside = usePointerDownOutside((event) => {\r\n const target = event.target;\r\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\r\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\r\n onPointerDownOutside?.(event);\r\n onInteractOutside?.(event);\r\n if (!event.defaultPrevented) onDismiss?.();\r\n }, ownerDocument);\r\n const focusOutside = useFocusOutside((event) => {\r\n const target = event.target;\r\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\r\n if (isFocusInBranch) return;\r\n onFocusOutside?.(event);\r\n onInteractOutside?.(event);\r\n if (!event.defaultPrevented) onDismiss?.();\r\n }, ownerDocument);\r\n (0,_radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown)((event) => {\r\n const isHighestLayer = index === context.layers.size - 1;\r\n if (!isHighestLayer) return;\r\n onEscapeKeyDown?.(event);\r\n if (!event.defaultPrevented && onDismiss) {\r\n event.preventDefault();\r\n onDismiss();\r\n }\r\n }, ownerDocument);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n if (!node) return;\r\n if (disableOutsidePointerEvents) {\r\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\r\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\r\n ownerDocument.body.style.pointerEvents = \"none\";\r\n }\r\n context.layersWithOutsidePointerEventsDisabled.add(node);\r\n }\r\n context.layers.add(node);\r\n dispatchUpdate();\r\n return () => {\r\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\r\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\r\n }\r\n };\r\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n return () => {\r\n if (!node) return;\r\n context.layers.delete(node);\r\n context.layersWithOutsidePointerEventsDisabled.delete(node);\r\n dispatchUpdate();\r\n };\r\n }, [node, context]);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n const handleUpdate = () => force({});\r\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\r\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\r\n }, []);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div,\r\n {\r\n ...layerProps,\r\n ref: composedRefs,\r\n style: {\r\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\r\n ...props.style\r\n },\r\n onFocusCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onFocusCapture, focusOutside.onFocusCapture),\r\n onBlurCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onBlurCapture, focusOutside.onBlurCapture),\r\n onPointerDownCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(\r\n props.onPointerDownCapture,\r\n pointerDownOutside.onPointerDownCapture\r\n )\r\n }\r\n );\r\n }\r\n);\r\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\r\nvar BRANCH_NAME = \"DismissableLayerBranch\";\r\nvar DismissableLayerBranch = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\r\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DismissableLayerContext);\r\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\r\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(forwardedRef, ref);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n const node = ref.current;\r\n if (node) {\r\n context.branches.add(node);\r\n return () => {\r\n context.branches.delete(node);\r\n };\r\n }\r\n }, [context.branches]);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, { ...props, ref: composedRefs });\r\n});\r\nDismissableLayerBranch.displayName = BRANCH_NAME;\r\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\r\n const handlePointerDownOutside = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onPointerDownOutside);\r\n const isPointerInsideReactTreeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\r\n const handleClickRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(() => {\r\n });\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n const handlePointerDown = (event) => {\r\n if (event.target && !isPointerInsideReactTreeRef.current) {\r\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\r\n handleAndDispatchCustomEvent(\r\n POINTER_DOWN_OUTSIDE,\r\n handlePointerDownOutside,\r\n eventDetail,\r\n { discrete: true }\r\n );\r\n };\r\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\r\n const eventDetail = { originalEvent: event };\r\n if (event.pointerType === \"touch\") {\r\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\r\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\r\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\r\n } else {\r\n handleAndDispatchPointerDownOutsideEvent2();\r\n }\r\n } else {\r\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\r\n }\r\n isPointerInsideReactTreeRef.current = false;\r\n };\r\n const timerId = window.setTimeout(() => {\r\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\r\n }, 0);\r\n return () => {\r\n window.clearTimeout(timerId);\r\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\r\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\r\n };\r\n }, [ownerDocument, handlePointerDownOutside]);\r\n return {\r\n // ensures we check React component tree (not just DOM tree)\r\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\r\n };\r\n}\r\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\r\n const handleFocusOutside = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onFocusOutside);\r\n const isFocusInsideReactTreeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n const handleFocus = (event) => {\r\n if (event.target && !isFocusInsideReactTreeRef.current) {\r\n const eventDetail = { originalEvent: event };\r\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\r\n discrete: false\r\n });\r\n }\r\n };\r\n ownerDocument.addEventListener(\"focusin\", handleFocus);\r\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\r\n }, [ownerDocument, handleFocusOutside]);\r\n return {\r\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\r\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\r\n };\r\n}\r\nfunction dispatchUpdate() {\r\n const event = new CustomEvent(CONTEXT_UPDATE);\r\n document.dispatchEvent(event);\r\n}\r\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\r\n const target = detail.originalEvent.target;\r\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\r\n if (handler) target.addEventListener(name, handler, { once: true });\r\n if (discrete) {\r\n (0,_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.dispatchDiscreteCustomEvent)(target, event);\r\n } else {\r\n target.dispatchEvent(event);\r\n }\r\n}\r\nvar Root = DismissableLayer;\r\nvar Branch = DismissableLayerBranch;\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXIvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDK0I7QUFDNEI7QUFDd0I7QUFDcEI7QUFDRztBQUNJO0FBQzlCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsZ0RBQW1CO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx1QkFBdUIsNkNBQWdCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTixvQkFBb0IsNkNBQWdCO0FBQ3BDLDRCQUE0QiwyQ0FBYztBQUMxQztBQUNBLHNCQUFzQiwyQ0FBYyxHQUFHO0FBQ3ZDLHlCQUF5Qiw2RUFBZTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJLG9GQUFnQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJLDRDQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJLDRDQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJLDRDQUFlO0FBQ25CLHlDQUF5QztBQUN6QztBQUNBO0FBQ0EsS0FBSztBQUNMLDJCQUEyQixzREFBRztBQUM5QixNQUFNLGdFQUFTO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULHdCQUF3Qix5RUFBb0I7QUFDNUMsdUJBQXVCLHlFQUFvQjtBQUMzQyw4QkFBOEIseUVBQW9CO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2Qiw2Q0FBZ0I7QUFDN0Msa0JBQWtCLDZDQUFnQjtBQUNsQyxjQUFjLHlDQUFZO0FBQzFCLHVCQUF1Qiw2RUFBZTtBQUN0QyxFQUFFLDRDQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILHlCQUF5QixzREFBRyxDQUFDLGdFQUFTLFFBQVEsNkJBQTZCO0FBQzNFLENBQUM7QUFDRDtBQUNBO0FBQ0EsbUNBQW1DLGdGQUFjO0FBQ2pELHNDQUFzQyx5Q0FBWTtBQUNsRCx5QkFBeUIseUNBQVk7QUFDckMsR0FBRztBQUNILEVBQUUsNENBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBLDRFQUE0RSxZQUFZO0FBQ3hGLFVBQVU7QUFDVjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixnRkFBYztBQUMzQyxvQ0FBb0MseUNBQVk7QUFDaEQsRUFBRSw0Q0FBZTtBQUNqQjtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0RBQStELFVBQVU7QUFDekU7QUFDQSx3Q0FBd0MsMENBQTBDO0FBQ2xGLHdEQUF3RCxZQUFZO0FBQ3BFO0FBQ0EsSUFBSSxzRkFBMkI7QUFDL0IsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXIvZGlzdC9pbmRleC5tanM/MzdkNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuXHJcbi8vIHBhY2thZ2VzL3JlYWN0L2Rpc21pc3NhYmxlLWxheWVyL3NyYy9EaXNtaXNzYWJsZUxheWVyLnRzeFxyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tIFwiQHJhZGl4LXVpL3ByaW1pdGl2ZVwiO1xyXG5pbXBvcnQgeyBQcmltaXRpdmUsIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XHJcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XHJcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmXCI7XHJcbmltcG9ydCB7IHVzZUVzY2FwZUtleWRvd24gfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1lc2NhcGUta2V5ZG93blwiO1xyXG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcclxudmFyIERJU01JU1NBQkxFX0xBWUVSX05BTUUgPSBcIkRpc21pc3NhYmxlTGF5ZXJcIjtcclxudmFyIENPTlRFWFRfVVBEQVRFID0gXCJkaXNtaXNzYWJsZUxheWVyLnVwZGF0ZVwiO1xyXG52YXIgUE9JTlRFUl9ET1dOX09VVFNJREUgPSBcImRpc21pc3NhYmxlTGF5ZXIucG9pbnRlckRvd25PdXRzaWRlXCI7XHJcbnZhciBGT0NVU19PVVRTSURFID0gXCJkaXNtaXNzYWJsZUxheWVyLmZvY3VzT3V0c2lkZVwiO1xyXG52YXIgb3JpZ2luYWxCb2R5UG9pbnRlckV2ZW50cztcclxudmFyIERpc21pc3NhYmxlTGF5ZXJDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7XHJcbiAgbGF5ZXJzOiAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpLFxyXG4gIGxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkOiAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpLFxyXG4gIGJyYW5jaGVzOiAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpXHJcbn0pO1xyXG52YXIgRGlzbWlzc2FibGVMYXllciA9IFJlYWN0LmZvcndhcmRSZWYoXHJcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzID0gZmFsc2UsXHJcbiAgICAgIG9uRXNjYXBlS2V5RG93bixcclxuICAgICAgb25Qb2ludGVyRG93bk91dHNpZGUsXHJcbiAgICAgIG9uRm9jdXNPdXRzaWRlLFxyXG4gICAgICBvbkludGVyYWN0T3V0c2lkZSxcclxuICAgICAgb25EaXNtaXNzLFxyXG4gICAgICAuLi5sYXllclByb3BzXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChEaXNtaXNzYWJsZUxheWVyQ29udGV4dCk7XHJcbiAgICBjb25zdCBbbm9kZSwgc2V0Tm9kZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcclxuICAgIGNvbnN0IG93bmVyRG9jdW1lbnQgPSBub2RlPy5vd25lckRvY3VtZW50ID8/IGdsb2JhbFRoaXM/LmRvY3VtZW50O1xyXG4gICAgY29uc3QgWywgZm9yY2VdID0gUmVhY3QudXNlU3RhdGUoe30pO1xyXG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUyKSA9PiBzZXROb2RlKG5vZGUyKSk7XHJcbiAgICBjb25zdCBsYXllcnMgPSBBcnJheS5mcm9tKGNvbnRleHQubGF5ZXJzKTtcclxuICAgIGNvbnN0IFtoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZF0gPSBbLi4uY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZF0uc2xpY2UoLTEpO1xyXG4gICAgY29uc3QgaGlnaGVzdExheWVyV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWRJbmRleCA9IGxheWVycy5pbmRleE9mKGhpZ2hlc3RMYXllcldpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkKTtcclxuICAgIGNvbnN0IGluZGV4ID0gbm9kZSA/IGxheWVycy5pbmRleE9mKG5vZGUpIDogLTE7XHJcbiAgICBjb25zdCBpc0JvZHlQb2ludGVyRXZlbnRzRGlzYWJsZWQgPSBjb250ZXh0LmxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkLnNpemUgPiAwO1xyXG4gICAgY29uc3QgaXNQb2ludGVyRXZlbnRzRW5hYmxlZCA9IGluZGV4ID49IGhpZ2hlc3RMYXllcldpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkSW5kZXg7XHJcbiAgICBjb25zdCBwb2ludGVyRG93bk91dHNpZGUgPSB1c2VQb2ludGVyRG93bk91dHNpZGUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgY29uc3QgaXNQb2ludGVyRG93bk9uQnJhbmNoID0gWy4uLmNvbnRleHQuYnJhbmNoZXNdLnNvbWUoKGJyYW5jaCkgPT4gYnJhbmNoLmNvbnRhaW5zKHRhcmdldCkpO1xyXG4gICAgICBpZiAoIWlzUG9pbnRlckV2ZW50c0VuYWJsZWQgfHwgaXNQb2ludGVyRG93bk9uQnJhbmNoKSByZXR1cm47XHJcbiAgICAgIG9uUG9pbnRlckRvd25PdXRzaWRlPy4oZXZlbnQpO1xyXG4gICAgICBvbkludGVyYWN0T3V0c2lkZT8uKGV2ZW50KTtcclxuICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSBvbkRpc21pc3M/LigpO1xyXG4gICAgfSwgb3duZXJEb2N1bWVudCk7XHJcbiAgICBjb25zdCBmb2N1c091dHNpZGUgPSB1c2VGb2N1c091dHNpZGUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgY29uc3QgaXNGb2N1c0luQnJhbmNoID0gWy4uLmNvbnRleHQuYnJhbmNoZXNdLnNvbWUoKGJyYW5jaCkgPT4gYnJhbmNoLmNvbnRhaW5zKHRhcmdldCkpO1xyXG4gICAgICBpZiAoaXNGb2N1c0luQnJhbmNoKSByZXR1cm47XHJcbiAgICAgIG9uRm9jdXNPdXRzaWRlPy4oZXZlbnQpO1xyXG4gICAgICBvbkludGVyYWN0T3V0c2lkZT8uKGV2ZW50KTtcclxuICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSBvbkRpc21pc3M/LigpO1xyXG4gICAgfSwgb3duZXJEb2N1bWVudCk7XHJcbiAgICB1c2VFc2NhcGVLZXlkb3duKChldmVudCkgPT4ge1xyXG4gICAgICBjb25zdCBpc0hpZ2hlc3RMYXllciA9IGluZGV4ID09PSBjb250ZXh0LmxheWVycy5zaXplIC0gMTtcclxuICAgICAgaWYgKCFpc0hpZ2hlc3RMYXllcikgcmV0dXJuO1xyXG4gICAgICBvbkVzY2FwZUtleURvd24/LihldmVudCk7XHJcbiAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCAmJiBvbkRpc21pc3MpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIG9uRGlzbWlzcygpO1xyXG4gICAgICB9XHJcbiAgICB9LCBvd25lckRvY3VtZW50KTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGlmICghbm9kZSkgcmV0dXJuO1xyXG4gICAgICBpZiAoZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzKSB7XHJcbiAgICAgICAgaWYgKGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuc2l6ZSA9PT0gMCkge1xyXG4gICAgICAgICAgb3JpZ2luYWxCb2R5UG9pbnRlckV2ZW50cyA9IG93bmVyRG9jdW1lbnQuYm9keS5zdHlsZS5wb2ludGVyRXZlbnRzO1xyXG4gICAgICAgICAgb3duZXJEb2N1bWVudC5ib2R5LnN0eWxlLnBvaW50ZXJFdmVudHMgPSBcIm5vbmVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZC5hZGQobm9kZSk7XHJcbiAgICAgIH1cclxuICAgICAgY29udGV4dC5sYXllcnMuYWRkKG5vZGUpO1xyXG4gICAgICBkaXNwYXRjaFVwZGF0ZSgpO1xyXG4gICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgIGlmIChkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMgJiYgY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZC5zaXplID09PSAxKSB7XHJcbiAgICAgICAgICBvd25lckRvY3VtZW50LmJvZHkuc3R5bGUucG9pbnRlckV2ZW50cyA9IG9yaWdpbmFsQm9keVBvaW50ZXJFdmVudHM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgfSwgW25vZGUsIG93bmVyRG9jdW1lbnQsIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cywgY29udGV4dF0pO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICBpZiAoIW5vZGUpIHJldHVybjtcclxuICAgICAgICBjb250ZXh0LmxheWVycy5kZWxldGUobm9kZSk7XHJcbiAgICAgICAgY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZC5kZWxldGUobm9kZSk7XHJcbiAgICAgICAgZGlzcGF0Y2hVcGRhdGUoKTtcclxuICAgICAgfTtcclxuICAgIH0sIFtub2RlLCBjb250ZXh0XSk7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICBjb25zdCBoYW5kbGVVcGRhdGUgPSAoKSA9PiBmb3JjZSh7fSk7XHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoQ09OVEVYVF9VUERBVEUsIGhhbmRsZVVwZGF0ZSk7XHJcbiAgICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKENPTlRFWFRfVVBEQVRFLCBoYW5kbGVVcGRhdGUpO1xyXG4gICAgfSwgW10pO1xyXG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXHJcbiAgICAgIFByaW1pdGl2ZS5kaXYsXHJcbiAgICAgIHtcclxuICAgICAgICAuLi5sYXllclByb3BzLFxyXG4gICAgICAgIHJlZjogY29tcG9zZWRSZWZzLFxyXG4gICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICBwb2ludGVyRXZlbnRzOiBpc0JvZHlQb2ludGVyRXZlbnRzRGlzYWJsZWQgPyBpc1BvaW50ZXJFdmVudHNFbmFibGVkID8gXCJhdXRvXCIgOiBcIm5vbmVcIiA6IHZvaWQgMCxcclxuICAgICAgICAgIC4uLnByb3BzLnN0eWxlXHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkZvY3VzQ2FwdHVyZTogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Gb2N1c0NhcHR1cmUsIGZvY3VzT3V0c2lkZS5vbkZvY3VzQ2FwdHVyZSksXHJcbiAgICAgICAgb25CbHVyQ2FwdHVyZTogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25CbHVyQ2FwdHVyZSwgZm9jdXNPdXRzaWRlLm9uQmx1ckNhcHR1cmUpLFxyXG4gICAgICAgIG9uUG9pbnRlckRvd25DYXB0dXJlOiBjb21wb3NlRXZlbnRIYW5kbGVycyhcclxuICAgICAgICAgIHByb3BzLm9uUG9pbnRlckRvd25DYXB0dXJlLFxyXG4gICAgICAgICAgcG9pbnRlckRvd25PdXRzaWRlLm9uUG9pbnRlckRvd25DYXB0dXJlXHJcbiAgICAgICAgKVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuKTtcclxuRGlzbWlzc2FibGVMYXllci5kaXNwbGF5TmFtZSA9IERJU01JU1NBQkxFX0xBWUVSX05BTUU7XHJcbnZhciBCUkFOQ0hfTkFNRSA9IFwiRGlzbWlzc2FibGVMYXllckJyYW5jaFwiO1xyXG52YXIgRGlzbWlzc2FibGVMYXllckJyYW5jaCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChEaXNtaXNzYWJsZUxheWVyQ29udGV4dCk7XHJcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IG5vZGUgPSByZWYuY3VycmVudDtcclxuICAgIGlmIChub2RlKSB7XHJcbiAgICAgIGNvbnRleHQuYnJhbmNoZXMuYWRkKG5vZGUpO1xyXG4gICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgIGNvbnRleHQuYnJhbmNoZXMuZGVsZXRlKG5vZGUpO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH0sIFtjb250ZXh0LmJyYW5jaGVzXSk7XHJcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUHJpbWl0aXZlLmRpdiwgeyAuLi5wcm9wcywgcmVmOiBjb21wb3NlZFJlZnMgfSk7XHJcbn0pO1xyXG5EaXNtaXNzYWJsZUxheWVyQnJhbmNoLmRpc3BsYXlOYW1lID0gQlJBTkNIX05BTUU7XHJcbmZ1bmN0aW9uIHVzZVBvaW50ZXJEb3duT3V0c2lkZShvblBvaW50ZXJEb3duT3V0c2lkZSwgb3duZXJEb2N1bWVudCA9IGdsb2JhbFRoaXM/LmRvY3VtZW50KSB7XHJcbiAgY29uc3QgaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlID0gdXNlQ2FsbGJhY2tSZWYob25Qb2ludGVyRG93bk91dHNpZGUpO1xyXG4gIGNvbnN0IGlzUG9pbnRlckluc2lkZVJlYWN0VHJlZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XHJcbiAgY29uc3QgaGFuZGxlQ2xpY2tSZWYgPSBSZWFjdC51c2VSZWYoKCkgPT4ge1xyXG4gIH0pO1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVQb2ludGVyRG93biA9IChldmVudCkgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQudGFyZ2V0ICYmICFpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCkge1xyXG4gICAgICAgIGxldCBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50MiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgaGFuZGxlQW5kRGlzcGF0Y2hDdXN0b21FdmVudChcclxuICAgICAgICAgICAgUE9JTlRFUl9ET1dOX09VVFNJREUsXHJcbiAgICAgICAgICAgIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSxcclxuICAgICAgICAgICAgZXZlbnREZXRhaWwsXHJcbiAgICAgICAgICAgIHsgZGlzY3JldGU6IHRydWUgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHZhciBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50ID0gaGFuZGxlQW5kRGlzcGF0Y2hQb2ludGVyRG93bk91dHNpZGVFdmVudDI7XHJcbiAgICAgICAgY29uc3QgZXZlbnREZXRhaWwgPSB7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50IH07XHJcbiAgICAgICAgaWYgKGV2ZW50LnBvaW50ZXJUeXBlID09PSBcInRvdWNoXCIpIHtcclxuICAgICAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZUNsaWNrUmVmLmN1cnJlbnQpO1xyXG4gICAgICAgICAgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCA9IGhhbmRsZUFuZERpc3BhdGNoUG9pbnRlckRvd25PdXRzaWRlRXZlbnQyO1xyXG4gICAgICAgICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCwgeyBvbmNlOiB0cnVlIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50MigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBoYW5kbGVDbGlja1JlZi5jdXJyZW50KTtcclxuICAgICAgfVxyXG4gICAgICBpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IGZhbHNlO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IHRpbWVySWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIG93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsIGhhbmRsZVBvaW50ZXJEb3duKTtcclxuICAgIH0sIDApO1xyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lcklkKTtcclxuICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIiwgaGFuZGxlUG9pbnRlckRvd24pO1xyXG4gICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBoYW5kbGVDbGlja1JlZi5jdXJyZW50KTtcclxuICAgIH07XHJcbiAgfSwgW293bmVyRG9jdW1lbnQsIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZV0pO1xyXG4gIHJldHVybiB7XHJcbiAgICAvLyBlbnN1cmVzIHdlIGNoZWNrIFJlYWN0IGNvbXBvbmVudCB0cmVlIChub3QganVzdCBET00gdHJlZSlcclxuICAgIG9uUG9pbnRlckRvd25DYXB0dXJlOiAoKSA9PiBpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IHRydWVcclxuICB9O1xyXG59XHJcbmZ1bmN0aW9uIHVzZUZvY3VzT3V0c2lkZShvbkZvY3VzT3V0c2lkZSwgb3duZXJEb2N1bWVudCA9IGdsb2JhbFRoaXM/LmRvY3VtZW50KSB7XHJcbiAgY29uc3QgaGFuZGxlRm9jdXNPdXRzaWRlID0gdXNlQ2FsbGJhY2tSZWYob25Gb2N1c091dHNpZGUpO1xyXG4gIGNvbnN0IGlzRm9jdXNJbnNpZGVSZWFjdFRyZWVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9IChldmVudCkgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQudGFyZ2V0ICYmICFpc0ZvY3VzSW5zaWRlUmVhY3RUcmVlUmVmLmN1cnJlbnQpIHtcclxuICAgICAgICBjb25zdCBldmVudERldGFpbCA9IHsgb3JpZ2luYWxFdmVudDogZXZlbnQgfTtcclxuICAgICAgICBoYW5kbGVBbmREaXNwYXRjaEN1c3RvbUV2ZW50KEZPQ1VTX09VVFNJREUsIGhhbmRsZUZvY3VzT3V0c2lkZSwgZXZlbnREZXRhaWwsIHtcclxuICAgICAgICAgIGRpc2NyZXRlOiBmYWxzZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNpblwiLCBoYW5kbGVGb2N1cyk7XHJcbiAgICByZXR1cm4gKCkgPT4gb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNpblwiLCBoYW5kbGVGb2N1cyk7XHJcbiAgfSwgW293bmVyRG9jdW1lbnQsIGhhbmRsZUZvY3VzT3V0c2lkZV0pO1xyXG4gIHJldHVybiB7XHJcbiAgICBvbkZvY3VzQ2FwdHVyZTogKCkgPT4gaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gdHJ1ZSxcclxuICAgIG9uQmx1ckNhcHR1cmU6ICgpID0+IGlzRm9jdXNJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IGZhbHNlXHJcbiAgfTtcclxufVxyXG5mdW5jdGlvbiBkaXNwYXRjaFVwZGF0ZSgpIHtcclxuICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudChDT05URVhUX1VQREFURSk7XHJcbiAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XHJcbn1cclxuZnVuY3Rpb24gaGFuZGxlQW5kRGlzcGF0Y2hDdXN0b21FdmVudChuYW1lLCBoYW5kbGVyLCBkZXRhaWwsIHsgZGlzY3JldGUgfSkge1xyXG4gIGNvbnN0IHRhcmdldCA9IGRldGFpbC5vcmlnaW5hbEV2ZW50LnRhcmdldDtcclxuICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudChuYW1lLCB7IGJ1YmJsZXM6IGZhbHNlLCBjYW5jZWxhYmxlOiB0cnVlLCBkZXRhaWwgfSk7XHJcbiAgaWYgKGhhbmRsZXIpIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGhhbmRsZXIsIHsgb25jZTogdHJ1ZSB9KTtcclxuICBpZiAoZGlzY3JldGUpIHtcclxuICAgIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCh0YXJnZXQsIGV2ZW50KTtcclxuICB9IGVsc2Uge1xyXG4gICAgdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xyXG4gIH1cclxufVxyXG52YXIgUm9vdCA9IERpc21pc3NhYmxlTGF5ZXI7XHJcbnZhciBCcmFuY2ggPSBEaXNtaXNzYWJsZUxheWVyQnJhbmNoO1xyXG5leHBvcnQge1xyXG4gIEJyYW5jaCxcclxuICBEaXNtaXNzYWJsZUxheWVyLFxyXG4gIERpc21pc3NhYmxlTGF5ZXJCcmFuY2gsXHJcbiAgUm9vdFxyXG59O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-id/dist/index.mjs ***!
|
||
\********************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("var react__WEBPACK_IMPORTED_MODULE_0___namespace_cache;\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useId: function() { return /* binding */ useId; }\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 _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n// packages/react/id/src/id.tsx\r\n\r\n\r\nvar useReactId = /*#__PURE__*/ (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(react__WEBPACK_IMPORTED_MODULE_0__, 2)))[\"useId\".toString()] || (() => void 0);\r\nvar count = 0;\r\nfunction useId(deterministicId) {\r\n const [id, setId] = react__WEBPACK_IMPORTED_MODULE_0__.useState(useReactId());\r\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {\r\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\r\n }, [deterministicId]);\r\n return deterministicId || (id ? `radix-${id}` : \"\");\r\n}\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtaWQvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQytCO0FBQ3FDO0FBQ3BFLGlCQUFpQix5TEFBSztBQUN0QjtBQUNBO0FBQ0Esc0JBQXNCLDJDQUFjO0FBQ3BDLEVBQUUsa0ZBQWU7QUFDakI7QUFDQSxHQUFHO0FBQ0gsMkNBQTJDLEdBQUc7QUFDOUM7QUFHRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtaWQvZGlzdC9pbmRleC5tanM/MTU2NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9pZC9zcmMvaWQudHN4XHJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0XCI7XHJcbnZhciB1c2VSZWFjdElkID0gUmVhY3RbXCJ1c2VJZFwiLnRvU3RyaW5nKCldIHx8ICgoKSA9PiB2b2lkIDApO1xyXG52YXIgY291bnQgPSAwO1xyXG5mdW5jdGlvbiB1c2VJZChkZXRlcm1pbmlzdGljSWQpIHtcclxuICBjb25zdCBbaWQsIHNldElkXSA9IFJlYWN0LnVzZVN0YXRlKHVzZVJlYWN0SWQoKSk7XHJcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcclxuICAgIGlmICghZGV0ZXJtaW5pc3RpY0lkKSBzZXRJZCgocmVhY3RJZCkgPT4gcmVhY3RJZCA/PyBTdHJpbmcoY291bnQrKykpO1xyXG4gIH0sIFtkZXRlcm1pbmlzdGljSWRdKTtcclxuICByZXR1cm4gZGV0ZXJtaW5pc3RpY0lkIHx8IChpZCA/IGByYWRpeC0ke2lkfWAgOiBcIlwiKTtcclxufVxyXG5leHBvcnQge1xyXG4gIHVzZUlkXHJcbn07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-popper/dist/index.mjs":
|
||
/*!************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-popper/dist/index.mjs ***!
|
||
\************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ALIGN_OPTIONS: function() { return /* binding */ ALIGN_OPTIONS; },\n/* harmony export */ Anchor: function() { return /* binding */ Anchor; },\n/* harmony export */ Arrow: function() { return /* binding */ Arrow; },\n/* harmony export */ Content: function() { return /* binding */ Content; },\n/* harmony export */ Popper: function() { return /* binding */ Popper; },\n/* harmony export */ PopperAnchor: function() { return /* binding */ PopperAnchor; },\n/* harmony export */ PopperArrow: function() { return /* binding */ PopperArrow; },\n/* harmony export */ PopperContent: function() { return /* binding */ PopperContent; },\n/* harmony export */ Root: function() { return /* binding */ Root2; },\n/* harmony export */ SIDE_OPTIONS: function() { return /* binding */ SIDE_OPTIONS; },\n/* harmony export */ createPopperScope: function() { return /* binding */ createPopperScope; }\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 _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @floating-ui/react-dom */ \"(app-pages-browser)/./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs\");\n/* harmony import */ var _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @floating-ui/react-dom */ \"(app-pages-browser)/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\");\n/* harmony import */ var _radix_ui_react_arrow__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-arrow */ \"(app-pages-browser)/./node_modules/@radix-ui/react-arrow/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-use-size */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-size/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n\"use client\";\r\n\r\n// packages/react/popper/src/Popper.tsx\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar SIDE_OPTIONS = [\"top\", \"right\", \"bottom\", \"left\"];\r\nvar ALIGN_OPTIONS = [\"start\", \"center\", \"end\"];\r\nvar POPPER_NAME = \"Popper\";\r\nvar [createPopperContext, createPopperScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(POPPER_NAME);\r\nvar [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\r\nvar Popper = (props) => {\r\n const { __scopePopper, children } = props;\r\n const [anchor, setAnchor] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });\r\n};\r\nPopper.displayName = POPPER_NAME;\r\nvar ANCHOR_NAME = \"PopperAnchor\";\r\nvar PopperAnchor = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\r\n (props, forwardedRef) => {\r\n const { __scopePopper, virtualRef, ...anchorProps } = props;\r\n const context = usePopperContext(ANCHOR_NAME, __scopePopper);\r\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\r\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n context.onAnchorChange(virtualRef?.current || ref.current);\r\n });\r\n return virtualRef ? null : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, { ...anchorProps, ref: composedRefs });\r\n }\r\n);\r\nPopperAnchor.displayName = ANCHOR_NAME;\r\nvar CONTENT_NAME = \"PopperContent\";\r\nvar [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);\r\nvar PopperContent = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\r\n (props, forwardedRef) => {\r\n const {\r\n __scopePopper,\r\n side = \"bottom\",\r\n sideOffset = 0,\r\n align = \"center\",\r\n alignOffset = 0,\r\n arrowPadding = 0,\r\n avoidCollisions = true,\r\n collisionBoundary = [],\r\n collisionPadding: collisionPaddingProp = 0,\r\n sticky = \"partial\",\r\n hideWhenDetached = false,\r\n updatePositionStrategy = \"optimized\",\r\n onPlaced,\r\n ...contentProps\r\n } = props;\r\n const context = usePopperContext(CONTENT_NAME, __scopePopper);\r\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\r\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, (node) => setContent(node));\r\n const [arrow, setArrow] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\r\n const arrowSize = (0,_radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__.useSize)(arrow);\r\n const arrowWidth = arrowSize?.width ?? 0;\r\n const arrowHeight = arrowSize?.height ?? 0;\r\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\r\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };\r\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];\r\n const hasExplicitBoundaries = boundary.length > 0;\r\n const detectOverflowOptions = {\r\n padding: collisionPadding,\r\n boundary: boundary.filter(isNotNull),\r\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\r\n altBoundary: hasExplicitBoundaries\r\n };\r\n const { refs, floatingStyles, placement, isPositioned, middlewareData } = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.useFloating)({\r\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\r\n strategy: \"fixed\",\r\n placement: desiredPlacement,\r\n whileElementsMounted: (...args) => {\r\n const cleanup = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__.autoUpdate)(...args, {\r\n animationFrame: updatePositionStrategy === \"always\"\r\n });\r\n return cleanup;\r\n },\r\n elements: {\r\n reference: context.anchor\r\n },\r\n middleware: [\r\n (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.offset)({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),\r\n avoidCollisions && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.shift)({\r\n mainAxis: true,\r\n crossAxis: false,\r\n limiter: sticky === \"partial\" ? (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.limitShift)() : void 0,\r\n ...detectOverflowOptions\r\n }),\r\n avoidCollisions && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.flip)({ ...detectOverflowOptions }),\r\n (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.size)({\r\n ...detectOverflowOptions,\r\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\r\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\r\n const contentStyle = elements.floating.style;\r\n contentStyle.setProperty(\"--radix-popper-available-width\", `${availableWidth}px`);\r\n contentStyle.setProperty(\"--radix-popper-available-height\", `${availableHeight}px`);\r\n contentStyle.setProperty(\"--radix-popper-anchor-width\", `${anchorWidth}px`);\r\n contentStyle.setProperty(\"--radix-popper-anchor-height\", `${anchorHeight}px`);\r\n }\r\n }),\r\n arrow && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.arrow)({ element: arrow, padding: arrowPadding }),\r\n transformOrigin({ arrowWidth, arrowHeight }),\r\n hideWhenDetached && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.hide)({ strategy: \"referenceHidden\", ...detectOverflowOptions })\r\n ]\r\n });\r\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\r\n const handlePlaced = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onPlaced);\r\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__.useLayoutEffect)(() => {\r\n if (isPositioned) {\r\n handlePlaced?.();\r\n }\r\n }, [isPositioned, handlePlaced]);\r\n const arrowX = middlewareData.arrow?.x;\r\n const arrowY = middlewareData.arrow?.y;\r\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\r\n const [contentZIndex, setContentZIndex] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\r\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__.useLayoutEffect)(() => {\r\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\r\n }, [content]);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n \"div\",\r\n {\r\n ref: refs.setFloating,\r\n \"data-radix-popper-content-wrapper\": \"\",\r\n style: {\r\n ...floatingStyles,\r\n transform: isPositioned ? floatingStyles.transform : \"translate(0, -200%)\",\r\n // keep off the page when measuring\r\n minWidth: \"max-content\",\r\n zIndex: contentZIndex,\r\n [\"--radix-popper-transform-origin\"]: [\r\n middlewareData.transformOrigin?.x,\r\n middlewareData.transformOrigin?.y\r\n ].join(\" \"),\r\n // hide the content if using the hide middleware and should be hidden\r\n // set visibility to hidden and disable pointer events so the UI behaves\r\n // as if the PopperContent isn't there at all\r\n ...middlewareData.hide?.referenceHidden && {\r\n visibility: \"hidden\",\r\n pointerEvents: \"none\"\r\n }\r\n },\r\n dir: props.dir,\r\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n PopperContentProvider,\r\n {\r\n scope: __scopePopper,\r\n placedSide,\r\n onArrowChange: setArrow,\r\n arrowX,\r\n arrowY,\r\n shouldHideArrow: cannotCenterArrow,\r\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div,\r\n {\r\n \"data-side\": placedSide,\r\n \"data-align\": placedAlign,\r\n ...contentProps,\r\n ref: composedRefs,\r\n style: {\r\n ...contentProps.style,\r\n // if the PopperContent hasn't been placed yet (not all measurements done)\r\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\r\n animation: !isPositioned ? \"none\" : void 0\r\n }\r\n }\r\n )\r\n }\r\n )\r\n }\r\n );\r\n }\r\n);\r\nPopperContent.displayName = CONTENT_NAME;\r\nvar ARROW_NAME = \"PopperArrow\";\r\nvar OPPOSITE_SIDE = {\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n left: \"right\"\r\n};\r\nvar PopperArrow = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function PopperArrow2(props, forwardedRef) {\r\n const { __scopePopper, ...arrowProps } = props;\r\n const contentContext = useContentContext(ARROW_NAME, __scopePopper);\r\n const baseSide = OPPOSITE_SIDE[contentContext.placedSide];\r\n return (\r\n // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)\r\n // doesn't report size as we'd expect on SVG elements.\r\n // it reports their bounding box which is effectively the largest path inside the SVG.\r\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n \"span\",\r\n {\r\n ref: contentContext.onArrowChange,\r\n style: {\r\n position: \"absolute\",\r\n left: contentContext.arrowX,\r\n top: contentContext.arrowY,\r\n [baseSide]: 0,\r\n transformOrigin: {\r\n top: \"\",\r\n right: \"0 0\",\r\n bottom: \"center 0\",\r\n left: \"100% 0\"\r\n }[contentContext.placedSide],\r\n transform: {\r\n top: \"translateY(100%)\",\r\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\r\n bottom: `rotate(180deg)`,\r\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\r\n }[contentContext.placedSide],\r\n visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\r\n },\r\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n _radix_ui_react_arrow__WEBPACK_IMPORTED_MODULE_10__.Root,\r\n {\r\n ...arrowProps,\r\n ref: forwardedRef,\r\n style: {\r\n ...arrowProps.style,\r\n // ensures the element can be measured correctly (mostly for if SVG)\r\n display: \"block\"\r\n }\r\n }\r\n )\r\n }\r\n )\r\n );\r\n});\r\nPopperArrow.displayName = ARROW_NAME;\r\nfunction isNotNull(value) {\r\n return value !== null;\r\n}\r\nvar transformOrigin = (options) => ({\r\n name: \"transformOrigin\",\r\n options,\r\n fn(data) {\r\n const { placement, rects, middlewareData } = data;\r\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\r\n const isArrowHidden = cannotCenterArrow;\r\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\r\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\r\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\r\n const noArrowAlign = { start: \"0%\", center: \"50%\", end: \"100%\" }[placedAlign];\r\n const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\r\n const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\r\n let x = \"\";\r\n let y = \"\";\r\n if (placedSide === \"bottom\") {\r\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\r\n y = `${-arrowHeight}px`;\r\n } else if (placedSide === \"top\") {\r\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\r\n y = `${rects.floating.height + arrowHeight}px`;\r\n } else if (placedSide === \"right\") {\r\n x = `${-arrowHeight}px`;\r\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\r\n } else if (placedSide === \"left\") {\r\n x = `${rects.floating.width + arrowHeight}px`;\r\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\r\n }\r\n return { data: { x, y } };\r\n }\r\n});\r\nfunction getSideAndAlignFromPlacement(placement) {\r\n const [side, align = \"center\"] = placement.split(\"-\");\r\n return [side, align];\r\n}\r\nvar Root2 = Popper;\r\nvar Anchor = PopperAnchor;\r\nvar Content = PopperContent;\r\nvar Arrow = PopperArrow;\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcG9wcGVyL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDK0I7QUFXQztBQUN3QjtBQUNPO0FBQ0Y7QUFDUDtBQUNZO0FBQ0U7QUFDakI7QUFDWDtBQUN4QztBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MsMkVBQWtCO0FBQ2pFO0FBQ0E7QUFDQSxVQUFVLDBCQUEwQjtBQUNwQyw4QkFBOEIsMkNBQWM7QUFDNUMseUJBQXlCLHNEQUFHLG1CQUFtQixtRUFBbUU7QUFDbEg7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLDZDQUFnQjtBQUNuQztBQUNBLFlBQVksNENBQTRDO0FBQ3hEO0FBQ0EsZ0JBQWdCLHlDQUFZO0FBQzVCLHlCQUF5Qiw2RUFBZTtBQUN4QyxJQUFJLDRDQUFlO0FBQ25CO0FBQ0EsS0FBSztBQUNMLCtDQUErQyxzREFBRyxDQUFDLGdFQUFTLFFBQVEsbUNBQW1DO0FBQ3ZHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsNkNBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0Esa0NBQWtDLDJDQUFjO0FBQ2hELHlCQUF5Qiw2RUFBZTtBQUN4Qyw4QkFBOEIsMkNBQWM7QUFDNUMsc0JBQXNCLGlFQUFPO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLGlHQUFpRztBQUNqRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxnRUFBZ0UsRUFBRSxtRUFBVztBQUN6RjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixrRUFBVTtBQUNsQztBQUNBLFNBQVM7QUFDVDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsUUFBUSw4REFBTSxHQUFHLGdFQUFnRTtBQUNqRiwyQkFBMkIsNkRBQUs7QUFDaEM7QUFDQTtBQUNBLDBDQUEwQyxrRUFBVTtBQUNwRDtBQUNBLFNBQVM7QUFDVCwyQkFBMkIsNERBQUksR0FBRywwQkFBMEI7QUFDNUQsUUFBUSw0REFBSTtBQUNaO0FBQ0Esb0JBQW9CLGtEQUFrRDtBQUN0RSxvQkFBb0IsMkNBQTJDO0FBQy9EO0FBQ0EsMEVBQTBFLGVBQWU7QUFDekYsMkVBQTJFLGdCQUFnQjtBQUMzRix1RUFBdUUsWUFBWTtBQUNuRix3RUFBd0UsYUFBYTtBQUNyRjtBQUNBLFNBQVM7QUFDVCxpQkFBaUIsNkRBQWUsR0FBRyx1Q0FBdUM7QUFDMUUsMEJBQTBCLHlCQUF5QjtBQUNuRCw0QkFBNEIsNERBQUksR0FBRyx1REFBdUQ7QUFDMUY7QUFDQSxLQUFLO0FBQ0w7QUFDQSx5QkFBeUIsZ0ZBQWM7QUFDdkMsSUFBSSxrRkFBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsOENBQThDLDJDQUFjO0FBQzVELElBQUksa0ZBQWU7QUFDbkI7QUFDQSxLQUFLO0FBQ0wsMkJBQTJCLHNEQUFHO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLGtDQUFrQyxzREFBRztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLHNEQUFHO0FBQ3pDLGNBQWMsZ0VBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLDZDQUFnQjtBQUNsQyxVQUFVLCtCQUErQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isc0RBQUc7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLFNBQVM7QUFDVCxrQ0FBa0Msc0RBQUc7QUFDckMsVUFBVSx3REFBbUI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksbUNBQW1DO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIseUNBQXlDO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsYUFBYTtBQUN6RCxhQUFhLGFBQWE7QUFDMUIsTUFBTTtBQUNOLDRDQUE0QyxhQUFhO0FBQ3pELGFBQWEsb0NBQW9DO0FBQ2pELE1BQU07QUFDTixhQUFhLGFBQWE7QUFDMUIsNENBQTRDLGFBQWE7QUFDekQsTUFBTTtBQUNOLGFBQWEsbUNBQW1DO0FBQ2hELDRDQUE0QyxhQUFhO0FBQ3pEO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFhRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcG9wcGVyL2Rpc3QvaW5kZXgubWpzPzMwNjEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcblxyXG4vLyBwYWNrYWdlcy9yZWFjdC9wb3BwZXIvc3JjL1BvcHBlci50c3hcclxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7XHJcbiAgdXNlRmxvYXRpbmcsXHJcbiAgYXV0b1VwZGF0ZSxcclxuICBvZmZzZXQsXHJcbiAgc2hpZnQsXHJcbiAgbGltaXRTaGlmdCxcclxuICBoaWRlLFxyXG4gIGFycm93IGFzIGZsb2F0aW5nVUlhcnJvdyxcclxuICBmbGlwLFxyXG4gIHNpemVcclxufSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xyXG5pbXBvcnQgKiBhcyBBcnJvd1ByaW1pdGl2ZSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWFycm93XCI7XHJcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XHJcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29udGV4dFwiO1xyXG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZVwiO1xyXG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZlwiO1xyXG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0XCI7XHJcbmltcG9ydCB7IHVzZVNpemUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1zaXplXCI7XHJcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xyXG52YXIgU0lERV9PUFRJT05TID0gW1widG9wXCIsIFwicmlnaHRcIiwgXCJib3R0b21cIiwgXCJsZWZ0XCJdO1xyXG52YXIgQUxJR05fT1BUSU9OUyA9IFtcInN0YXJ0XCIsIFwiY2VudGVyXCIsIFwiZW5kXCJdO1xyXG52YXIgUE9QUEVSX05BTUUgPSBcIlBvcHBlclwiO1xyXG52YXIgW2NyZWF0ZVBvcHBlckNvbnRleHQsIGNyZWF0ZVBvcHBlclNjb3BlXSA9IGNyZWF0ZUNvbnRleHRTY29wZShQT1BQRVJfTkFNRSk7XHJcbnZhciBbUG9wcGVyUHJvdmlkZXIsIHVzZVBvcHBlckNvbnRleHRdID0gY3JlYXRlUG9wcGVyQ29udGV4dChQT1BQRVJfTkFNRSk7XHJcbnZhciBQb3BwZXIgPSAocHJvcHMpID0+IHtcclxuICBjb25zdCB7IF9fc2NvcGVQb3BwZXIsIGNoaWxkcmVuIH0gPSBwcm9wcztcclxuICBjb25zdCBbYW5jaG9yLCBzZXRBbmNob3JdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XHJcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUG9wcGVyUHJvdmlkZXIsIHsgc2NvcGU6IF9fc2NvcGVQb3BwZXIsIGFuY2hvciwgb25BbmNob3JDaGFuZ2U6IHNldEFuY2hvciwgY2hpbGRyZW4gfSk7XHJcbn07XHJcblBvcHBlci5kaXNwbGF5TmFtZSA9IFBPUFBFUl9OQU1FO1xyXG52YXIgQU5DSE9SX05BTUUgPSBcIlBvcHBlckFuY2hvclwiO1xyXG52YXIgUG9wcGVyQW5jaG9yID0gUmVhY3QuZm9yd2FyZFJlZihcclxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBfX3Njb3BlUG9wcGVyLCB2aXJ0dWFsUmVmLCAuLi5hbmNob3JQcm9wcyB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlUG9wcGVyQ29udGV4dChBTkNIT1JfTkFNRSwgX19zY29wZVBvcHBlcik7XHJcbiAgICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgY29udGV4dC5vbkFuY2hvckNoYW5nZSh2aXJ0dWFsUmVmPy5jdXJyZW50IHx8IHJlZi5jdXJyZW50KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHZpcnR1YWxSZWYgPyBudWxsIDogLyogQF9fUFVSRV9fICovIGpzeChQcmltaXRpdmUuZGl2LCB7IC4uLmFuY2hvclByb3BzLCByZWY6IGNvbXBvc2VkUmVmcyB9KTtcclxuICB9XHJcbik7XHJcblBvcHBlckFuY2hvci5kaXNwbGF5TmFtZSA9IEFOQ0hPUl9OQU1FO1xyXG52YXIgQ09OVEVOVF9OQU1FID0gXCJQb3BwZXJDb250ZW50XCI7XHJcbnZhciBbUG9wcGVyQ29udGVudFByb3ZpZGVyLCB1c2VDb250ZW50Q29udGV4dF0gPSBjcmVhdGVQb3BwZXJDb250ZXh0KENPTlRFTlRfTkFNRSk7XHJcbnZhciBQb3BwZXJDb250ZW50ID0gUmVhY3QuZm9yd2FyZFJlZihcclxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBfX3Njb3BlUG9wcGVyLFxyXG4gICAgICBzaWRlID0gXCJib3R0b21cIixcclxuICAgICAgc2lkZU9mZnNldCA9IDAsXHJcbiAgICAgIGFsaWduID0gXCJjZW50ZXJcIixcclxuICAgICAgYWxpZ25PZmZzZXQgPSAwLFxyXG4gICAgICBhcnJvd1BhZGRpbmcgPSAwLFxyXG4gICAgICBhdm9pZENvbGxpc2lvbnMgPSB0cnVlLFxyXG4gICAgICBjb2xsaXNpb25Cb3VuZGFyeSA9IFtdLFxyXG4gICAgICBjb2xsaXNpb25QYWRkaW5nOiBjb2xsaXNpb25QYWRkaW5nUHJvcCA9IDAsXHJcbiAgICAgIHN0aWNreSA9IFwicGFydGlhbFwiLFxyXG4gICAgICBoaWRlV2hlbkRldGFjaGVkID0gZmFsc2UsXHJcbiAgICAgIHVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kgPSBcIm9wdGltaXplZFwiLFxyXG4gICAgICBvblBsYWNlZCxcclxuICAgICAgLi4uY29udGVudFByb3BzXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlUG9wcGVyQ29udGV4dChDT05URU5UX05BTUUsIF9fc2NvcGVQb3BwZXIpO1xyXG4gICAgY29uc3QgW2NvbnRlbnQsIHNldENvbnRlbnRdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XHJcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCAobm9kZSkgPT4gc2V0Q29udGVudChub2RlKSk7XHJcbiAgICBjb25zdCBbYXJyb3csIHNldEFycm93XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xyXG4gICAgY29uc3QgYXJyb3dTaXplID0gdXNlU2l6ZShhcnJvdyk7XHJcbiAgICBjb25zdCBhcnJvd1dpZHRoID0gYXJyb3dTaXplPy53aWR0aCA/PyAwO1xyXG4gICAgY29uc3QgYXJyb3dIZWlnaHQgPSBhcnJvd1NpemU/LmhlaWdodCA/PyAwO1xyXG4gICAgY29uc3QgZGVzaXJlZFBsYWNlbWVudCA9IHNpZGUgKyAoYWxpZ24gIT09IFwiY2VudGVyXCIgPyBcIi1cIiArIGFsaWduIDogXCJcIik7XHJcbiAgICBjb25zdCBjb2xsaXNpb25QYWRkaW5nID0gdHlwZW9mIGNvbGxpc2lvblBhZGRpbmdQcm9wID09PSBcIm51bWJlclwiID8gY29sbGlzaW9uUGFkZGluZ1Byb3AgOiB7IHRvcDogMCwgcmlnaHQ6IDAsIGJvdHRvbTogMCwgbGVmdDogMCwgLi4uY29sbGlzaW9uUGFkZGluZ1Byb3AgfTtcclxuICAgIGNvbnN0IGJvdW5kYXJ5ID0gQXJyYXkuaXNBcnJheShjb2xsaXNpb25Cb3VuZGFyeSkgPyBjb2xsaXNpb25Cb3VuZGFyeSA6IFtjb2xsaXNpb25Cb3VuZGFyeV07XHJcbiAgICBjb25zdCBoYXNFeHBsaWNpdEJvdW5kYXJpZXMgPSBib3VuZGFyeS5sZW5ndGggPiAwO1xyXG4gICAgY29uc3QgZGV0ZWN0T3ZlcmZsb3dPcHRpb25zID0ge1xyXG4gICAgICBwYWRkaW5nOiBjb2xsaXNpb25QYWRkaW5nLFxyXG4gICAgICBib3VuZGFyeTogYm91bmRhcnkuZmlsdGVyKGlzTm90TnVsbCksXHJcbiAgICAgIC8vIHdpdGggYHN0cmF0ZWd5OiAnZml4ZWQnYCwgdGhpcyBpcyB0aGUgb25seSB3YXkgdG8gZ2V0IGl0IHRvIHJlc3BlY3QgYm91bmRhcmllc1xyXG4gICAgICBhbHRCb3VuZGFyeTogaGFzRXhwbGljaXRCb3VuZGFyaWVzXHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgcGxhY2VtZW50LCBpc1Bvc2l0aW9uZWQsIG1pZGRsZXdhcmVEYXRhIH0gPSB1c2VGbG9hdGluZyh7XHJcbiAgICAgIC8vIGRlZmF1bHQgdG8gYGZpeGVkYCBzdHJhdGVneSBzbyB1c2VycyBkb24ndCBoYXZlIHRvIHBpY2sgYW5kIHdlIGFsc28gYXZvaWQgZm9jdXMgc2Nyb2xsIGlzc3Vlc1xyXG4gICAgICBzdHJhdGVneTogXCJmaXhlZFwiLFxyXG4gICAgICBwbGFjZW1lbnQ6IGRlc2lyZWRQbGFjZW1lbnQsXHJcbiAgICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiAoLi4uYXJncykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNsZWFudXAgPSBhdXRvVXBkYXRlKC4uLmFyZ3MsIHtcclxuICAgICAgICAgIGFuaW1hdGlvbkZyYW1lOiB1cGRhdGVQb3NpdGlvblN0cmF0ZWd5ID09PSBcImFsd2F5c1wiXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGNsZWFudXA7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVsZW1lbnRzOiB7XHJcbiAgICAgICAgcmVmZXJlbmNlOiBjb250ZXh0LmFuY2hvclxyXG4gICAgICB9LFxyXG4gICAgICBtaWRkbGV3YXJlOiBbXHJcbiAgICAgICAgb2Zmc2V0KHsgbWFpbkF4aXM6IHNpZGVPZmZzZXQgKyBhcnJvd0hlaWdodCwgYWxpZ25tZW50QXhpczogYWxpZ25PZmZzZXQgfSksXHJcbiAgICAgICAgYXZvaWRDb2xsaXNpb25zICYmIHNoaWZ0KHtcclxuICAgICAgICAgIG1haW5BeGlzOiB0cnVlLFxyXG4gICAgICAgICAgY3Jvc3NBeGlzOiBmYWxzZSxcclxuICAgICAgICAgIGxpbWl0ZXI6IHN0aWNreSA9PT0gXCJwYXJ0aWFsXCIgPyBsaW1pdFNoaWZ0KCkgOiB2b2lkIDAsXHJcbiAgICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnNcclxuICAgICAgICB9KSxcclxuICAgICAgICBhdm9pZENvbGxpc2lvbnMgJiYgZmxpcCh7IC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyB9KSxcclxuICAgICAgICBzaXplKHtcclxuICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcclxuICAgICAgICAgIGFwcGx5OiAoeyBlbGVtZW50cywgcmVjdHMsIGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQgfSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IHdpZHRoOiBhbmNob3JXaWR0aCwgaGVpZ2h0OiBhbmNob3JIZWlnaHQgfSA9IHJlY3RzLnJlZmVyZW5jZTtcclxuICAgICAgICAgICAgY29uc3QgY29udGVudFN0eWxlID0gZWxlbWVudHMuZmxvYXRpbmcuc3R5bGU7XHJcbiAgICAgICAgICAgIGNvbnRlbnRTdHlsZS5zZXRQcm9wZXJ0eShcIi0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS13aWR0aFwiLCBgJHthdmFpbGFibGVXaWR0aH1weGApO1xyXG4gICAgICAgICAgICBjb250ZW50U3R5bGUuc2V0UHJvcGVydHkoXCItLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtaGVpZ2h0XCIsIGAke2F2YWlsYWJsZUhlaWdodH1weGApO1xyXG4gICAgICAgICAgICBjb250ZW50U3R5bGUuc2V0UHJvcGVydHkoXCItLXJhZGl4LXBvcHBlci1hbmNob3Itd2lkdGhcIiwgYCR7YW5jaG9yV2lkdGh9cHhgKTtcclxuICAgICAgICAgICAgY29udGVudFN0eWxlLnNldFByb3BlcnR5KFwiLS1yYWRpeC1wb3BwZXItYW5jaG9yLWhlaWdodFwiLCBgJHthbmNob3JIZWlnaHR9cHhgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICBhcnJvdyAmJiBmbG9hdGluZ1VJYXJyb3coeyBlbGVtZW50OiBhcnJvdywgcGFkZGluZzogYXJyb3dQYWRkaW5nIH0pLFxyXG4gICAgICAgIHRyYW5zZm9ybU9yaWdpbih7IGFycm93V2lkdGgsIGFycm93SGVpZ2h0IH0pLFxyXG4gICAgICAgIGhpZGVXaGVuRGV0YWNoZWQgJiYgaGlkZSh7IHN0cmF0ZWd5OiBcInJlZmVyZW5jZUhpZGRlblwiLCAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnMgfSlcclxuICAgICAgXVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBbcGxhY2VkU2lkZSwgcGxhY2VkQWxpZ25dID0gZ2V0U2lkZUFuZEFsaWduRnJvbVBsYWNlbWVudChwbGFjZW1lbnQpO1xyXG4gICAgY29uc3QgaGFuZGxlUGxhY2VkID0gdXNlQ2FsbGJhY2tSZWYob25QbGFjZWQpO1xyXG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcclxuICAgICAgaWYgKGlzUG9zaXRpb25lZCkge1xyXG4gICAgICAgIGhhbmRsZVBsYWNlZD8uKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIFtpc1Bvc2l0aW9uZWQsIGhhbmRsZVBsYWNlZF0pO1xyXG4gICAgY29uc3QgYXJyb3dYID0gbWlkZGxld2FyZURhdGEuYXJyb3c/Lng7XHJcbiAgICBjb25zdCBhcnJvd1kgPSBtaWRkbGV3YXJlRGF0YS5hcnJvdz8ueTtcclxuICAgIGNvbnN0IGNhbm5vdENlbnRlckFycm93ID0gbWlkZGxld2FyZURhdGEuYXJyb3c/LmNlbnRlck9mZnNldCAhPT0gMDtcclxuICAgIGNvbnN0IFtjb250ZW50WkluZGV4LCBzZXRDb250ZW50WkluZGV4XSA9IFJlYWN0LnVzZVN0YXRlKCk7XHJcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xyXG4gICAgICBpZiAoY29udGVudCkgc2V0Q29udGVudFpJbmRleCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjb250ZW50KS56SW5kZXgpO1xyXG4gICAgfSwgW2NvbnRlbnRdKTtcclxuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxyXG4gICAgICBcImRpdlwiLFxyXG4gICAgICB7XHJcbiAgICAgICAgcmVmOiByZWZzLnNldEZsb2F0aW5nLFxyXG4gICAgICAgIFwiZGF0YS1yYWRpeC1wb3BwZXItY29udGVudC13cmFwcGVyXCI6IFwiXCIsXHJcbiAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgIC4uLmZsb2F0aW5nU3R5bGVzLFxyXG4gICAgICAgICAgdHJhbnNmb3JtOiBpc1Bvc2l0aW9uZWQgPyBmbG9hdGluZ1N0eWxlcy50cmFuc2Zvcm0gOiBcInRyYW5zbGF0ZSgwLCAtMjAwJSlcIixcclxuICAgICAgICAgIC8vIGtlZXAgb2ZmIHRoZSBwYWdlIHdoZW4gbWVhc3VyaW5nXHJcbiAgICAgICAgICBtaW5XaWR0aDogXCJtYXgtY29udGVudFwiLFxyXG4gICAgICAgICAgekluZGV4OiBjb250ZW50WkluZGV4LFxyXG4gICAgICAgICAgW1wiLS1yYWRpeC1wb3BwZXItdHJhbnNmb3JtLW9yaWdpblwiXTogW1xyXG4gICAgICAgICAgICBtaWRkbGV3YXJlRGF0YS50cmFuc2Zvcm1PcmlnaW4/LngsXHJcbiAgICAgICAgICAgIG1pZGRsZXdhcmVEYXRhLnRyYW5zZm9ybU9yaWdpbj8ueVxyXG4gICAgICAgICAgXS5qb2luKFwiIFwiKSxcclxuICAgICAgICAgIC8vIGhpZGUgdGhlIGNvbnRlbnQgaWYgdXNpbmcgdGhlIGhpZGUgbWlkZGxld2FyZSBhbmQgc2hvdWxkIGJlIGhpZGRlblxyXG4gICAgICAgICAgLy8gc2V0IHZpc2liaWxpdHkgdG8gaGlkZGVuIGFuZCBkaXNhYmxlIHBvaW50ZXIgZXZlbnRzIHNvIHRoZSBVSSBiZWhhdmVzXHJcbiAgICAgICAgICAvLyBhcyBpZiB0aGUgUG9wcGVyQ29udGVudCBpc24ndCB0aGVyZSBhdCBhbGxcclxuICAgICAgICAgIC4uLm1pZGRsZXdhcmVEYXRhLmhpZGU/LnJlZmVyZW5jZUhpZGRlbiAmJiB7XHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IFwiaGlkZGVuXCIsXHJcbiAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXI6IHByb3BzLmRpcixcclxuICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcclxuICAgICAgICAgIFBvcHBlckNvbnRlbnRQcm92aWRlcixcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgc2NvcGU6IF9fc2NvcGVQb3BwZXIsXHJcbiAgICAgICAgICAgIHBsYWNlZFNpZGUsXHJcbiAgICAgICAgICAgIG9uQXJyb3dDaGFuZ2U6IHNldEFycm93LFxyXG4gICAgICAgICAgICBhcnJvd1gsXHJcbiAgICAgICAgICAgIGFycm93WSxcclxuICAgICAgICAgICAgc2hvdWxkSGlkZUFycm93OiBjYW5ub3RDZW50ZXJBcnJvdyxcclxuICAgICAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXHJcbiAgICAgICAgICAgICAgUHJpbWl0aXZlLmRpdixcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcImRhdGEtc2lkZVwiOiBwbGFjZWRTaWRlLFxyXG4gICAgICAgICAgICAgICAgXCJkYXRhLWFsaWduXCI6IHBsYWNlZEFsaWduLFxyXG4gICAgICAgICAgICAgICAgLi4uY29udGVudFByb3BzLFxyXG4gICAgICAgICAgICAgICAgcmVmOiBjb21wb3NlZFJlZnMsXHJcbiAgICAgICAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICAgICAgICAuLi5jb250ZW50UHJvcHMuc3R5bGUsXHJcbiAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBQb3BwZXJDb250ZW50IGhhc24ndCBiZWVuIHBsYWNlZCB5ZXQgKG5vdCBhbGwgbWVhc3VyZW1lbnRzIGRvbmUpXHJcbiAgICAgICAgICAgICAgICAgIC8vIHdlIHByZXZlbnQgYW5pbWF0aW9ucyBzbyB0aGF0IHVzZXJzJ3MgYW5pbWF0aW9uIGRvbid0IGtpY2sgaW4gdG9vIGVhcmx5IHJlZmVycmluZyB3cm9uZyBzaWRlc1xyXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb246ICFpc1Bvc2l0aW9uZWQgPyBcIm5vbmVcIiA6IHZvaWQgMFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIClcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbik7XHJcblBvcHBlckNvbnRlbnQuZGlzcGxheU5hbWUgPSBDT05URU5UX05BTUU7XHJcbnZhciBBUlJPV19OQU1FID0gXCJQb3BwZXJBcnJvd1wiO1xyXG52YXIgT1BQT1NJVEVfU0lERSA9IHtcclxuICB0b3A6IFwiYm90dG9tXCIsXHJcbiAgcmlnaHQ6IFwibGVmdFwiLFxyXG4gIGJvdHRvbTogXCJ0b3BcIixcclxuICBsZWZ0OiBcInJpZ2h0XCJcclxufTtcclxudmFyIFBvcHBlckFycm93ID0gUmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbiBQb3BwZXJBcnJvdzIocHJvcHMsIGZvcndhcmRlZFJlZikge1xyXG4gIGNvbnN0IHsgX19zY29wZVBvcHBlciwgLi4uYXJyb3dQcm9wcyB9ID0gcHJvcHM7XHJcbiAgY29uc3QgY29udGVudENvbnRleHQgPSB1c2VDb250ZW50Q29udGV4dChBUlJPV19OQU1FLCBfX3Njb3BlUG9wcGVyKTtcclxuICBjb25zdCBiYXNlU2lkZSA9IE9QUE9TSVRFX1NJREVbY29udGVudENvbnRleHQucGxhY2VkU2lkZV07XHJcbiAgcmV0dXJuIChcclxuICAgIC8vIHdlIGhhdmUgdG8gdXNlIGFuIGV4dHJhIHdyYXBwZXIgYmVjYXVzZSBgUmVzaXplT2JzZXJ2ZXJgICh1c2VkIGJ5IGB1c2VTaXplYClcclxuICAgIC8vIGRvZXNuJ3QgcmVwb3J0IHNpemUgYXMgd2UnZCBleHBlY3Qgb24gU1ZHIGVsZW1lbnRzLlxyXG4gICAgLy8gaXQgcmVwb3J0cyB0aGVpciBib3VuZGluZyBib3ggd2hpY2ggaXMgZWZmZWN0aXZlbHkgdGhlIGxhcmdlc3QgcGF0aCBpbnNpZGUgdGhlIFNWRy5cclxuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXHJcbiAgICAgIFwic3BhblwiLFxyXG4gICAgICB7XHJcbiAgICAgICAgcmVmOiBjb250ZW50Q29udGV4dC5vbkFycm93Q2hhbmdlLFxyXG4gICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxyXG4gICAgICAgICAgbGVmdDogY29udGVudENvbnRleHQuYXJyb3dYLFxyXG4gICAgICAgICAgdG9wOiBjb250ZW50Q29udGV4dC5hcnJvd1ksXHJcbiAgICAgICAgICBbYmFzZVNpZGVdOiAwLFxyXG4gICAgICAgICAgdHJhbnNmb3JtT3JpZ2luOiB7XHJcbiAgICAgICAgICAgIHRvcDogXCJcIixcclxuICAgICAgICAgICAgcmlnaHQ6IFwiMCAwXCIsXHJcbiAgICAgICAgICAgIGJvdHRvbTogXCJjZW50ZXIgMFwiLFxyXG4gICAgICAgICAgICBsZWZ0OiBcIjEwMCUgMFwiXHJcbiAgICAgICAgICB9W2NvbnRlbnRDb250ZXh0LnBsYWNlZFNpZGVdLFxyXG4gICAgICAgICAgdHJhbnNmb3JtOiB7XHJcbiAgICAgICAgICAgIHRvcDogXCJ0cmFuc2xhdGVZKDEwMCUpXCIsXHJcbiAgICAgICAgICAgIHJpZ2h0OiBcInRyYW5zbGF0ZVkoNTAlKSByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZVgoLTUwJSlcIixcclxuICAgICAgICAgICAgYm90dG9tOiBgcm90YXRlKDE4MGRlZylgLFxyXG4gICAgICAgICAgICBsZWZ0OiBcInRyYW5zbGF0ZVkoNTAlKSByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGVYKDUwJSlcIlxyXG4gICAgICAgICAgfVtjb250ZW50Q29udGV4dC5wbGFjZWRTaWRlXSxcclxuICAgICAgICAgIHZpc2liaWxpdHk6IGNvbnRlbnRDb250ZXh0LnNob3VsZEhpZGVBcnJvdyA/IFwiaGlkZGVuXCIgOiB2b2lkIDBcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxyXG4gICAgICAgICAgQXJyb3dQcmltaXRpdmUuUm9vdCxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgLi4uYXJyb3dQcm9wcyxcclxuICAgICAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXHJcbiAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgLi4uYXJyb3dQcm9wcy5zdHlsZSxcclxuICAgICAgICAgICAgICAvLyBlbnN1cmVzIHRoZSBlbGVtZW50IGNhbiBiZSBtZWFzdXJlZCBjb3JyZWN0bHkgKG1vc3RseSBmb3IgaWYgU1ZHKVxyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IFwiYmxvY2tcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKVxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgKTtcclxufSk7XHJcblBvcHBlckFycm93LmRpc3BsYXlOYW1lID0gQVJST1dfTkFNRTtcclxuZnVuY3Rpb24gaXNOb3ROdWxsKHZhbHVlKSB7XHJcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsO1xyXG59XHJcbnZhciB0cmFuc2Zvcm1PcmlnaW4gPSAob3B0aW9ucykgPT4gKHtcclxuICBuYW1lOiBcInRyYW5zZm9ybU9yaWdpblwiLFxyXG4gIG9wdGlvbnMsXHJcbiAgZm4oZGF0YSkge1xyXG4gICAgY29uc3QgeyBwbGFjZW1lbnQsIHJlY3RzLCBtaWRkbGV3YXJlRGF0YSB9ID0gZGF0YTtcclxuICAgIGNvbnN0IGNhbm5vdENlbnRlckFycm93ID0gbWlkZGxld2FyZURhdGEuYXJyb3c/LmNlbnRlck9mZnNldCAhPT0gMDtcclxuICAgIGNvbnN0IGlzQXJyb3dIaWRkZW4gPSBjYW5ub3RDZW50ZXJBcnJvdztcclxuICAgIGNvbnN0IGFycm93V2lkdGggPSBpc0Fycm93SGlkZGVuID8gMCA6IG9wdGlvbnMuYXJyb3dXaWR0aDtcclxuICAgIGNvbnN0IGFycm93SGVpZ2h0ID0gaXNBcnJvd0hpZGRlbiA/IDAgOiBvcHRpb25zLmFycm93SGVpZ2h0O1xyXG4gICAgY29uc3QgW3BsYWNlZFNpZGUsIHBsYWNlZEFsaWduXSA9IGdldFNpZGVBbmRBbGlnbkZyb21QbGFjZW1lbnQocGxhY2VtZW50KTtcclxuICAgIGNvbnN0IG5vQXJyb3dBbGlnbiA9IHsgc3RhcnQ6IFwiMCVcIiwgY2VudGVyOiBcIjUwJVwiLCBlbmQ6IFwiMTAwJVwiIH1bcGxhY2VkQWxpZ25dO1xyXG4gICAgY29uc3QgYXJyb3dYQ2VudGVyID0gKG1pZGRsZXdhcmVEYXRhLmFycm93Py54ID8/IDApICsgYXJyb3dXaWR0aCAvIDI7XHJcbiAgICBjb25zdCBhcnJvd1lDZW50ZXIgPSAobWlkZGxld2FyZURhdGEuYXJyb3c/LnkgPz8gMCkgKyBhcnJvd0hlaWdodCAvIDI7XHJcbiAgICBsZXQgeCA9IFwiXCI7XHJcbiAgICBsZXQgeSA9IFwiXCI7XHJcbiAgICBpZiAocGxhY2VkU2lkZSA9PT0gXCJib3R0b21cIikge1xyXG4gICAgICB4ID0gaXNBcnJvd0hpZGRlbiA/IG5vQXJyb3dBbGlnbiA6IGAke2Fycm93WENlbnRlcn1weGA7XHJcbiAgICAgIHkgPSBgJHstYXJyb3dIZWlnaHR9cHhgO1xyXG4gICAgfSBlbHNlIGlmIChwbGFjZWRTaWRlID09PSBcInRvcFwiKSB7XHJcbiAgICAgIHggPSBpc0Fycm93SGlkZGVuID8gbm9BcnJvd0FsaWduIDogYCR7YXJyb3dYQ2VudGVyfXB4YDtcclxuICAgICAgeSA9IGAke3JlY3RzLmZsb2F0aW5nLmhlaWdodCArIGFycm93SGVpZ2h0fXB4YDtcclxuICAgIH0gZWxzZSBpZiAocGxhY2VkU2lkZSA9PT0gXCJyaWdodFwiKSB7XHJcbiAgICAgIHggPSBgJHstYXJyb3dIZWlnaHR9cHhgO1xyXG4gICAgICB5ID0gaXNBcnJvd0hpZGRlbiA/IG5vQXJyb3dBbGlnbiA6IGAke2Fycm93WUNlbnRlcn1weGA7XHJcbiAgICB9IGVsc2UgaWYgKHBsYWNlZFNpZGUgPT09IFwibGVmdFwiKSB7XHJcbiAgICAgIHggPSBgJHtyZWN0cy5mbG9hdGluZy53aWR0aCArIGFycm93SGVpZ2h0fXB4YDtcclxuICAgICAgeSA9IGlzQXJyb3dIaWRkZW4gPyBub0Fycm93QWxpZ24gOiBgJHthcnJvd1lDZW50ZXJ9cHhgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsgZGF0YTogeyB4LCB5IH0gfTtcclxuICB9XHJcbn0pO1xyXG5mdW5jdGlvbiBnZXRTaWRlQW5kQWxpZ25Gcm9tUGxhY2VtZW50KHBsYWNlbWVudCkge1xyXG4gIGNvbnN0IFtzaWRlLCBhbGlnbiA9IFwiY2VudGVyXCJdID0gcGxhY2VtZW50LnNwbGl0KFwiLVwiKTtcclxuICByZXR1cm4gW3NpZGUsIGFsaWduXTtcclxufVxyXG52YXIgUm9vdDIgPSBQb3BwZXI7XHJcbnZhciBBbmNob3IgPSBQb3BwZXJBbmNob3I7XHJcbnZhciBDb250ZW50ID0gUG9wcGVyQ29udGVudDtcclxudmFyIEFycm93ID0gUG9wcGVyQXJyb3c7XHJcbmV4cG9ydCB7XHJcbiAgQUxJR05fT1BUSU9OUyxcclxuICBBbmNob3IsXHJcbiAgQXJyb3csXHJcbiAgQ29udGVudCxcclxuICBQb3BwZXIsXHJcbiAgUG9wcGVyQW5jaG9yLFxyXG4gIFBvcHBlckFycm93LFxyXG4gIFBvcHBlckNvbnRlbnQsXHJcbiAgUm9vdDIgYXMgUm9vdCxcclxuICBTSURFX09QVElPTlMsXHJcbiAgY3JlYXRlUG9wcGVyU2NvcGVcclxufTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-popper/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context/dist/index.mjs":
|
||
/*!*************************************************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context/dist/index.mjs ***!
|
||
\*************************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createContext: function() { return /* binding */ createContext2; },\n/* harmony export */ createContextScope: function() { return /* binding */ createContextScope; }\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_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/context/src/createContext.tsx\r\n\r\n\r\nfunction createContext2(rootComponentName, defaultContext) {\r\n const Context = react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\r\n function Provider(props) {\r\n const { children, ...context } = props;\r\n const value = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => context, Object.values(context));\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Context.Provider, { value, children });\r\n }\r\n function useContext2(consumerName) {\r\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context);\r\n if (context) return context;\r\n if (defaultContext !== void 0) return defaultContext;\r\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\r\n }\r\n Provider.displayName = rootComponentName + \"Provider\";\r\n return [Provider, useContext2];\r\n}\r\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\r\n let defaultContexts = [];\r\n function createContext3(rootComponentName, defaultContext) {\r\n const BaseContext = react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\r\n const index = defaultContexts.length;\r\n defaultContexts = [...defaultContexts, defaultContext];\r\n function Provider(props) {\r\n const { scope, children, ...context } = props;\r\n const Context = scope?.[scopeName][index] || BaseContext;\r\n const value = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => context, Object.values(context));\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Context.Provider, { value, children });\r\n }\r\n function useContext2(consumerName, scope) {\r\n const Context = scope?.[scopeName][index] || BaseContext;\r\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context);\r\n if (context) return context;\r\n if (defaultContext !== void 0) return defaultContext;\r\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\r\n }\r\n Provider.displayName = rootComponentName + \"Provider\";\r\n return [Provider, useContext2];\r\n }\r\n const createScope = () => {\r\n const scopeContexts = defaultContexts.map((defaultContext) => {\r\n return react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\r\n });\r\n return function useScope(scope) {\r\n const contexts = scope?.[scopeName] || scopeContexts;\r\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(\r\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\r\n [scope, contexts]\r\n );\r\n };\r\n };\r\n createScope.scopeName = scopeName;\r\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\r\n}\r\nfunction composeContextScopes(...scopes) {\r\n const baseScope = scopes[0];\r\n if (scopes.length === 1) return baseScope;\r\n const createScope = () => {\r\n const scopeHooks = scopes.map((createScope2) => ({\r\n useScope: createScope2(),\r\n scopeName: createScope2.scopeName\r\n }));\r\n return function useComposedScopes(overrideScopes) {\r\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\r\n const scopeProps = useScope(overrideScopes);\r\n const currentScope = scopeProps[`__scope${scopeName}`];\r\n return { ...nextScopes2, ...currentScope };\r\n }, {});\r\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\r\n };\r\n };\r\n createScope.scopeName = baseScope.scopeName;\r\n return createScope;\r\n}\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcG9wcGVyL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29udGV4dC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDK0I7QUFDUztBQUN4QztBQUNBLGtCQUFrQixnREFBbUI7QUFDckM7QUFDQSxZQUFZLHVCQUF1QjtBQUNuQyxrQkFBa0IsMENBQWE7QUFDL0IsMkJBQTJCLHNEQUFHLHFCQUFxQixpQkFBaUI7QUFDcEU7QUFDQTtBQUNBLG9CQUFvQiw2Q0FBZ0I7QUFDcEM7QUFDQTtBQUNBLHlCQUF5QixhQUFhLDJCQUEyQixrQkFBa0I7QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0RBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBLGNBQWMsOEJBQThCO0FBQzVDO0FBQ0Esb0JBQW9CLDBDQUFhO0FBQ2pDLDZCQUE2QixzREFBRyxxQkFBcUIsaUJBQWlCO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQiw2Q0FBZ0I7QUFDdEM7QUFDQTtBQUNBLDJCQUEyQixhQUFhLDJCQUEyQixrQkFBa0I7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxnREFBbUI7QUFDaEMsS0FBSztBQUNMO0FBQ0E7QUFDQSxhQUFhLDBDQUFhO0FBQzFCLGlCQUFpQixXQUFXLFVBQVUsTUFBTSxtQ0FBbUM7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLDJEQUEyRCxxQkFBcUI7QUFDaEY7QUFDQSxrREFBa0QsVUFBVTtBQUM1RCxpQkFBaUI7QUFDakIsT0FBTyxJQUFJO0FBQ1gsYUFBYSwwQ0FBYSxVQUFVLFdBQVcsb0JBQW9CLGdCQUFnQjtBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUU7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXBvcHBlci9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQvZGlzdC9pbmRleC5tanM/OGZhMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9jb250ZXh0L3NyYy9jcmVhdGVDb250ZXh0LnRzeFxyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XHJcbmZ1bmN0aW9uIGNyZWF0ZUNvbnRleHQyKHJvb3RDb21wb25lbnROYW1lLCBkZWZhdWx0Q29udGV4dCkge1xyXG4gIGNvbnN0IENvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KGRlZmF1bHRDb250ZXh0KTtcclxuICBmdW5jdGlvbiBQcm92aWRlcihwcm9wcykge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgLi4uY29udGV4dCB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB2YWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gY29udGV4dCwgT2JqZWN0LnZhbHVlcyhjb250ZXh0KSk7XHJcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlLCBjaGlsZHJlbiB9KTtcclxuICB9XHJcbiAgZnVuY3Rpb24gdXNlQ29udGV4dDIoY29uc3VtZXJOYW1lKSB7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChDb250ZXh0KTtcclxuICAgIGlmIChjb250ZXh0KSByZXR1cm4gY29udGV4dDtcclxuICAgIGlmIChkZWZhdWx0Q29udGV4dCAhPT0gdm9pZCAwKSByZXR1cm4gZGVmYXVsdENvbnRleHQ7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFxcYCR7Y29uc3VtZXJOYW1lfVxcYCBtdXN0IGJlIHVzZWQgd2l0aGluIFxcYCR7cm9vdENvbXBvbmVudE5hbWV9XFxgYCk7XHJcbiAgfVxyXG4gIFByb3ZpZGVyLmRpc3BsYXlOYW1lID0gcm9vdENvbXBvbmVudE5hbWUgKyBcIlByb3ZpZGVyXCI7XHJcbiAgcmV0dXJuIFtQcm92aWRlciwgdXNlQ29udGV4dDJdO1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZUNvbnRleHRTY29wZShzY29wZU5hbWUsIGNyZWF0ZUNvbnRleHRTY29wZURlcHMgPSBbXSkge1xyXG4gIGxldCBkZWZhdWx0Q29udGV4dHMgPSBbXTtcclxuICBmdW5jdGlvbiBjcmVhdGVDb250ZXh0Myhyb290Q29tcG9uZW50TmFtZSwgZGVmYXVsdENvbnRleHQpIHtcclxuICAgIGNvbnN0IEJhc2VDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dChkZWZhdWx0Q29udGV4dCk7XHJcbiAgICBjb25zdCBpbmRleCA9IGRlZmF1bHRDb250ZXh0cy5sZW5ndGg7XHJcbiAgICBkZWZhdWx0Q29udGV4dHMgPSBbLi4uZGVmYXVsdENvbnRleHRzLCBkZWZhdWx0Q29udGV4dF07XHJcbiAgICBmdW5jdGlvbiBQcm92aWRlcihwcm9wcykge1xyXG4gICAgICBjb25zdCB7IHNjb3BlLCBjaGlsZHJlbiwgLi4uY29udGV4dCB9ID0gcHJvcHM7XHJcbiAgICAgIGNvbnN0IENvbnRleHQgPSBzY29wZT8uW3Njb3BlTmFtZV1baW5kZXhdIHx8IEJhc2VDb250ZXh0O1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gY29udGV4dCwgT2JqZWN0LnZhbHVlcyhjb250ZXh0KSk7XHJcbiAgICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWUsIGNoaWxkcmVuIH0pO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gdXNlQ29udGV4dDIoY29uc3VtZXJOYW1lLCBzY29wZSkge1xyXG4gICAgICBjb25zdCBDb250ZXh0ID0gc2NvcGU/LltzY29wZU5hbWVdW2luZGV4XSB8fCBCYXNlQ29udGV4dDtcclxuICAgICAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoQ29udGV4dCk7XHJcbiAgICAgIGlmIChjb250ZXh0KSByZXR1cm4gY29udGV4dDtcclxuICAgICAgaWYgKGRlZmF1bHRDb250ZXh0ICE9PSB2b2lkIDApIHJldHVybiBkZWZhdWx0Q29udGV4dDtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBcXGAke2NvbnN1bWVyTmFtZX1cXGAgbXVzdCBiZSB1c2VkIHdpdGhpbiBcXGAke3Jvb3RDb21wb25lbnROYW1lfVxcYGApO1xyXG4gICAgfVxyXG4gICAgUHJvdmlkZXIuZGlzcGxheU5hbWUgPSByb290Q29tcG9uZW50TmFtZSArIFwiUHJvdmlkZXJcIjtcclxuICAgIHJldHVybiBbUHJvdmlkZXIsIHVzZUNvbnRleHQyXTtcclxuICB9XHJcbiAgY29uc3QgY3JlYXRlU2NvcGUgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBzY29wZUNvbnRleHRzID0gZGVmYXVsdENvbnRleHRzLm1hcCgoZGVmYXVsdENvbnRleHQpID0+IHtcclxuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUNvbnRleHQoZGVmYXVsdENvbnRleHQpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gdXNlU2NvcGUoc2NvcGUpIHtcclxuICAgICAgY29uc3QgY29udGV4dHMgPSBzY29wZT8uW3Njb3BlTmFtZV0gfHwgc2NvcGVDb250ZXh0cztcclxuICAgICAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oXHJcbiAgICAgICAgKCkgPT4gKHsgW2BfX3Njb3BlJHtzY29wZU5hbWV9YF06IHsgLi4uc2NvcGUsIFtzY29wZU5hbWVdOiBjb250ZXh0cyB9IH0pLFxyXG4gICAgICAgIFtzY29wZSwgY29udGV4dHNdXHJcbiAgICAgICk7XHJcbiAgICB9O1xyXG4gIH07XHJcbiAgY3JlYXRlU2NvcGUuc2NvcGVOYW1lID0gc2NvcGVOYW1lO1xyXG4gIHJldHVybiBbY3JlYXRlQ29udGV4dDMsIGNvbXBvc2VDb250ZXh0U2NvcGVzKGNyZWF0ZVNjb3BlLCAuLi5jcmVhdGVDb250ZXh0U2NvcGVEZXBzKV07XHJcbn1cclxuZnVuY3Rpb24gY29tcG9zZUNvbnRleHRTY29wZXMoLi4uc2NvcGVzKSB7XHJcbiAgY29uc3QgYmFzZVNjb3BlID0gc2NvcGVzWzBdO1xyXG4gIGlmIChzY29wZXMubGVuZ3RoID09PSAxKSByZXR1cm4gYmFzZVNjb3BlO1xyXG4gIGNvbnN0IGNyZWF0ZVNjb3BlID0gKCkgPT4ge1xyXG4gICAgY29uc3Qgc2NvcGVIb29rcyA9IHNjb3Blcy5tYXAoKGNyZWF0ZVNjb3BlMikgPT4gKHtcclxuICAgICAgdXNlU2NvcGU6IGNyZWF0ZVNjb3BlMigpLFxyXG4gICAgICBzY29wZU5hbWU6IGNyZWF0ZVNjb3BlMi5zY29wZU5hbWVcclxuICAgIH0pKTtcclxuICAgIHJldHVybiBmdW5jdGlvbiB1c2VDb21wb3NlZFNjb3BlcyhvdmVycmlkZVNjb3Blcykge1xyXG4gICAgICBjb25zdCBuZXh0U2NvcGVzID0gc2NvcGVIb29rcy5yZWR1Y2UoKG5leHRTY29wZXMyLCB7IHVzZVNjb3BlLCBzY29wZU5hbWUgfSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHNjb3BlUHJvcHMgPSB1c2VTY29wZShvdmVycmlkZVNjb3Blcyk7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFNjb3BlID0gc2NvcGVQcm9wc1tgX19zY29wZSR7c2NvcGVOYW1lfWBdO1xyXG4gICAgICAgIHJldHVybiB7IC4uLm5leHRTY29wZXMyLCAuLi5jdXJyZW50U2NvcGUgfTtcclxuICAgICAgfSwge30pO1xyXG4gICAgICByZXR1cm4gUmVhY3QudXNlTWVtbygoKSA9PiAoeyBbYF9fc2NvcGUke2Jhc2VTY29wZS5zY29wZU5hbWV9YF06IG5leHRTY29wZXMgfSksIFtuZXh0U2NvcGVzXSk7XHJcbiAgICB9O1xyXG4gIH07XHJcbiAgY3JlYXRlU2NvcGUuc2NvcGVOYW1lID0gYmFzZVNjb3BlLnNjb3BlTmFtZTtcclxuICByZXR1cm4gY3JlYXRlU2NvcGU7XHJcbn1cclxuZXhwb3J0IHtcclxuICBjcmVhdGVDb250ZXh0MiBhcyBjcmVhdGVDb250ZXh0LFxyXG4gIGNyZWF0ZUNvbnRleHRTY29wZVxyXG59O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-portal/dist/index.mjs":
|
||
/*!************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-portal/dist/index.mjs ***!
|
||
\************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Portal: function() { return /* binding */ Portal; },\n/* harmony export */ Root: function() { return /* binding */ Root; }\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_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n\"use client\";\r\n\r\n// packages/react/portal/src/Portal.tsx\r\n\r\n\r\n\r\n\r\n\r\nvar PORTAL_NAME = \"Portal\";\r\nvar Portal = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\r\n const { container: containerProp, ...portalProps } = props;\r\n const [mounted, setMounted] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\r\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__.useLayoutEffect)(() => setMounted(true), []);\r\n const container = containerProp || mounted && globalThis?.document?.body;\r\n return container ? react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal(/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\r\n});\r\nPortal.displayName = PORTAL_NAME;\r\nvar Root = Portal;\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcG9ydGFsL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDK0I7QUFDRTtBQUNxQjtBQUNjO0FBQzVCO0FBQ3hDO0FBQ0EsYUFBYSw2Q0FBZ0I7QUFDN0IsVUFBVSwyQ0FBMkM7QUFDckQsZ0NBQWdDLDJDQUFjO0FBQzlDLEVBQUUsa0ZBQWU7QUFDakI7QUFDQSxxQkFBcUIsbURBQXFCLGlCQUFpQixzREFBRyxDQUFDLGdFQUFTLFFBQVEsbUNBQW1DO0FBQ25ILENBQUM7QUFDRDtBQUNBO0FBSUU7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXBvcnRhbC9kaXN0L2luZGV4Lm1qcz85MWI0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5cclxuLy8gcGFja2FnZXMvcmVhY3QvcG9ydGFsL3NyYy9Qb3J0YWwudHN4XHJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiO1xyXG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZVwiO1xyXG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0XCI7XHJcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xyXG52YXIgUE9SVEFMX05BTUUgPSBcIlBvcnRhbFwiO1xyXG52YXIgUG9ydGFsID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gIGNvbnN0IHsgY29udGFpbmVyOiBjb250YWluZXJQcm9wLCAuLi5wb3J0YWxQcm9wcyB9ID0gcHJvcHM7XHJcbiAgY29uc3QgW21vdW50ZWQsIHNldE1vdW50ZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xyXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiBzZXRNb3VudGVkKHRydWUpLCBbXSk7XHJcbiAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUHJvcCB8fCBtb3VudGVkICYmIGdsb2JhbFRoaXM/LmRvY3VtZW50Py5ib2R5O1xyXG4gIHJldHVybiBjb250YWluZXIgPyBSZWFjdERPTS5jcmVhdGVQb3J0YWwoLyogQF9fUFVSRV9fICovIGpzeChQcmltaXRpdmUuZGl2LCB7IC4uLnBvcnRhbFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KSwgY29udGFpbmVyKSA6IG51bGw7XHJcbn0pO1xyXG5Qb3J0YWwuZGlzcGxheU5hbWUgPSBQT1JUQUxfTkFNRTtcclxudmFyIFJvb3QgPSBQb3J0YWw7XHJcbmV4cG9ydCB7XHJcbiAgUG9ydGFsLFxyXG4gIFJvb3RcclxufTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-portal/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-presence/dist/index.mjs ***!
|
||
\**************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Presence: function() { return /* binding */ Presence; }\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 _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n\"use client\";\r\n\r\n// packages/react/presence/src/Presence.tsx\r\n\r\n\r\n\r\n\r\n// packages/react/presence/src/useStateMachine.tsx\r\n\r\nfunction useStateMachine(initialState, machine) {\r\n return react__WEBPACK_IMPORTED_MODULE_0__.useReducer((state, event) => {\r\n const nextState = machine[state][event];\r\n return nextState ?? state;\r\n }, initialState);\r\n}\r\n\r\n// packages/react/presence/src/Presence.tsx\r\nvar Presence = (props) => {\r\n const { present, children } = props;\r\n const presence = usePresence(present);\r\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children);\r\n const ref = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_1__.useComposedRefs)(presence.ref, getElementRef(child));\r\n const forceMount = typeof children === \"function\";\r\n return forceMount || presence.isPresent ? react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(child, { ref }) : null;\r\n};\r\nPresence.displayName = \"Presence\";\r\nfunction usePresence(present) {\r\n const [node, setNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\r\n const stylesRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef({});\r\n const prevPresentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(present);\r\n const prevAnimationNameRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"none\");\r\n const initialState = present ? \"mounted\" : \"unmounted\";\r\n const [state, send] = useStateMachine(initialState, {\r\n mounted: {\r\n UNMOUNT: \"unmounted\",\r\n ANIMATION_OUT: \"unmountSuspended\"\r\n },\r\n unmountSuspended: {\r\n MOUNT: \"mounted\",\r\n ANIMATION_END: \"unmounted\"\r\n },\r\n unmounted: {\r\n MOUNT: \"mounted\"\r\n }\r\n });\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n const currentAnimationName = getAnimationName(stylesRef.current);\r\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\r\n }, [state]);\r\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_2__.useLayoutEffect)(() => {\r\n const styles = stylesRef.current;\r\n const wasPresent = prevPresentRef.current;\r\n const hasPresentChanged = wasPresent !== present;\r\n if (hasPresentChanged) {\r\n const prevAnimationName = prevAnimationNameRef.current;\r\n const currentAnimationName = getAnimationName(styles);\r\n if (present) {\r\n send(\"MOUNT\");\r\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\r\n send(\"UNMOUNT\");\r\n } else {\r\n const isAnimating = prevAnimationName !== currentAnimationName;\r\n if (wasPresent && isAnimating) {\r\n send(\"ANIMATION_OUT\");\r\n } else {\r\n send(\"UNMOUNT\");\r\n }\r\n }\r\n prevPresentRef.current = present;\r\n }\r\n }, [present, send]);\r\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_2__.useLayoutEffect)(() => {\r\n if (node) {\r\n let timeoutId;\r\n const ownerWindow = node.ownerDocument.defaultView ?? window;\r\n const handleAnimationEnd = (event) => {\r\n const currentAnimationName = getAnimationName(stylesRef.current);\r\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\r\n if (event.target === node && isCurrentAnimation) {\r\n send(\"ANIMATION_END\");\r\n if (!prevPresentRef.current) {\r\n const currentFillMode = node.style.animationFillMode;\r\n node.style.animationFillMode = \"forwards\";\r\n timeoutId = ownerWindow.setTimeout(() => {\r\n if (node.style.animationFillMode === \"forwards\") {\r\n node.style.animationFillMode = currentFillMode;\r\n }\r\n });\r\n }\r\n }\r\n };\r\n const handleAnimationStart = (event) => {\r\n if (event.target === node) {\r\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\r\n }\r\n };\r\n node.addEventListener(\"animationstart\", handleAnimationStart);\r\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\r\n node.addEventListener(\"animationend\", handleAnimationEnd);\r\n return () => {\r\n ownerWindow.clearTimeout(timeoutId);\r\n node.removeEventListener(\"animationstart\", handleAnimationStart);\r\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\r\n node.removeEventListener(\"animationend\", handleAnimationEnd);\r\n };\r\n } else {\r\n send(\"ANIMATION_END\");\r\n }\r\n }, [node, send]);\r\n return {\r\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\r\n ref: react__WEBPACK_IMPORTED_MODULE_0__.useCallback((node2) => {\r\n if (node2) stylesRef.current = getComputedStyle(node2);\r\n setNode(node2);\r\n }, [])\r\n };\r\n}\r\nfunction getAnimationName(styles) {\r\n return styles?.animationName || \"none\";\r\n}\r\nfunction getElementRef(element) {\r\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\r\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\r\n if (mayWarn) {\r\n return element.ref;\r\n }\r\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\r\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\r\n if (mayWarn) {\r\n return element.props.ref;\r\n }\r\n return element.props.ref || element.ref;\r\n}\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2UvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNnQztBQUMrQjtBQUNLO0FBQ3BFO0FBQ0E7QUFDK0I7QUFDL0I7QUFDQSxTQUFTLDZDQUFnQjtBQUN6QjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxvQkFBb0I7QUFDOUI7QUFDQSw0REFBNEQsNkJBQTZCLElBQUksMkNBQWU7QUFDNUcsY0FBYyw2RUFBZTtBQUM3QjtBQUNBLDRDQUE0QywrQ0FBbUIsVUFBVSxLQUFLO0FBQzlFO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQiwyQ0FBZTtBQUN6QyxvQkFBb0IseUNBQWEsR0FBRztBQUNwQyx5QkFBeUIseUNBQWE7QUFDdEMsK0JBQStCLHlDQUFhO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxFQUFFLDRDQUFnQjtBQUNsQjtBQUNBO0FBQ0EsR0FBRztBQUNILEVBQUUsa0ZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxFQUFFLGtGQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLFNBQVMsOENBQWtCO0FBQzNCO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0U7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXByZXNlbmNlL2Rpc3QvaW5kZXgubWpzP2VkZTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcblxyXG4vLyBwYWNrYWdlcy9yZWFjdC9wcmVzZW5jZS9zcmMvUHJlc2VuY2UudHN4XHJcbmltcG9ydCAqIGFzIFJlYWN0MiBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnNcIjtcclxuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdFwiO1xyXG5cclxuLy8gcGFja2FnZXMvcmVhY3QvcHJlc2VuY2Uvc3JjL3VzZVN0YXRlTWFjaGluZS50c3hcclxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmZ1bmN0aW9uIHVzZVN0YXRlTWFjaGluZShpbml0aWFsU3RhdGUsIG1hY2hpbmUpIHtcclxuICByZXR1cm4gUmVhY3QudXNlUmVkdWNlcigoc3RhdGUsIGV2ZW50KSA9PiB7XHJcbiAgICBjb25zdCBuZXh0U3RhdGUgPSBtYWNoaW5lW3N0YXRlXVtldmVudF07XHJcbiAgICByZXR1cm4gbmV4dFN0YXRlID8/IHN0YXRlO1xyXG4gIH0sIGluaXRpYWxTdGF0ZSk7XHJcbn1cclxuXHJcbi8vIHBhY2thZ2VzL3JlYWN0L3ByZXNlbmNlL3NyYy9QcmVzZW5jZS50c3hcclxudmFyIFByZXNlbmNlID0gKHByb3BzKSA9PiB7XHJcbiAgY29uc3QgeyBwcmVzZW50LCBjaGlsZHJlbiB9ID0gcHJvcHM7XHJcbiAgY29uc3QgcHJlc2VuY2UgPSB1c2VQcmVzZW5jZShwcmVzZW50KTtcclxuICBjb25zdCBjaGlsZCA9IHR5cGVvZiBjaGlsZHJlbiA9PT0gXCJmdW5jdGlvblwiID8gY2hpbGRyZW4oeyBwcmVzZW50OiBwcmVzZW5jZS5pc1ByZXNlbnQgfSkgOiBSZWFjdDIuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XHJcbiAgY29uc3QgcmVmID0gdXNlQ29tcG9zZWRSZWZzKHByZXNlbmNlLnJlZiwgZ2V0RWxlbWVudFJlZihjaGlsZCkpO1xyXG4gIGNvbnN0IGZvcmNlTW91bnQgPSB0eXBlb2YgY2hpbGRyZW4gPT09IFwiZnVuY3Rpb25cIjtcclxuICByZXR1cm4gZm9yY2VNb3VudCB8fCBwcmVzZW5jZS5pc1ByZXNlbnQgPyBSZWFjdDIuY2xvbmVFbGVtZW50KGNoaWxkLCB7IHJlZiB9KSA6IG51bGw7XHJcbn07XHJcblByZXNlbmNlLmRpc3BsYXlOYW1lID0gXCJQcmVzZW5jZVwiO1xyXG5mdW5jdGlvbiB1c2VQcmVzZW5jZShwcmVzZW50KSB7XHJcbiAgY29uc3QgW25vZGUsIHNldE5vZGVdID0gUmVhY3QyLnVzZVN0YXRlKCk7XHJcbiAgY29uc3Qgc3R5bGVzUmVmID0gUmVhY3QyLnVzZVJlZih7fSk7XHJcbiAgY29uc3QgcHJldlByZXNlbnRSZWYgPSBSZWFjdDIudXNlUmVmKHByZXNlbnQpO1xyXG4gIGNvbnN0IHByZXZBbmltYXRpb25OYW1lUmVmID0gUmVhY3QyLnVzZVJlZihcIm5vbmVcIik7XHJcbiAgY29uc3QgaW5pdGlhbFN0YXRlID0gcHJlc2VudCA/IFwibW91bnRlZFwiIDogXCJ1bm1vdW50ZWRcIjtcclxuICBjb25zdCBbc3RhdGUsIHNlbmRdID0gdXNlU3RhdGVNYWNoaW5lKGluaXRpYWxTdGF0ZSwge1xyXG4gICAgbW91bnRlZDoge1xyXG4gICAgICBVTk1PVU5UOiBcInVubW91bnRlZFwiLFxyXG4gICAgICBBTklNQVRJT05fT1VUOiBcInVubW91bnRTdXNwZW5kZWRcIlxyXG4gICAgfSxcclxuICAgIHVubW91bnRTdXNwZW5kZWQ6IHtcclxuICAgICAgTU9VTlQ6IFwibW91bnRlZFwiLFxyXG4gICAgICBBTklNQVRJT05fRU5EOiBcInVubW91bnRlZFwiXHJcbiAgICB9LFxyXG4gICAgdW5tb3VudGVkOiB7XHJcbiAgICAgIE1PVU5UOiBcIm1vdW50ZWRcIlxyXG4gICAgfVxyXG4gIH0pO1xyXG4gIFJlYWN0Mi51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3QgY3VycmVudEFuaW1hdGlvbk5hbWUgPSBnZXRBbmltYXRpb25OYW1lKHN0eWxlc1JlZi5jdXJyZW50KTtcclxuICAgIHByZXZBbmltYXRpb25OYW1lUmVmLmN1cnJlbnQgPSBzdGF0ZSA9PT0gXCJtb3VudGVkXCIgPyBjdXJyZW50QW5pbWF0aW9uTmFtZSA6IFwibm9uZVwiO1xyXG4gIH0sIFtzdGF0ZV0pO1xyXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBzdHlsZXMgPSBzdHlsZXNSZWYuY3VycmVudDtcclxuICAgIGNvbnN0IHdhc1ByZXNlbnQgPSBwcmV2UHJlc2VudFJlZi5jdXJyZW50O1xyXG4gICAgY29uc3QgaGFzUHJlc2VudENoYW5nZWQgPSB3YXNQcmVzZW50ICE9PSBwcmVzZW50O1xyXG4gICAgaWYgKGhhc1ByZXNlbnRDaGFuZ2VkKSB7XHJcbiAgICAgIGNvbnN0IHByZXZBbmltYXRpb25OYW1lID0gcHJldkFuaW1hdGlvbk5hbWVSZWYuY3VycmVudDtcclxuICAgICAgY29uc3QgY3VycmVudEFuaW1hdGlvbk5hbWUgPSBnZXRBbmltYXRpb25OYW1lKHN0eWxlcyk7XHJcbiAgICAgIGlmIChwcmVzZW50KSB7XHJcbiAgICAgICAgc2VuZChcIk1PVU5UXCIpO1xyXG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRBbmltYXRpb25OYW1lID09PSBcIm5vbmVcIiB8fCBzdHlsZXM/LmRpc3BsYXkgPT09IFwibm9uZVwiKSB7XHJcbiAgICAgICAgc2VuZChcIlVOTU9VTlRcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgaXNBbmltYXRpbmcgPSBwcmV2QW5pbWF0aW9uTmFtZSAhPT0gY3VycmVudEFuaW1hdGlvbk5hbWU7XHJcbiAgICAgICAgaWYgKHdhc1ByZXNlbnQgJiYgaXNBbmltYXRpbmcpIHtcclxuICAgICAgICAgIHNlbmQoXCJBTklNQVRJT05fT1VUXCIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzZW5kKFwiVU5NT1VOVFwiKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcHJldlByZXNlbnRSZWYuY3VycmVudCA9IHByZXNlbnQ7XHJcbiAgICB9XHJcbiAgfSwgW3ByZXNlbnQsIHNlbmRdKTtcclxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKG5vZGUpIHtcclxuICAgICAgbGV0IHRpbWVvdXRJZDtcclxuICAgICAgY29uc3Qgb3duZXJXaW5kb3cgPSBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgPz8gd2luZG93O1xyXG4gICAgICBjb25zdCBoYW5kbGVBbmltYXRpb25FbmQgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCBjdXJyZW50QW5pbWF0aW9uTmFtZSA9IGdldEFuaW1hdGlvbk5hbWUoc3R5bGVzUmVmLmN1cnJlbnQpO1xyXG4gICAgICAgIGNvbnN0IGlzQ3VycmVudEFuaW1hdGlvbiA9IGN1cnJlbnRBbmltYXRpb25OYW1lLmluY2x1ZGVzKGV2ZW50LmFuaW1hdGlvbk5hbWUpO1xyXG4gICAgICAgIGlmIChldmVudC50YXJnZXQgPT09IG5vZGUgJiYgaXNDdXJyZW50QW5pbWF0aW9uKSB7XHJcbiAgICAgICAgICBzZW5kKFwiQU5JTUFUSU9OX0VORFwiKTtcclxuICAgICAgICAgIGlmICghcHJldlByZXNlbnRSZWYuY3VycmVudCkge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RmlsbE1vZGUgPSBub2RlLnN0eWxlLmFuaW1hdGlvbkZpbGxNb2RlO1xyXG4gICAgICAgICAgICBub2RlLnN0eWxlLmFuaW1hdGlvbkZpbGxNb2RlID0gXCJmb3J3YXJkc1wiO1xyXG4gICAgICAgICAgICB0aW1lb3V0SWQgPSBvd25lcldpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAobm9kZS5zdHlsZS5hbmltYXRpb25GaWxsTW9kZSA9PT0gXCJmb3J3YXJkc1wiKSB7XHJcbiAgICAgICAgICAgICAgICBub2RlLnN0eWxlLmFuaW1hdGlvbkZpbGxNb2RlID0gY3VycmVudEZpbGxNb2RlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBoYW5kbGVBbmltYXRpb25TdGFydCA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChldmVudC50YXJnZXQgPT09IG5vZGUpIHtcclxuICAgICAgICAgIHByZXZBbmltYXRpb25OYW1lUmVmLmN1cnJlbnQgPSBnZXRBbmltYXRpb25OYW1lKHN0eWxlc1JlZi5jdXJyZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihcImFuaW1hdGlvbnN0YXJ0XCIsIGhhbmRsZUFuaW1hdGlvblN0YXJ0KTtcclxuICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKFwiYW5pbWF0aW9uY2FuY2VsXCIsIGhhbmRsZUFuaW1hdGlvbkVuZCk7XHJcbiAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihcImFuaW1hdGlvbmVuZFwiLCBoYW5kbGVBbmltYXRpb25FbmQpO1xyXG4gICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgIG93bmVyV2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xyXG4gICAgICAgIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImFuaW1hdGlvbnN0YXJ0XCIsIGhhbmRsZUFuaW1hdGlvblN0YXJ0KTtcclxuICAgICAgICBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhbmltYXRpb25jYW5jZWxcIiwgaGFuZGxlQW5pbWF0aW9uRW5kKTtcclxuICAgICAgICBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhbmltYXRpb25lbmRcIiwgaGFuZGxlQW5pbWF0aW9uRW5kKTtcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlbmQoXCJBTklNQVRJT05fRU5EXCIpO1xyXG4gICAgfVxyXG4gIH0sIFtub2RlLCBzZW5kXSk7XHJcbiAgcmV0dXJuIHtcclxuICAgIGlzUHJlc2VudDogW1wibW91bnRlZFwiLCBcInVubW91bnRTdXNwZW5kZWRcIl0uaW5jbHVkZXMoc3RhdGUpLFxyXG4gICAgcmVmOiBSZWFjdDIudXNlQ2FsbGJhY2soKG5vZGUyKSA9PiB7XHJcbiAgICAgIGlmIChub2RlMikgc3R5bGVzUmVmLmN1cnJlbnQgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUyKTtcclxuICAgICAgc2V0Tm9kZShub2RlMik7XHJcbiAgICB9LCBbXSlcclxuICB9O1xyXG59XHJcbmZ1bmN0aW9uIGdldEFuaW1hdGlvbk5hbWUoc3R5bGVzKSB7XHJcbiAgcmV0dXJuIHN0eWxlcz8uYW5pbWF0aW9uTmFtZSB8fCBcIm5vbmVcIjtcclxufVxyXG5mdW5jdGlvbiBnZXRFbGVtZW50UmVmKGVsZW1lbnQpIHtcclxuICBsZXQgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LnByb3BzLCBcInJlZlwiKT8uZ2V0O1xyXG4gIGxldCBtYXlXYXJuID0gZ2V0dGVyICYmIFwiaXNSZWFjdFdhcm5pbmdcIiBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xyXG4gIGlmIChtYXlXYXJuKSB7XHJcbiAgICByZXR1cm4gZWxlbWVudC5yZWY7XHJcbiAgfVxyXG4gIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudCwgXCJyZWZcIik/LmdldDtcclxuICBtYXlXYXJuID0gZ2V0dGVyICYmIFwiaXNSZWFjdFdhcm5pbmdcIiBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xyXG4gIGlmIChtYXlXYXJuKSB7XHJcbiAgICByZXR1cm4gZWxlbWVudC5wcm9wcy5yZWY7XHJcbiAgfVxyXG4gIHJldHVybiBlbGVtZW50LnByb3BzLnJlZiB8fCBlbGVtZW50LnJlZjtcclxufVxyXG5leHBvcnQge1xyXG4gIFByZXNlbmNlXHJcbn07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-primitive/dist/index.mjs ***!
|
||
\***************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitive: function() { return /* binding */ Primitive; },\n/* harmony export */ Root: function() { return /* binding */ Root; },\n/* harmony export */ dispatchDiscreteCustomEvent: function() { return /* binding */ dispatchDiscreteCustomEvent; }\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_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/primitive/src/Primitive.tsx\r\n\r\n\r\n\r\n\r\nvar NODES = [\r\n \"a\",\r\n \"button\",\r\n \"div\",\r\n \"form\",\r\n \"h2\",\r\n \"h3\",\r\n \"img\",\r\n \"input\",\r\n \"label\",\r\n \"li\",\r\n \"nav\",\r\n \"ol\",\r\n \"p\",\r\n \"span\",\r\n \"svg\",\r\n \"ul\"\r\n];\r\nvar Primitive = NODES.reduce((primitive, node) => {\r\n const Node = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\r\n const { asChild, ...primitiveProps } = props;\r\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__.Slot : node;\r\n if (typeof window !== \"undefined\") {\r\n window[Symbol.for(\"radix-ui\")] = true;\r\n }\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });\r\n });\r\n Node.displayName = `Primitive.${node}`;\r\n return { ...primitive, [node]: Node };\r\n}, {});\r\nfunction dispatchDiscreteCustomEvent(target, event) {\r\n if (target) react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync(() => target.dispatchEvent(event));\r\n}\r\nvar Root = Primitive;\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUNPO0FBQ007QUFDSjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsNkNBQWdCO0FBQy9CLFlBQVksNkJBQTZCO0FBQ3pDLDJCQUEyQixzREFBSTtBQUMvQjtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsc0RBQUcsU0FBUyxzQ0FBc0M7QUFDN0UsR0FBRztBQUNILGtDQUFrQyxLQUFLO0FBQ3ZDLFdBQVc7QUFDWCxDQUFDLElBQUk7QUFDTDtBQUNBLGNBQWMsZ0RBQWtCO0FBQ2hDO0FBQ0E7QUFLRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzP2M4NjYiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvcHJpbWl0aXZlL3NyYy9QcmltaXRpdmUudHN4XHJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XHJcbmltcG9ydCB7IFNsb3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXNsb3RcIjtcclxuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XHJcbnZhciBOT0RFUyA9IFtcclxuICBcImFcIixcclxuICBcImJ1dHRvblwiLFxyXG4gIFwiZGl2XCIsXHJcbiAgXCJmb3JtXCIsXHJcbiAgXCJoMlwiLFxyXG4gIFwiaDNcIixcclxuICBcImltZ1wiLFxyXG4gIFwiaW5wdXRcIixcclxuICBcImxhYmVsXCIsXHJcbiAgXCJsaVwiLFxyXG4gIFwibmF2XCIsXHJcbiAgXCJvbFwiLFxyXG4gIFwicFwiLFxyXG4gIFwic3BhblwiLFxyXG4gIFwic3ZnXCIsXHJcbiAgXCJ1bFwiXHJcbl07XHJcbnZhciBQcmltaXRpdmUgPSBOT0RFUy5yZWR1Y2UoKHByaW1pdGl2ZSwgbm9kZSkgPT4ge1xyXG4gIGNvbnN0IE5vZGUgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGFzQ2hpbGQsIC4uLnByaW1pdGl2ZVByb3BzIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IENvbXAgPSBhc0NoaWxkID8gU2xvdCA6IG5vZGU7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICB3aW5kb3dbU3ltYm9sLmZvcihcInJhZGl4LXVpXCIpXSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChDb21wLCB7IC4uLnByaW1pdGl2ZVByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KTtcclxuICB9KTtcclxuICBOb2RlLmRpc3BsYXlOYW1lID0gYFByaW1pdGl2ZS4ke25vZGV9YDtcclxuICByZXR1cm4geyAuLi5wcmltaXRpdmUsIFtub2RlXTogTm9kZSB9O1xyXG59LCB7fSk7XHJcbmZ1bmN0aW9uIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCh0YXJnZXQsIGV2ZW50KSB7XHJcbiAgaWYgKHRhcmdldCkgUmVhY3RET00uZmx1c2hTeW5jKCgpID0+IHRhcmdldC5kaXNwYXRjaEV2ZW50KGV2ZW50KSk7XHJcbn1cclxudmFyIFJvb3QgPSBQcmltaXRpdmU7XHJcbmV4cG9ydCB7XHJcbiAgUHJpbWl0aXZlLFxyXG4gIFJvb3QsXHJcbiAgZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50XHJcbn07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-slot/dist/index.mjs ***!
|
||
\**********************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: function() { return /* binding */ Root; },\n/* harmony export */ Slot: function() { return /* binding */ Slot; },\n/* harmony export */ Slottable: function() { return /* binding */ Slottable; }\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 _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/slot/src/Slot.tsx\r\n\r\n\r\n\r\nvar Slot = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\r\n const { children, ...slotProps } = props;\r\n const childrenArray = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(children);\r\n const slottable = childrenArray.find(isSlottable);\r\n if (slottable) {\r\n const newElement = slottable.props.children;\r\n const newChildren = childrenArray.map((child) => {\r\n if (child === slottable) {\r\n if (react__WEBPACK_IMPORTED_MODULE_0__.Children.count(newElement) > 1) return react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null);\r\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? newElement.props.children : null;\r\n } else {\r\n return child;\r\n }\r\n });\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(newElement, void 0, newChildren) : null });\r\n }\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });\r\n});\r\nSlot.displayName = \"Slot\";\r\nvar SlotClone = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\r\n const { children, ...slotProps } = props;\r\n if (react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children)) {\r\n const childrenRef = getElementRef(children);\r\n return react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, {\r\n ...mergeProps(slotProps, children.props),\r\n // @ts-ignore\r\n ref: forwardedRef ? (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.composeRefs)(forwardedRef, childrenRef) : childrenRef\r\n });\r\n }\r\n return react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) > 1 ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null) : null;\r\n});\r\nSlotClone.displayName = \"SlotClone\";\r\nvar Slottable = ({ children }) => {\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children });\r\n};\r\nfunction isSlottable(child) {\r\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(child) && child.type === Slottable;\r\n}\r\nfunction mergeProps(slotProps, childProps) {\r\n const overrideProps = { ...childProps };\r\n for (const propName in childProps) {\r\n const slotPropValue = slotProps[propName];\r\n const childPropValue = childProps[propName];\r\n const isHandler = /^on[A-Z]/.test(propName);\r\n if (isHandler) {\r\n if (slotPropValue && childPropValue) {\r\n overrideProps[propName] = (...args) => {\r\n childPropValue(...args);\r\n slotPropValue(...args);\r\n };\r\n } else if (slotPropValue) {\r\n overrideProps[propName] = slotPropValue;\r\n }\r\n } else if (propName === \"style\") {\r\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\r\n } else if (propName === \"className\") {\r\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\r\n }\r\n }\r\n return { ...slotProps, ...overrideProps };\r\n}\r\nfunction getElementRef(element) {\r\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\r\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\r\n if (mayWarn) {\r\n return element.ref;\r\n }\r\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\r\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\r\n if (mayWarn) {\r\n return element.props.ref;\r\n }\r\n return element.props.ref || element.ref;\r\n}\r\nvar Root = Slot;\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2xvdC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUM0QjtBQUNUO0FBQ2xELFdBQVcsNkNBQWdCO0FBQzNCLFVBQVUseUJBQXlCO0FBQ25DLHdCQUF3QiwyQ0FBYztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSwyQ0FBYywrQkFBK0IsMkNBQWM7QUFDdkUsZUFBZSxpREFBb0I7QUFDbkMsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsMkJBQTJCLHNEQUFHLGNBQWMsMkNBQTJDLGlEQUFvQixlQUFlLCtDQUFrQiwwQ0FBMEM7QUFDdEw7QUFDQSx5QkFBeUIsc0RBQUcsY0FBYywyQ0FBMkM7QUFDckYsQ0FBQztBQUNEO0FBQ0EsZ0JBQWdCLDZDQUFnQjtBQUNoQyxVQUFVLHlCQUF5QjtBQUNuQyxNQUFNLGlEQUFvQjtBQUMxQjtBQUNBLFdBQVcsK0NBQWtCO0FBQzdCO0FBQ0E7QUFDQSwwQkFBMEIseUVBQVc7QUFDckMsS0FBSztBQUNMO0FBQ0EsU0FBUywyQ0FBYyx1QkFBdUIsMkNBQWM7QUFDNUQsQ0FBQztBQUNEO0FBQ0EsbUJBQW1CLFVBQVU7QUFDN0IseUJBQXlCLHNEQUFHLENBQUMsdURBQVEsSUFBSSxVQUFVO0FBQ25EO0FBQ0E7QUFDQSxTQUFTLGlEQUFvQjtBQUM3QjtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0NBQWtDO0FBQ2xDLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0U7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanM/NWVhMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9zbG90L3NyYy9TbG90LnRzeFxyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgY29tcG9zZVJlZnMgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xyXG5pbXBvcnQgeyBGcmFnbWVudCwganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XHJcbnZhciBTbG90ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gIGNvbnN0IHsgY2hpbGRyZW4sIC4uLnNsb3RQcm9wcyB9ID0gcHJvcHM7XHJcbiAgY29uc3QgY2hpbGRyZW5BcnJheSA9IFJlYWN0LkNoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pO1xyXG4gIGNvbnN0IHNsb3R0YWJsZSA9IGNoaWxkcmVuQXJyYXkuZmluZChpc1Nsb3R0YWJsZSk7XHJcbiAgaWYgKHNsb3R0YWJsZSkge1xyXG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHNsb3R0YWJsZS5wcm9wcy5jaGlsZHJlbjtcclxuICAgIGNvbnN0IG5ld0NoaWxkcmVuID0gY2hpbGRyZW5BcnJheS5tYXAoKGNoaWxkKSA9PiB7XHJcbiAgICAgIGlmIChjaGlsZCA9PT0gc2xvdHRhYmxlKSB7XHJcbiAgICAgICAgaWYgKFJlYWN0LkNoaWxkcmVuLmNvdW50KG5ld0VsZW1lbnQpID4gMSkgcmV0dXJuIFJlYWN0LkNoaWxkcmVuLm9ubHkobnVsbCk7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmlzVmFsaWRFbGVtZW50KG5ld0VsZW1lbnQpID8gbmV3RWxlbWVudC5wcm9wcy5jaGlsZHJlbiA6IG51bGw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGNoaWxkO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFNsb3RDbG9uZSwgeyAuLi5zbG90UHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmLCBjaGlsZHJlbjogUmVhY3QuaXNWYWxpZEVsZW1lbnQobmV3RWxlbWVudCkgPyBSZWFjdC5jbG9uZUVsZW1lbnQobmV3RWxlbWVudCwgdm9pZCAwLCBuZXdDaGlsZHJlbikgOiBudWxsIH0pO1xyXG4gIH1cclxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTbG90Q2xvbmUsIHsgLi4uc2xvdFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiwgY2hpbGRyZW4gfSk7XHJcbn0pO1xyXG5TbG90LmRpc3BsYXlOYW1lID0gXCJTbG90XCI7XHJcbnZhciBTbG90Q2xvbmUgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgY29uc3QgeyBjaGlsZHJlbiwgLi4uc2xvdFByb3BzIH0gPSBwcm9wcztcclxuICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pKSB7XHJcbiAgICBjb25zdCBjaGlsZHJlblJlZiA9IGdldEVsZW1lbnRSZWYoY2hpbGRyZW4pO1xyXG4gICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZHJlbiwge1xyXG4gICAgICAuLi5tZXJnZVByb3BzKHNsb3RQcm9wcywgY2hpbGRyZW4ucHJvcHMpLFxyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIHJlZjogZm9yd2FyZGVkUmVmID8gY29tcG9zZVJlZnMoZm9yd2FyZGVkUmVmLCBjaGlsZHJlblJlZikgOiBjaGlsZHJlblJlZlxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJldHVybiBSZWFjdC5DaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAxID8gUmVhY3QuQ2hpbGRyZW4ub25seShudWxsKSA6IG51bGw7XHJcbn0pO1xyXG5TbG90Q2xvbmUuZGlzcGxheU5hbWUgPSBcIlNsb3RDbG9uZVwiO1xyXG52YXIgU2xvdHRhYmxlID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xyXG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KEZyYWdtZW50LCB7IGNoaWxkcmVuIH0pO1xyXG59O1xyXG5mdW5jdGlvbiBpc1Nsb3R0YWJsZShjaGlsZCkge1xyXG4gIHJldHVybiBSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkgJiYgY2hpbGQudHlwZSA9PT0gU2xvdHRhYmxlO1xyXG59XHJcbmZ1bmN0aW9uIG1lcmdlUHJvcHMoc2xvdFByb3BzLCBjaGlsZFByb3BzKSB7XHJcbiAgY29uc3Qgb3ZlcnJpZGVQcm9wcyA9IHsgLi4uY2hpbGRQcm9wcyB9O1xyXG4gIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gY2hpbGRQcm9wcykge1xyXG4gICAgY29uc3Qgc2xvdFByb3BWYWx1ZSA9IHNsb3RQcm9wc1twcm9wTmFtZV07XHJcbiAgICBjb25zdCBjaGlsZFByb3BWYWx1ZSA9IGNoaWxkUHJvcHNbcHJvcE5hbWVdO1xyXG4gICAgY29uc3QgaXNIYW5kbGVyID0gL15vbltBLVpdLy50ZXN0KHByb3BOYW1lKTtcclxuICAgIGlmIChpc0hhbmRsZXIpIHtcclxuICAgICAgaWYgKHNsb3RQcm9wVmFsdWUgJiYgY2hpbGRQcm9wVmFsdWUpIHtcclxuICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgICAgICBjaGlsZFByb3BWYWx1ZSguLi5hcmdzKTtcclxuICAgICAgICAgIHNsb3RQcm9wVmFsdWUoLi4uYXJncyk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIGlmIChzbG90UHJvcFZhbHVlKSB7XHJcbiAgICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSBzbG90UHJvcFZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcInN0eWxlXCIpIHtcclxuICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSB7IC4uLnNsb3RQcm9wVmFsdWUsIC4uLmNoaWxkUHJvcFZhbHVlIH07XHJcbiAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcImNsYXNzTmFtZVwiKSB7XHJcbiAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gW3Nsb3RQcm9wVmFsdWUsIGNoaWxkUHJvcFZhbHVlXS5maWx0ZXIoQm9vbGVhbikuam9pbihcIiBcIik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB7IC4uLnNsb3RQcm9wcywgLi4ub3ZlcnJpZGVQcm9wcyB9O1xyXG59XHJcbmZ1bmN0aW9uIGdldEVsZW1lbnRSZWYoZWxlbWVudCkge1xyXG4gIGxldCBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQucHJvcHMsIFwicmVmXCIpPy5nZXQ7XHJcbiAgbGV0IG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XHJcbiAgaWYgKG1heVdhcm4pIHtcclxuICAgIHJldHVybiBlbGVtZW50LnJlZjtcclxuICB9XHJcbiAgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LCBcInJlZlwiKT8uZ2V0O1xyXG4gIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XHJcbiAgaWYgKG1heVdhcm4pIHtcclxuICAgIHJldHVybiBlbGVtZW50LnByb3BzLnJlZjtcclxuICB9XHJcbiAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmIHx8IGVsZW1lbnQucmVmO1xyXG59XHJcbnZhciBSb290ID0gU2xvdDtcclxuZXhwb3J0IHtcclxuICBSb290LFxyXG4gIFNsb3QsXHJcbiAgU2xvdHRhYmxlXHJcbn07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-tooltip/dist/index.mjs":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-tooltip/dist/index.mjs ***!
|
||
\*************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Arrow: function() { return /* binding */ Arrow2; },\n/* harmony export */ Content: function() { return /* binding */ Content2; },\n/* harmony export */ Portal: function() { return /* binding */ Portal; },\n/* harmony export */ Provider: function() { return /* binding */ Provider; },\n/* harmony export */ Root: function() { return /* binding */ Root3; },\n/* harmony export */ Tooltip: function() { return /* binding */ Tooltip; },\n/* harmony export */ TooltipArrow: function() { return /* binding */ TooltipArrow; },\n/* harmony export */ TooltipContent: function() { return /* binding */ TooltipContent; },\n/* harmony export */ TooltipPortal: function() { return /* binding */ TooltipPortal; },\n/* harmony export */ TooltipProvider: function() { return /* binding */ TooltipProvider; },\n/* harmony export */ TooltipTrigger: function() { return /* binding */ TooltipTrigger; },\n/* harmony export */ Trigger: function() { return /* binding */ Trigger; },\n/* harmony export */ createTooltipScope: function() { return /* binding */ createTooltipScope; }\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 _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @radix-ui/react-dismissable-layer */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-popper */ \"(app-pages-browser)/./node_modules/@radix-ui/react-popper/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-portal */ \"(app-pages-browser)/./node_modules/@radix-ui/react-portal/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_visually_hidden__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @radix-ui/react-visually-hidden */ \"(app-pages-browser)/./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n\"use client\";\r\n\r\n// packages/react/tooltip/src/Tooltip.tsx\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar [createTooltipContext, createTooltipScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(\"Tooltip\", [\r\n _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.createPopperScope\r\n]);\r\nvar usePopperScope = (0,_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.createPopperScope)();\r\nvar PROVIDER_NAME = \"TooltipProvider\";\r\nvar DEFAULT_DELAY_DURATION = 700;\r\nvar TOOLTIP_OPEN = \"tooltip.open\";\r\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\r\nvar TooltipProvider = (props) => {\r\n const {\r\n __scopeTooltip,\r\n delayDuration = DEFAULT_DELAY_DURATION,\r\n skipDelayDuration = 300,\r\n disableHoverableContent = false,\r\n children\r\n } = props;\r\n const [isOpenDelayed, setIsOpenDelayed] = react__WEBPACK_IMPORTED_MODULE_0__.useState(true);\r\n const isPointerInTransitRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\r\n const skipDelayTimerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n const skipDelayTimer = skipDelayTimerRef.current;\r\n return () => window.clearTimeout(skipDelayTimer);\r\n }, []);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n TooltipProviderContextProvider,\r\n {\r\n scope: __scopeTooltip,\r\n isOpenDelayed,\r\n delayDuration,\r\n onOpen: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(() => {\r\n window.clearTimeout(skipDelayTimerRef.current);\r\n setIsOpenDelayed(false);\r\n }, []),\r\n onClose: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(() => {\r\n window.clearTimeout(skipDelayTimerRef.current);\r\n skipDelayTimerRef.current = window.setTimeout(\r\n () => setIsOpenDelayed(true),\r\n skipDelayDuration\r\n );\r\n }, [skipDelayDuration]),\r\n isPointerInTransitRef,\r\n onPointerInTransitChange: react__WEBPACK_IMPORTED_MODULE_0__.useCallback((inTransit) => {\r\n isPointerInTransitRef.current = inTransit;\r\n }, []),\r\n disableHoverableContent,\r\n children\r\n }\r\n );\r\n};\r\nTooltipProvider.displayName = PROVIDER_NAME;\r\nvar TOOLTIP_NAME = \"Tooltip\";\r\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\r\nvar Tooltip = (props) => {\r\n const {\r\n __scopeTooltip,\r\n children,\r\n open: openProp,\r\n defaultOpen = false,\r\n onOpenChange,\r\n disableHoverableContent: disableHoverableContentProp,\r\n delayDuration: delayDurationProp\r\n } = props;\r\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\r\n const popperScope = usePopperScope(__scopeTooltip);\r\n const [trigger, setTrigger] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\r\n const contentId = (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)();\r\n const openTimerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\r\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\r\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\r\n const wasOpenDelayedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\r\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_5__.useControllableState)({\r\n prop: openProp,\r\n defaultProp: defaultOpen,\r\n onChange: (open2) => {\r\n if (open2) {\r\n providerContext.onOpen();\r\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\r\n } else {\r\n providerContext.onClose();\r\n }\r\n onOpenChange?.(open2);\r\n }\r\n });\r\n const stateAttribute = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\r\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\r\n }, [open]);\r\n const handleOpen = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(() => {\r\n window.clearTimeout(openTimerRef.current);\r\n wasOpenDelayedRef.current = false;\r\n setOpen(true);\r\n }, [setOpen]);\r\n const handleClose = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(() => {\r\n window.clearTimeout(openTimerRef.current);\r\n setOpen(false);\r\n }, [setOpen]);\r\n const handleDelayedOpen = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(() => {\r\n window.clearTimeout(openTimerRef.current);\r\n openTimerRef.current = window.setTimeout(() => {\r\n wasOpenDelayedRef.current = true;\r\n setOpen(true);\r\n }, delayDuration);\r\n }, [delayDuration, setOpen]);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n return () => window.clearTimeout(openTimerRef.current);\r\n }, []);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.Root, { ...popperScope, children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n TooltipContextProvider,\r\n {\r\n scope: __scopeTooltip,\r\n contentId,\r\n open,\r\n stateAttribute,\r\n trigger,\r\n onTriggerChange: setTrigger,\r\n onTriggerEnter: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(() => {\r\n if (providerContext.isOpenDelayed) handleDelayedOpen();\r\n else handleOpen();\r\n }, [providerContext.isOpenDelayed, handleDelayedOpen, handleOpen]),\r\n onTriggerLeave: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(() => {\r\n if (disableHoverableContent) {\r\n handleClose();\r\n } else {\r\n window.clearTimeout(openTimerRef.current);\r\n }\r\n }, [handleClose, disableHoverableContent]),\r\n onOpen: handleOpen,\r\n onClose: handleClose,\r\n disableHoverableContent,\r\n children\r\n }\r\n ) });\r\n};\r\nTooltip.displayName = TOOLTIP_NAME;\r\nvar TRIGGER_NAME = \"TooltipTrigger\";\r\nvar TooltipTrigger = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\r\n (props, forwardedRef) => {\r\n const { __scopeTooltip, ...triggerProps } = props;\r\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\r\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\r\n const popperScope = usePopperScope(__scopeTooltip);\r\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\r\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__.useComposedRefs)(forwardedRef, ref, context.onTriggerChange);\r\n const isPointerDownRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\r\n const hasPointerMoveOpenedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\r\n const handlePointerUp = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(() => isPointerDownRef.current = false, []);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\r\n }, [handlePointerUp]);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__.Primitive.button,\r\n {\r\n \"aria-describedby\": context.open ? context.contentId : void 0,\r\n \"data-state\": context.stateAttribute,\r\n ...triggerProps,\r\n ref: composedRefs,\r\n onPointerMove: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onPointerMove, (event) => {\r\n if (event.pointerType === \"touch\") return;\r\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\r\n context.onTriggerEnter();\r\n hasPointerMoveOpenedRef.current = true;\r\n }\r\n }),\r\n onPointerLeave: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onPointerLeave, () => {\r\n context.onTriggerLeave();\r\n hasPointerMoveOpenedRef.current = false;\r\n }),\r\n onPointerDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onPointerDown, () => {\r\n isPointerDownRef.current = true;\r\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\r\n }),\r\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onFocus, () => {\r\n if (!isPointerDownRef.current) context.onOpen();\r\n }),\r\n onBlur: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onBlur, context.onClose),\r\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onClick, context.onClose)\r\n }\r\n ) });\r\n }\r\n);\r\nTooltipTrigger.displayName = TRIGGER_NAME;\r\nvar PORTAL_NAME = \"TooltipPortal\";\r\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\r\n forceMount: void 0\r\n});\r\nvar TooltipPortal = (props) => {\r\n const { __scopeTooltip, forceMount, children, container } = props;\r\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_9__.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_10__.Portal, { asChild: true, container, children }) }) });\r\n};\r\nTooltipPortal.displayName = PORTAL_NAME;\r\nvar CONTENT_NAME = \"TooltipContent\";\r\nvar TooltipContent = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\r\n (props, forwardedRef) => {\r\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\r\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\r\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_9__.Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\r\n }\r\n);\r\nvar TooltipContentHoverable = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\r\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\r\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\r\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\r\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__.useComposedRefs)(forwardedRef, ref);\r\n const [pointerGraceArea, setPointerGraceArea] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\r\n const { trigger, onClose } = context;\r\n const content = ref.current;\r\n const { onPointerInTransitChange } = providerContext;\r\n const handleRemoveGraceArea = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(() => {\r\n setPointerGraceArea(null);\r\n onPointerInTransitChange(false);\r\n }, [onPointerInTransitChange]);\r\n const handleCreateGraceArea = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(\r\n (event, hoverTarget) => {\r\n const currentTarget = event.currentTarget;\r\n const exitPoint = { x: event.clientX, y: event.clientY };\r\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\r\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\r\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\r\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\r\n setPointerGraceArea(graceArea);\r\n onPointerInTransitChange(true);\r\n },\r\n [onPointerInTransitChange]\r\n );\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n return () => handleRemoveGraceArea();\r\n }, [handleRemoveGraceArea]);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n if (trigger && content) {\r\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\r\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\r\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\r\n content.addEventListener(\"pointerleave\", handleContentLeave);\r\n return () => {\r\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\r\n content.removeEventListener(\"pointerleave\", handleContentLeave);\r\n };\r\n }\r\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n if (pointerGraceArea) {\r\n const handleTrackPointerGrace = (event) => {\r\n const target = event.target;\r\n const pointerPosition = { x: event.clientX, y: event.clientY };\r\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\r\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\r\n if (hasEnteredTarget) {\r\n handleRemoveGraceArea();\r\n } else if (isPointerOutsideGraceArea) {\r\n handleRemoveGraceArea();\r\n onClose();\r\n }\r\n };\r\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\r\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\r\n }\r\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TooltipContentImpl, { ...props, ref: composedRefs });\r\n});\r\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\r\nvar TooltipContentImpl = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\r\n (props, forwardedRef) => {\r\n const {\r\n __scopeTooltip,\r\n children,\r\n \"aria-label\": ariaLabel,\r\n onEscapeKeyDown,\r\n onPointerDownOutside,\r\n ...contentProps\r\n } = props;\r\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\r\n const popperScope = usePopperScope(__scopeTooltip);\r\n const { onClose } = context;\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n document.addEventListener(TOOLTIP_OPEN, onClose);\r\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\r\n }, [onClose]);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n if (context.trigger) {\r\n const handleScroll = (event) => {\r\n const target = event.target;\r\n if (target?.contains(context.trigger)) onClose();\r\n };\r\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\r\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\r\n }\r\n }, [context.trigger, onClose]);\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n _radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_11__.DismissableLayer,\r\n {\r\n asChild: true,\r\n disableOutsidePointerEvents: false,\r\n onEscapeKeyDown,\r\n onPointerDownOutside,\r\n onFocusOutside: (event) => event.preventDefault(),\r\n onDismiss: onClose,\r\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(\r\n _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.Content,\r\n {\r\n \"data-state\": context.stateAttribute,\r\n ...popperScope,\r\n ...contentProps,\r\n ref: forwardedRef,\r\n style: {\r\n ...contentProps.style,\r\n // re-namespace exposed content custom properties\r\n ...{\r\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\r\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\r\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\r\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\r\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\r\n }\r\n },\r\n children: [\r\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_12__.Slottable, { children }),\r\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_visually_hidden__WEBPACK_IMPORTED_MODULE_13__.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\r\n ]\r\n }\r\n )\r\n }\r\n );\r\n }\r\n);\r\nTooltipContent.displayName = CONTENT_NAME;\r\nvar ARROW_NAME = \"TooltipArrow\";\r\nvar TooltipArrow = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\r\n (props, forwardedRef) => {\r\n const { __scopeTooltip, ...arrowProps } = props;\r\n const popperScope = usePopperScope(__scopeTooltip);\r\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\r\n ARROW_NAME,\r\n __scopeTooltip\r\n );\r\n return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\r\n }\r\n);\r\nTooltipArrow.displayName = ARROW_NAME;\r\nfunction getExitSideFromRect(point, rect) {\r\n const top = Math.abs(rect.top - point.y);\r\n const bottom = Math.abs(rect.bottom - point.y);\r\n const right = Math.abs(rect.right - point.x);\r\n const left = Math.abs(rect.left - point.x);\r\n switch (Math.min(top, bottom, right, left)) {\r\n case left:\r\n return \"left\";\r\n case right:\r\n return \"right\";\r\n case top:\r\n return \"top\";\r\n case bottom:\r\n return \"bottom\";\r\n default:\r\n throw new Error(\"unreachable\");\r\n }\r\n}\r\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\r\n const paddedExitPoints = [];\r\n switch (exitSide) {\r\n case \"top\":\r\n paddedExitPoints.push(\r\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\r\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\r\n );\r\n break;\r\n case \"bottom\":\r\n paddedExitPoints.push(\r\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\r\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\r\n );\r\n break;\r\n case \"left\":\r\n paddedExitPoints.push(\r\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\r\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\r\n );\r\n break;\r\n case \"right\":\r\n paddedExitPoints.push(\r\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\r\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\r\n );\r\n break;\r\n }\r\n return paddedExitPoints;\r\n}\r\nfunction getPointsFromRect(rect) {\r\n const { top, right, bottom, left } = rect;\r\n return [\r\n { x: left, y: top },\r\n { x: right, y: top },\r\n { x: right, y: bottom },\r\n { x: left, y: bottom }\r\n ];\r\n}\r\nfunction isPointInPolygon(point, polygon) {\r\n const { x, y } = point;\r\n let inside = false;\r\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\r\n const xi = polygon[i].x;\r\n const yi = polygon[i].y;\r\n const xj = polygon[j].x;\r\n const yj = polygon[j].y;\r\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\r\n if (intersect) inside = !inside;\r\n }\r\n return inside;\r\n}\r\nfunction getHull(points) {\r\n const newPoints = points.slice();\r\n newPoints.sort((a, b) => {\r\n if (a.x < b.x) return -1;\r\n else if (a.x > b.x) return 1;\r\n else if (a.y < b.y) return -1;\r\n else if (a.y > b.y) return 1;\r\n else return 0;\r\n });\r\n return getHullPresorted(newPoints);\r\n}\r\nfunction getHullPresorted(points) {\r\n if (points.length <= 1) return points.slice();\r\n const upperHull = [];\r\n for (let i = 0; i < points.length; i++) {\r\n const p = points[i];\r\n while (upperHull.length >= 2) {\r\n const q = upperHull[upperHull.length - 1];\r\n const r = upperHull[upperHull.length - 2];\r\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\r\n else break;\r\n }\r\n upperHull.push(p);\r\n }\r\n upperHull.pop();\r\n const lowerHull = [];\r\n for (let i = points.length - 1; i >= 0; i--) {\r\n const p = points[i];\r\n while (lowerHull.length >= 2) {\r\n const q = lowerHull[lowerHull.length - 1];\r\n const r = lowerHull[lowerHull.length - 2];\r\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\r\n else break;\r\n }\r\n lowerHull.push(p);\r\n }\r\n lowerHull.pop();\r\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\r\n return upperHull;\r\n } else {\r\n return upperHull.concat(lowerHull);\r\n }\r\n}\r\nvar Provider = TooltipProvider;\r\nvar Root3 = Tooltip;\r\nvar Trigger = TooltipTrigger;\r\nvar Portal = TooltipPortal;\r\nvar Content2 = TooltipContent;\r\nvar Arrow2 = TooltipArrow;\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdG9vbHRpcC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDK0I7QUFDNEI7QUFDSTtBQUNGO0FBQ1E7QUFDMUI7QUFDZTtBQUNDO0FBQ1E7QUFDZjtBQUNFO0FBQ0w7QUFDNkI7QUFDSDtBQUM3QjtBQUM5QyxpREFBaUQsMkVBQWtCO0FBQ25FLEVBQUUscUVBQWlCO0FBQ25CO0FBQ0EscUJBQXFCLHlFQUFpQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLDRDQUE0QywyQ0FBYztBQUMxRCxnQ0FBZ0MseUNBQVk7QUFDNUMsNEJBQTRCLHlDQUFZO0FBQ3hDLEVBQUUsNENBQWU7QUFDakI7QUFDQTtBQUNBLEdBQUc7QUFDSCx5QkFBeUIsc0RBQUc7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsOENBQWlCO0FBQy9CO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsZUFBZSw4Q0FBaUI7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLGdDQUFnQyw4Q0FBaUI7QUFDakQ7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsZ0NBQWdDLDJDQUFjO0FBQzlDLG9CQUFvQix5REFBSztBQUN6Qix1QkFBdUIseUNBQVk7QUFDbkM7QUFDQTtBQUNBLDRCQUE0Qix5Q0FBWTtBQUN4QyxrQ0FBa0MsNEZBQW9CO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFD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QW9EO0FBQzlELFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsb0RBQW9EO0FBQzlELFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsb0RBQW9EO0FBQzlELFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsb0RBQW9EO0FBQzlELFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLDJCQUEyQjtBQUNyQztBQUNBLE1BQU0saUJBQWlCO0FBQ3ZCLE1BQU0sa0JBQWtCO0FBQ3hCLE1BQU0scUJBQXFCO0FBQzNCLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxVQUFVLE9BQU87QUFDakI7QUFDQSwwQ0FBMEMsb0JBQW9CO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixtQkFBbUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxRQUFRO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFlRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdG9vbHRpcC9kaXN0L2luZGV4Lm1qcz9jZmY1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5cclxuLy8gcGFja2FnZXMvcmVhY3QvdG9vbHRpcC9zcmMvVG9vbHRpcC50c3hcclxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSBcIkByYWRpeC11aS9wcmltaXRpdmVcIjtcclxuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnNcIjtcclxuaW1wb3J0IHsgY3JlYXRlQ29udGV4dFNjb3BlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1jb250ZXh0XCI7XHJcbmltcG9ydCB7IERpc21pc3NhYmxlTGF5ZXIgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyXCI7XHJcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1pZFwiO1xyXG5pbXBvcnQgKiBhcyBQb3BwZXJQcmltaXRpdmUgZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wb3BwZXJcIjtcclxuaW1wb3J0IHsgY3JlYXRlUG9wcGVyU2NvcGUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXBvcHBlclwiO1xyXG5pbXBvcnQgeyBQb3J0YWwgYXMgUG9ydGFsUHJpbWl0aXZlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wb3J0YWxcIjtcclxuaW1wb3J0IHsgUHJlc2VuY2UgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByZXNlbmNlXCI7XHJcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XHJcbmltcG9ydCB7IFNsb3R0YWJsZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtc2xvdFwiO1xyXG5pbXBvcnQgeyB1c2VDb250cm9sbGFibGVTdGF0ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZVwiO1xyXG5pbXBvcnQgKiBhcyBWaXN1YWxseUhpZGRlblByaW1pdGl2ZSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXZpc3VhbGx5LWhpZGRlblwiO1xyXG5pbXBvcnQgeyBqc3gsIGpzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcclxudmFyIFtjcmVhdGVUb29sdGlwQ29udGV4dCwgY3JlYXRlVG9vbHRpcFNjb3BlXSA9IGNyZWF0ZUNvbnRleHRTY29wZShcIlRvb2x0aXBcIiwgW1xyXG4gIGNyZWF0ZVBvcHBlclNjb3BlXHJcbl0pO1xyXG52YXIgdXNlUG9wcGVyU2NvcGUgPSBjcmVhdGVQb3BwZXJTY29wZSgpO1xyXG52YXIgUFJPVklERVJfTkFNRSA9IFwiVG9vbHRpcFByb3ZpZGVyXCI7XHJcbnZhciBERUZBVUxUX0RFTEFZX0RVUkFUSU9OID0gNzAwO1xyXG52YXIgVE9PTFRJUF9PUEVOID0gXCJ0b29sdGlwLm9wZW5cIjtcclxudmFyIFtUb29sdGlwUHJvdmlkZXJDb250ZXh0UHJvdmlkZXIsIHVzZVRvb2x0aXBQcm92aWRlckNvbnRleHRdID0gY3JlYXRlVG9vbHRpcENvbnRleHQoUFJPVklERVJfTkFNRSk7XHJcbnZhciBUb29sdGlwUHJvdmlkZXIgPSAocHJvcHMpID0+IHtcclxuICBjb25zdCB7XHJcbiAgICBfX3Njb3BlVG9vbHRpcCxcclxuICAgIGRlbGF5RHVyYXRpb24gPSBERUZBVUxUX0RFTEFZX0RVUkFUSU9OLFxyXG4gICAgc2tpcERlbGF5RHVyYXRpb24gPSAzMDAsXHJcbiAgICBkaXNhYmxlSG92ZXJhYmxlQ29udGVudCA9IGZhbHNlLFxyXG4gICAgY2hpbGRyZW5cclxuICB9ID0gcHJvcHM7XHJcbiAgY29uc3QgW2lzT3BlbkRlbGF5ZWQsIHNldElzT3BlbkRlbGF5ZWRdID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XHJcbiAgY29uc3QgaXNQb2ludGVySW5UcmFuc2l0UmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcclxuICBjb25zdCBza2lwRGVsYXlUaW1lclJlZiA9IFJlYWN0LnVzZVJlZigwKTtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3Qgc2tpcERlbGF5VGltZXIgPSBza2lwRGVsYXlUaW1lclJlZi5jdXJyZW50O1xyXG4gICAgcmV0dXJuICgpID0+IHdpbmRvdy5jbGVhclRpbWVvdXQoc2tpcERlbGF5VGltZXIpO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcclxuICAgIFRvb2x0aXBQcm92aWRlckNvbnRleHRQcm92aWRlcixcclxuICAgIHtcclxuICAgICAgc2NvcGU6IF9fc2NvcGVUb29sdGlwLFxyXG4gICAgICBpc09wZW5EZWxheWVkLFxyXG4gICAgICBkZWxheUR1cmF0aW9uLFxyXG4gICAgICBvbk9wZW46IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHNraXBEZWxheVRpbWVyUmVmLmN1cnJlbnQpO1xyXG4gICAgICAgIHNldElzT3BlbkRlbGF5ZWQoZmFsc2UpO1xyXG4gICAgICB9LCBbXSksXHJcbiAgICAgIG9uQ2xvc2U6IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHNraXBEZWxheVRpbWVyUmVmLmN1cnJlbnQpO1xyXG4gICAgICAgIHNraXBEZWxheVRpbWVyUmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dChcclxuICAgICAgICAgICgpID0+IHNldElzT3BlbkRlbGF5ZWQodHJ1ZSksXHJcbiAgICAgICAgICBza2lwRGVsYXlEdXJhdGlvblxyXG4gICAgICAgICk7XHJcbiAgICAgIH0sIFtza2lwRGVsYXlEdXJhdGlvbl0pLFxyXG4gICAgICBpc1BvaW50ZXJJblRyYW5zaXRSZWYsXHJcbiAgICAgIG9uUG9pbnRlckluVHJhbnNpdENoYW5nZTogUmVhY3QudXNlQ2FsbGJhY2soKGluVHJhbnNpdCkgPT4ge1xyXG4gICAgICAgIGlzUG9pbnRlckluVHJhbnNpdFJlZi5jdXJyZW50ID0gaW5UcmFuc2l0O1xyXG4gICAgICB9LCBbXSksXHJcbiAgICAgIGRpc2FibGVIb3ZlcmFibGVDb250ZW50LFxyXG4gICAgICBjaGlsZHJlblxyXG4gICAgfVxyXG4gICk7XHJcbn07XHJcblRvb2x0aXBQcm92aWRlci5kaXNwbGF5TmFtZSA9IFBST1ZJREVSX05BTUU7XHJcbnZhciBUT09MVElQX05BTUUgPSBcIlRvb2x0aXBcIjtcclxudmFyIFtUb29sdGlwQ29udGV4dFByb3ZpZGVyLCB1c2VUb29sdGlwQ29udGV4dF0gPSBjcmVhdGVUb29sdGlwQ29udGV4dChUT09MVElQX05BTUUpO1xyXG52YXIgVG9vbHRpcCA9IChwcm9wcykgPT4ge1xyXG4gIGNvbnN0IHtcclxuICAgIF9fc2NvcGVUb29sdGlwLFxyXG4gICAgY2hpbGRyZW4sXHJcbiAgICBvcGVuOiBvcGVuUHJvcCxcclxuICAgIGRlZmF1bHRPcGVuID0gZmFsc2UsXHJcbiAgICBvbk9wZW5DaGFuZ2UsXHJcbiAgICBkaXNhYmxlSG92ZXJhYmxlQ29udGVudDogZGlzYWJsZUhvdmVyYWJsZUNvbnRlbnRQcm9wLFxyXG4gICAgZGVsYXlEdXJhdGlvbjogZGVsYXlEdXJhdGlvblByb3BcclxuICB9ID0gcHJvcHM7XHJcbiAgY29uc3QgcHJvdmlkZXJDb250ZXh0ID0gdXNlVG9vbHRpcFByb3ZpZGVyQ29udGV4dChUT09MVElQX05BTUUsIHByb3BzLl9fc2NvcGVUb29sdGlwKTtcclxuICBjb25zdCBwb3BwZXJTY29wZSA9IHVzZVBvcHBlclNjb3BlKF9fc2NvcGVUb29sdGlwKTtcclxuICBjb25zdCBbdHJpZ2dlciwgc2V0VHJpZ2dlcl0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcclxuICBjb25zdCBjb250ZW50SWQgPSB1c2VJZCgpO1xyXG4gIGNvbnN0IG9wZW5UaW1lclJlZiA9IFJlYWN0LnVzZVJlZigwKTtcclxuICBjb25zdCBkaXNhYmxlSG92ZXJhYmxlQ29udGVudCA9IGRpc2FibGVIb3ZlcmFibGVDb250ZW50UHJvcCA/PyBwcm92aWRlckNvbnRleHQuZGlzYWJsZUhvdmVyYWJsZUNvbnRlbnQ7XHJcbiAgY29uc3QgZGVsYXlEdXJhdGlvbiA9IGRlbGF5RHVyYXRpb25Qcm9wID8/IHByb3ZpZGVyQ29udGV4dC5kZWxheUR1cmF0aW9uO1xyXG4gIGNvbnN0IHdhc09wZW5EZWxheWVkUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcclxuICBjb25zdCBbb3BlbiA9IGZhbHNlLCBzZXRPcGVuXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcclxuICAgIHByb3A6IG9wZW5Qcm9wLFxyXG4gICAgZGVmYXVsdFByb3A6IGRlZmF1bHRPcGVuLFxyXG4gICAgb25DaGFuZ2U6IChvcGVuMikgPT4ge1xyXG4gICAgICBpZiAob3BlbjIpIHtcclxuICAgICAgICBwcm92aWRlckNvbnRleHQub25PcGVuKCk7XHJcbiAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoVE9PTFRJUF9PUEVOKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcHJvdmlkZXJDb250ZXh0Lm9uQ2xvc2UoKTtcclxuICAgICAgfVxyXG4gICAgICBvbk9wZW5DaGFuZ2U/LihvcGVuMik7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgY29uc3Qgc3RhdGVBdHRyaWJ1dGUgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcclxuICAgIHJldHVybiBvcGVuID8gd2FzT3BlbkRlbGF5ZWRSZWYuY3VycmVudCA/IFwiZGVsYXllZC1vcGVuXCIgOiBcImluc3RhbnQtb3BlblwiIDogXCJjbG9zZWRcIjtcclxuICB9LCBbb3Blbl0pO1xyXG4gIGNvbnN0IGhhbmRsZU9wZW4gPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XHJcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KG9wZW5UaW1lclJlZi5jdXJyZW50KTtcclxuICAgIHdhc09wZW5EZWxheWVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcclxuICAgIHNldE9wZW4odHJ1ZSk7XHJcbiAgfSwgW3NldE9wZW5dKTtcclxuICBjb25zdCBoYW5kbGVDbG9zZSA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQob3BlblRpbWVyUmVmLmN1cnJlbnQpO1xyXG4gICAgc2V0T3BlbihmYWxzZSk7XHJcbiAgfSwgW3NldE9wZW5dKTtcclxuICBjb25zdCBoYW5kbGVEZWxheWVkT3BlbiA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQob3BlblRpbWVyUmVmLmN1cnJlbnQpO1xyXG4gICAgb3BlblRpbWVyUmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHdhc09wZW5EZWxheWVkUmVmLmN1cnJlbnQgPSB0cnVlO1xyXG4gICAgICBzZXRPcGVuKHRydWUpO1xyXG4gICAgfSwgZGVsYXlEdXJhdGlvbik7XHJcbiAgfSwgW2RlbGF5RHVyYXRpb24sIHNldE9wZW5dKTtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgcmV0dXJuICgpID0+IHdpbmRvdy5jbGVhclRpbWVvdXQob3BlblRpbWVyUmVmLmN1cnJlbnQpO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChQb3BwZXJQcmltaXRpdmUuUm9vdCwgeyAuLi5wb3BwZXJTY29wZSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXHJcbiAgICBUb29sdGlwQ29udGV4dFByb3ZpZGVyLFxyXG4gICAge1xyXG4gICAgICBzY29wZTogX19zY29wZVRvb2x0aXAsXHJcbiAgICAgIGNvbnRlbnRJZCxcclxuICAgICAgb3BlbixcclxuICAgICAgc3RhdGVBdHRyaWJ1dGUsXHJcbiAgICAgIHRyaWdnZXIsXHJcbiAgICAgIG9uVHJpZ2dlckNoYW5nZTogc2V0VHJpZ2dlcixcclxuICAgICAgb25UcmlnZ2VyRW50ZXI6IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgICAgICBpZiAocHJvdmlkZXJDb250ZXh0LmlzT3BlbkRlbGF5ZWQpIGhhbmRsZURlbGF5ZWRPcGVuKCk7XHJcbiAgICAgICAgZWxzZSBoYW5kbGVPcGVuKCk7XHJcbiAgICAgIH0sIFtwcm92aWRlckNvbnRleHQuaXNPcGVuRGVsYXllZCwgaGFuZGxlRGVsYXllZE9wZW4sIGhhbmRsZU9wZW5dKSxcclxuICAgICAgb25UcmlnZ2VyTGVhdmU6IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgICAgICBpZiAoZGlzYWJsZUhvdmVyYWJsZUNvbnRlbnQpIHtcclxuICAgICAgICAgIGhhbmRsZUNsb3NlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQob3BlblRpbWVyUmVmLmN1cnJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgW2hhbmRsZUNsb3NlLCBkaXNhYmxlSG92ZXJhYmxlQ29udGVudF0pLFxyXG4gICAgICBvbk9wZW46IGhhbmRsZU9wZW4sXHJcbiAgICAgIG9uQ2xvc2U6IGhhbmRsZUNsb3NlLFxyXG4gICAgICBkaXNhYmxlSG92ZXJhYmxlQ29udGVudCxcclxuICAgICAgY2hpbGRyZW5cclxuICAgIH1cclxuICApIH0pO1xyXG59O1xyXG5Ub29sdGlwLmRpc3BsYXlOYW1lID0gVE9PTFRJUF9OQU1FO1xyXG52YXIgVFJJR0dFUl9OQU1FID0gXCJUb29sdGlwVHJpZ2dlclwiO1xyXG52YXIgVG9vbHRpcFRyaWdnZXIgPSBSZWFjdC5mb3J3YXJkUmVmKFxyXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IF9fc2NvcGVUb29sdGlwLCAuLi50cmlnZ2VyUHJvcHMgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgY29udGV4dCA9IHVzZVRvb2x0aXBDb250ZXh0KFRSSUdHRVJfTkFNRSwgX19zY29wZVRvb2x0aXApO1xyXG4gICAgY29uc3QgcHJvdmlkZXJDb250ZXh0ID0gdXNlVG9vbHRpcFByb3ZpZGVyQ29udGV4dChUUklHR0VSX05BTUUsIF9fc2NvcGVUb29sdGlwKTtcclxuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVRvb2x0aXApO1xyXG4gICAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgcmVmLCBjb250ZXh0Lm9uVHJpZ2dlckNoYW5nZSk7XHJcbiAgICBjb25zdCBpc1BvaW50ZXJEb3duUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcclxuICAgIGNvbnN0IGhhc1BvaW50ZXJNb3ZlT3BlbmVkUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcclxuICAgIGNvbnN0IGhhbmRsZVBvaW50ZXJVcCA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IGlzUG9pbnRlckRvd25SZWYuY3VycmVudCA9IGZhbHNlLCBbXSk7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJ1cFwiLCBoYW5kbGVQb2ludGVyVXApO1xyXG4gICAgfSwgW2hhbmRsZVBvaW50ZXJVcF0pO1xyXG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goUG9wcGVyUHJpbWl0aXZlLkFuY2hvciwgeyBhc0NoaWxkOiB0cnVlLCAuLi5wb3BwZXJTY29wZSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXHJcbiAgICAgIFByaW1pdGl2ZS5idXR0b24sXHJcbiAgICAgIHtcclxuICAgICAgICBcImFyaWEtZGVzY3JpYmVkYnlcIjogY29udGV4dC5vcGVuID8gY29udGV4dC5jb250ZW50SWQgOiB2b2lkIDAsXHJcbiAgICAgICAgXCJkYXRhLXN0YXRlXCI6IGNvbnRleHQuc3RhdGVBdHRyaWJ1dGUsXHJcbiAgICAgICAgLi4udHJpZ2dlclByb3BzLFxyXG4gICAgICAgIHJlZjogY29tcG9zZWRSZWZzLFxyXG4gICAgICAgIG9uUG9pbnRlck1vdmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlck1vdmUsIChldmVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50LnBvaW50ZXJUeXBlID09PSBcInRvdWNoXCIpIHJldHVybjtcclxuICAgICAgICAgIGlmICghaGFzUG9pbnRlck1vdmVPcGVuZWRSZWYuY3VycmVudCAmJiAhcHJvdmlkZXJDb250ZXh0LmlzUG9pbnRlckluVHJhbnNpdFJlZi5jdXJyZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQub25UcmlnZ2VyRW50ZXIoKTtcclxuICAgICAgICAgICAgaGFzUG9pbnRlck1vdmVPcGVuZWRSZWYuY3VycmVudCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgb25Qb2ludGVyTGVhdmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlckxlYXZlLCAoKSA9PiB7XHJcbiAgICAgICAgICBjb250ZXh0Lm9uVHJpZ2dlckxlYXZlKCk7XHJcbiAgICAgICAgICBoYXNQb2ludGVyTW92ZU9wZW5lZFJlZi5jdXJyZW50ID0gZmFsc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgb25Qb2ludGVyRG93bjogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Qb2ludGVyRG93biwgKCkgPT4ge1xyXG4gICAgICAgICAgaXNQb2ludGVyRG93blJlZi5jdXJyZW50ID0gdHJ1ZTtcclxuICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIiwgaGFuZGxlUG9pbnRlclVwLCB7IG9uY2U6IHRydWUgfSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgb25Gb2N1czogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Gb2N1cywgKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFpc1BvaW50ZXJEb3duUmVmLmN1cnJlbnQpIGNvbnRleHQub25PcGVuKCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgb25CbHVyOiBjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkJsdXIsIGNvbnRleHQub25DbG9zZSksXHJcbiAgICAgICAgb25DbGljazogY29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25DbGljaywgY29udGV4dC5vbkNsb3NlKVxyXG4gICAgICB9XHJcbiAgICApIH0pO1xyXG4gIH1cclxuKTtcclxuVG9vbHRpcFRyaWdnZXIuZGlzcGxheU5hbWUgPSBUUklHR0VSX05BTUU7XHJcbnZhciBQT1JUQUxfTkFNRSA9IFwiVG9vbHRpcFBvcnRhbFwiO1xyXG52YXIgW1BvcnRhbFByb3ZpZGVyLCB1c2VQb3J0YWxDb250ZXh0XSA9IGNyZWF0ZVRvb2x0aXBDb250ZXh0KFBPUlRBTF9OQU1FLCB7XHJcbiAgZm9yY2VNb3VudDogdm9pZCAwXHJcbn0pO1xyXG52YXIgVG9vbHRpcFBvcnRhbCA9IChwcm9wcykgPT4ge1xyXG4gIGNvbnN0IHsgX19zY29wZVRvb2x0aXAsIGZvcmNlTW91bnQsIGNoaWxkcmVuLCBjb250YWluZXIgfSA9IHByb3BzO1xyXG4gIGNvbnN0IGNvbnRleHQgPSB1c2VUb29sdGlwQ29udGV4dChQT1JUQUxfTkFNRSwgX19zY29wZVRvb2x0aXApO1xyXG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFBvcnRhbFByb3ZpZGVyLCB7IHNjb3BlOiBfX3Njb3BlVG9vbHRpcCwgZm9yY2VNb3VudCwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goUHJlc2VuY2UsIHsgcHJlc2VudDogZm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW4sIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFBvcnRhbFByaW1pdGl2ZSwgeyBhc0NoaWxkOiB0cnVlLCBjb250YWluZXIsIGNoaWxkcmVuIH0pIH0pIH0pO1xyXG59O1xyXG5Ub29sdGlwUG9ydGFsLmRpc3BsYXlOYW1lID0gUE9SVEFMX05BTUU7XHJcbnZhciBDT05URU5UX05BTUUgPSBcIlRvb2x0aXBDb250ZW50XCI7XHJcbnZhciBUb29sdGlwQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWYoXHJcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHBvcnRhbENvbnRleHQgPSB1c2VQb3J0YWxDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZVRvb2x0aXApO1xyXG4gICAgY29uc3QgeyBmb3JjZU1vdW50ID0gcG9ydGFsQ29udGV4dC5mb3JjZU1vdW50LCBzaWRlID0gXCJ0b3BcIiwgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VUb29sdGlwQ29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVUb29sdGlwKTtcclxuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFByZXNlbmNlLCB7IHByZXNlbnQ6IGZvcmNlTW91bnQgfHwgY29udGV4dC5vcGVuLCBjaGlsZHJlbjogY29udGV4dC5kaXNhYmxlSG92ZXJhYmxlQ29udGVudCA/IC8qIEBfX1BVUkVfXyAqLyBqc3goVG9vbHRpcENvbnRlbnRJbXBsLCB7IHNpZGUsIC4uLmNvbnRlbnRQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSkgOiAvKiBAX19QVVJFX18gKi8ganN4KFRvb2x0aXBDb250ZW50SG92ZXJhYmxlLCB7IHNpZGUsIC4uLmNvbnRlbnRQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSkgfSk7XHJcbiAgfVxyXG4pO1xyXG52YXIgVG9vbHRpcENvbnRlbnRIb3ZlcmFibGUgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgY29uc3QgY29udGV4dCA9IHVzZVRvb2x0aXBDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZVRvb2x0aXApO1xyXG4gIGNvbnN0IHByb3ZpZGVyQ29udGV4dCA9IHVzZVRvb2x0aXBQcm92aWRlckNvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlVG9vbHRpcCk7XHJcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XHJcbiAgY29uc3QgW3BvaW50ZXJHcmFjZUFyZWEsIHNldFBvaW50ZXJHcmFjZUFyZWFdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XHJcbiAgY29uc3QgeyB0cmlnZ2VyLCBvbkNsb3NlIH0gPSBjb250ZXh0O1xyXG4gIGNvbnN0IGNvbnRlbnQgPSByZWYuY3VycmVudDtcclxuICBjb25zdCB7IG9uUG9pbnRlckluVHJhbnNpdENoYW5nZSB9ID0gcHJvdmlkZXJDb250ZXh0O1xyXG4gIGNvbnN0IGhhbmRsZVJlbW92ZUdyYWNlQXJlYSA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgIHNldFBvaW50ZXJHcmFjZUFyZWEobnVsbCk7XHJcbiAgICBvblBvaW50ZXJJblRyYW5zaXRDaGFuZ2UoZmFsc2UpO1xyXG4gIH0sIFtvblBvaW50ZXJJblRyYW5zaXRDaGFuZ2VdKTtcclxuICBjb25zdCBoYW5kbGVDcmVhdGVHcmFjZUFyZWEgPSBSZWFjdC51c2VDYWxsYmFjayhcclxuICAgIChldmVudCwgaG92ZXJUYXJnZXQpID0+IHtcclxuICAgICAgY29uc3QgY3VycmVudFRhcmdldCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XHJcbiAgICAgIGNvbnN0IGV4aXRQb2ludCA9IHsgeDogZXZlbnQuY2xpZW50WCwgeTogZXZlbnQuY2xpZW50WSB9O1xyXG4gICAgICBjb25zdCBleGl0U2lkZSA9IGdldEV4aXRTaWRlRnJvbVJlY3QoZXhpdFBvaW50LCBjdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcclxuICAgICAgY29uc3QgcGFkZGVkRXhpdFBvaW50cyA9IGdldFBhZGRlZEV4aXRQb2ludHMoZXhpdFBvaW50LCBleGl0U2lkZSk7XHJcbiAgICAgIGNvbnN0IGhvdmVyVGFyZ2V0UG9pbnRzID0gZ2V0UG9pbnRzRnJvbVJlY3QoaG92ZXJUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xyXG4gICAgICBjb25zdCBncmFjZUFyZWEgPSBnZXRIdWxsKFsuLi5wYWRkZWRFeGl0UG9pbnRzLCAuLi5ob3ZlclRhcmdldFBvaW50c10pO1xyXG4gICAgICBzZXRQb2ludGVyR3JhY2VBcmVhKGdyYWNlQXJlYSk7XHJcbiAgICAgIG9uUG9pbnRlckluVHJhbnNpdENoYW5nZSh0cnVlKTtcclxuICAgIH0sXHJcbiAgICBbb25Qb2ludGVySW5UcmFuc2l0Q2hhbmdlXVxyXG4gICk7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHJldHVybiAoKSA9PiBoYW5kbGVSZW1vdmVHcmFjZUFyZWEoKTtcclxuICB9LCBbaGFuZGxlUmVtb3ZlR3JhY2VBcmVhXSk7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGlmICh0cmlnZ2VyICYmIGNvbnRlbnQpIHtcclxuICAgICAgY29uc3QgaGFuZGxlVHJpZ2dlckxlYXZlID0gKGV2ZW50KSA9PiBoYW5kbGVDcmVhdGVHcmFjZUFyZWEoZXZlbnQsIGNvbnRlbnQpO1xyXG4gICAgICBjb25zdCBoYW5kbGVDb250ZW50TGVhdmUgPSAoZXZlbnQpID0+IGhhbmRsZUNyZWF0ZUdyYWNlQXJlYShldmVudCwgdHJpZ2dlcik7XHJcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJsZWF2ZVwiLCBoYW5kbGVUcmlnZ2VyTGVhdmUpO1xyXG4gICAgICBjb250ZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVybGVhdmVcIiwgaGFuZGxlQ29udGVudExlYXZlKTtcclxuICAgICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICB0cmlnZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVybGVhdmVcIiwgaGFuZGxlVHJpZ2dlckxlYXZlKTtcclxuICAgICAgICBjb250ZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVybGVhdmVcIiwgaGFuZGxlQ29udGVudExlYXZlKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9LCBbdHJpZ2dlciwgY29udGVudCwgaGFuZGxlQ3JlYXRlR3JhY2VBcmVhLCBoYW5kbGVSZW1vdmVHcmFjZUFyZWFdKTtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHBvaW50ZXJHcmFjZUFyZWEpIHtcclxuICAgICAgY29uc3QgaGFuZGxlVHJhY2tQb2ludGVyR3JhY2UgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgcG9pbnRlclBvc2l0aW9uID0geyB4OiBldmVudC5jbGllbnRYLCB5OiBldmVudC5jbGllbnRZIH07XHJcbiAgICAgICAgY29uc3QgaGFzRW50ZXJlZFRhcmdldCA9IHRyaWdnZXI/LmNvbnRhaW5zKHRhcmdldCkgfHwgY29udGVudD8uY29udGFpbnModGFyZ2V0KTtcclxuICAgICAgICBjb25zdCBpc1BvaW50ZXJPdXRzaWRlR3JhY2VBcmVhID0gIWlzUG9pbnRJblBvbHlnb24ocG9pbnRlclBvc2l0aW9uLCBwb2ludGVyR3JhY2VBcmVhKTtcclxuICAgICAgICBpZiAoaGFzRW50ZXJlZFRhcmdldCkge1xyXG4gICAgICAgICAgaGFuZGxlUmVtb3ZlR3JhY2VBcmVhKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpc1BvaW50ZXJPdXRzaWRlR3JhY2VBcmVhKSB7XHJcbiAgICAgICAgICBoYW5kbGVSZW1vdmVHcmFjZUFyZWEoKTtcclxuICAgICAgICAgIG9uQ2xvc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVybW92ZVwiLCBoYW5kbGVUcmFja1BvaW50ZXJHcmFjZSk7XHJcbiAgICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcm1vdmVcIiwgaGFuZGxlVHJhY2tQb2ludGVyR3JhY2UpO1xyXG4gICAgfVxyXG4gIH0sIFt0cmlnZ2VyLCBjb250ZW50LCBwb2ludGVyR3JhY2VBcmVhLCBvbkNsb3NlLCBoYW5kbGVSZW1vdmVHcmFjZUFyZWFdKTtcclxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChUb29sdGlwQ29udGVudEltcGwsIHsgLi4ucHJvcHMsIHJlZjogY29tcG9zZWRSZWZzIH0pO1xyXG59KTtcclxudmFyIFtWaXN1YWxseUhpZGRlbkNvbnRlbnRDb250ZXh0UHJvdmlkZXIsIHVzZVZpc3VhbGx5SGlkZGVuQ29udGVudENvbnRleHRdID0gY3JlYXRlVG9vbHRpcENvbnRleHQoVE9PTFRJUF9OQU1FLCB7IGlzSW5zaWRlOiBmYWxzZSB9KTtcclxudmFyIFRvb2x0aXBDb250ZW50SW1wbCA9IFJlYWN0LmZvcndhcmRSZWYoXHJcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgX19zY29wZVRvb2x0aXAsXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBcImFyaWEtbGFiZWxcIjogYXJpYUxhYmVsLFxyXG4gICAgICBvbkVzY2FwZUtleURvd24sXHJcbiAgICAgIG9uUG9pbnRlckRvd25PdXRzaWRlLFxyXG4gICAgICAuLi5jb250ZW50UHJvcHNcclxuICAgIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VUb29sdGlwQ29udGV4dChDT05URU5UX05BTUUsIF9fc2NvcGVUb29sdGlwKTtcclxuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVRvb2x0aXApO1xyXG4gICAgY29uc3QgeyBvbkNsb3NlIH0gPSBjb250ZXh0O1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihUT09MVElQX09QRU4sIG9uQ2xvc2UpO1xyXG4gICAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihUT09MVElQX09QRU4sIG9uQ2xvc2UpO1xyXG4gICAgfSwgW29uQ2xvc2VdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGlmIChjb250ZXh0LnRyaWdnZXIpIHtcclxuICAgICAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICAgIGlmICh0YXJnZXQ/LmNvbnRhaW5zKGNvbnRleHQudHJpZ2dlcikpIG9uQ2xvc2UoKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGhhbmRsZVNjcm9sbCwgeyBjYXB0dXJlOiB0cnVlIH0pO1xyXG4gICAgICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBoYW5kbGVTY3JvbGwsIHsgY2FwdHVyZTogdHJ1ZSB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgW2NvbnRleHQudHJpZ2dlciwgb25DbG9zZV0pO1xyXG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXHJcbiAgICAgIERpc21pc3NhYmxlTGF5ZXIsXHJcbiAgICAgIHtcclxuICAgICAgICBhc0NoaWxkOiB0cnVlLFxyXG4gICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50czogZmFsc2UsXHJcbiAgICAgICAgb25Fc2NhcGVLZXlEb3duLFxyXG4gICAgICAgIG9uUG9pbnRlckRvd25PdXRzaWRlLFxyXG4gICAgICAgIG9uRm9jdXNPdXRzaWRlOiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCksXHJcbiAgICAgICAgb25EaXNtaXNzOiBvbkNsb3NlLFxyXG4gICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4cyhcclxuICAgICAgICAgIFBvcHBlclByaW1pdGl2ZS5Db250ZW50LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImRhdGEtc3RhdGVcIjogY29udGV4dC5zdGF0ZUF0dHJpYnV0ZSxcclxuICAgICAgICAgICAgLi4ucG9wcGVyU2NvcGUsXHJcbiAgICAgICAgICAgIC4uLmNvbnRlbnRQcm9wcyxcclxuICAgICAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXHJcbiAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgLi4uY29udGVudFByb3BzLnN0eWxlLFxyXG4gICAgICAgICAgICAgIC8vIHJlLW5hbWVzcGFjZSBleHBvc2VkIGNvbnRlbnQgY3VzdG9tIHByb3BlcnRpZXNcclxuICAgICAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgICAgICBcIi0tcmFkaXgtdG9vbHRpcC1jb250ZW50LXRyYW5zZm9ybS1vcmlnaW5cIjogXCJ2YXIoLS1yYWRpeC1wb3BwZXItdHJhbnNmb3JtLW9yaWdpbilcIixcclxuICAgICAgICAgICAgICAgIFwiLS1yYWRpeC10b29sdGlwLWNvbnRlbnQtYXZhaWxhYmxlLXdpZHRoXCI6IFwidmFyKC0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS13aWR0aClcIixcclxuICAgICAgICAgICAgICAgIFwiLS1yYWRpeC10b29sdGlwLWNvbnRlbnQtYXZhaWxhYmxlLWhlaWdodFwiOiBcInZhcigtLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtaGVpZ2h0KVwiLFxyXG4gICAgICAgICAgICAgICAgXCItLXJhZGl4LXRvb2x0aXAtdHJpZ2dlci13aWR0aFwiOiBcInZhcigtLXJhZGl4LXBvcHBlci1hbmNob3Itd2lkdGgpXCIsXHJcbiAgICAgICAgICAgICAgICBcIi0tcmFkaXgtdG9vbHRpcC10cmlnZ2VyLWhlaWdodFwiOiBcInZhcigtLXJhZGl4LXBvcHBlci1hbmNob3ItaGVpZ2h0KVwiXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBjaGlsZHJlbjogW1xyXG4gICAgICAgICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goU2xvdHRhYmxlLCB7IGNoaWxkcmVuIH0pLFxyXG4gICAgICAgICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goVmlzdWFsbHlIaWRkZW5Db250ZW50Q29udGV4dFByb3ZpZGVyLCB7IHNjb3BlOiBfX3Njb3BlVG9vbHRpcCwgaXNJbnNpZGU6IHRydWUsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFZpc3VhbGx5SGlkZGVuUHJpbWl0aXZlLlJvb3QsIHsgaWQ6IGNvbnRleHQuY29udGVudElkLCByb2xlOiBcInRvb2x0aXBcIiwgY2hpbGRyZW46IGFyaWFMYWJlbCB8fCBjaGlsZHJlbiB9KSB9KVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuKTtcclxuVG9vbHRpcENvbnRlbnQuZGlzcGxheU5hbWUgPSBDT05URU5UX05BTUU7XHJcbnZhciBBUlJPV19OQU1FID0gXCJUb29sdGlwQXJyb3dcIjtcclxudmFyIFRvb2x0aXBBcnJvdyA9IFJlYWN0LmZvcndhcmRSZWYoXHJcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgX19zY29wZVRvb2x0aXAsIC4uLmFycm93UHJvcHMgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlVG9vbHRpcCk7XHJcbiAgICBjb25zdCB2aXN1YWxseUhpZGRlbkNvbnRlbnRDb250ZXh0ID0gdXNlVmlzdWFsbHlIaWRkZW5Db250ZW50Q29udGV4dChcclxuICAgICAgQVJST1dfTkFNRSxcclxuICAgICAgX19zY29wZVRvb2x0aXBcclxuICAgICk7XHJcbiAgICByZXR1cm4gdmlzdWFsbHlIaWRkZW5Db250ZW50Q29udGV4dC5pc0luc2lkZSA/IG51bGwgOiAvKiBAX19QVVJFX18gKi8ganN4KFBvcHBlclByaW1pdGl2ZS5BcnJvdywgeyAuLi5wb3BwZXJTY29wZSwgLi4uYXJyb3dQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XHJcbiAgfVxyXG4pO1xyXG5Ub29sdGlwQXJyb3cuZGlzcGxheU5hbWUgPSBBUlJPV19OQU1FO1xyXG5mdW5jdGlvbiBnZXRFeGl0U2lkZUZyb21SZWN0KHBvaW50LCByZWN0KSB7XHJcbiAgY29uc3QgdG9wID0gTWF0aC5hYnMocmVjdC50b3AgLSBwb2ludC55KTtcclxuICBjb25zdCBib3R0b20gPSBNYXRoLmFicyhyZWN0LmJvdHRvbSAtIHBvaW50LnkpO1xyXG4gIGNvbnN0IHJpZ2h0ID0gTWF0aC5hYnMocmVjdC5yaWdodCAtIHBvaW50LngpO1xyXG4gIGNvbnN0IGxlZnQgPSBNYXRoLmFicyhyZWN0LmxlZnQgLSBwb2ludC54KTtcclxuICBzd2l0Y2ggKE1hdGgubWluKHRvcCwgYm90dG9tLCByaWdodCwgbGVmdCkpIHtcclxuICAgIGNhc2UgbGVmdDpcclxuICAgICAgcmV0dXJuIFwibGVmdFwiO1xyXG4gICAgY2FzZSByaWdodDpcclxuICAgICAgcmV0dXJuIFwicmlnaHRcIjtcclxuICAgIGNhc2UgdG9wOlxyXG4gICAgICByZXR1cm4gXCJ0b3BcIjtcclxuICAgIGNhc2UgYm90dG9tOlxyXG4gICAgICByZXR1cm4gXCJib3R0b21cIjtcclxuICAgIGRlZmF1bHQ6XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInVucmVhY2hhYmxlXCIpO1xyXG4gIH1cclxufVxyXG5mdW5jdGlvbiBnZXRQYWRkZWRFeGl0UG9pbnRzKGV4aXRQb2ludCwgZXhpdFNpZGUsIHBhZGRpbmcgPSA1KSB7XHJcbiAgY29uc3QgcGFkZGVkRXhpdFBvaW50cyA9IFtdO1xyXG4gIHN3aXRjaCAoZXhpdFNpZGUpIHtcclxuICAgIGNhc2UgXCJ0b3BcIjpcclxuICAgICAgcGFkZGVkRXhpdFBvaW50cy5wdXNoKFxyXG4gICAgICAgIHsgeDogZXhpdFBvaW50LnggLSBwYWRkaW5nLCB5OiBleGl0UG9pbnQueSArIHBhZGRpbmcgfSxcclxuICAgICAgICB7IHg6IGV4aXRQb2ludC54ICsgcGFkZGluZywgeTogZXhpdFBvaW50LnkgKyBwYWRkaW5nIH1cclxuICAgICAgKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlIFwiYm90dG9tXCI6XHJcbiAgICAgIHBhZGRlZEV4aXRQb2ludHMucHVzaChcclxuICAgICAgICB7IHg6IGV4aXRQb2ludC54IC0gcGFkZGluZywgeTogZXhpdFBvaW50LnkgLSBwYWRkaW5nIH0sXHJcbiAgICAgICAgeyB4OiBleGl0UG9pbnQueCArIHBhZGRpbmcsIHk6IGV4aXRQb2ludC55IC0gcGFkZGluZyB9XHJcbiAgICAgICk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBcImxlZnRcIjpcclxuICAgICAgcGFkZGVkRXhpdFBvaW50cy5wdXNoKFxyXG4gICAgICAgIHsgeDogZXhpdFBvaW50LnggKyBwYWRkaW5nLCB5OiBleGl0UG9pbnQueSAtIHBhZGRpbmcgfSxcclxuICAgICAgICB7IHg6IGV4aXRQb2ludC54ICsgcGFkZGluZywgeTogZXhpdFBvaW50LnkgKyBwYWRkaW5nIH1cclxuICAgICAgKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlIFwicmlnaHRcIjpcclxuICAgICAgcGFkZGVkRXhpdFBvaW50cy5wdXNoKFxyXG4gICAgICAgIHsgeDogZXhpdFBvaW50LnggLSBwYWRkaW5nLCB5OiBleGl0UG9pbnQueSAtIHBhZGRpbmcgfSxcclxuICAgICAgICB7IHg6IGV4aXRQb2ludC54IC0gcGFkZGluZywgeTogZXhpdFBvaW50LnkgKyBwYWRkaW5nIH1cclxuICAgICAgKTtcclxuICAgICAgYnJlYWs7XHJcbiAgfVxyXG4gIHJldHVybiBwYWRkZWRFeGl0UG9pbnRzO1xyXG59XHJcbmZ1bmN0aW9uIGdldFBvaW50c0Zyb21SZWN0KHJlY3QpIHtcclxuICBjb25zdCB7IHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCB9ID0gcmVjdDtcclxuICByZXR1cm4gW1xyXG4gICAgeyB4OiBsZWZ0LCB5OiB0b3AgfSxcclxuICAgIHsgeDogcmlnaHQsIHk6IHRvcCB9LFxyXG4gICAgeyB4OiByaWdodCwgeTogYm90dG9tIH0sXHJcbiAgICB7IHg6IGxlZnQsIHk6IGJvdHRvbSB9XHJcbiAgXTtcclxufVxyXG5mdW5jdGlvbiBpc1BvaW50SW5Qb2x5Z29uKHBvaW50LCBwb2x5Z29uKSB7XHJcbiAgY29uc3QgeyB4LCB5IH0gPSBwb2ludDtcclxuICBsZXQgaW5zaWRlID0gZmFsc2U7XHJcbiAgZm9yIChsZXQgaSA9IDAsIGogPSBwb2x5Z29uLmxlbmd0aCAtIDE7IGkgPCBwb2x5Z29uLmxlbmd0aDsgaiA9IGkrKykge1xyXG4gICAgY29uc3QgeGkgPSBwb2x5Z29uW2ldLng7XHJcbiAgICBjb25zdCB5aSA9IHBvbHlnb25baV0ueTtcclxuICAgIGNvbnN0IHhqID0gcG9seWdvbltqXS54O1xyXG4gICAgY29uc3QgeWogPSBwb2x5Z29uW2pdLnk7XHJcbiAgICBjb25zdCBpbnRlcnNlY3QgPSB5aSA+IHkgIT09IHlqID4geSAmJiB4IDwgKHhqIC0geGkpICogKHkgLSB5aSkgLyAoeWogLSB5aSkgKyB4aTtcclxuICAgIGlmIChpbnRlcnNlY3QpIGluc2lkZSA9ICFpbnNpZGU7XHJcbiAgfVxyXG4gIHJldHVybiBpbnNpZGU7XHJcbn1cclxuZnVuY3Rpb24gZ2V0SHVsbChwb2ludHMpIHtcclxuICBjb25zdCBuZXdQb2ludHMgPSBwb2ludHMuc2xpY2UoKTtcclxuICBuZXdQb2ludHMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgaWYgKGEueCA8IGIueCkgcmV0dXJuIC0xO1xyXG4gICAgZWxzZSBpZiAoYS54ID4gYi54KSByZXR1cm4gMTtcclxuICAgIGVsc2UgaWYgKGEueSA8IGIueSkgcmV0dXJuIC0xO1xyXG4gICAgZWxzZSBpZiAoYS55ID4gYi55KSByZXR1cm4gMTtcclxuICAgIGVsc2UgcmV0dXJuIDA7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIGdldEh1bGxQcmVzb3J0ZWQobmV3UG9pbnRzKTtcclxufVxyXG5mdW5jdGlvbiBnZXRIdWxsUHJlc29ydGVkKHBvaW50cykge1xyXG4gIGlmIChwb2ludHMubGVuZ3RoIDw9IDEpIHJldHVybiBwb2ludHMuc2xpY2UoKTtcclxuICBjb25zdCB1cHBlckh1bGwgPSBbXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgY29uc3QgcCA9IHBvaW50c1tpXTtcclxuICAgIHdoaWxlICh1cHBlckh1bGwubGVuZ3RoID49IDIpIHtcclxuICAgICAgY29uc3QgcSA9IHVwcGVySHVsbFt1cHBlckh1bGwubGVuZ3RoIC0gMV07XHJcbiAgICAgIGNvbnN0IHIgPSB1cHBlckh1bGxbdXBwZXJIdWxsLmxlbmd0aCAtIDJdO1xyXG4gICAgICBpZiAoKHEueCAtIHIueCkgKiAocC55IC0gci55KSA+PSAocS55IC0gci55KSAqIChwLnggLSByLngpKSB1cHBlckh1bGwucG9wKCk7XHJcbiAgICAgIGVsc2UgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB1cHBlckh1bGwucHVzaChwKTtcclxuICB9XHJcbiAgdXBwZXJIdWxsLnBvcCgpO1xyXG4gIGNvbnN0IGxvd2VySHVsbCA9IFtdO1xyXG4gIGZvciAobGV0IGkgPSBwb2ludHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgIGNvbnN0IHAgPSBwb2ludHNbaV07XHJcbiAgICB3aGlsZSAobG93ZXJIdWxsLmxlbmd0aCA+PSAyKSB7XHJcbiAgICAgIGNvbnN0IHEgPSBsb3dlckh1bGxbbG93ZXJIdWxsLmxlbmd0aCAtIDFdO1xyXG4gICAgICBjb25zdCByID0gbG93ZXJIdWxsW2xvd2VySHVsbC5sZW5ndGggLSAyXTtcclxuICAgICAgaWYgKChxLnggLSByLngpICogKHAueSAtIHIueSkgPj0gKHEueSAtIHIueSkgKiAocC54IC0gci54KSkgbG93ZXJIdWxsLnBvcCgpO1xyXG4gICAgICBlbHNlIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgbG93ZXJIdWxsLnB1c2gocCk7XHJcbiAgfVxyXG4gIGxvd2VySHVsbC5wb3AoKTtcclxuICBpZiAodXBwZXJIdWxsLmxlbmd0aCA9PT0gMSAmJiBsb3dlckh1bGwubGVuZ3RoID09PSAxICYmIHVwcGVySHVsbFswXS54ID09PSBsb3dlckh1bGxbMF0ueCAmJiB1cHBlckh1bGxbMF0ueSA9PT0gbG93ZXJIdWxsWzBdLnkpIHtcclxuICAgIHJldHVybiB1cHBlckh1bGw7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiB1cHBlckh1bGwuY29uY2F0KGxvd2VySHVsbCk7XHJcbiAgfVxyXG59XHJcbnZhciBQcm92aWRlciA9IFRvb2x0aXBQcm92aWRlcjtcclxudmFyIFJvb3QzID0gVG9vbHRpcDtcclxudmFyIFRyaWdnZXIgPSBUb29sdGlwVHJpZ2dlcjtcclxudmFyIFBvcnRhbCA9IFRvb2x0aXBQb3J0YWw7XHJcbnZhciBDb250ZW50MiA9IFRvb2x0aXBDb250ZW50O1xyXG52YXIgQXJyb3cyID0gVG9vbHRpcEFycm93O1xyXG5leHBvcnQge1xyXG4gIEFycm93MiBhcyBBcnJvdyxcclxuICBDb250ZW50MiBhcyBDb250ZW50LFxyXG4gIFBvcnRhbCxcclxuICBQcm92aWRlcixcclxuICBSb290MyBhcyBSb290LFxyXG4gIFRvb2x0aXAsXHJcbiAgVG9vbHRpcEFycm93LFxyXG4gIFRvb2x0aXBDb250ZW50LFxyXG4gIFRvb2x0aXBQb3J0YWwsXHJcbiAgVG9vbHRpcFByb3ZpZGVyLFxyXG4gIFRvb2x0aXBUcmlnZ2VyLFxyXG4gIFRyaWdnZXIsXHJcbiAgY3JlYXRlVG9vbHRpcFNjb3BlXHJcbn07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-tooltip/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs ***!
|
||
\**********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCallbackRef: function() { return /* binding */ useCallbackRef; }\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// packages/react/use-callback-ref/src/useCallbackRef.tsx\r\n\r\nfunction useCallbackRef(callback) {\r\n const callbackRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(callback);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n callbackRef.current = callback;\r\n });\r\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => (...args) => callbackRef.current?.(...args), []);\r\n}\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZi9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQytCO0FBQy9CO0FBQ0Esc0JBQXNCLHlDQUFZO0FBQ2xDLEVBQUUsNENBQWU7QUFDakI7QUFDQSxHQUFHO0FBQ0gsU0FBUywwQ0FBYTtBQUN0QjtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmL2Rpc3QvaW5kZXgubWpzPzJhZmYiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvdXNlLWNhbGxiYWNrLXJlZi9zcmMvdXNlQ2FsbGJhY2tSZWYudHN4XHJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5mdW5jdGlvbiB1c2VDYWxsYmFja1JlZihjYWxsYmFjaykge1xyXG4gIGNvbnN0IGNhbGxiYWNrUmVmID0gUmVhY3QudXNlUmVmKGNhbGxiYWNrKTtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY2FsbGJhY2tSZWYuY3VycmVudCA9IGNhbGxiYWNrO1xyXG4gIH0pO1xyXG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+ICguLi5hcmdzKSA9PiBjYWxsYmFja1JlZi5jdXJyZW50Py4oLi4uYXJncyksIFtdKTtcclxufVxyXG5leHBvcnQge1xyXG4gIHVzZUNhbGxiYWNrUmVmXHJcbn07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useControllableState: function() { return /* binding */ useControllableState; }\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 _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n// packages/react/use-controllable-state/src/useControllableState.tsx\r\n\r\n\r\nfunction useControllableState({\r\n prop,\r\n defaultProp,\r\n onChange = () => {\r\n }\r\n}) {\r\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\r\n const isControlled = prop !== void 0;\r\n const value = isControlled ? prop : uncontrolledProp;\r\n const handleChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onChange);\r\n const setValue = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(\r\n (nextValue) => {\r\n if (isControlled) {\r\n const setter = nextValue;\r\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\r\n if (value2 !== prop) handleChange(value2);\r\n } else {\r\n setUncontrolledProp(nextValue);\r\n }\r\n },\r\n [isControlled, prop, setUncontrolledProp, handleChange]\r\n );\r\n return [value, setValue];\r\n}\r\nfunction useUncontrolledState({\r\n defaultProp,\r\n onChange\r\n}) {\r\n const uncontrolledState = react__WEBPACK_IMPORTED_MODULE_0__.useState(defaultProp);\r\n const [value] = uncontrolledState;\r\n const prevValueRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(value);\r\n const handleChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onChange);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n if (prevValueRef.current !== value) {\r\n handleChange(value);\r\n prevValueRef.current = value;\r\n }\r\n }, [value, prevValueRef, handleChange]);\r\n return uncontrolledState;\r\n}\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZS9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUMrQjtBQUNtQztBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHlFQUF5RSx1QkFBdUI7QUFDaEc7QUFDQTtBQUNBLHVCQUF1QixnRkFBYztBQUNyQyxtQkFBbUIsOENBQWlCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCw0QkFBNEIsMkNBQWM7QUFDMUM7QUFDQSx1QkFBdUIseUNBQVk7QUFDbkMsdUJBQXVCLGdGQUFjO0FBQ3JDLEVBQUUsNENBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlL2Rpc3QvaW5kZXgubWpzP2QxYzMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZS9zcmMvdXNlQ29udHJvbGxhYmxlU3RhdGUudHN4XHJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZlwiO1xyXG5mdW5jdGlvbiB1c2VDb250cm9sbGFibGVTdGF0ZSh7XHJcbiAgcHJvcCxcclxuICBkZWZhdWx0UHJvcCxcclxuICBvbkNoYW5nZSA9ICgpID0+IHtcclxuICB9XHJcbn0pIHtcclxuICBjb25zdCBbdW5jb250cm9sbGVkUHJvcCwgc2V0VW5jb250cm9sbGVkUHJvcF0gPSB1c2VVbmNvbnRyb2xsZWRTdGF0ZSh7IGRlZmF1bHRQcm9wLCBvbkNoYW5nZSB9KTtcclxuICBjb25zdCBpc0NvbnRyb2xsZWQgPSBwcm9wICE9PSB2b2lkIDA7XHJcbiAgY29uc3QgdmFsdWUgPSBpc0NvbnRyb2xsZWQgPyBwcm9wIDogdW5jb250cm9sbGVkUHJvcDtcclxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFja1JlZihvbkNoYW5nZSk7XHJcbiAgY29uc3Qgc2V0VmFsdWUgPSBSZWFjdC51c2VDYWxsYmFjayhcclxuICAgIChuZXh0VmFsdWUpID0+IHtcclxuICAgICAgaWYgKGlzQ29udHJvbGxlZCkge1xyXG4gICAgICAgIGNvbnN0IHNldHRlciA9IG5leHRWYWx1ZTtcclxuICAgICAgICBjb25zdCB2YWx1ZTIgPSB0eXBlb2YgbmV4dFZhbHVlID09PSBcImZ1bmN0aW9uXCIgPyBzZXR0ZXIocHJvcCkgOiBuZXh0VmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbHVlMiAhPT0gcHJvcCkgaGFuZGxlQ2hhbmdlKHZhbHVlMik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2V0VW5jb250cm9sbGVkUHJvcChuZXh0VmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgW2lzQ29udHJvbGxlZCwgcHJvcCwgc2V0VW5jb250cm9sbGVkUHJvcCwgaGFuZGxlQ2hhbmdlXVxyXG4gICk7XHJcbiAgcmV0dXJuIFt2YWx1ZSwgc2V0VmFsdWVdO1xyXG59XHJcbmZ1bmN0aW9uIHVzZVVuY29udHJvbGxlZFN0YXRlKHtcclxuICBkZWZhdWx0UHJvcCxcclxuICBvbkNoYW5nZVxyXG59KSB7XHJcbiAgY29uc3QgdW5jb250cm9sbGVkU3RhdGUgPSBSZWFjdC51c2VTdGF0ZShkZWZhdWx0UHJvcCk7XHJcbiAgY29uc3QgW3ZhbHVlXSA9IHVuY29udHJvbGxlZFN0YXRlO1xyXG4gIGNvbnN0IHByZXZWYWx1ZVJlZiA9IFJlYWN0LnVzZVJlZih2YWx1ZSk7XHJcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2tSZWYob25DaGFuZ2UpO1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAocHJldlZhbHVlUmVmLmN1cnJlbnQgIT09IHZhbHVlKSB7XHJcbiAgICAgIGhhbmRsZUNoYW5nZSh2YWx1ZSk7XHJcbiAgICAgIHByZXZWYWx1ZVJlZi5jdXJyZW50ID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfSwgW3ZhbHVlLCBwcmV2VmFsdWVSZWYsIGhhbmRsZUNoYW5nZV0pO1xyXG4gIHJldHVybiB1bmNvbnRyb2xsZWRTdGF0ZTtcclxufVxyXG5leHBvcnQge1xyXG4gIHVzZUNvbnRyb2xsYWJsZVN0YXRlXHJcbn07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useEscapeKeydown: function() { return /* binding */ useEscapeKeydown; }\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 _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx\r\n\r\n\r\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\r\n const onEscapeKeyDown = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onEscapeKeyDownProp);\r\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\r\n const handleKeyDown = (event) => {\r\n if (event.key === \"Escape\") {\r\n onEscapeKeyDown(event);\r\n }\r\n };\r\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\r\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\r\n }, [onEscapeKeyDown, ownerDocument]);\r\n}\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWVzY2FwZS1rZXlkb3duL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQytCO0FBQ21DO0FBQ2xFO0FBQ0EsMEJBQTBCLGdGQUFjO0FBQ3hDLEVBQUUsNENBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtEQUErRCxlQUFlO0FBQzlFLCtFQUErRSxlQUFlO0FBQzlGLEdBQUc7QUFDSDtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtZXNjYXBlLWtleWRvd24vZGlzdC9pbmRleC5tanM/MzRlMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC91c2UtZXNjYXBlLWtleWRvd24vc3JjL3VzZUVzY2FwZUtleWRvd24udHN4XHJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZlwiO1xyXG5mdW5jdGlvbiB1c2VFc2NhcGVLZXlkb3duKG9uRXNjYXBlS2V5RG93blByb3AsIG93bmVyRG9jdW1lbnQgPSBnbG9iYWxUaGlzPy5kb2N1bWVudCkge1xyXG4gIGNvbnN0IG9uRXNjYXBlS2V5RG93biA9IHVzZUNhbGxiYWNrUmVmKG9uRXNjYXBlS2V5RG93blByb3ApO1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChldmVudC5rZXkgPT09IFwiRXNjYXBlXCIpIHtcclxuICAgICAgICBvbkVzY2FwZUtleURvd24oZXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVLZXlEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XHJcbiAgICByZXR1cm4gKCkgPT4gb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVLZXlEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XHJcbiAgfSwgW29uRXNjYXBlS2V5RG93biwgb3duZXJEb2N1bWVudF0pO1xyXG59XHJcbmV4cG9ydCB7XHJcbiAgdXNlRXNjYXBlS2V5ZG93blxyXG59O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useLayoutEffect: function() { return /* binding */ useLayoutEffect2; }\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// packages/react/use-layout-effect/src/useLayoutEffect.tsx\r\n\r\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : () => {\r\n};\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWxheW91dC1lZmZlY3QvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUMrQjtBQUMvQix1REFBdUQsa0RBQXFCO0FBQzVFO0FBR0U7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0L2Rpc3QvaW5kZXgubWpzPzI1N2EiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvdXNlLWxheW91dC1lZmZlY3Qvc3JjL3VzZUxheW91dEVmZmVjdC50c3hcclxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbnZhciB1c2VMYXlvdXRFZmZlY3QyID0gQm9vbGVhbihnbG9iYWxUaGlzPy5kb2N1bWVudCkgPyBSZWFjdC51c2VMYXlvdXRFZmZlY3QgOiAoKSA9PiB7XHJcbn07XHJcbmV4cG9ydCB7XHJcbiAgdXNlTGF5b3V0RWZmZWN0MiBhcyB1c2VMYXlvdXRFZmZlY3RcclxufTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-previous/dist/index.mjs":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-use-previous/dist/index.mjs ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ usePrevious: function() { return /* binding */ usePrevious; }\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// packages/react/use-previous/src/usePrevious.tsx\r\n\r\nfunction usePrevious(value) {\r\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef({ value, previous: value });\r\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\r\n if (ref.current.value !== value) {\r\n ref.current.previous = ref.current.value;\r\n ref.current.value = value;\r\n }\r\n return ref.current.previous;\r\n }, [value]);\r\n}\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLXByZXZpb3VzL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDK0I7QUFDL0I7QUFDQSxjQUFjLHlDQUFZLEdBQUcsd0JBQXdCO0FBQ3JELFNBQVMsMENBQWE7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtcHJldmlvdXMvZGlzdC9pbmRleC5tanM/NDIyMSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC91c2UtcHJldmlvdXMvc3JjL3VzZVByZXZpb3VzLnRzeFxyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuZnVuY3Rpb24gdXNlUHJldmlvdXModmFsdWUpIHtcclxuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYoeyB2YWx1ZSwgcHJldmlvdXM6IHZhbHVlIH0pO1xyXG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+IHtcclxuICAgIGlmIChyZWYuY3VycmVudC52YWx1ZSAhPT0gdmFsdWUpIHtcclxuICAgICAgcmVmLmN1cnJlbnQucHJldmlvdXMgPSByZWYuY3VycmVudC52YWx1ZTtcclxuICAgICAgcmVmLmN1cnJlbnQudmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiByZWYuY3VycmVudC5wcmV2aW91cztcclxuICB9LCBbdmFsdWVdKTtcclxufVxyXG5leHBvcnQge1xyXG4gIHVzZVByZXZpb3VzXHJcbn07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-previous/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-size/dist/index.mjs":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-use-size/dist/index.mjs ***!
|
||
\**************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSize: function() { return /* binding */ useSize; }\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 _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n// packages/react/use-size/src/useSize.tsx\r\n\r\n\r\nfunction useSize(element) {\r\n const [size, setSize] = react__WEBPACK_IMPORTED_MODULE_0__.useState(void 0);\r\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {\r\n if (element) {\r\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\r\n const resizeObserver = new ResizeObserver((entries) => {\r\n if (!Array.isArray(entries)) {\r\n return;\r\n }\r\n if (!entries.length) {\r\n return;\r\n }\r\n const entry = entries[0];\r\n let width;\r\n let height;\r\n if (\"borderBoxSize\" in entry) {\r\n const borderSizeEntry = entry[\"borderBoxSize\"];\r\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\r\n width = borderSize[\"inlineSize\"];\r\n height = borderSize[\"blockSize\"];\r\n } else {\r\n width = element.offsetWidth;\r\n height = element.offsetHeight;\r\n }\r\n setSize({ width, height });\r\n });\r\n resizeObserver.observe(element, { box: \"border-box\" });\r\n return () => resizeObserver.unobserve(element);\r\n } else {\r\n setSize(void 0);\r\n }\r\n }, [element]);\r\n return size;\r\n}\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLXNpemUvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDK0I7QUFDcUM7QUFDcEU7QUFDQSwwQkFBMEIsMkNBQWM7QUFDeEMsRUFBRSxrRkFBZTtBQUNqQjtBQUNBLGdCQUFnQiwwREFBMEQ7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixlQUFlO0FBQ2pDLE9BQU87QUFDUCx3Q0FBd0MsbUJBQW1CO0FBQzNEO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2Utc2l6ZS9kaXN0L2luZGV4Lm1qcz83NjQ4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3VzZS1zaXplL3NyYy91c2VTaXplLnRzeFxyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdFwiO1xyXG5mdW5jdGlvbiB1c2VTaXplKGVsZW1lbnQpIHtcclxuICBjb25zdCBbc2l6ZSwgc2V0U2l6ZV0gPSBSZWFjdC51c2VTdGF0ZSh2b2lkIDApO1xyXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICBzZXRTaXplKHsgd2lkdGg6IGVsZW1lbnQub2Zmc2V0V2lkdGgsIGhlaWdodDogZWxlbWVudC5vZmZzZXRIZWlnaHQgfSk7XHJcbiAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XHJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGVudHJpZXMpKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghZW50cmllcy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZW50cnkgPSBlbnRyaWVzWzBdO1xyXG4gICAgICAgIGxldCB3aWR0aDtcclxuICAgICAgICBsZXQgaGVpZ2h0O1xyXG4gICAgICAgIGlmIChcImJvcmRlckJveFNpemVcIiBpbiBlbnRyeSkge1xyXG4gICAgICAgICAgY29uc3QgYm9yZGVyU2l6ZUVudHJ5ID0gZW50cnlbXCJib3JkZXJCb3hTaXplXCJdO1xyXG4gICAgICAgICAgY29uc3QgYm9yZGVyU2l6ZSA9IEFycmF5LmlzQXJyYXkoYm9yZGVyU2l6ZUVudHJ5KSA/IGJvcmRlclNpemVFbnRyeVswXSA6IGJvcmRlclNpemVFbnRyeTtcclxuICAgICAgICAgIHdpZHRoID0gYm9yZGVyU2l6ZVtcImlubGluZVNpemVcIl07XHJcbiAgICAgICAgICBoZWlnaHQgPSBib3JkZXJTaXplW1wiYmxvY2tTaXplXCJdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB3aWR0aCA9IGVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgICBoZWlnaHQgPSBlbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2V0U2l6ZSh7IHdpZHRoLCBoZWlnaHQgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQsIHsgYm94OiBcImJvcmRlci1ib3hcIiB9KTtcclxuICAgICAgcmV0dXJuICgpID0+IHJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZShlbGVtZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNldFNpemUodm9pZCAwKTtcclxuICAgIH1cclxuICB9LCBbZWxlbWVudF0pO1xyXG4gIHJldHVybiBzaXplO1xyXG59XHJcbmV4cG9ydCB7XHJcbiAgdXNlU2l6ZVxyXG59O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-size/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: function() { return /* binding */ Root; },\n/* harmony export */ VisuallyHidden: function() { return /* binding */ VisuallyHidden; }\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 _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/visually-hidden/src/VisuallyHidden.tsx\r\n\r\n\r\n\r\nvar NAME = \"VisuallyHidden\";\r\nvar VisuallyHidden = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\r\n (props, forwardedRef) => {\r\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\r\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.span,\r\n {\r\n ...props,\r\n ref: forwardedRef,\r\n style: {\r\n // See: https://github.com/twbs/bootstrap/blob/master/scss/mixins/_screen-reader.scss\r\n position: \"absolute\",\r\n border: 0,\r\n width: 1,\r\n height: 1,\r\n padding: 0,\r\n margin: -1,\r\n overflow: \"hidden\",\r\n clip: \"rect(0, 0, 0, 0)\",\r\n whiteSpace: \"nowrap\",\r\n wordWrap: \"normal\",\r\n ...props.style\r\n }\r\n }\r\n );\r\n }\r\n);\r\nVisuallyHidden.displayName = NAME;\r\nvar Root = VisuallyHidden;\r\n\r\n//# sourceMappingURL=index.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdmlzdWFsbHktaGlkZGVuL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDK0I7QUFDdUI7QUFDZDtBQUN4QztBQUNBLHFCQUFxQiw2Q0FBZ0I7QUFDckM7QUFDQSwyQkFBMkIsc0RBQUc7QUFDOUIsTUFBTSxnRUFBUztBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdmlzdWFsbHktaGlkZGVuL2Rpc3QvaW5kZXgubWpzPzA0M2IiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvdmlzdWFsbHktaGlkZGVuL3NyYy9WaXN1YWxseUhpZGRlbi50c3hcclxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XHJcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xyXG52YXIgTkFNRSA9IFwiVmlzdWFsbHlIaWRkZW5cIjtcclxudmFyIFZpc3VhbGx5SGlkZGVuID0gUmVhY3QuZm9yd2FyZFJlZihcclxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXHJcbiAgICAgIFByaW1pdGl2ZS5zcGFuLFxyXG4gICAgICB7XHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXHJcbiAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL3Njc3MvbWl4aW5zL19zY3JlZW4tcmVhZGVyLnNjc3NcclxuICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXHJcbiAgICAgICAgICBib3JkZXI6IDAsXHJcbiAgICAgICAgICB3aWR0aDogMSxcclxuICAgICAgICAgIGhlaWdodDogMSxcclxuICAgICAgICAgIHBhZGRpbmc6IDAsXHJcbiAgICAgICAgICBtYXJnaW46IC0xLFxyXG4gICAgICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXHJcbiAgICAgICAgICBjbGlwOiBcInJlY3QoMCwgMCwgMCwgMClcIixcclxuICAgICAgICAgIHdoaXRlU3BhY2U6IFwibm93cmFwXCIsXHJcbiAgICAgICAgICB3b3JkV3JhcDogXCJub3JtYWxcIixcclxuICAgICAgICAgIC4uLnByb3BzLnN0eWxlXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuKTtcclxuVmlzdWFsbHlIaWRkZW4uZGlzcGxheU5hbWUgPSBOQU1FO1xyXG52YXIgUm9vdCA9IFZpc3VhbGx5SGlkZGVuO1xyXG5leHBvcnQge1xyXG4gIFJvb3QsXHJcbiAgVmlzdWFsbHlIaWRkZW5cclxufTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/esm/wrapper.mjs":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/@supabase/postgrest-js/dist/esm/wrapper.mjs ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PostgrestBuilder: function() { return /* binding */ PostgrestBuilder; },\n/* harmony export */ PostgrestClient: function() { return /* binding */ PostgrestClient; },\n/* harmony export */ PostgrestError: function() { return /* binding */ PostgrestError; },\n/* harmony export */ PostgrestFilterBuilder: function() { return /* binding */ PostgrestFilterBuilder; },\n/* harmony export */ PostgrestQueryBuilder: function() { return /* binding */ PostgrestQueryBuilder; },\n/* harmony export */ PostgrestTransformBuilder: function() { return /* binding */ PostgrestTransformBuilder; }\n/* harmony export */ });\n/* harmony import */ var _cjs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cjs/index.js */ \"(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/cjs/index.js\");\n\r\nconst {\r\n PostgrestClient,\r\n PostgrestQueryBuilder,\r\n PostgrestFilterBuilder,\r\n PostgrestTransformBuilder,\r\n PostgrestBuilder,\r\n PostgrestError,\r\n} = _cjs_index_js__WEBPACK_IMPORTED_MODULE_0__\r\n\r\n\r\n\r\n// compatibility with CJS output\r\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\r\n PostgrestClient,\r\n PostgrestQueryBuilder,\r\n PostgrestFilterBuilder,\r\n PostgrestTransformBuilder,\r\n PostgrestBuilder,\r\n PostgrestError,\r\n});\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9Ac3VwYWJhc2UvcG9zdGdyZXN0LWpzL2Rpc3QvZXNtL3dyYXBwZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLEVBQUUsMENBQUs7QUFDVDtBQVFDO0FBQ0Q7QUFDQTtBQUNBLCtEQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3Bvc3RncmVzdC1qcy9kaXN0L2VzbS93cmFwcGVyLm1qcz83MGMwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpbmRleCBmcm9tICcuLi9janMvaW5kZXguanMnXHJcbmNvbnN0IHtcclxuICBQb3N0Z3Jlc3RDbGllbnQsXHJcbiAgUG9zdGdyZXN0UXVlcnlCdWlsZGVyLFxyXG4gIFBvc3RncmVzdEZpbHRlckJ1aWxkZXIsXHJcbiAgUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlcixcclxuICBQb3N0Z3Jlc3RCdWlsZGVyLFxyXG4gIFBvc3RncmVzdEVycm9yLFxyXG59ID0gaW5kZXhcclxuXHJcbmV4cG9ydCB7XHJcbiAgUG9zdGdyZXN0QnVpbGRlcixcclxuICBQb3N0Z3Jlc3RDbGllbnQsXHJcbiAgUG9zdGdyZXN0RmlsdGVyQnVpbGRlcixcclxuICBQb3N0Z3Jlc3RRdWVyeUJ1aWxkZXIsXHJcbiAgUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlcixcclxuICBQb3N0Z3Jlc3RFcnJvcixcclxufVxyXG5cclxuLy8gY29tcGF0aWJpbGl0eSB3aXRoIENKUyBvdXRwdXRcclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIFBvc3RncmVzdENsaWVudCxcclxuICBQb3N0Z3Jlc3RRdWVyeUJ1aWxkZXIsXHJcbiAgUG9zdGdyZXN0RmlsdGVyQnVpbGRlcixcclxuICBQb3N0Z3Jlc3RUcmFuc2Zvcm1CdWlsZGVyLFxyXG4gIFBvc3RncmVzdEJ1aWxkZXIsXHJcbiAgUG9zdGdyZXN0RXJyb3IsXHJcbn1cclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@supabase/postgrest-js/dist/esm/wrapper.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/class-variance-authority/dist/index.mjs ***!
|
||
\**************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cva: function() { return /* binding */ cva; },\n/* harmony export */ cx: function() { return /* binding */ cx; }\n/* harmony export */ });\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clsx */ \"(app-pages-browser)/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs\");\n\r\nconst falsyToString = (value)=>typeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\r\nconst cx = clsx__WEBPACK_IMPORTED_MODULE_0__.clsx;\r\nconst cva = (base, config)=>{\r\n return (props)=>{\r\n var ref;\r\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\r\n const { variants , defaultVariants } = config;\r\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\r\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\r\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\r\n if (variantProp === null) return null;\r\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\r\n return variants[variant][variantKey];\r\n });\r\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\r\n let [key, value] = param;\r\n if (value === undefined) {\r\n return acc;\r\n }\r\n acc[key] = value;\r\n return acc;\r\n }, {});\r\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\r\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\r\n return Object.entries(compoundVariantOptions).every((param)=>{\r\n let [key, value] = param;\r\n return Array.isArray(value) ? value.includes({\r\n ...defaultVariants,\r\n ...propsWithoutUndefined\r\n }[key]) : ({\r\n ...defaultVariants,\r\n ...propsWithoutUndefined\r\n })[key] === value;\r\n }) ? [\r\n ...acc,\r\n cvClass,\r\n cvClassName\r\n ] : acc;\r\n }, []);\r\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\r\n };\r\n};\r\n\r\n\r\n//# sourceMappingURL=index.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbGFzcy12YXJpYW5jZS1hdXRob3JpdHkvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRCO0FBQzVCO0FBQ08sV0FBVyxzQ0FBSTtBQUNmO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDhCQUE4QjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLElBQUk7QUFDYjtBQUNBLGtCQUFrQixzRUFBc0U7QUFDeEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2NsYXNzLXZhcmlhbmNlLWF1dGhvcml0eS9kaXN0L2luZGV4Lm1qcz9lMzEzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsc3ggfSBmcm9tIFwiY2xzeFwiO1xyXG5jb25zdCBmYWxzeVRvU3RyaW5nID0gKHZhbHVlKT0+dHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIiA/IFwiXCIuY29uY2F0KHZhbHVlKSA6IHZhbHVlID09PSAwID8gXCIwXCIgOiB2YWx1ZTtcclxuZXhwb3J0IGNvbnN0IGN4ID0gY2xzeDtcclxuZXhwb3J0IGNvbnN0IGN2YSA9IChiYXNlLCBjb25maWcpPT57XHJcbiAgICByZXR1cm4gKHByb3BzKT0+e1xyXG4gICAgICAgIHZhciByZWY7XHJcbiAgICAgICAgaWYgKChjb25maWcgPT09IG51bGwgfHwgY29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb25maWcudmFyaWFudHMpID09IG51bGwpIHJldHVybiBjeChiYXNlLCBwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHMuY2xhc3MsIHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wcy5jbGFzc05hbWUpO1xyXG4gICAgICAgIGNvbnN0IHsgdmFyaWFudHMgLCBkZWZhdWx0VmFyaWFudHMgIH0gPSBjb25maWc7XHJcbiAgICAgICAgY29uc3QgZ2V0VmFyaWFudENsYXNzTmFtZXMgPSBPYmplY3Qua2V5cyh2YXJpYW50cykubWFwKCh2YXJpYW50KT0+e1xyXG4gICAgICAgICAgICBjb25zdCB2YXJpYW50UHJvcCA9IHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wc1t2YXJpYW50XTtcclxuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFZhcmlhbnRQcm9wID0gZGVmYXVsdFZhcmlhbnRzID09PSBudWxsIHx8IGRlZmF1bHRWYXJpYW50cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVmYXVsdFZhcmlhbnRzW3ZhcmlhbnRdO1xyXG4gICAgICAgICAgICBpZiAodmFyaWFudFByb3AgPT09IG51bGwpIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICBjb25zdCB2YXJpYW50S2V5ID0gZmFsc3lUb1N0cmluZyh2YXJpYW50UHJvcCkgfHwgZmFsc3lUb1N0cmluZyhkZWZhdWx0VmFyaWFudFByb3ApO1xyXG4gICAgICAgICAgICByZXR1cm4gdmFyaWFudHNbdmFyaWFudF1bdmFyaWFudEtleV07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgcHJvcHNXaXRob3V0VW5kZWZpbmVkID0gcHJvcHMgJiYgT2JqZWN0LmVudHJpZXMocHJvcHMpLnJlZHVjZSgoYWNjLCBwYXJhbSk9PntcclxuICAgICAgICAgICAgbGV0IFtrZXksIHZhbHVlXSA9IHBhcmFtO1xyXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBhY2Nba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICAgIH0sIHt9KTtcclxuICAgICAgICBjb25zdCBnZXRDb21wb3VuZFZhcmlhbnRDbGFzc05hbWVzID0gY29uZmlnID09PSBudWxsIHx8IGNvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogKHJlZiA9IGNvbmZpZy5jb21wb3VuZFZhcmlhbnRzKSA9PT0gbnVsbCB8fCByZWYgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlZi5yZWR1Y2UoKGFjYywgcGFyYW0xKT0+e1xyXG4gICAgICAgICAgICBsZXQgeyBjbGFzczogY3ZDbGFzcyAsIGNsYXNzTmFtZTogY3ZDbGFzc05hbWUgLCAuLi5jb21wb3VuZFZhcmlhbnRPcHRpb25zIH0gPSBwYXJhbTE7XHJcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjb21wb3VuZFZhcmlhbnRPcHRpb25zKS5ldmVyeSgocGFyYW0pPT57XHJcbiAgICAgICAgICAgICAgICBsZXQgW2tleSwgdmFsdWVdID0gcGFyYW07XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5pbmNsdWRlcyh7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4uZGVmYXVsdFZhcmlhbnRzLFxyXG4gICAgICAgICAgICAgICAgICAgIC4uLnByb3BzV2l0aG91dFVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgfVtrZXldKSA6ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4uZGVmYXVsdFZhcmlhbnRzLFxyXG4gICAgICAgICAgICAgICAgICAgIC4uLnByb3BzV2l0aG91dFVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgfSlba2V5XSA9PT0gdmFsdWU7XHJcbiAgICAgICAgICAgIH0pID8gW1xyXG4gICAgICAgICAgICAgICAgLi4uYWNjLFxyXG4gICAgICAgICAgICAgICAgY3ZDbGFzcyxcclxuICAgICAgICAgICAgICAgIGN2Q2xhc3NOYW1lXHJcbiAgICAgICAgICAgIF0gOiBhY2M7XHJcbiAgICAgICAgfSwgW10pO1xyXG4gICAgICAgIHJldHVybiBjeChiYXNlLCBnZXRWYXJpYW50Q2xhc3NOYW1lcywgZ2V0Q29tcG91bmRWYXJpYW50Q2xhc3NOYW1lcywgcHJvcHMgPT09IG51bGwgfHwgcHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByb3BzLmNsYXNzLCBwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHMuY2xhc3NOYW1lKTtcclxuICAgIH07XHJcbn07XHJcblxyXG5cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clsx: function() { return /* binding */ clsx; }\n/* harmony export */ });\nfunction r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}/* harmony default export */ __webpack_exports__[\"default\"] = (clsx);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbGFzcy12YXJpYW5jZS1hdXRob3JpdHkvbm9kZV9tb2R1bGVzL2Nsc3gvZGlzdC9jbHN4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsY0FBYyxhQUFhLCtDQUErQyx1REFBdUQsV0FBVywwQ0FBMEMseUNBQXlDLFNBQWdCLGdCQUFnQixxQkFBcUIsbUJBQW1CLGtEQUFrRCxTQUFTLCtEQUFlLElBQUkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2NsYXNzLXZhcmlhbmNlLWF1dGhvcml0eS9ub2RlX21vZHVsZXMvY2xzeC9kaXN0L2Nsc3gubWpzP2NiOGUiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gcihlKXt2YXIgdCxmLG49XCJcIjtpZihcInN0cmluZ1wiPT10eXBlb2YgZXx8XCJudW1iZXJcIj09dHlwZW9mIGUpbis9ZTtlbHNlIGlmKFwib2JqZWN0XCI9PXR5cGVvZiBlKWlmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdJiYoZj1yKGVbdF0pKSYmKG4mJihuKz1cIiBcIiksbis9Zik7ZWxzZSBmb3IodCBpbiBlKWVbdF0mJihuJiYobis9XCIgXCIpLG4rPXQpO3JldHVybiBufWV4cG9ydCBmdW5jdGlvbiBjbHN4KCl7Zm9yKHZhciBlLHQsZj0wLG49XCJcIjtmPGFyZ3VtZW50cy5sZW5ndGg7KShlPWFyZ3VtZW50c1tmKytdKSYmKHQ9cihlKSkmJihuJiYobis9XCIgXCIpLG4rPXQpO3JldHVybiBufWV4cG9ydCBkZWZhdWx0IGNsc3g7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/clsx/dist/clsx.mjs":
|
||
/*!*****************************************!*\
|
||
!*** ./node_modules/clsx/dist/clsx.mjs ***!
|
||
\*****************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clsx: function() { return /* binding */ clsx; }\n/* harmony export */ });\nfunction r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}/* harmony default export */ __webpack_exports__[\"default\"] = (clsx);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGNBQWMsYUFBYSwrQ0FBK0MsZ0RBQWdELGVBQWUsUUFBUSxJQUFJLDBDQUEwQyx5Q0FBeUMsU0FBZ0IsZ0JBQWdCLHdDQUF3QyxJQUFJLG1EQUFtRCxTQUFTLCtEQUFlLElBQUkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2Nsc3gvZGlzdC9jbHN4Lm1qcz81MzgzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHIoZSl7dmFyIHQsZixuPVwiXCI7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGV8fFwibnVtYmVyXCI9PXR5cGVvZiBlKW4rPWU7ZWxzZSBpZihcIm9iamVjdFwiPT10eXBlb2YgZSlpZihBcnJheS5pc0FycmF5KGUpKXt2YXIgbz1lLmxlbmd0aDtmb3IodD0wO3Q8bzt0KyspZVt0XSYmKGY9cihlW3RdKSkmJihuJiYobis9XCIgXCIpLG4rPWYpfWVsc2UgZm9yKGYgaW4gZSllW2ZdJiYobiYmKG4rPVwiIFwiKSxuKz1mKTtyZXR1cm4gbn1leHBvcnQgZnVuY3Rpb24gY2xzeCgpe2Zvcih2YXIgZSx0LGY9MCxuPVwiXCIsbz1hcmd1bWVudHMubGVuZ3RoO2Y8bztmKyspKGU9YXJndW1lbnRzW2ZdKSYmKHQ9cihlKSkmJihuJiYobis9XCIgXCIpLG4rPXQpO3JldHVybiBufWV4cG9ydCBkZWZhdWx0IGNsc3g7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/clsx/dist/clsx.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/animate/single-value.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/animation/animate/single-value.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateSingleValue: function() { return /* binding */ animateSingleValue; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _interfaces_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../interfaces/motion-value.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs\");\n\r\n\r\n\r\nfunction animateSingleValue(value, keyframes, options) {\r\n const motionValue$1 = (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(value) ? value : (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.motionValue)(value);\r\n motionValue$1.start((0,_interfaces_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__.animateMotionValue)(\"\", motionValue$1, keyframes, options));\r\n return motionValue$1.animation;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL2FuaW1hdGUvc2luZ2xlLXZhbHVlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXdEO0FBQ1k7QUFDcEU7QUFDQTtBQUNBLDBCQUEwQix5REFBYSxrQkFBa0IsdURBQVc7QUFDcEUsd0JBQXdCLGdGQUFrQjtBQUMxQztBQUNBO0FBQ0E7QUFDOEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9hbmltYXRpb24vYW5pbWF0ZS9zaW5nbGUtdmFsdWUubWpzPzZmYzAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSwgbW90aW9uVmFsdWUgfSBmcm9tICdtb3Rpb24tZG9tJztcclxuaW1wb3J0IHsgYW5pbWF0ZU1vdGlvblZhbHVlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9tb3Rpb24tdmFsdWUubWpzJztcclxuXHJcbmZ1bmN0aW9uIGFuaW1hdGVTaW5nbGVWYWx1ZSh2YWx1ZSwga2V5ZnJhbWVzLCBvcHRpb25zKSB7XHJcbiAgICBjb25zdCBtb3Rpb25WYWx1ZSQxID0gaXNNb3Rpb25WYWx1ZSh2YWx1ZSkgPyB2YWx1ZSA6IG1vdGlvblZhbHVlKHZhbHVlKTtcclxuICAgIG1vdGlvblZhbHVlJDEuc3RhcnQoYW5pbWF0ZU1vdGlvblZhbHVlKFwiXCIsIG1vdGlvblZhbHVlJDEsIGtleWZyYW1lcywgb3B0aW9ucykpO1xyXG4gICAgcmV0dXJuIG1vdGlvblZhbHVlJDEuYW5pbWF0aW9uO1xyXG59XHJcblxyXG5leHBvcnQgeyBhbmltYXRlU2luZ2xlVmFsdWUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/animate/single-value.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs":
|
||
/*!***************************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs ***!
|
||
\***************************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getFinalKeyframe: function() { return /* binding */ getFinalKeyframe; }\n/* harmony export */ });\nconst isNotNull = (value) => value !== null;\r\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe) {\r\n const resolvedKeyframes = keyframes.filter(isNotNull);\r\n const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1\r\n ? 0\r\n : resolvedKeyframes.length - 1;\r\n return !index || finalKeyframe === undefined\r\n ? resolvedKeyframes[index]\r\n : finalKeyframe;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL2FuaW1hdG9ycy93YWFwaS91dGlscy9nZXQtZmluYWwta2V5ZnJhbWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLHVDQUF1Qyw2QkFBNkI7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQzRCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL2FuaW1hdG9ycy93YWFwaS91dGlscy9nZXQtZmluYWwta2V5ZnJhbWUubWpzPzdlMDEiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNOb3ROdWxsID0gKHZhbHVlKSA9PiB2YWx1ZSAhPT0gbnVsbDtcclxuZnVuY3Rpb24gZ2V0RmluYWxLZXlmcmFtZShrZXlmcmFtZXMsIHsgcmVwZWF0LCByZXBlYXRUeXBlID0gXCJsb29wXCIgfSwgZmluYWxLZXlmcmFtZSkge1xyXG4gICAgY29uc3QgcmVzb2x2ZWRLZXlmcmFtZXMgPSBrZXlmcmFtZXMuZmlsdGVyKGlzTm90TnVsbCk7XHJcbiAgICBjb25zdCBpbmRleCA9IHJlcGVhdCAmJiByZXBlYXRUeXBlICE9PSBcImxvb3BcIiAmJiByZXBlYXQgJSAyID09PSAxXHJcbiAgICAgICAgPyAwXHJcbiAgICAgICAgOiByZXNvbHZlZEtleWZyYW1lcy5sZW5ndGggLSAxO1xyXG4gICAgcmV0dXJuICFpbmRleCB8fCBmaW5hbEtleWZyYW1lID09PSB1bmRlZmluZWRcclxuICAgICAgICA/IHJlc29sdmVkS2V5ZnJhbWVzW2luZGV4XVxyXG4gICAgICAgIDogZmluYWxLZXlmcmFtZTtcclxufVxyXG5cclxuZXhwb3J0IHsgZ2V0RmluYWxLZXlmcmFtZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs ***!
|
||
\**********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateMotionValue: function() { return /* binding */ animateMotionValue; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _animators_waapi_utils_get_final_keyframe_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../animators/waapi/utils/get-final-keyframe.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs\");\n/* harmony import */ var _utils_default_transitions_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/default-transitions.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs\");\n/* harmony import */ var _utils_is_transition_defined_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/is-transition-defined.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\nconst animateMotionValue = (name, value, target, transition = {}, element, isHandoff) => (onComplete) => {\r\n const valueTransition = (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.getValueTransition)(transition, name) || {};\r\n /**\r\n * Most transition values are currently completely overwritten by value-specific\r\n * transitions. In the future it'd be nicer to blend these transitions. But for now\r\n * delay actually does inherit from the root transition if not value-specific.\r\n */\r\n const delay = valueTransition.delay || transition.delay || 0;\r\n /**\r\n * Elapsed isn't a public transition option but can be passed through from\r\n * optimized appear effects in milliseconds.\r\n */\r\n let { elapsed = 0 } = transition;\r\n elapsed = elapsed - (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.secondsToMilliseconds)(delay);\r\n const options = {\r\n keyframes: Array.isArray(target) ? target : [null, target],\r\n ease: \"easeOut\",\r\n velocity: value.getVelocity(),\r\n ...valueTransition,\r\n delay: -elapsed,\r\n onUpdate: (v) => {\r\n value.set(v);\r\n valueTransition.onUpdate && valueTransition.onUpdate(v);\r\n },\r\n onComplete: () => {\r\n onComplete();\r\n valueTransition.onComplete && valueTransition.onComplete();\r\n },\r\n name,\r\n motionValue: value,\r\n element: isHandoff ? undefined : element,\r\n };\r\n /**\r\n * If there's no transition defined for this value, we can generate\r\n * unique transition settings for this value.\r\n */\r\n if (!(0,_utils_is_transition_defined_mjs__WEBPACK_IMPORTED_MODULE_2__.isTransitionDefined)(valueTransition)) {\r\n Object.assign(options, (0,_utils_default_transitions_mjs__WEBPACK_IMPORTED_MODULE_3__.getDefaultTransition)(name, options));\r\n }\r\n /**\r\n * Both WAAPI and our internal animation functions use durations\r\n * as defined by milliseconds, while our external API defines them\r\n * as seconds.\r\n */\r\n options.duration && (options.duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.secondsToMilliseconds)(options.duration));\r\n options.repeatDelay && (options.repeatDelay = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.secondsToMilliseconds)(options.repeatDelay));\r\n /**\r\n * Support deprecated way to set initial value. Prefer keyframe syntax.\r\n */\r\n if (options.from !== undefined) {\r\n options.keyframes[0] = options.from;\r\n }\r\n let shouldSkip = false;\r\n if (options.type === false ||\r\n (options.duration === 0 && !options.repeatDelay)) {\r\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.makeAnimationInstant)(options);\r\n if (options.delay === 0) {\r\n shouldSkip = true;\r\n }\r\n }\r\n if (motion_utils__WEBPACK_IMPORTED_MODULE_5__.MotionGlobalConfig.instantAnimations ||\r\n motion_utils__WEBPACK_IMPORTED_MODULE_5__.MotionGlobalConfig.skipAnimations) {\r\n shouldSkip = true;\r\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.makeAnimationInstant)(options);\r\n options.delay = 0;\r\n }\r\n /**\r\n * If the transition type or easing has been explicitly set by the user\r\n * then we don't want to allow flattening the animation.\r\n */\r\n options.allowFlatten = !valueTransition.type && !valueTransition.ease;\r\n /**\r\n * If we can or must skip creating the animation, and apply only\r\n * the final keyframe, do so. We also check once keyframes are resolved but\r\n * this early check prevents the need to create an animation at all.\r\n */\r\n if (shouldSkip && !isHandoff && value.get() !== undefined) {\r\n const finalKeyframe = (0,_animators_waapi_utils_get_final_keyframe_mjs__WEBPACK_IMPORTED_MODULE_6__.getFinalKeyframe)(options.keyframes, valueTransition);\r\n if (finalKeyframe !== undefined) {\r\n motion_dom__WEBPACK_IMPORTED_MODULE_7__.frame.update(() => {\r\n options.onUpdate(finalKeyframe);\r\n options.onComplete();\r\n });\r\n return;\r\n }\r\n }\r\n return valueTransition.isSync\r\n ? new motion_dom__WEBPACK_IMPORTED_MODULE_8__.JSAnimation(options)\r\n : new motion_dom__WEBPACK_IMPORTED_MODULE_9__.AsyncMotionValueAnimation(options);\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL2ludGVyZmFjZXMvbW90aW9uLXZhbHVlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFxSDtBQUM1QztBQUNVO0FBQ1g7QUFDQztBQUN6RTtBQUNBLGdFQUFnRTtBQUNoRSw0QkFBNEIsOERBQWtCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxjQUFjO0FBQ3hCLHdCQUF3QixtRUFBcUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxxRkFBbUI7QUFDNUIsK0JBQStCLG9GQUFvQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsbUVBQXFCO0FBQ2pFLGtEQUFrRCxtRUFBcUI7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxnRUFBb0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDREQUFrQjtBQUMxQixRQUFRLDREQUFrQjtBQUMxQjtBQUNBLFFBQVEsZ0VBQW9CO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLCtGQUFnQjtBQUM5QztBQUNBLFlBQVksNkNBQUs7QUFDakI7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsbURBQVc7QUFDekIsY0FBYyxpRUFBeUI7QUFDdkM7QUFDQTtBQUM4QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2FuaW1hdGlvbi9pbnRlcmZhY2VzL21vdGlvbi12YWx1ZS5tanM/MGY5YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRWYWx1ZVRyYW5zaXRpb24sIG1ha2VBbmltYXRpb25JbnN0YW50LCBmcmFtZSwgSlNBbmltYXRpb24sIEFzeW5jTW90aW9uVmFsdWVBbmltYXRpb24gfSBmcm9tICdtb3Rpb24tZG9tJztcclxuaW1wb3J0IHsgc2Vjb25kc1RvTWlsbGlzZWNvbmRzLCBNb3Rpb25HbG9iYWxDb25maWcgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBnZXRGaW5hbEtleWZyYW1lIH0gZnJvbSAnLi4vYW5pbWF0b3JzL3dhYXBpL3V0aWxzL2dldC1maW5hbC1rZXlmcmFtZS5tanMnO1xyXG5pbXBvcnQgeyBnZXREZWZhdWx0VHJhbnNpdGlvbiB9IGZyb20gJy4uL3V0aWxzL2RlZmF1bHQtdHJhbnNpdGlvbnMubWpzJztcclxuaW1wb3J0IHsgaXNUcmFuc2l0aW9uRGVmaW5lZCB9IGZyb20gJy4uL3V0aWxzL2lzLXRyYW5zaXRpb24tZGVmaW5lZC5tanMnO1xyXG5cclxuY29uc3QgYW5pbWF0ZU1vdGlvblZhbHVlID0gKG5hbWUsIHZhbHVlLCB0YXJnZXQsIHRyYW5zaXRpb24gPSB7fSwgZWxlbWVudCwgaXNIYW5kb2ZmKSA9PiAob25Db21wbGV0ZSkgPT4ge1xyXG4gICAgY29uc3QgdmFsdWVUcmFuc2l0aW9uID0gZ2V0VmFsdWVUcmFuc2l0aW9uKHRyYW5zaXRpb24sIG5hbWUpIHx8IHt9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBNb3N0IHRyYW5zaXRpb24gdmFsdWVzIGFyZSBjdXJyZW50bHkgY29tcGxldGVseSBvdmVyd3JpdHRlbiBieSB2YWx1ZS1zcGVjaWZpY1xyXG4gICAgICogdHJhbnNpdGlvbnMuIEluIHRoZSBmdXR1cmUgaXQnZCBiZSBuaWNlciB0byBibGVuZCB0aGVzZSB0cmFuc2l0aW9ucy4gQnV0IGZvciBub3dcclxuICAgICAqIGRlbGF5IGFjdHVhbGx5IGRvZXMgaW5oZXJpdCBmcm9tIHRoZSByb290IHRyYW5zaXRpb24gaWYgbm90IHZhbHVlLXNwZWNpZmljLlxyXG4gICAgICovXHJcbiAgICBjb25zdCBkZWxheSA9IHZhbHVlVHJhbnNpdGlvbi5kZWxheSB8fCB0cmFuc2l0aW9uLmRlbGF5IHx8IDA7XHJcbiAgICAvKipcclxuICAgICAqIEVsYXBzZWQgaXNuJ3QgYSBwdWJsaWMgdHJhbnNpdGlvbiBvcHRpb24gYnV0IGNhbiBiZSBwYXNzZWQgdGhyb3VnaCBmcm9tXHJcbiAgICAgKiBvcHRpbWl6ZWQgYXBwZWFyIGVmZmVjdHMgaW4gbWlsbGlzZWNvbmRzLlxyXG4gICAgICovXHJcbiAgICBsZXQgeyBlbGFwc2VkID0gMCB9ID0gdHJhbnNpdGlvbjtcclxuICAgIGVsYXBzZWQgPSBlbGFwc2VkIC0gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKGRlbGF5KTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAga2V5ZnJhbWVzOiBBcnJheS5pc0FycmF5KHRhcmdldCkgPyB0YXJnZXQgOiBbbnVsbCwgdGFyZ2V0XSxcclxuICAgICAgICBlYXNlOiBcImVhc2VPdXRcIixcclxuICAgICAgICB2ZWxvY2l0eTogdmFsdWUuZ2V0VmVsb2NpdHkoKSxcclxuICAgICAgICAuLi52YWx1ZVRyYW5zaXRpb24sXHJcbiAgICAgICAgZGVsYXk6IC1lbGFwc2VkLFxyXG4gICAgICAgIG9uVXBkYXRlOiAodikgPT4ge1xyXG4gICAgICAgICAgICB2YWx1ZS5zZXQodik7XHJcbiAgICAgICAgICAgIHZhbHVlVHJhbnNpdGlvbi5vblVwZGF0ZSAmJiB2YWx1ZVRyYW5zaXRpb24ub25VcGRhdGUodik7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIG9uQ29tcGxldGUoKTtcclxuICAgICAgICAgICAgdmFsdWVUcmFuc2l0aW9uLm9uQ29tcGxldGUgJiYgdmFsdWVUcmFuc2l0aW9uLm9uQ29tcGxldGUoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG5hbWUsXHJcbiAgICAgICAgbW90aW9uVmFsdWU6IHZhbHVlLFxyXG4gICAgICAgIGVsZW1lbnQ6IGlzSGFuZG9mZiA/IHVuZGVmaW5lZCA6IGVsZW1lbnQsXHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB0aGVyZSdzIG5vIHRyYW5zaXRpb24gZGVmaW5lZCBmb3IgdGhpcyB2YWx1ZSwgd2UgY2FuIGdlbmVyYXRlXHJcbiAgICAgKiB1bmlxdWUgdHJhbnNpdGlvbiBzZXR0aW5ncyBmb3IgdGhpcyB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgaWYgKCFpc1RyYW5zaXRpb25EZWZpbmVkKHZhbHVlVHJhbnNpdGlvbikpIHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKG9wdGlvbnMsIGdldERlZmF1bHRUcmFuc2l0aW9uKG5hbWUsIG9wdGlvbnMpKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQm90aCBXQUFQSSBhbmQgb3VyIGludGVybmFsIGFuaW1hdGlvbiBmdW5jdGlvbnMgdXNlIGR1cmF0aW9uc1xyXG4gICAgICogYXMgZGVmaW5lZCBieSBtaWxsaXNlY29uZHMsIHdoaWxlIG91ciBleHRlcm5hbCBBUEkgZGVmaW5lcyB0aGVtXHJcbiAgICAgKiBhcyBzZWNvbmRzLlxyXG4gICAgICovXHJcbiAgICBvcHRpb25zLmR1cmF0aW9uICYmIChvcHRpb25zLmR1cmF0aW9uID0gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKG9wdGlvbnMuZHVyYXRpb24pKTtcclxuICAgIG9wdGlvbnMucmVwZWF0RGVsYXkgJiYgKG9wdGlvbnMucmVwZWF0RGVsYXkgPSBzZWNvbmRzVG9NaWxsaXNlY29uZHMob3B0aW9ucy5yZXBlYXREZWxheSkpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdXBwb3J0IGRlcHJlY2F0ZWQgd2F5IHRvIHNldCBpbml0aWFsIHZhbHVlLiBQcmVmZXIga2V5ZnJhbWUgc3ludGF4LlxyXG4gICAgICovXHJcbiAgICBpZiAob3B0aW9ucy5mcm9tICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBvcHRpb25zLmtleWZyYW1lc1swXSA9IG9wdGlvbnMuZnJvbTtcclxuICAgIH1cclxuICAgIGxldCBzaG91bGRTa2lwID0gZmFsc2U7XHJcbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBmYWxzZSB8fFxyXG4gICAgICAgIChvcHRpb25zLmR1cmF0aW9uID09PSAwICYmICFvcHRpb25zLnJlcGVhdERlbGF5KSkge1xyXG4gICAgICAgIG1ha2VBbmltYXRpb25JbnN0YW50KG9wdGlvbnMpO1xyXG4gICAgICAgIGlmIChvcHRpb25zLmRlbGF5ID09PSAwKSB7XHJcbiAgICAgICAgICAgIHNob3VsZFNraXAgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChNb3Rpb25HbG9iYWxDb25maWcuaW5zdGFudEFuaW1hdGlvbnMgfHxcclxuICAgICAgICBNb3Rpb25HbG9iYWxDb25maWcuc2tpcEFuaW1hdGlvbnMpIHtcclxuICAgICAgICBzaG91bGRTa2lwID0gdHJ1ZTtcclxuICAgICAgICBtYWtlQW5pbWF0aW9uSW5zdGFudChvcHRpb25zKTtcclxuICAgICAgICBvcHRpb25zLmRlbGF5ID0gMDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogSWYgdGhlIHRyYW5zaXRpb24gdHlwZSBvciBlYXNpbmcgaGFzIGJlZW4gZXhwbGljaXRseSBzZXQgYnkgdGhlIHVzZXJcclxuICAgICAqIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBhbGxvdyBmbGF0dGVuaW5nIHRoZSBhbmltYXRpb24uXHJcbiAgICAgKi9cclxuICAgIG9wdGlvbnMuYWxsb3dGbGF0dGVuID0gIXZhbHVlVHJhbnNpdGlvbi50eXBlICYmICF2YWx1ZVRyYW5zaXRpb24uZWFzZTtcclxuICAgIC8qKlxyXG4gICAgICogSWYgd2UgY2FuIG9yIG11c3Qgc2tpcCBjcmVhdGluZyB0aGUgYW5pbWF0aW9uLCBhbmQgYXBwbHkgb25seVxyXG4gICAgICogdGhlIGZpbmFsIGtleWZyYW1lLCBkbyBzby4gV2UgYWxzbyBjaGVjayBvbmNlIGtleWZyYW1lcyBhcmUgcmVzb2x2ZWQgYnV0XHJcbiAgICAgKiB0aGlzIGVhcmx5IGNoZWNrIHByZXZlbnRzIHRoZSBuZWVkIHRvIGNyZWF0ZSBhbiBhbmltYXRpb24gYXQgYWxsLlxyXG4gICAgICovXHJcbiAgICBpZiAoc2hvdWxkU2tpcCAmJiAhaXNIYW5kb2ZmICYmIHZhbHVlLmdldCgpICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjb25zdCBmaW5hbEtleWZyYW1lID0gZ2V0RmluYWxLZXlmcmFtZShvcHRpb25zLmtleWZyYW1lcywgdmFsdWVUcmFuc2l0aW9uKTtcclxuICAgICAgICBpZiAoZmluYWxLZXlmcmFtZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGZyYW1lLnVwZGF0ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvcHRpb25zLm9uVXBkYXRlKGZpbmFsS2V5ZnJhbWUpO1xyXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5vbkNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlVHJhbnNpdGlvbi5pc1N5bmNcclxuICAgICAgICA/IG5ldyBKU0FuaW1hdGlvbihvcHRpb25zKVxyXG4gICAgICAgIDogbmV3IEFzeW5jTW90aW9uVmFsdWVBbmltYXRpb24ob3B0aW9ucyk7XHJcbn07XHJcblxyXG5leHBvcnQgeyBhbmltYXRlTW90aW9uVmFsdWUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs":
|
||
/*!*******************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs ***!
|
||
\*******************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateTarget: function() { return /* binding */ animateTarget; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs\");\n/* harmony import */ var _render_utils_setters_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../render/utils/setters.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/setters.mjs\");\n/* harmony import */ var _value_use_will_change_add_will_change_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../value/use-will-change/add-will-change.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs\");\n/* harmony import */ var _optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../optimized-appear/get-appear-id.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs\");\n/* harmony import */ var _motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./motion-value.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Decide whether we should block this animation. Previously, we achieved this\r\n * just by checking whether the key was listed in protectedKeys, but this\r\n * posed problems if an animation was triggered by afterChildren and protectedKeys\r\n * had been set to true in the meantime.\r\n */\r\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\r\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\r\n needsAnimating[key] = false;\r\n return shouldBlock;\r\n}\r\nfunction animateTarget(visualElement, targetAndTransition, { delay = 0, transitionOverride, type } = {}) {\r\n let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = targetAndTransition;\r\n if (transitionOverride)\r\n transition = transitionOverride;\r\n const animations = [];\r\n const animationTypeState = type &&\r\n visualElement.animationState &&\r\n visualElement.animationState.getState()[type];\r\n for (const key in target) {\r\n const value = visualElement.getValue(key, visualElement.latestValues[key] ?? null);\r\n const valueTarget = target[key];\r\n if (valueTarget === undefined ||\r\n (animationTypeState &&\r\n shouldBlockAnimation(animationTypeState, key))) {\r\n continue;\r\n }\r\n const valueTransition = {\r\n delay,\r\n ...(0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.getValueTransition)(transition || {}, key),\r\n };\r\n /**\r\n * If the value is already at the defined target, skip the animation.\r\n */\r\n const currentValue = value.get();\r\n if (currentValue !== undefined &&\r\n !value.isAnimating &&\r\n !Array.isArray(valueTarget) &&\r\n valueTarget === currentValue &&\r\n !valueTransition.velocity) {\r\n continue;\r\n }\r\n /**\r\n * If this is the first time a value is being animated, check\r\n * to see if we're handling off from an existing animation.\r\n */\r\n let isHandoff = false;\r\n if (window.MotionHandoffAnimation) {\r\n const appearId = (0,_optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_1__.getOptimisedAppearId)(visualElement);\r\n if (appearId) {\r\n const startTime = window.MotionHandoffAnimation(appearId, key, motion_dom__WEBPACK_IMPORTED_MODULE_2__.frame);\r\n if (startTime !== null) {\r\n valueTransition.startTime = startTime;\r\n isHandoff = true;\r\n }\r\n }\r\n }\r\n (0,_value_use_will_change_add_will_change_mjs__WEBPACK_IMPORTED_MODULE_3__.addValueToWillChange)(visualElement, key);\r\n value.start((0,_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__.animateMotionValue)(key, value, valueTarget, visualElement.shouldReduceMotion && motion_dom__WEBPACK_IMPORTED_MODULE_5__.positionalKeys.has(key)\r\n ? { type: false }\r\n : valueTransition, visualElement, isHandoff));\r\n const animation = value.animation;\r\n if (animation) {\r\n animations.push(animation);\r\n }\r\n }\r\n if (transitionEnd) {\r\n Promise.all(animations).then(() => {\r\n motion_dom__WEBPACK_IMPORTED_MODULE_2__.frame.update(() => {\r\n transitionEnd && (0,_render_utils_setters_mjs__WEBPACK_IMPORTED_MODULE_6__.setTarget)(visualElement, transitionEnd);\r\n });\r\n });\r\n }\r\n return animations;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL2ludGVyZmFjZXMvdmlzdWFsLWVsZW1lbnQtdGFyZ2V0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUF1RTtBQUNaO0FBQzRCO0FBQ1Y7QUFDckI7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsK0JBQStCO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkRBQTZELHNDQUFzQyxJQUFJO0FBQ3ZHLFVBQVUsOEVBQThFO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSw4REFBa0IsaUJBQWlCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2Qix5RkFBb0I7QUFDakQ7QUFDQSwrRUFBK0UsNkNBQUs7QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxnR0FBb0I7QUFDNUIsb0JBQW9CLHFFQUFrQiw4REFBOEQsc0RBQWM7QUFDbEgsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLDZDQUFLO0FBQ2pCLGlDQUFpQyxvRUFBUztBQUMxQyxhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ3lCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL2ludGVyZmFjZXMvdmlzdWFsLWVsZW1lbnQtdGFyZ2V0Lm1qcz9iNzFlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFZhbHVlVHJhbnNpdGlvbiwgZnJhbWUsIHBvc2l0aW9uYWxLZXlzIH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcbmltcG9ydCB7IHNldFRhcmdldCB9IGZyb20gJy4uLy4uL3JlbmRlci91dGlscy9zZXR0ZXJzLm1qcyc7XHJcbmltcG9ydCB7IGFkZFZhbHVlVG9XaWxsQ2hhbmdlIH0gZnJvbSAnLi4vLi4vdmFsdWUvdXNlLXdpbGwtY2hhbmdlL2FkZC13aWxsLWNoYW5nZS5tanMnO1xyXG5pbXBvcnQgeyBnZXRPcHRpbWlzZWRBcHBlYXJJZCB9IGZyb20gJy4uL29wdGltaXplZC1hcHBlYXIvZ2V0LWFwcGVhci1pZC5tanMnO1xyXG5pbXBvcnQgeyBhbmltYXRlTW90aW9uVmFsdWUgfSBmcm9tICcuL21vdGlvbi12YWx1ZS5tanMnO1xyXG5cclxuLyoqXHJcbiAqIERlY2lkZSB3aGV0aGVyIHdlIHNob3VsZCBibG9jayB0aGlzIGFuaW1hdGlvbi4gUHJldmlvdXNseSwgd2UgYWNoaWV2ZWQgdGhpc1xyXG4gKiBqdXN0IGJ5IGNoZWNraW5nIHdoZXRoZXIgdGhlIGtleSB3YXMgbGlzdGVkIGluIHByb3RlY3RlZEtleXMsIGJ1dCB0aGlzXHJcbiAqIHBvc2VkIHByb2JsZW1zIGlmIGFuIGFuaW1hdGlvbiB3YXMgdHJpZ2dlcmVkIGJ5IGFmdGVyQ2hpbGRyZW4gYW5kIHByb3RlY3RlZEtleXNcclxuICogaGFkIGJlZW4gc2V0IHRvIHRydWUgaW4gdGhlIG1lYW50aW1lLlxyXG4gKi9cclxuZnVuY3Rpb24gc2hvdWxkQmxvY2tBbmltYXRpb24oeyBwcm90ZWN0ZWRLZXlzLCBuZWVkc0FuaW1hdGluZyB9LCBrZXkpIHtcclxuICAgIGNvbnN0IHNob3VsZEJsb2NrID0gcHJvdGVjdGVkS2V5cy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIG5lZWRzQW5pbWF0aW5nW2tleV0gIT09IHRydWU7XHJcbiAgICBuZWVkc0FuaW1hdGluZ1trZXldID0gZmFsc2U7XHJcbiAgICByZXR1cm4gc2hvdWxkQmxvY2s7XHJcbn1cclxuZnVuY3Rpb24gYW5pbWF0ZVRhcmdldCh2aXN1YWxFbGVtZW50LCB0YXJnZXRBbmRUcmFuc2l0aW9uLCB7IGRlbGF5ID0gMCwgdHJhbnNpdGlvbk92ZXJyaWRlLCB0eXBlIH0gPSB7fSkge1xyXG4gICAgbGV0IHsgdHJhbnNpdGlvbiA9IHZpc3VhbEVsZW1lbnQuZ2V0RGVmYXVsdFRyYW5zaXRpb24oKSwgdHJhbnNpdGlvbkVuZCwgLi4udGFyZ2V0IH0gPSB0YXJnZXRBbmRUcmFuc2l0aW9uO1xyXG4gICAgaWYgKHRyYW5zaXRpb25PdmVycmlkZSlcclxuICAgICAgICB0cmFuc2l0aW9uID0gdHJhbnNpdGlvbk92ZXJyaWRlO1xyXG4gICAgY29uc3QgYW5pbWF0aW9ucyA9IFtdO1xyXG4gICAgY29uc3QgYW5pbWF0aW9uVHlwZVN0YXRlID0gdHlwZSAmJlxyXG4gICAgICAgIHZpc3VhbEVsZW1lbnQuYW5pbWF0aW9uU3RhdGUgJiZcclxuICAgICAgICB2aXN1YWxFbGVtZW50LmFuaW1hdGlvblN0YXRlLmdldFN0YXRlKClbdHlwZV07XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0YXJnZXQpIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHZpc3VhbEVsZW1lbnQuZ2V0VmFsdWUoa2V5LCB2aXN1YWxFbGVtZW50LmxhdGVzdFZhbHVlc1trZXldID8/IG51bGwpO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlVGFyZ2V0ID0gdGFyZ2V0W2tleV07XHJcbiAgICAgICAgaWYgKHZhbHVlVGFyZ2V0ID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgICAgKGFuaW1hdGlvblR5cGVTdGF0ZSAmJlxyXG4gICAgICAgICAgICAgICAgc2hvdWxkQmxvY2tBbmltYXRpb24oYW5pbWF0aW9uVHlwZVN0YXRlLCBrZXkpKSkge1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdmFsdWVUcmFuc2l0aW9uID0ge1xyXG4gICAgICAgICAgICBkZWxheSxcclxuICAgICAgICAgICAgLi4uZ2V0VmFsdWVUcmFuc2l0aW9uKHRyYW5zaXRpb24gfHwge30sIGtleSksXHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB0aGUgdmFsdWUgaXMgYWxyZWFkeSBhdCB0aGUgZGVmaW5lZCB0YXJnZXQsIHNraXAgdGhlIGFuaW1hdGlvbi5cclxuICAgICAgICAgKi9cclxuICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB2YWx1ZS5nZXQoKTtcclxuICAgICAgICBpZiAoY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgIXZhbHVlLmlzQW5pbWF0aW5nICYmXHJcbiAgICAgICAgICAgICFBcnJheS5pc0FycmF5KHZhbHVlVGFyZ2V0KSAmJlxyXG4gICAgICAgICAgICB2YWx1ZVRhcmdldCA9PT0gY3VycmVudFZhbHVlICYmXHJcbiAgICAgICAgICAgICF2YWx1ZVRyYW5zaXRpb24udmVsb2NpdHkpIHtcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElmIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgYSB2YWx1ZSBpcyBiZWluZyBhbmltYXRlZCwgY2hlY2tcclxuICAgICAgICAgKiB0byBzZWUgaWYgd2UncmUgaGFuZGxpbmcgb2ZmIGZyb20gYW4gZXhpc3RpbmcgYW5pbWF0aW9uLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGxldCBpc0hhbmRvZmYgPSBmYWxzZTtcclxuICAgICAgICBpZiAod2luZG93Lk1vdGlvbkhhbmRvZmZBbmltYXRpb24pIHtcclxuICAgICAgICAgICAgY29uc3QgYXBwZWFySWQgPSBnZXRPcHRpbWlzZWRBcHBlYXJJZCh2aXN1YWxFbGVtZW50KTtcclxuICAgICAgICAgICAgaWYgKGFwcGVhcklkKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSB3aW5kb3cuTW90aW9uSGFuZG9mZkFuaW1hdGlvbihhcHBlYXJJZCwga2V5LCBmcmFtZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnRUaW1lICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVUcmFuc2l0aW9uLnN0YXJ0VGltZSA9IHN0YXJ0VGltZTtcclxuICAgICAgICAgICAgICAgICAgICBpc0hhbmRvZmYgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFkZFZhbHVlVG9XaWxsQ2hhbmdlKHZpc3VhbEVsZW1lbnQsIGtleSk7XHJcbiAgICAgICAgdmFsdWUuc3RhcnQoYW5pbWF0ZU1vdGlvblZhbHVlKGtleSwgdmFsdWUsIHZhbHVlVGFyZ2V0LCB2aXN1YWxFbGVtZW50LnNob3VsZFJlZHVjZU1vdGlvbiAmJiBwb3NpdGlvbmFsS2V5cy5oYXMoa2V5KVxyXG4gICAgICAgICAgICA/IHsgdHlwZTogZmFsc2UgfVxyXG4gICAgICAgICAgICA6IHZhbHVlVHJhbnNpdGlvbiwgdmlzdWFsRWxlbWVudCwgaXNIYW5kb2ZmKSk7XHJcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uID0gdmFsdWUuYW5pbWF0aW9uO1xyXG4gICAgICAgIGlmIChhbmltYXRpb24pIHtcclxuICAgICAgICAgICAgYW5pbWF0aW9ucy5wdXNoKGFuaW1hdGlvbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRyYW5zaXRpb25FbmQpIHtcclxuICAgICAgICBQcm9taXNlLmFsbChhbmltYXRpb25zKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgZnJhbWUudXBkYXRlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FbmQgJiYgc2V0VGFyZ2V0KHZpc3VhbEVsZW1lbnQsIHRyYW5zaXRpb25FbmQpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBhbmltYXRpb25zO1xyXG59XHJcblxyXG5leHBvcnQgeyBhbmltYXRlVGFyZ2V0IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs":
|
||
/*!********************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs ***!
|
||
\********************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateVariant: function() { return /* binding */ animateVariant; }\n/* harmony export */ });\n/* harmony import */ var _render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../render/utils/resolve-dynamic-variants.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/calc-child-stagger.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/calc-child-stagger.mjs\");\n/* harmony import */ var _visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./visual-element-target.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs\");\n\r\n\r\n\r\n\r\nfunction animateVariant(visualElement, variant, options = {}) {\r\n const resolved = (0,_render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveVariant)(visualElement, variant, options.type === \"exit\"\r\n ? visualElement.presenceContext?.custom\r\n : undefined);\r\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\r\n if (options.transitionOverride) {\r\n transition = options.transitionOverride;\r\n }\r\n /**\r\n * If we have a variant, create a callback that runs it as an animation.\r\n * Otherwise, we resolve a Promise immediately for a composable no-op.\r\n */\r\n const getAnimation = resolved\r\n ? () => Promise.all((0,_visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_1__.animateTarget)(visualElement, resolved, options))\r\n : () => Promise.resolve();\r\n /**\r\n * If we have children, create a callback that runs all their animations.\r\n * Otherwise, we resolve a Promise immediately for a composable no-op.\r\n */\r\n const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size\r\n ? (forwardDelay = 0) => {\r\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\r\n return animateChildren(visualElement, variant, forwardDelay, delayChildren, staggerChildren, staggerDirection, options);\r\n }\r\n : () => Promise.resolve();\r\n /**\r\n * If the transition explicitly defines a \"when\" option, we need to resolve either\r\n * this animation or all children animations before playing the other.\r\n */\r\n const { when } = transition;\r\n if (when) {\r\n const [first, last] = when === \"beforeChildren\"\r\n ? [getAnimation, getChildAnimations]\r\n : [getChildAnimations, getAnimation];\r\n return first().then(() => last());\r\n }\r\n else {\r\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\r\n }\r\n}\r\nfunction animateChildren(visualElement, variant, delay = 0, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\r\n const animations = [];\r\n for (const child of visualElement.variantChildren) {\r\n child.notify(\"AnimationStart\", variant);\r\n animations.push(animateVariant(child, variant, {\r\n ...options,\r\n delay: delay +\r\n (typeof delayChildren === \"function\" ? 0 : delayChildren) +\r\n (0,_utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_2__.calcChildStagger)(visualElement.variantChildren, child, delayChildren, staggerChildren, staggerDirection),\r\n }).then(() => child.notify(\"AnimationComplete\", variant)));\r\n }\r\n return Promise.all(animations);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL2ludGVyZmFjZXMvdmlzdWFsLWVsZW1lbnQtdmFyaWFudC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFpRjtBQUNkO0FBQ1A7QUFDNUQ7QUFDQSw0REFBNEQ7QUFDNUQscUJBQXFCLDBGQUFjO0FBQ25DO0FBQ0E7QUFDQSxVQUFVLDBEQUEwRDtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHlFQUFhO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHdEQUF3RDtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksT0FBTztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsK0VBQWdCO0FBQ2hDLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUMwQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2FuaW1hdGlvbi9pbnRlcmZhY2VzL3Zpc3VhbC1lbGVtZW50LXZhcmlhbnQubWpzPzE3MjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZVZhcmlhbnQgfSBmcm9tICcuLi8uLi9yZW5kZXIvdXRpbHMvcmVzb2x2ZS1keW5hbWljLXZhcmlhbnRzLm1qcyc7XHJcbmltcG9ydCB7IGNhbGNDaGlsZFN0YWdnZXIgfSBmcm9tICcuLi91dGlscy9jYWxjLWNoaWxkLXN0YWdnZXIubWpzJztcclxuaW1wb3J0IHsgYW5pbWF0ZVRhcmdldCB9IGZyb20gJy4vdmlzdWFsLWVsZW1lbnQtdGFyZ2V0Lm1qcyc7XHJcblxyXG5mdW5jdGlvbiBhbmltYXRlVmFyaWFudCh2aXN1YWxFbGVtZW50LCB2YXJpYW50LCBvcHRpb25zID0ge30pIHtcclxuICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVZhcmlhbnQodmlzdWFsRWxlbWVudCwgdmFyaWFudCwgb3B0aW9ucy50eXBlID09PSBcImV4aXRcIlxyXG4gICAgICAgID8gdmlzdWFsRWxlbWVudC5wcmVzZW5jZUNvbnRleHQ/LmN1c3RvbVxyXG4gICAgICAgIDogdW5kZWZpbmVkKTtcclxuICAgIGxldCB7IHRyYW5zaXRpb24gPSB2aXN1YWxFbGVtZW50LmdldERlZmF1bHRUcmFuc2l0aW9uKCkgfHwge30gfSA9IHJlc29sdmVkIHx8IHt9O1xyXG4gICAgaWYgKG9wdGlvbnMudHJhbnNpdGlvbk92ZXJyaWRlKSB7XHJcbiAgICAgICAgdHJhbnNpdGlvbiA9IG9wdGlvbnMudHJhbnNpdGlvbk92ZXJyaWRlO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB3ZSBoYXZlIGEgdmFyaWFudCwgY3JlYXRlIGEgY2FsbGJhY2sgdGhhdCBydW5zIGl0IGFzIGFuIGFuaW1hdGlvbi5cclxuICAgICAqIE90aGVyd2lzZSwgd2UgcmVzb2x2ZSBhIFByb21pc2UgaW1tZWRpYXRlbHkgZm9yIGEgY29tcG9zYWJsZSBuby1vcC5cclxuICAgICAqL1xyXG4gICAgY29uc3QgZ2V0QW5pbWF0aW9uID0gcmVzb2x2ZWRcclxuICAgICAgICA/ICgpID0+IFByb21pc2UuYWxsKGFuaW1hdGVUYXJnZXQodmlzdWFsRWxlbWVudCwgcmVzb2x2ZWQsIG9wdGlvbnMpKVxyXG4gICAgICAgIDogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCk7XHJcbiAgICAvKipcclxuICAgICAqIElmIHdlIGhhdmUgY2hpbGRyZW4sIGNyZWF0ZSBhIGNhbGxiYWNrIHRoYXQgcnVucyBhbGwgdGhlaXIgYW5pbWF0aW9ucy5cclxuICAgICAqIE90aGVyd2lzZSwgd2UgcmVzb2x2ZSBhIFByb21pc2UgaW1tZWRpYXRlbHkgZm9yIGEgY29tcG9zYWJsZSBuby1vcC5cclxuICAgICAqL1xyXG4gICAgY29uc3QgZ2V0Q2hpbGRBbmltYXRpb25zID0gdmlzdWFsRWxlbWVudC52YXJpYW50Q2hpbGRyZW4gJiYgdmlzdWFsRWxlbWVudC52YXJpYW50Q2hpbGRyZW4uc2l6ZVxyXG4gICAgICAgID8gKGZvcndhcmREZWxheSA9IDApID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBkZWxheUNoaWxkcmVuID0gMCwgc3RhZ2dlckNoaWxkcmVuLCBzdGFnZ2VyRGlyZWN0aW9uLCB9ID0gdHJhbnNpdGlvbjtcclxuICAgICAgICAgICAgcmV0dXJuIGFuaW1hdGVDaGlsZHJlbih2aXN1YWxFbGVtZW50LCB2YXJpYW50LCBmb3J3YXJkRGVsYXksIGRlbGF5Q2hpbGRyZW4sIHN0YWdnZXJDaGlsZHJlbiwgc3RhZ2dlckRpcmVjdGlvbiwgb3B0aW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCk7XHJcbiAgICAvKipcclxuICAgICAqIElmIHRoZSB0cmFuc2l0aW9uIGV4cGxpY2l0bHkgZGVmaW5lcyBhIFwid2hlblwiIG9wdGlvbiwgd2UgbmVlZCB0byByZXNvbHZlIGVpdGhlclxyXG4gICAgICogdGhpcyBhbmltYXRpb24gb3IgYWxsIGNoaWxkcmVuIGFuaW1hdGlvbnMgYmVmb3JlIHBsYXlpbmcgdGhlIG90aGVyLlxyXG4gICAgICovXHJcbiAgICBjb25zdCB7IHdoZW4gfSA9IHRyYW5zaXRpb247XHJcbiAgICBpZiAod2hlbikge1xyXG4gICAgICAgIGNvbnN0IFtmaXJzdCwgbGFzdF0gPSB3aGVuID09PSBcImJlZm9yZUNoaWxkcmVuXCJcclxuICAgICAgICAgICAgPyBbZ2V0QW5pbWF0aW9uLCBnZXRDaGlsZEFuaW1hdGlvbnNdXHJcbiAgICAgICAgICAgIDogW2dldENoaWxkQW5pbWF0aW9ucywgZ2V0QW5pbWF0aW9uXTtcclxuICAgICAgICByZXR1cm4gZmlyc3QoKS50aGVuKCgpID0+IGxhc3QoKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2dldEFuaW1hdGlvbigpLCBnZXRDaGlsZEFuaW1hdGlvbnMob3B0aW9ucy5kZWxheSldKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBhbmltYXRlQ2hpbGRyZW4odmlzdWFsRWxlbWVudCwgdmFyaWFudCwgZGVsYXkgPSAwLCBkZWxheUNoaWxkcmVuID0gMCwgc3RhZ2dlckNoaWxkcmVuID0gMCwgc3RhZ2dlckRpcmVjdGlvbiA9IDEsIG9wdGlvbnMpIHtcclxuICAgIGNvbnN0IGFuaW1hdGlvbnMgPSBbXTtcclxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdmlzdWFsRWxlbWVudC52YXJpYW50Q2hpbGRyZW4pIHtcclxuICAgICAgICBjaGlsZC5ub3RpZnkoXCJBbmltYXRpb25TdGFydFwiLCB2YXJpYW50KTtcclxuICAgICAgICBhbmltYXRpb25zLnB1c2goYW5pbWF0ZVZhcmlhbnQoY2hpbGQsIHZhcmlhbnQsIHtcclxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgICAgICAgZGVsYXk6IGRlbGF5ICtcclxuICAgICAgICAgICAgICAgICh0eXBlb2YgZGVsYXlDaGlsZHJlbiA9PT0gXCJmdW5jdGlvblwiID8gMCA6IGRlbGF5Q2hpbGRyZW4pICtcclxuICAgICAgICAgICAgICAgIGNhbGNDaGlsZFN0YWdnZXIodmlzdWFsRWxlbWVudC52YXJpYW50Q2hpbGRyZW4sIGNoaWxkLCBkZWxheUNoaWxkcmVuLCBzdGFnZ2VyQ2hpbGRyZW4sIHN0YWdnZXJEaXJlY3Rpb24pLFxyXG4gICAgICAgIH0pLnRoZW4oKCkgPT4gY2hpbGQubm90aWZ5KFwiQW5pbWF0aW9uQ29tcGxldGVcIiwgdmFyaWFudCkpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBQcm9taXNlLmFsbChhbmltYXRpb25zKTtcclxufVxyXG5cclxuZXhwb3J0IHsgYW5pbWF0ZVZhcmlhbnQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs":
|
||
/*!************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs ***!
|
||
\************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateVisualElement: function() { return /* binding */ animateVisualElement; }\n/* harmony export */ });\n/* harmony import */ var _render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../render/utils/resolve-dynamic-variants.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./visual-element-target.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs\");\n/* harmony import */ var _visual_element_variant_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./visual-element-variant.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs\");\n\r\n\r\n\r\n\r\nfunction animateVisualElement(visualElement, definition, options = {}) {\r\n visualElement.notify(\"AnimationStart\", definition);\r\n let animation;\r\n if (Array.isArray(definition)) {\r\n const animations = definition.map((variant) => (0,_visual_element_variant_mjs__WEBPACK_IMPORTED_MODULE_0__.animateVariant)(visualElement, variant, options));\r\n animation = Promise.all(animations);\r\n }\r\n else if (typeof definition === \"string\") {\r\n animation = (0,_visual_element_variant_mjs__WEBPACK_IMPORTED_MODULE_0__.animateVariant)(visualElement, definition, options);\r\n }\r\n else {\r\n const resolvedDefinition = typeof definition === \"function\"\r\n ? (0,_render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_1__.resolveVariant)(visualElement, definition, options.custom)\r\n : definition;\r\n animation = Promise.all((0,_visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_2__.animateTarget)(visualElement, resolvedDefinition, options));\r\n }\r\n return animation.then(() => {\r\n visualElement.notify(\"AnimationComplete\", definition);\r\n });\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL2ludGVyZmFjZXMvdmlzdWFsLWVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBaUY7QUFDckI7QUFDRTtBQUM5RDtBQUNBLHFFQUFxRTtBQUNyRTtBQUNBO0FBQ0E7QUFDQSx1REFBdUQsMkVBQWM7QUFDckU7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDJFQUFjO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBLGNBQWMsMEZBQWM7QUFDNUI7QUFDQSxnQ0FBZ0MseUVBQWE7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9hbmltYXRpb24vaW50ZXJmYWNlcy92aXN1YWwtZWxlbWVudC5tanM/YzVhYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlVmFyaWFudCB9IGZyb20gJy4uLy4uL3JlbmRlci91dGlscy9yZXNvbHZlLWR5bmFtaWMtdmFyaWFudHMubWpzJztcclxuaW1wb3J0IHsgYW5pbWF0ZVRhcmdldCB9IGZyb20gJy4vdmlzdWFsLWVsZW1lbnQtdGFyZ2V0Lm1qcyc7XHJcbmltcG9ydCB7IGFuaW1hdGVWYXJpYW50IH0gZnJvbSAnLi92aXN1YWwtZWxlbWVudC12YXJpYW50Lm1qcyc7XHJcblxyXG5mdW5jdGlvbiBhbmltYXRlVmlzdWFsRWxlbWVudCh2aXN1YWxFbGVtZW50LCBkZWZpbml0aW9uLCBvcHRpb25zID0ge30pIHtcclxuICAgIHZpc3VhbEVsZW1lbnQubm90aWZ5KFwiQW5pbWF0aW9uU3RhcnRcIiwgZGVmaW5pdGlvbik7XHJcbiAgICBsZXQgYW5pbWF0aW9uO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGVmaW5pdGlvbikpIHtcclxuICAgICAgICBjb25zdCBhbmltYXRpb25zID0gZGVmaW5pdGlvbi5tYXAoKHZhcmlhbnQpID0+IGFuaW1hdGVWYXJpYW50KHZpc3VhbEVsZW1lbnQsIHZhcmlhbnQsIG9wdGlvbnMpKTtcclxuICAgICAgICBhbmltYXRpb24gPSBQcm9taXNlLmFsbChhbmltYXRpb25zKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHR5cGVvZiBkZWZpbml0aW9uID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgYW5pbWF0aW9uID0gYW5pbWF0ZVZhcmlhbnQodmlzdWFsRWxlbWVudCwgZGVmaW5pdGlvbiwgb3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCByZXNvbHZlZERlZmluaXRpb24gPSB0eXBlb2YgZGVmaW5pdGlvbiA9PT0gXCJmdW5jdGlvblwiXHJcbiAgICAgICAgICAgID8gcmVzb2x2ZVZhcmlhbnQodmlzdWFsRWxlbWVudCwgZGVmaW5pdGlvbiwgb3B0aW9ucy5jdXN0b20pXHJcbiAgICAgICAgICAgIDogZGVmaW5pdGlvbjtcclxuICAgICAgICBhbmltYXRpb24gPSBQcm9taXNlLmFsbChhbmltYXRlVGFyZ2V0KHZpc3VhbEVsZW1lbnQsIHJlc29sdmVkRGVmaW5pdGlvbiwgb3B0aW9ucykpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFuaW1hdGlvbi50aGVuKCgpID0+IHtcclxuICAgICAgICB2aXN1YWxFbGVtZW50Lm5vdGlmeShcIkFuaW1hdGlvbkNvbXBsZXRlXCIsIGRlZmluaXRpb24pO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGFuaW1hdGVWaXN1YWxFbGVtZW50IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs ***!
|
||
\***********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ optimizedAppearDataAttribute: function() { return /* binding */ optimizedAppearDataAttribute; },\n/* harmony export */ optimizedAppearDataId: function() { return /* binding */ optimizedAppearDataId; }\n/* harmony export */ });\n/* harmony import */ var _render_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../render/dom/utils/camel-to-dash.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs\");\n\r\n\r\nconst optimizedAppearDataId = \"framerAppearId\";\r\nconst optimizedAppearDataAttribute = \"data-\" + (0,_render_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_0__.camelToDash)(optimizedAppearDataId);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL29wdGltaXplZC1hcHBlYXIvZGF0YS1pZC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXVFO0FBQ3ZFO0FBQ0E7QUFDQSwrQ0FBK0MsZ0ZBQVc7QUFDMUQ7QUFDK0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9hbmltYXRpb24vb3B0aW1pemVkLWFwcGVhci9kYXRhLWlkLm1qcz85ZTViIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbWVsVG9EYXNoIH0gZnJvbSAnLi4vLi4vcmVuZGVyL2RvbS91dGlscy9jYW1lbC10by1kYXNoLm1qcyc7XHJcblxyXG5jb25zdCBvcHRpbWl6ZWRBcHBlYXJEYXRhSWQgPSBcImZyYW1lckFwcGVhcklkXCI7XHJcbmNvbnN0IG9wdGltaXplZEFwcGVhckRhdGFBdHRyaWJ1dGUgPSBcImRhdGEtXCIgKyBjYW1lbFRvRGFzaChvcHRpbWl6ZWRBcHBlYXJEYXRhSWQpO1xyXG5cclxuZXhwb3J0IHsgb3B0aW1pemVkQXBwZWFyRGF0YUF0dHJpYnV0ZSwgb3B0aW1pemVkQXBwZWFyRGF0YUlkIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs ***!
|
||
\*****************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getOptimisedAppearId: function() { return /* binding */ getOptimisedAppearId; }\n/* harmony export */ });\n/* harmony import */ var _data_id_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./data-id.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs\");\n\r\n\r\nfunction getOptimisedAppearId(visualElement) {\r\n return visualElement.props[_data_id_mjs__WEBPACK_IMPORTED_MODULE_0__.optimizedAppearDataAttribute];\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL29wdGltaXplZC1hcHBlYXIvZ2V0LWFwcGVhci1pZC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBNkQ7QUFDN0Q7QUFDQTtBQUNBLCtCQUErQixzRUFBNEI7QUFDM0Q7QUFDQTtBQUNnQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2FuaW1hdGlvbi9vcHRpbWl6ZWQtYXBwZWFyL2dldC1hcHBlYXItaWQubWpzPzQ3OTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb3B0aW1pemVkQXBwZWFyRGF0YUF0dHJpYnV0ZSB9IGZyb20gJy4vZGF0YS1pZC5tanMnO1xyXG5cclxuZnVuY3Rpb24gZ2V0T3B0aW1pc2VkQXBwZWFySWQodmlzdWFsRWxlbWVudCkge1xyXG4gICAgcmV0dXJuIHZpc3VhbEVsZW1lbnQucHJvcHNbb3B0aW1pemVkQXBwZWFyRGF0YUF0dHJpYnV0ZV07XHJcbn1cclxuXHJcbmV4cG9ydCB7IGdldE9wdGltaXNlZEFwcGVhcklkIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/calc-child-stagger.mjs":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/animation/utils/calc-child-stagger.mjs ***!
|
||
\***********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcChildStagger: function() { return /* binding */ calcChildStagger; }\n/* harmony export */ });\nfunction calcChildStagger(children, child, delayChildren, staggerChildren = 0, staggerDirection = 1) {\r\n const index = Array.from(children)\r\n .sort((a, b) => a.sortNodePosition(b))\r\n .indexOf(child);\r\n const numChildren = children.size;\r\n const maxStaggerDuration = (numChildren - 1) * staggerChildren;\r\n const delayIsFunction = typeof delayChildren === \"function\";\r\n return delayIsFunction\r\n ? delayChildren(index, numChildren)\r\n : staggerDirection === 1\r\n ? index * staggerChildren\r\n : maxStaggerDuration - index * staggerChildren;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2NhbGMtY2hpbGQtc3RhZ2dlci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDNEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9hbmltYXRpb24vdXRpbHMvY2FsYy1jaGlsZC1zdGFnZ2VyLm1qcz8zNjM2Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGNhbGNDaGlsZFN0YWdnZXIoY2hpbGRyZW4sIGNoaWxkLCBkZWxheUNoaWxkcmVuLCBzdGFnZ2VyQ2hpbGRyZW4gPSAwLCBzdGFnZ2VyRGlyZWN0aW9uID0gMSkge1xyXG4gICAgY29uc3QgaW5kZXggPSBBcnJheS5mcm9tKGNoaWxkcmVuKVxyXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnNvcnROb2RlUG9zaXRpb24oYikpXHJcbiAgICAgICAgLmluZGV4T2YoY2hpbGQpO1xyXG4gICAgY29uc3QgbnVtQ2hpbGRyZW4gPSBjaGlsZHJlbi5zaXplO1xyXG4gICAgY29uc3QgbWF4U3RhZ2dlckR1cmF0aW9uID0gKG51bUNoaWxkcmVuIC0gMSkgKiBzdGFnZ2VyQ2hpbGRyZW47XHJcbiAgICBjb25zdCBkZWxheUlzRnVuY3Rpb24gPSB0eXBlb2YgZGVsYXlDaGlsZHJlbiA9PT0gXCJmdW5jdGlvblwiO1xyXG4gICAgcmV0dXJuIGRlbGF5SXNGdW5jdGlvblxyXG4gICAgICAgID8gZGVsYXlDaGlsZHJlbihpbmRleCwgbnVtQ2hpbGRyZW4pXHJcbiAgICAgICAgOiBzdGFnZ2VyRGlyZWN0aW9uID09PSAxXHJcbiAgICAgICAgICAgID8gaW5kZXggKiBzdGFnZ2VyQ2hpbGRyZW5cclxuICAgICAgICAgICAgOiBtYXhTdGFnZ2VyRHVyYXRpb24gLSBpbmRleCAqIHN0YWdnZXJDaGlsZHJlbjtcclxufVxyXG5cclxuZXhwb3J0IHsgY2FsY0NoaWxkU3RhZ2dlciB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/calc-child-stagger.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs":
|
||
/*!************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs ***!
|
||
\************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getDefaultTransition: function() { return /* binding */ getDefaultTransition; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n\r\n\r\nconst underDampedSpring = {\r\n type: \"spring\",\r\n stiffness: 500,\r\n damping: 25,\r\n restSpeed: 10,\r\n};\r\nconst criticallyDampedSpring = (target) => ({\r\n type: \"spring\",\r\n stiffness: 550,\r\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\r\n restSpeed: 10,\r\n});\r\nconst keyframesTransition = {\r\n type: \"keyframes\",\r\n duration: 0.8,\r\n};\r\n/**\r\n * Default easing curve is a slightly shallower version of\r\n * the default browser easing curve.\r\n */\r\nconst ease = {\r\n type: \"keyframes\",\r\n ease: [0.25, 0.1, 0.35, 1],\r\n duration: 0.3,\r\n};\r\nconst getDefaultTransition = (valueKey, { keyframes }) => {\r\n if (keyframes.length > 2) {\r\n return keyframesTransition;\r\n }\r\n else if (motion_dom__WEBPACK_IMPORTED_MODULE_0__.transformProps.has(valueKey)) {\r\n return valueKey.startsWith(\"scale\")\r\n ? criticallyDampedSpring(keyframes[1])\r\n : underDampedSpring;\r\n }\r\n return ease;\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2RlZmF1bHQtdHJhbnNpdGlvbnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTRDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxXQUFXO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBLGFBQWEsc0RBQWM7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9hbmltYXRpb24vdXRpbHMvZGVmYXVsdC10cmFuc2l0aW9ucy5tanM/ZWY2YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wcyB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5cclxuY29uc3QgdW5kZXJEYW1wZWRTcHJpbmcgPSB7XHJcbiAgICB0eXBlOiBcInNwcmluZ1wiLFxyXG4gICAgc3RpZmZuZXNzOiA1MDAsXHJcbiAgICBkYW1waW5nOiAyNSxcclxuICAgIHJlc3RTcGVlZDogMTAsXHJcbn07XHJcbmNvbnN0IGNyaXRpY2FsbHlEYW1wZWRTcHJpbmcgPSAodGFyZ2V0KSA9PiAoe1xyXG4gICAgdHlwZTogXCJzcHJpbmdcIixcclxuICAgIHN0aWZmbmVzczogNTUwLFxyXG4gICAgZGFtcGluZzogdGFyZ2V0ID09PSAwID8gMiAqIE1hdGguc3FydCg1NTApIDogMzAsXHJcbiAgICByZXN0U3BlZWQ6IDEwLFxyXG59KTtcclxuY29uc3Qga2V5ZnJhbWVzVHJhbnNpdGlvbiA9IHtcclxuICAgIHR5cGU6IFwia2V5ZnJhbWVzXCIsXHJcbiAgICBkdXJhdGlvbjogMC44LFxyXG59O1xyXG4vKipcclxuICogRGVmYXVsdCBlYXNpbmcgY3VydmUgaXMgYSBzbGlnaHRseSBzaGFsbG93ZXIgdmVyc2lvbiBvZlxyXG4gKiB0aGUgZGVmYXVsdCBicm93c2VyIGVhc2luZyBjdXJ2ZS5cclxuICovXHJcbmNvbnN0IGVhc2UgPSB7XHJcbiAgICB0eXBlOiBcImtleWZyYW1lc1wiLFxyXG4gICAgZWFzZTogWzAuMjUsIDAuMSwgMC4zNSwgMV0sXHJcbiAgICBkdXJhdGlvbjogMC4zLFxyXG59O1xyXG5jb25zdCBnZXREZWZhdWx0VHJhbnNpdGlvbiA9ICh2YWx1ZUtleSwgeyBrZXlmcmFtZXMgfSkgPT4ge1xyXG4gICAgaWYgKGtleWZyYW1lcy5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgcmV0dXJuIGtleWZyYW1lc1RyYW5zaXRpb247XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0cmFuc2Zvcm1Qcm9wcy5oYXModmFsdWVLZXkpKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlS2V5LnN0YXJ0c1dpdGgoXCJzY2FsZVwiKVxyXG4gICAgICAgICAgICA/IGNyaXRpY2FsbHlEYW1wZWRTcHJpbmcoa2V5ZnJhbWVzWzFdKVxyXG4gICAgICAgICAgICA6IHVuZGVyRGFtcGVkU3ByaW5nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVhc2U7XHJcbn07XHJcblxyXG5leHBvcnQgeyBnZXREZWZhdWx0VHJhbnNpdGlvbiB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs ***!
|
||
\**************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isAnimationControls: function() { return /* binding */ isAnimationControls; }\n/* harmony export */ });\nfunction isAnimationControls(v) {\r\n return (v !== null &&\r\n typeof v === \"object\" &&\r\n typeof v.start === \"function\");\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLWFuaW1hdGlvbi1jb250cm9scy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUMrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9pcy1hbmltYXRpb24tY29udHJvbHMubWpzP2I2YzAiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gaXNBbmltYXRpb25Db250cm9scyh2KSB7XHJcbiAgICByZXR1cm4gKHYgIT09IG51bGwgJiZcclxuICAgICAgICB0eXBlb2YgdiA9PT0gXCJvYmplY3RcIiAmJlxyXG4gICAgICAgIHR5cGVvZiB2LnN0YXJ0ID09PSBcImZ1bmN0aW9uXCIpO1xyXG59XHJcblxyXG5leHBvcnQgeyBpc0FuaW1hdGlvbkNvbnRyb2xzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs":
|
||
/*!************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs ***!
|
||
\************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isKeyframesTarget: function() { return /* binding */ isKeyframesTarget; }\n/* harmony export */ });\nconst isKeyframesTarget = (v) => {\r\n return Array.isArray(v);\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLWtleWZyYW1lcy10YXJnZXQubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUM2QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9pcy1rZXlmcmFtZXMtdGFyZ2V0Lm1qcz8wY2Y4Il0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzS2V5ZnJhbWVzVGFyZ2V0ID0gKHYpID0+IHtcclxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHYpO1xyXG59O1xyXG5cclxuZXhwb3J0IHsgaXNLZXlmcmFtZXNUYXJnZXQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs ***!
|
||
\**************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isTransitionDefined: function() { return /* binding */ isTransitionDefined; }\n/* harmony export */ });\n/**\r\n * Decide whether a transition is defined on a given Transition.\r\n * This filters out orchestration options and returns true\r\n * if any options are left.\r\n */\r\nfunction isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {\r\n return !!Object.keys(transition).length;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLXRyYW5zaXRpb24tZGVmaW5lZC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0Isc0lBQXNJO0FBQ3JLO0FBQ0E7QUFDQTtBQUMrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9pcy10cmFuc2l0aW9uLWRlZmluZWQubWpzPzc5MGQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIERlY2lkZSB3aGV0aGVyIGEgdHJhbnNpdGlvbiBpcyBkZWZpbmVkIG9uIGEgZ2l2ZW4gVHJhbnNpdGlvbi5cclxuICogVGhpcyBmaWx0ZXJzIG91dCBvcmNoZXN0cmF0aW9uIG9wdGlvbnMgYW5kIHJldHVybnMgdHJ1ZVxyXG4gKiBpZiBhbnkgb3B0aW9ucyBhcmUgbGVmdC5cclxuICovXHJcbmZ1bmN0aW9uIGlzVHJhbnNpdGlvbkRlZmluZWQoeyB3aGVuLCBkZWxheTogX2RlbGF5LCBkZWxheUNoaWxkcmVuLCBzdGFnZ2VyQ2hpbGRyZW4sIHN0YWdnZXJEaXJlY3Rpb24sIHJlcGVhdCwgcmVwZWF0VHlwZSwgcmVwZWF0RGVsYXksIGZyb20sIGVsYXBzZWQsIC4uLnRyYW5zaXRpb24gfSkge1xyXG4gICAgcmV0dXJuICEhT2JqZWN0LmtleXModHJhbnNpdGlvbikubGVuZ3RoO1xyXG59XHJcblxyXG5leHBvcnQgeyBpc1RyYW5zaXRpb25EZWZpbmVkIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs":
|
||
/*!************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs ***!
|
||
\************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PopChild: function() { return /* binding */ PopChild; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/MotionConfigContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\");\n/* harmony import */ var _utils_use_composed_ref_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/use-composed-ref.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Measurement functionality has to be within a separate component\r\n * to leverage snapshot lifecycle.\r\n */\r\nclass PopChildMeasure extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\r\n getSnapshotBeforeUpdate(prevProps) {\r\n const element = this.props.childRef.current;\r\n if (element && prevProps.isPresent && !this.props.isPresent) {\r\n const parent = element.offsetParent;\r\n const parentWidth = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(parent)\r\n ? parent.offsetWidth || 0\r\n : 0;\r\n const size = this.props.sizeRef.current;\r\n size.height = element.offsetHeight || 0;\r\n size.width = element.offsetWidth || 0;\r\n size.top = element.offsetTop;\r\n size.left = element.offsetLeft;\r\n size.right = parentWidth - size.width - size.left;\r\n }\r\n return null;\r\n }\r\n /**\r\n * Required with getSnapshotBeforeUpdate to stop React complaining.\r\n */\r\n componentDidUpdate() { }\r\n render() {\r\n return this.props.children;\r\n }\r\n}\r\nfunction PopChild({ children, isPresent, anchorX, root }) {\r\n const id = (0,react__WEBPACK_IMPORTED_MODULE_1__.useId)();\r\n const ref = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\r\n const size = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)({\r\n width: 0,\r\n height: 0,\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n });\r\n const { nonce } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_3__.MotionConfigContext);\r\n const composedRef = (0,_utils_use_composed_ref_mjs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs)(ref, children?.ref);\r\n /**\r\n * We create and inject a style block so we can apply this explicit\r\n * sizing in a non-destructive manner by just deleting the style block.\r\n *\r\n * We can't apply size via render as the measurement happens\r\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\r\n * styles directly on the DOM node, we might be overwriting\r\n * styles set via the style prop.\r\n */\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useInsertionEffect)(() => {\r\n const { width, height, top, left, right } = size.current;\r\n if (isPresent || !ref.current || !width || !height)\r\n return;\r\n const x = anchorX === \"left\" ? `left: ${left}` : `right: ${right}`;\r\n ref.current.dataset.motionPopId = id;\r\n const style = document.createElement(\"style\");\r\n if (nonce)\r\n style.nonce = nonce;\r\n const parent = root ?? document.head;\r\n parent.appendChild(style);\r\n if (style.sheet) {\r\n style.sheet.insertRule(`\r\n [data-motion-pop-id=\"${id}\"] {\r\n position: absolute !important;\r\n width: ${width}px !important;\r\n height: ${height}px !important;\r\n ${x}px !important;\r\n top: ${top}px !important;\r\n }\r\n `);\r\n }\r\n return () => {\r\n if (parent.contains(style)) {\r\n parent.removeChild(style);\r\n }\r\n };\r\n }, [isPresent]);\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size, children: react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(children, { ref: composedRef }) }));\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvUG9wQ2hpbGQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ3dDO0FBQ0c7QUFDWjtBQUN1QztBQUNNO0FBQ1Q7QUFDbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qiw0Q0FBZTtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyx5REFBYTtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixvQ0FBb0M7QUFDeEQsZUFBZSw0Q0FBSztBQUNwQixnQkFBZ0IsNkNBQU07QUFDdEIsaUJBQWlCLDZDQUFNO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsWUFBWSxRQUFRLEVBQUUsaURBQVUsQ0FBQyxpRkFBbUI7QUFDcEQsd0JBQXdCLDRFQUFlO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUkseURBQWtCO0FBQ3RCLGdCQUFnQixrQ0FBa0M7QUFDbEQ7QUFDQTtBQUNBLGdEQUFnRCxLQUFLLGNBQWMsTUFBTTtBQUN6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLEdBQUc7QUFDcEM7QUFDQSxxQkFBcUIsTUFBTTtBQUMzQixzQkFBc0IsT0FBTztBQUM3QixjQUFjLEVBQUU7QUFDaEIsbUJBQW1CLElBQUk7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxZQUFZLHNEQUFHLG9CQUFvQiw4REFBOEQsK0NBQWtCLGFBQWEsa0JBQWtCLEdBQUc7QUFDcko7QUFDQTtBQUNvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbXBvbmVudHMvQW5pbWF0ZVByZXNlbmNlL1BvcENoaWxkLm1qcz81ZWE4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XHJcbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tICdtb3Rpb24tZG9tJztcclxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyB1c2VJZCwgdXNlUmVmLCB1c2VDb250ZXh0LCB1c2VJbnNlcnRpb25FZmZlY3QgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IE1vdGlvbkNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0L01vdGlvbkNvbmZpZ0NvbnRleHQubWpzJztcclxuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXNlLWNvbXBvc2VkLXJlZi5tanMnO1xyXG5cclxuLyoqXHJcbiAqIE1lYXN1cmVtZW50IGZ1bmN0aW9uYWxpdHkgaGFzIHRvIGJlIHdpdGhpbiBhIHNlcGFyYXRlIGNvbXBvbmVudFxyXG4gKiB0byBsZXZlcmFnZSBzbmFwc2hvdCBsaWZlY3ljbGUuXHJcbiAqL1xyXG5jbGFzcyBQb3BDaGlsZE1lYXN1cmUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUocHJldlByb3BzKSB7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMucHJvcHMuY2hpbGRSZWYuY3VycmVudDtcclxuICAgICAgICBpZiAoZWxlbWVudCAmJiBwcmV2UHJvcHMuaXNQcmVzZW50ICYmICF0aGlzLnByb3BzLmlzUHJlc2VudCkge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBlbGVtZW50Lm9mZnNldFBhcmVudDtcclxuICAgICAgICAgICAgY29uc3QgcGFyZW50V2lkdGggPSBpc0hUTUxFbGVtZW50KHBhcmVudClcclxuICAgICAgICAgICAgICAgID8gcGFyZW50Lm9mZnNldFdpZHRoIHx8IDBcclxuICAgICAgICAgICAgICAgIDogMDtcclxuICAgICAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMucHJvcHMuc2l6ZVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICBzaXplLmhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8IDA7XHJcbiAgICAgICAgICAgIHNpemUud2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoIHx8IDA7XHJcbiAgICAgICAgICAgIHNpemUudG9wID0gZWxlbWVudC5vZmZzZXRUb3A7XHJcbiAgICAgICAgICAgIHNpemUubGVmdCA9IGVsZW1lbnQub2Zmc2V0TGVmdDtcclxuICAgICAgICAgICAgc2l6ZS5yaWdodCA9IHBhcmVudFdpZHRoIC0gc2l6ZS53aWR0aCAtIHNpemUubGVmdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJlcXVpcmVkIHdpdGggZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgdG8gc3RvcCBSZWFjdCBjb21wbGFpbmluZy5cclxuICAgICAqL1xyXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKCkgeyB9XHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW47XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gUG9wQ2hpbGQoeyBjaGlsZHJlbiwgaXNQcmVzZW50LCBhbmNob3JYLCByb290IH0pIHtcclxuICAgIGNvbnN0IGlkID0gdXNlSWQoKTtcclxuICAgIGNvbnN0IHJlZiA9IHVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IHNpemUgPSB1c2VSZWYoe1xyXG4gICAgICAgIHdpZHRoOiAwLFxyXG4gICAgICAgIGhlaWdodDogMCxcclxuICAgICAgICB0b3A6IDAsXHJcbiAgICAgICAgbGVmdDogMCxcclxuICAgICAgICByaWdodDogMCxcclxuICAgIH0pO1xyXG4gICAgY29uc3QgeyBub25jZSB9ID0gdXNlQ29udGV4dChNb3Rpb25Db25maWdDb250ZXh0KTtcclxuICAgIGNvbnN0IGNvbXBvc2VkUmVmID0gdXNlQ29tcG9zZWRSZWZzKHJlZiwgY2hpbGRyZW4/LnJlZik7XHJcbiAgICAvKipcclxuICAgICAqIFdlIGNyZWF0ZSBhbmQgaW5qZWN0IGEgc3R5bGUgYmxvY2sgc28gd2UgY2FuIGFwcGx5IHRoaXMgZXhwbGljaXRcclxuICAgICAqIHNpemluZyBpbiBhIG5vbi1kZXN0cnVjdGl2ZSBtYW5uZXIgYnkganVzdCBkZWxldGluZyB0aGUgc3R5bGUgYmxvY2suXHJcbiAgICAgKlxyXG4gICAgICogV2UgY2FuJ3QgYXBwbHkgc2l6ZSB2aWEgcmVuZGVyIGFzIHRoZSBtZWFzdXJlbWVudCBoYXBwZW5zXHJcbiAgICAgKiBpbiBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSAocG9zdC1yZW5kZXIpLCBsaWtld2lzZSBpZiB3ZSBhcHBseSB0aGVcclxuICAgICAqIHN0eWxlcyBkaXJlY3RseSBvbiB0aGUgRE9NIG5vZGUsIHdlIG1pZ2h0IGJlIG92ZXJ3cml0aW5nXHJcbiAgICAgKiBzdHlsZXMgc2V0IHZpYSB0aGUgc3R5bGUgcHJvcC5cclxuICAgICAqL1xyXG4gICAgdXNlSW5zZXJ0aW9uRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQsIHRvcCwgbGVmdCwgcmlnaHQgfSA9IHNpemUuY3VycmVudDtcclxuICAgICAgICBpZiAoaXNQcmVzZW50IHx8ICFyZWYuY3VycmVudCB8fCAhd2lkdGggfHwgIWhlaWdodClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHggPSBhbmNob3JYID09PSBcImxlZnRcIiA/IGBsZWZ0OiAke2xlZnR9YCA6IGByaWdodDogJHtyaWdodH1gO1xyXG4gICAgICAgIHJlZi5jdXJyZW50LmRhdGFzZXQubW90aW9uUG9wSWQgPSBpZDtcclxuICAgICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcclxuICAgICAgICBpZiAobm9uY2UpXHJcbiAgICAgICAgICAgIHN0eWxlLm5vbmNlID0gbm9uY2U7XHJcbiAgICAgICAgY29uc3QgcGFyZW50ID0gcm9vdCA/PyBkb2N1bWVudC5oZWFkO1xyXG4gICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChzdHlsZSk7XHJcbiAgICAgICAgaWYgKHN0eWxlLnNoZWV0KSB7XHJcbiAgICAgICAgICAgIHN0eWxlLnNoZWV0Lmluc2VydFJ1bGUoYFxyXG4gICAgICAgICAgW2RhdGEtbW90aW9uLXBvcC1pZD1cIiR7aWR9XCJdIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIHdpZHRoOiAke3dpZHRofXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGhlaWdodDogJHtoZWlnaHR9cHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgJHt4fXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIHRvcDogJHt0b3B9cHggIWltcG9ydGFudDtcclxuICAgICAgICAgIH1cclxuICAgICAgICBgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHBhcmVudC5jb250YWlucyhzdHlsZSkpIHtcclxuICAgICAgICAgICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChzdHlsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfSwgW2lzUHJlc2VudF0pO1xyXG4gICAgcmV0dXJuIChqc3goUG9wQ2hpbGRNZWFzdXJlLCB7IGlzUHJlc2VudDogaXNQcmVzZW50LCBjaGlsZFJlZjogcmVmLCBzaXplUmVmOiBzaXplLCBjaGlsZHJlbjogUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkcmVuLCB7IHJlZjogY29tcG9zZWRSZWYgfSkgfSkpO1xyXG59XHJcblxyXG5leHBvcnQgeyBQb3BDaGlsZCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs ***!
|
||
\*****************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PresenceChild: function() { return /* binding */ PresenceChild; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/use-constant.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n/* harmony import */ var _PopChild_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PopChild.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, anchorX, root }) => {\r\n const presenceChildren = (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_2__.useConstant)(newChildrenMap);\r\n const id = (0,react__WEBPACK_IMPORTED_MODULE_1__.useId)();\r\n let isReusedContext = true;\r\n let context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => {\r\n isReusedContext = false;\r\n return {\r\n id,\r\n initial,\r\n isPresent,\r\n custom,\r\n onExitComplete: (childId) => {\r\n presenceChildren.set(childId, true);\r\n for (const isComplete of presenceChildren.values()) {\r\n if (!isComplete)\r\n return; // can stop searching when any is incomplete\r\n }\r\n onExitComplete && onExitComplete();\r\n },\r\n register: (childId) => {\r\n presenceChildren.set(childId, false);\r\n return () => presenceChildren.delete(childId);\r\n },\r\n };\r\n }, [isPresent, presenceChildren, onExitComplete]);\r\n /**\r\n * If the presence of a child affects the layout of the components around it,\r\n * we want to make a new context value to ensure they get re-rendered\r\n * so they can detect that layout change.\r\n */\r\n if (presenceAffectsLayout && isReusedContext) {\r\n context = { ...context };\r\n }\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => {\r\n presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\r\n }, [isPresent]);\r\n /**\r\n * If there's no `motion` components to fire exit animations, we want to remove this\r\n * component immediately.\r\n */\r\n react__WEBPACK_IMPORTED_MODULE_1__.useEffect(() => {\r\n !isPresent &&\r\n !presenceChildren.size &&\r\n onExitComplete &&\r\n onExitComplete();\r\n }, [isPresent]);\r\n if (mode === \"popLayout\") {\r\n children = ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PopChild_mjs__WEBPACK_IMPORTED_MODULE_3__.PopChild, { isPresent: isPresent, anchorX: anchorX, root: root, children: children }));\r\n }\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_4__.PresenceContext.Provider, { value: context, children: children }));\r\n};\r\nfunction newChildrenMap() {\r\n return new Map();\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvUHJlc2VuY2VDaGlsZC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDd0M7QUFDVDtBQUNRO0FBQzZCO0FBQ1Q7QUFDakI7QUFDMUM7QUFDQSx5QkFBeUIsa0dBQWtHO0FBQzNILDZCQUE2QixvRUFBVztBQUN4QyxlQUFlLDRDQUFLO0FBQ3BCO0FBQ0Esa0JBQWtCLDhDQUFPO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBLElBQUksOENBQU87QUFDWDtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksNENBQWU7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxvQkFBb0Isc0RBQUcsQ0FBQyxtREFBUSxJQUFJLHdFQUF3RTtBQUM1RztBQUNBLFlBQVksc0RBQUcsQ0FBQyx5RUFBZSxhQUFhLG9DQUFvQztBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3lCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvUHJlc2VuY2VDaGlsZC5tanM/MDI3YSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IHVzZUlkLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBQcmVzZW5jZUNvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0L1ByZXNlbmNlQ29udGV4dC5tanMnO1xyXG5pbXBvcnQgeyB1c2VDb25zdGFudCB9IGZyb20gJy4uLy4uL3V0aWxzL3VzZS1jb25zdGFudC5tanMnO1xyXG5pbXBvcnQgeyBQb3BDaGlsZCB9IGZyb20gJy4vUG9wQ2hpbGQubWpzJztcclxuXHJcbmNvbnN0IFByZXNlbmNlQ2hpbGQgPSAoeyBjaGlsZHJlbiwgaW5pdGlhbCwgaXNQcmVzZW50LCBvbkV4aXRDb21wbGV0ZSwgY3VzdG9tLCBwcmVzZW5jZUFmZmVjdHNMYXlvdXQsIG1vZGUsIGFuY2hvclgsIHJvb3QgfSkgPT4ge1xyXG4gICAgY29uc3QgcHJlc2VuY2VDaGlsZHJlbiA9IHVzZUNvbnN0YW50KG5ld0NoaWxkcmVuTWFwKTtcclxuICAgIGNvbnN0IGlkID0gdXNlSWQoKTtcclxuICAgIGxldCBpc1JldXNlZENvbnRleHQgPSB0cnVlO1xyXG4gICAgbGV0IGNvbnRleHQgPSB1c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBpc1JldXNlZENvbnRleHQgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZCxcclxuICAgICAgICAgICAgaW5pdGlhbCxcclxuICAgICAgICAgICAgaXNQcmVzZW50LFxyXG4gICAgICAgICAgICBjdXN0b20sXHJcbiAgICAgICAgICAgIG9uRXhpdENvbXBsZXRlOiAoY2hpbGRJZCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcHJlc2VuY2VDaGlsZHJlbi5zZXQoY2hpbGRJZCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGlzQ29tcGxldGUgb2YgcHJlc2VuY2VDaGlsZHJlbi52YWx1ZXMoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNDb21wbGV0ZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBjYW4gc3RvcCBzZWFyY2hpbmcgd2hlbiBhbnkgaXMgaW5jb21wbGV0ZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgb25FeGl0Q29tcGxldGUgJiYgb25FeGl0Q29tcGxldGUoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcmVnaXN0ZXI6IChjaGlsZElkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBwcmVzZW5jZUNoaWxkcmVuLnNldChjaGlsZElkLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gcHJlc2VuY2VDaGlsZHJlbi5kZWxldGUoY2hpbGRJZCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgIH0sIFtpc1ByZXNlbnQsIHByZXNlbmNlQ2hpbGRyZW4sIG9uRXhpdENvbXBsZXRlXSk7XHJcbiAgICAvKipcclxuICAgICAqIElmIHRoZSBwcmVzZW5jZSBvZiBhIGNoaWxkIGFmZmVjdHMgdGhlIGxheW91dCBvZiB0aGUgY29tcG9uZW50cyBhcm91bmQgaXQsXHJcbiAgICAgKiB3ZSB3YW50IHRvIG1ha2UgYSBuZXcgY29udGV4dCB2YWx1ZSB0byBlbnN1cmUgdGhleSBnZXQgcmUtcmVuZGVyZWRcclxuICAgICAqIHNvIHRoZXkgY2FuIGRldGVjdCB0aGF0IGxheW91dCBjaGFuZ2UuXHJcbiAgICAgKi9cclxuICAgIGlmIChwcmVzZW5jZUFmZmVjdHNMYXlvdXQgJiYgaXNSZXVzZWRDb250ZXh0KSB7XHJcbiAgICAgICAgY29udGV4dCA9IHsgLi4uY29udGV4dCB9O1xyXG4gICAgfVxyXG4gICAgdXNlTWVtbygoKSA9PiB7XHJcbiAgICAgICAgcHJlc2VuY2VDaGlsZHJlbi5mb3JFYWNoKChfLCBrZXkpID0+IHByZXNlbmNlQ2hpbGRyZW4uc2V0KGtleSwgZmFsc2UpKTtcclxuICAgIH0sIFtpc1ByZXNlbnRdKTtcclxuICAgIC8qKlxyXG4gICAgICogSWYgdGhlcmUncyBubyBgbW90aW9uYCBjb21wb25lbnRzIHRvIGZpcmUgZXhpdCBhbmltYXRpb25zLCB3ZSB3YW50IHRvIHJlbW92ZSB0aGlzXHJcbiAgICAgKiBjb21wb25lbnQgaW1tZWRpYXRlbHkuXHJcbiAgICAgKi9cclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgIWlzUHJlc2VudCAmJlxyXG4gICAgICAgICAgICAhcHJlc2VuY2VDaGlsZHJlbi5zaXplICYmXHJcbiAgICAgICAgICAgIG9uRXhpdENvbXBsZXRlICYmXHJcbiAgICAgICAgICAgIG9uRXhpdENvbXBsZXRlKCk7XHJcbiAgICB9LCBbaXNQcmVzZW50XSk7XHJcbiAgICBpZiAobW9kZSA9PT0gXCJwb3BMYXlvdXRcIikge1xyXG4gICAgICAgIGNoaWxkcmVuID0gKGpzeChQb3BDaGlsZCwgeyBpc1ByZXNlbnQ6IGlzUHJlc2VudCwgYW5jaG9yWDogYW5jaG9yWCwgcm9vdDogcm9vdCwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKTtcclxuICAgIH1cclxuICAgIHJldHVybiAoanN4KFByZXNlbmNlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogY29udGV4dCwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKTtcclxufTtcclxuZnVuY3Rpb24gbmV3Q2hpbGRyZW5NYXAoKSB7XHJcbiAgICByZXR1cm4gbmV3IE1hcCgpO1xyXG59XHJcblxyXG5leHBvcnQgeyBQcmVzZW5jZUNoaWxkIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs ***!
|
||
\*********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnimatePresence: function() { return /* binding */ AnimatePresence; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../context/LayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/use-constant.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n/* harmony import */ var _utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/use-isomorphic-effect.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\");\n/* harmony import */ var _PresenceChild_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./PresenceChild.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs\");\n/* harmony import */ var _use_presence_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-presence.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\r\n *\r\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\r\n *\r\n * Any `motion` components that have an `exit` property defined will animate out when removed from\r\n * the tree.\r\n *\r\n * ```jsx\r\n * import { motion, AnimatePresence } from 'framer-motion'\r\n *\r\n * export const Items = ({ items }) => (\r\n * <AnimatePresence>\r\n * {items.map(item => (\r\n * <motion.div\r\n * key={item.id}\r\n * initial={{ opacity: 0 }}\r\n * animate={{ opacity: 1 }}\r\n * exit={{ opacity: 0 }}\r\n * />\r\n * ))}\r\n * </AnimatePresence>\r\n * )\r\n * ```\r\n *\r\n * You can sequence exit animations throughout a tree using variants.\r\n *\r\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\r\n * once all `motion` components have finished animating out. Likewise, any components using\r\n * `usePresence` all need to call `safeToRemove`.\r\n *\r\n * @public\r\n */\r\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, presenceAffectsLayout = true, mode = \"sync\", propagate = false, anchorX = \"left\", root }) => {\r\n const [isParentPresent, safeToRemove] = (0,_use_presence_mjs__WEBPACK_IMPORTED_MODULE_2__.usePresence)(propagate);\r\n /**\r\n * Filter any children that aren't ReactElements. We can only track components\r\n * between renders with a props.key.\r\n */\r\n const presentChildren = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.onlyElements)(children), [children]);\r\n /**\r\n * Track the keys of the currently rendered children. This is used to\r\n * determine which children are exiting.\r\n */\r\n const presentKeys = propagate && !isParentPresent ? [] : presentChildren.map(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey);\r\n /**\r\n * If `initial={false}` we only want to pass this to components in the first render.\r\n */\r\n const isInitialRender = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(true);\r\n /**\r\n * A ref containing the currently present children. When all exit animations\r\n * are complete, we use this to re-render the component with the latest children\r\n * *committed* rather than the latest children *rendered*.\r\n */\r\n const pendingPresentChildren = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(presentChildren);\r\n /**\r\n * Track which exiting children have finished animating out.\r\n */\r\n const exitComplete = (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_4__.useConstant)(() => new Map());\r\n /**\r\n * Save children to render as React state. To ensure this component is concurrent-safe,\r\n * we check for exiting children via an effect.\r\n */\r\n const [diffedChildren, setDiffedChildren] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(presentChildren);\r\n const [renderedChildren, setRenderedChildren] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(presentChildren);\r\n (0,_utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_5__.useIsomorphicLayoutEffect)(() => {\r\n isInitialRender.current = false;\r\n pendingPresentChildren.current = presentChildren;\r\n /**\r\n * Update complete status of exiting children.\r\n */\r\n for (let i = 0; i < renderedChildren.length; i++) {\r\n const key = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey)(renderedChildren[i]);\r\n if (!presentKeys.includes(key)) {\r\n if (exitComplete.get(key) !== true) {\r\n exitComplete.set(key, false);\r\n }\r\n }\r\n else {\r\n exitComplete.delete(key);\r\n }\r\n }\r\n }, [renderedChildren, presentKeys.length, presentKeys.join(\"-\")]);\r\n const exitingChildren = [];\r\n if (presentChildren !== diffedChildren) {\r\n let nextChildren = [...presentChildren];\r\n /**\r\n * Loop through all the currently rendered components and decide which\r\n * are exiting.\r\n */\r\n for (let i = 0; i < renderedChildren.length; i++) {\r\n const child = renderedChildren[i];\r\n const key = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey)(child);\r\n if (!presentKeys.includes(key)) {\r\n nextChildren.splice(i, 0, child);\r\n exitingChildren.push(child);\r\n }\r\n }\r\n /**\r\n * If we're in \"wait\" mode, and we have exiting children, we want to\r\n * only render these until they've all exited.\r\n */\r\n if (mode === \"wait\" && exitingChildren.length) {\r\n nextChildren = exitingChildren;\r\n }\r\n setRenderedChildren((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.onlyElements)(nextChildren));\r\n setDiffedChildren(presentChildren);\r\n /**\r\n * Early return to ensure once we've set state with the latest diffed\r\n * children, we can immediately re-render.\r\n */\r\n return null;\r\n }\r\n if ( true &&\r\n mode === \"wait\" &&\r\n renderedChildren.length > 1) {\r\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\r\n }\r\n /**\r\n * If we've been provided a forceRender function by the LayoutGroupContext,\r\n * we can use it to force a re-render amongst all surrounding components once\r\n * all components have finished animating out.\r\n */\r\n const { forceRender } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_6__.LayoutGroupContext);\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: renderedChildren.map((child) => {\r\n const key = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey)(child);\r\n const isPresent = propagate && !isParentPresent\r\n ? false\r\n : presentChildren === renderedChildren ||\r\n presentKeys.includes(key);\r\n const onExit = () => {\r\n if (exitComplete.has(key)) {\r\n exitComplete.set(key, true);\r\n }\r\n else {\r\n return;\r\n }\r\n let isEveryExitComplete = true;\r\n exitComplete.forEach((isExitComplete) => {\r\n if (!isExitComplete)\r\n isEveryExitComplete = false;\r\n });\r\n if (isEveryExitComplete) {\r\n forceRender?.();\r\n setRenderedChildren(pendingPresentChildren.current);\r\n propagate && safeToRemove?.();\r\n onExitComplete && onExitComplete();\r\n }\r\n };\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PresenceChild_mjs__WEBPACK_IMPORTED_MODULE_7__.PresenceChild, { isPresent: isPresent, initial: !isInitialRender.current || initial\r\n ? undefined\r\n : false, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode, root: root, onExitComplete: isPresent ? undefined : onExit, anchorX: anchorX, children: child }, key));\r\n }) }));\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ2tEO0FBQ1k7QUFDWTtBQUNmO0FBQ3VCO0FBQzlCO0FBQ0g7QUFDTztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksMEJBQTBCO0FBQ3RDO0FBQ0EsMkJBQTJCLE9BQU87QUFDbEM7QUFDQSxRQUFRO0FBQ1I7QUFDQSxnQkFBZ0I7QUFDaEIsc0JBQXNCO0FBQ3RCLHNCQUFzQjtBQUN0QixtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQiwwSUFBMEk7QUFDckssNENBQTRDLDhEQUFXO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLDhDQUFPLE9BQU8sd0RBQVk7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRkFBaUYsbURBQVc7QUFDNUY7QUFDQSxvQkFBb0IsTUFBTTtBQUMxQjtBQUNBLDRCQUE0Qiw2Q0FBTTtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLDZDQUFNO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixvRUFBVztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCwrQ0FBUTtBQUN4RCxvREFBb0QsK0NBQVE7QUFDNUQsSUFBSSwyRkFBeUI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qiw2QkFBNkI7QUFDckQsd0JBQXdCLHVEQUFXO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qiw2QkFBNkI7QUFDckQ7QUFDQSx3QkFBd0IsdURBQVc7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHdEQUFZO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGNBQWMsRUFBRSxpREFBVSxDQUFDLCtFQUFrQjtBQUN6RCxZQUFZLHNEQUFHLENBQUMsdURBQVEsSUFBSTtBQUM1Qix3QkFBd0IsdURBQVc7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHNEQUFHLENBQUMsNkRBQWEsSUFBSTtBQUN6QztBQUNBLHNNQUFzTTtBQUN0TSxTQUFTLEdBQUc7QUFDWjtBQUNBO0FBQzJCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvaW5kZXgubWpzP2MwMGEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcbmltcG9ydCB7IGpzeCwgRnJhZ21lbnQgfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XHJcbmltcG9ydCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IExheW91dEdyb3VwQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHQvTGF5b3V0R3JvdXBDb250ZXh0Lm1qcyc7XHJcbmltcG9ydCB7IHVzZUNvbnN0YW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvdXNlLWNvbnN0YW50Lm1qcyc7XHJcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICcuLi8uLi91dGlscy91c2UtaXNvbW9ycGhpYy1lZmZlY3QubWpzJztcclxuaW1wb3J0IHsgUHJlc2VuY2VDaGlsZCB9IGZyb20gJy4vUHJlc2VuY2VDaGlsZC5tanMnO1xyXG5pbXBvcnQgeyB1c2VQcmVzZW5jZSB9IGZyb20gJy4vdXNlLXByZXNlbmNlLm1qcyc7XHJcbmltcG9ydCB7IG9ubHlFbGVtZW50cywgZ2V0Q2hpbGRLZXkgfSBmcm9tICcuL3V0aWxzLm1qcyc7XHJcblxyXG4vKipcclxuICogYEFuaW1hdGVQcmVzZW5jZWAgZW5hYmxlcyB0aGUgYW5pbWF0aW9uIG9mIGNvbXBvbmVudHMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSB0cmVlLlxyXG4gKlxyXG4gKiBXaGVuIGFkZGluZy9yZW1vdmluZyBtb3JlIHRoYW4gYSBzaW5nbGUgY2hpbGQsIGV2ZXJ5IGNoaWxkICoqbXVzdCoqIGJlIGdpdmVuIGEgdW5pcXVlIGBrZXlgIHByb3AuXHJcbiAqXHJcbiAqIEFueSBgbW90aW9uYCBjb21wb25lbnRzIHRoYXQgaGF2ZSBhbiBgZXhpdGAgcHJvcGVydHkgZGVmaW5lZCB3aWxsIGFuaW1hdGUgb3V0IHdoZW4gcmVtb3ZlZCBmcm9tXHJcbiAqIHRoZSB0cmVlLlxyXG4gKlxyXG4gKiBgYGBqc3hcclxuICogaW1wb3J0IHsgbW90aW9uLCBBbmltYXRlUHJlc2VuY2UgfSBmcm9tICdmcmFtZXItbW90aW9uJ1xyXG4gKlxyXG4gKiBleHBvcnQgY29uc3QgSXRlbXMgPSAoeyBpdGVtcyB9KSA9PiAoXHJcbiAqICAgPEFuaW1hdGVQcmVzZW5jZT5cclxuICogICAgIHtpdGVtcy5tYXAoaXRlbSA9PiAoXHJcbiAqICAgICAgIDxtb3Rpb24uZGl2XHJcbiAqICAgICAgICAga2V5PXtpdGVtLmlkfVxyXG4gKiAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCB9fVxyXG4gKiAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSB9fVxyXG4gKiAgICAgICAgIGV4aXQ9e3sgb3BhY2l0eTogMCB9fVxyXG4gKiAgICAgICAvPlxyXG4gKiAgICAgKSl9XHJcbiAqICAgPC9BbmltYXRlUHJlc2VuY2U+XHJcbiAqIClcclxuICogYGBgXHJcbiAqXHJcbiAqIFlvdSBjYW4gc2VxdWVuY2UgZXhpdCBhbmltYXRpb25zIHRocm91Z2hvdXQgYSB0cmVlIHVzaW5nIHZhcmlhbnRzLlxyXG4gKlxyXG4gKiBJZiBhIGNoaWxkIGNvbnRhaW5zIG11bHRpcGxlIGBtb3Rpb25gIGNvbXBvbmVudHMgd2l0aCBgZXhpdGAgcHJvcHMsIGl0IHdpbGwgb25seSB1bm1vdW50IHRoZSBjaGlsZFxyXG4gKiBvbmNlIGFsbCBgbW90aW9uYCBjb21wb25lbnRzIGhhdmUgZmluaXNoZWQgYW5pbWF0aW5nIG91dC4gTGlrZXdpc2UsIGFueSBjb21wb25lbnRzIHVzaW5nXHJcbiAqIGB1c2VQcmVzZW5jZWAgYWxsIG5lZWQgdG8gY2FsbCBgc2FmZVRvUmVtb3ZlYC5cclxuICpcclxuICogQHB1YmxpY1xyXG4gKi9cclxuY29uc3QgQW5pbWF0ZVByZXNlbmNlID0gKHsgY2hpbGRyZW4sIGN1c3RvbSwgaW5pdGlhbCA9IHRydWUsIG9uRXhpdENvbXBsZXRlLCBwcmVzZW5jZUFmZmVjdHNMYXlvdXQgPSB0cnVlLCBtb2RlID0gXCJzeW5jXCIsIHByb3BhZ2F0ZSA9IGZhbHNlLCBhbmNob3JYID0gXCJsZWZ0XCIsIHJvb3QgfSkgPT4ge1xyXG4gICAgY29uc3QgW2lzUGFyZW50UHJlc2VudCwgc2FmZVRvUmVtb3ZlXSA9IHVzZVByZXNlbmNlKHByb3BhZ2F0ZSk7XHJcbiAgICAvKipcclxuICAgICAqIEZpbHRlciBhbnkgY2hpbGRyZW4gdGhhdCBhcmVuJ3QgUmVhY3RFbGVtZW50cy4gV2UgY2FuIG9ubHkgdHJhY2sgY29tcG9uZW50c1xyXG4gICAgICogYmV0d2VlbiByZW5kZXJzIHdpdGggYSBwcm9wcy5rZXkuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IHByZXNlbnRDaGlsZHJlbiA9IHVzZU1lbW8oKCkgPT4gb25seUVsZW1lbnRzKGNoaWxkcmVuKSwgW2NoaWxkcmVuXSk7XHJcbiAgICAvKipcclxuICAgICAqIFRyYWNrIHRoZSBrZXlzIG9mIHRoZSBjdXJyZW50bHkgcmVuZGVyZWQgY2hpbGRyZW4uIFRoaXMgaXMgdXNlZCB0b1xyXG4gICAgICogZGV0ZXJtaW5lIHdoaWNoIGNoaWxkcmVuIGFyZSBleGl0aW5nLlxyXG4gICAgICovXHJcbiAgICBjb25zdCBwcmVzZW50S2V5cyA9IHByb3BhZ2F0ZSAmJiAhaXNQYXJlbnRQcmVzZW50ID8gW10gOiBwcmVzZW50Q2hpbGRyZW4ubWFwKGdldENoaWxkS2V5KTtcclxuICAgIC8qKlxyXG4gICAgICogSWYgYGluaXRpYWw9e2ZhbHNlfWAgd2Ugb25seSB3YW50IHRvIHBhc3MgdGhpcyB0byBjb21wb25lbnRzIGluIHRoZSBmaXJzdCByZW5kZXIuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGlzSW5pdGlhbFJlbmRlciA9IHVzZVJlZih0cnVlKTtcclxuICAgIC8qKlxyXG4gICAgICogQSByZWYgY29udGFpbmluZyB0aGUgY3VycmVudGx5IHByZXNlbnQgY2hpbGRyZW4uIFdoZW4gYWxsIGV4aXQgYW5pbWF0aW9uc1xyXG4gICAgICogYXJlIGNvbXBsZXRlLCB3ZSB1c2UgdGhpcyB0byByZS1yZW5kZXIgdGhlIGNvbXBvbmVudCB3aXRoIHRoZSBsYXRlc3QgY2hpbGRyZW5cclxuICAgICAqICpjb21taXR0ZWQqIHJhdGhlciB0aGFuIHRoZSBsYXRlc3QgY2hpbGRyZW4gKnJlbmRlcmVkKi5cclxuICAgICAqL1xyXG4gICAgY29uc3QgcGVuZGluZ1ByZXNlbnRDaGlsZHJlbiA9IHVzZVJlZihwcmVzZW50Q2hpbGRyZW4pO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUcmFjayB3aGljaCBleGl0aW5nIGNoaWxkcmVuIGhhdmUgZmluaXNoZWQgYW5pbWF0aW5nIG91dC5cclxuICAgICAqL1xyXG4gICAgY29uc3QgZXhpdENvbXBsZXRlID0gdXNlQ29uc3RhbnQoKCkgPT4gbmV3IE1hcCgpKTtcclxuICAgIC8qKlxyXG4gICAgICogU2F2ZSBjaGlsZHJlbiB0byByZW5kZXIgYXMgUmVhY3Qgc3RhdGUuIFRvIGVuc3VyZSB0aGlzIGNvbXBvbmVudCBpcyBjb25jdXJyZW50LXNhZmUsXHJcbiAgICAgKiB3ZSBjaGVjayBmb3IgZXhpdGluZyBjaGlsZHJlbiB2aWEgYW4gZWZmZWN0LlxyXG4gICAgICovXHJcbiAgICBjb25zdCBbZGlmZmVkQ2hpbGRyZW4sIHNldERpZmZlZENoaWxkcmVuXSA9IHVzZVN0YXRlKHByZXNlbnRDaGlsZHJlbik7XHJcbiAgICBjb25zdCBbcmVuZGVyZWRDaGlsZHJlbiwgc2V0UmVuZGVyZWRDaGlsZHJlbl0gPSB1c2VTdGF0ZShwcmVzZW50Q2hpbGRyZW4pO1xyXG4gICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaXNJbml0aWFsUmVuZGVyLmN1cnJlbnQgPSBmYWxzZTtcclxuICAgICAgICBwZW5kaW5nUHJlc2VudENoaWxkcmVuLmN1cnJlbnQgPSBwcmVzZW50Q2hpbGRyZW47XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVXBkYXRlIGNvbXBsZXRlIHN0YXR1cyBvZiBleGl0aW5nIGNoaWxkcmVuLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVuZGVyZWRDaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBrZXkgPSBnZXRDaGlsZEtleShyZW5kZXJlZENoaWxkcmVuW2ldKTtcclxuICAgICAgICAgICAgaWYgKCFwcmVzZW50S2V5cy5pbmNsdWRlcyhrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXhpdENvbXBsZXRlLmdldChrZXkpICE9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXhpdENvbXBsZXRlLnNldChrZXksIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGV4aXRDb21wbGV0ZS5kZWxldGUoa2V5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sIFtyZW5kZXJlZENoaWxkcmVuLCBwcmVzZW50S2V5cy5sZW5ndGgsIHByZXNlbnRLZXlzLmpvaW4oXCItXCIpXSk7XHJcbiAgICBjb25zdCBleGl0aW5nQ2hpbGRyZW4gPSBbXTtcclxuICAgIGlmIChwcmVzZW50Q2hpbGRyZW4gIT09IGRpZmZlZENoaWxkcmVuKSB7XHJcbiAgICAgICAgbGV0IG5leHRDaGlsZHJlbiA9IFsuLi5wcmVzZW50Q2hpbGRyZW5dO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIExvb3AgdGhyb3VnaCBhbGwgdGhlIGN1cnJlbnRseSByZW5kZXJlZCBjb21wb25lbnRzIGFuZCBkZWNpZGUgd2hpY2hcclxuICAgICAgICAgKiBhcmUgZXhpdGluZy5cclxuICAgICAgICAgKi9cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlbmRlcmVkQ2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSByZW5kZXJlZENoaWxkcmVuW2ldO1xyXG4gICAgICAgICAgICBjb25zdCBrZXkgPSBnZXRDaGlsZEtleShjaGlsZCk7XHJcbiAgICAgICAgICAgIGlmICghcHJlc2VudEtleXMuaW5jbHVkZXMoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgbmV4dENoaWxkcmVuLnNwbGljZShpLCAwLCBjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICBleGl0aW5nQ2hpbGRyZW4ucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSWYgd2UncmUgaW4gXCJ3YWl0XCIgbW9kZSwgYW5kIHdlIGhhdmUgZXhpdGluZyBjaGlsZHJlbiwgd2Ugd2FudCB0b1xyXG4gICAgICAgICAqIG9ubHkgcmVuZGVyIHRoZXNlIHVudGlsIHRoZXkndmUgYWxsIGV4aXRlZC5cclxuICAgICAgICAgKi9cclxuICAgICAgICBpZiAobW9kZSA9PT0gXCJ3YWl0XCIgJiYgZXhpdGluZ0NoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBuZXh0Q2hpbGRyZW4gPSBleGl0aW5nQ2hpbGRyZW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNldFJlbmRlcmVkQ2hpbGRyZW4ob25seUVsZW1lbnRzKG5leHRDaGlsZHJlbikpO1xyXG4gICAgICAgIHNldERpZmZlZENoaWxkcmVuKHByZXNlbnRDaGlsZHJlbik7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogRWFybHkgcmV0dXJuIHRvIGVuc3VyZSBvbmNlIHdlJ3ZlIHNldCBzdGF0ZSB3aXRoIHRoZSBsYXRlc3QgZGlmZmVkXHJcbiAgICAgICAgICogY2hpbGRyZW4sIHdlIGNhbiBpbW1lZGlhdGVseSByZS1yZW5kZXIuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmXHJcbiAgICAgICAgbW9kZSA9PT0gXCJ3YWl0XCIgJiZcclxuICAgICAgICByZW5kZXJlZENoaWxkcmVuLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oYFlvdSdyZSBhdHRlbXB0aW5nIHRvIGFuaW1hdGUgbXVsdGlwbGUgY2hpbGRyZW4gd2l0aGluIEFuaW1hdGVQcmVzZW5jZSwgYnV0IGl0cyBtb2RlIGlzIHNldCB0byBcIndhaXRcIi4gVGhpcyB3aWxsIGxlYWQgdG8gb2RkIHZpc3VhbCBiZWhhdmlvdXIuYCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIElmIHdlJ3ZlIGJlZW4gcHJvdmlkZWQgYSBmb3JjZVJlbmRlciBmdW5jdGlvbiBieSB0aGUgTGF5b3V0R3JvdXBDb250ZXh0LFxyXG4gICAgICogd2UgY2FuIHVzZSBpdCB0byBmb3JjZSBhIHJlLXJlbmRlciBhbW9uZ3N0IGFsbCBzdXJyb3VuZGluZyBjb21wb25lbnRzIG9uY2VcclxuICAgICAqIGFsbCBjb21wb25lbnRzIGhhdmUgZmluaXNoZWQgYW5pbWF0aW5nIG91dC5cclxuICAgICAqL1xyXG4gICAgY29uc3QgeyBmb3JjZVJlbmRlciB9ID0gdXNlQ29udGV4dChMYXlvdXRHcm91cENvbnRleHQpO1xyXG4gICAgcmV0dXJuIChqc3goRnJhZ21lbnQsIHsgY2hpbGRyZW46IHJlbmRlcmVkQ2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBrZXkgPSBnZXRDaGlsZEtleShjaGlsZCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzUHJlc2VudCA9IHByb3BhZ2F0ZSAmJiAhaXNQYXJlbnRQcmVzZW50XHJcbiAgICAgICAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICAgICAgICA6IHByZXNlbnRDaGlsZHJlbiA9PT0gcmVuZGVyZWRDaGlsZHJlbiB8fFxyXG4gICAgICAgICAgICAgICAgICAgIHByZXNlbnRLZXlzLmluY2x1ZGVzKGtleSk7XHJcbiAgICAgICAgICAgIGNvbnN0IG9uRXhpdCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChleGl0Q29tcGxldGUuaGFzKGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBleGl0Q29tcGxldGUuc2V0KGtleSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgaXNFdmVyeUV4aXRDb21wbGV0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBleGl0Q29tcGxldGUuZm9yRWFjaCgoaXNFeGl0Q29tcGxldGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRXhpdENvbXBsZXRlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0V2ZXJ5RXhpdENvbXBsZXRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGlmIChpc0V2ZXJ5RXhpdENvbXBsZXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yY2VSZW5kZXI/LigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFJlbmRlcmVkQ2hpbGRyZW4ocGVuZGluZ1ByZXNlbnRDaGlsZHJlbi5jdXJyZW50KTtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wYWdhdGUgJiYgc2FmZVRvUmVtb3ZlPy4oKTtcclxuICAgICAgICAgICAgICAgICAgICBvbkV4aXRDb21wbGV0ZSAmJiBvbkV4aXRDb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICByZXR1cm4gKGpzeChQcmVzZW5jZUNoaWxkLCB7IGlzUHJlc2VudDogaXNQcmVzZW50LCBpbml0aWFsOiAhaXNJbml0aWFsUmVuZGVyLmN1cnJlbnQgfHwgaW5pdGlhbFxyXG4gICAgICAgICAgICAgICAgICAgID8gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgOiBmYWxzZSwgY3VzdG9tOiBjdXN0b20sIHByZXNlbmNlQWZmZWN0c0xheW91dDogcHJlc2VuY2VBZmZlY3RzTGF5b3V0LCBtb2RlOiBtb2RlLCByb290OiByb290LCBvbkV4aXRDb21wbGV0ZTogaXNQcmVzZW50ID8gdW5kZWZpbmVkIDogb25FeGl0LCBhbmNob3JYOiBhbmNob3JYLCBjaGlsZHJlbjogY2hpbGQgfSwga2V5KSk7XHJcbiAgICAgICAgfSkgfSkpO1xyXG59O1xyXG5cclxuZXhwb3J0IHsgQW5pbWF0ZVByZXNlbmNlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs":
|
||
/*!****************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs ***!
|
||
\****************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isPresent: function() { return /* binding */ isPresent; },\n/* harmony export */ useIsPresent: function() { return /* binding */ useIsPresent; },\n/* harmony export */ usePresence: function() { return /* binding */ usePresence; }\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 _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n/**\r\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\r\n * to access information about whether it's still present in the React tree.\r\n *\r\n * ```jsx\r\n * import { usePresence } from \"framer-motion\"\r\n *\r\n * export const Component = () => {\r\n * const [isPresent, safeToRemove] = usePresence()\r\n *\r\n * useEffect(() => {\r\n * !isPresent && setTimeout(safeToRemove, 1000)\r\n * }, [isPresent])\r\n *\r\n * return <div />\r\n * }\r\n * ```\r\n *\r\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\r\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\r\n *\r\n * @public\r\n */\r\nfunction usePresence(subscribe = true) {\r\n const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_1__.PresenceContext);\r\n if (context === null)\r\n return [true, null];\r\n const { isPresent, onExitComplete, register } = context;\r\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\r\n // either be null or non-null for the lifespan of the component.\r\n const id = (0,react__WEBPACK_IMPORTED_MODULE_0__.useId)();\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\r\n if (subscribe) {\r\n return register(id);\r\n }\r\n }, [subscribe]);\r\n const safeToRemove = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => subscribe && onExitComplete && onExitComplete(id), [id, onExitComplete, subscribe]);\r\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\r\n}\r\n/**\r\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\r\n * There is no `safeToRemove` function.\r\n *\r\n * ```jsx\r\n * import { useIsPresent } from \"framer-motion\"\r\n *\r\n * export const Component = () => {\r\n * const isPresent = useIsPresent()\r\n *\r\n * useEffect(() => {\r\n * !isPresent && console.log(\"I've been removed!\")\r\n * }, [isPresent])\r\n *\r\n * return <div />\r\n * }\r\n * ```\r\n *\r\n * @public\r\n */\r\nfunction useIsPresent() {\r\n return isPresent((0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_1__.PresenceContext));\r\n}\r\nfunction isPresent(context) {\r\n return context === null ? true : context.isPresent;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvdXNlLXByZXNlbmNlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ2tFO0FBQ0U7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxjQUFjO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGlEQUFVLENBQUMseUVBQWU7QUFDOUM7QUFDQTtBQUNBLFlBQVksc0NBQXNDO0FBQ2xEO0FBQ0E7QUFDQSxlQUFlLDRDQUFLO0FBQ3BCLElBQUksZ0RBQVM7QUFDYjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wseUJBQXlCLGtEQUFXO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxlQUFlO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLGlEQUFVLENBQUMseUVBQWU7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbXBvbmVudHMvQW5pbWF0ZVByZXNlbmNlL3VzZS1wcmVzZW5jZS5tanM/YzFkYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IFByZXNlbmNlQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHQvUHJlc2VuY2VDb250ZXh0Lm1qcyc7XHJcblxyXG4vKipcclxuICogV2hlbiBhIGNvbXBvbmVudCBpcyB0aGUgY2hpbGQgb2YgYEFuaW1hdGVQcmVzZW5jZWAsIGl0IGNhbiB1c2UgYHVzZVByZXNlbmNlYFxyXG4gKiB0byBhY2Nlc3MgaW5mb3JtYXRpb24gYWJvdXQgd2hldGhlciBpdCdzIHN0aWxsIHByZXNlbnQgaW4gdGhlIFJlYWN0IHRyZWUuXHJcbiAqXHJcbiAqIGBgYGpzeFxyXG4gKiBpbXBvcnQgeyB1c2VQcmVzZW5jZSB9IGZyb20gXCJmcmFtZXItbW90aW9uXCJcclxuICpcclxuICogZXhwb3J0IGNvbnN0IENvbXBvbmVudCA9ICgpID0+IHtcclxuICogICBjb25zdCBbaXNQcmVzZW50LCBzYWZlVG9SZW1vdmVdID0gdXNlUHJlc2VuY2UoKVxyXG4gKlxyXG4gKiAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAqICAgICAhaXNQcmVzZW50ICYmIHNldFRpbWVvdXQoc2FmZVRvUmVtb3ZlLCAxMDAwKVxyXG4gKiAgIH0sIFtpc1ByZXNlbnRdKVxyXG4gKlxyXG4gKiAgIHJldHVybiA8ZGl2IC8+XHJcbiAqIH1cclxuICogYGBgXHJcbiAqXHJcbiAqIElmIGBpc1ByZXNlbnRgIGlzIGBmYWxzZWAsIGl0IG1lYW5zIHRoYXQgYSBjb21wb25lbnQgaGFzIGJlZW4gcmVtb3ZlZCB0aGUgdHJlZSwgYnV0XHJcbiAqIGBBbmltYXRlUHJlc2VuY2VgIHdvbid0IHJlYWxseSByZW1vdmUgaXQgdW50aWwgYHNhZmVUb1JlbW92ZWAgaGFzIGJlZW4gY2FsbGVkLlxyXG4gKlxyXG4gKiBAcHVibGljXHJcbiAqL1xyXG5mdW5jdGlvbiB1c2VQcmVzZW5jZShzdWJzY3JpYmUgPSB0cnVlKSB7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChQcmVzZW5jZUNvbnRleHQpO1xyXG4gICAgaWYgKGNvbnRleHQgPT09IG51bGwpXHJcbiAgICAgICAgcmV0dXJuIFt0cnVlLCBudWxsXTtcclxuICAgIGNvbnN0IHsgaXNQcmVzZW50LCBvbkV4aXRDb21wbGV0ZSwgcmVnaXN0ZXIgfSA9IGNvbnRleHQ7XHJcbiAgICAvLyBJdCdzIHNhZmUgdG8gY2FsbCB0aGUgZm9sbG93aW5nIGhvb2tzIGNvbmRpdGlvbmFsbHkgKGFmdGVyIGFuIGVhcmx5IHJldHVybikgYmVjYXVzZSB0aGUgY29udGV4dCB3aWxsIGFsd2F5c1xyXG4gICAgLy8gZWl0aGVyIGJlIG51bGwgb3Igbm9uLW51bGwgZm9yIHRoZSBsaWZlc3BhbiBvZiB0aGUgY29tcG9uZW50LlxyXG4gICAgY29uc3QgaWQgPSB1c2VJZCgpO1xyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAoc3Vic2NyaWJlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByZWdpc3RlcihpZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3N1YnNjcmliZV0pO1xyXG4gICAgY29uc3Qgc2FmZVRvUmVtb3ZlID0gdXNlQ2FsbGJhY2soKCkgPT4gc3Vic2NyaWJlICYmIG9uRXhpdENvbXBsZXRlICYmIG9uRXhpdENvbXBsZXRlKGlkKSwgW2lkLCBvbkV4aXRDb21wbGV0ZSwgc3Vic2NyaWJlXSk7XHJcbiAgICByZXR1cm4gIWlzUHJlc2VudCAmJiBvbkV4aXRDb21wbGV0ZSA/IFtmYWxzZSwgc2FmZVRvUmVtb3ZlXSA6IFt0cnVlXTtcclxufVxyXG4vKipcclxuICogU2ltaWxhciB0byBgdXNlUHJlc2VuY2VgLCBleGNlcHQgYHVzZUlzUHJlc2VudGAgc2ltcGx5IHJldHVybnMgd2hldGhlciBvciBub3QgdGhlIGNvbXBvbmVudCBpcyBwcmVzZW50LlxyXG4gKiBUaGVyZSBpcyBubyBgc2FmZVRvUmVtb3ZlYCBmdW5jdGlvbi5cclxuICpcclxuICogYGBganN4XHJcbiAqIGltcG9ydCB7IHVzZUlzUHJlc2VudCB9IGZyb20gXCJmcmFtZXItbW90aW9uXCJcclxuICpcclxuICogZXhwb3J0IGNvbnN0IENvbXBvbmVudCA9ICgpID0+IHtcclxuICogICBjb25zdCBpc1ByZXNlbnQgPSB1c2VJc1ByZXNlbnQoKVxyXG4gKlxyXG4gKiAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAqICAgICAhaXNQcmVzZW50ICYmIGNvbnNvbGUubG9nKFwiSSd2ZSBiZWVuIHJlbW92ZWQhXCIpXHJcbiAqICAgfSwgW2lzUHJlc2VudF0pXHJcbiAqXHJcbiAqICAgcmV0dXJuIDxkaXYgLz5cclxuICogfVxyXG4gKiBgYGBcclxuICpcclxuICogQHB1YmxpY1xyXG4gKi9cclxuZnVuY3Rpb24gdXNlSXNQcmVzZW50KCkge1xyXG4gICAgcmV0dXJuIGlzUHJlc2VudCh1c2VDb250ZXh0KFByZXNlbmNlQ29udGV4dCkpO1xyXG59XHJcbmZ1bmN0aW9uIGlzUHJlc2VudChjb250ZXh0KSB7XHJcbiAgICByZXR1cm4gY29udGV4dCA9PT0gbnVsbCA/IHRydWUgOiBjb250ZXh0LmlzUHJlc2VudDtcclxufVxyXG5cclxuZXhwb3J0IHsgaXNQcmVzZW50LCB1c2VJc1ByZXNlbnQsIHVzZVByZXNlbmNlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs ***!
|
||
\*********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getChildKey: function() { return /* binding */ getChildKey; },\n/* harmony export */ onlyElements: function() { return /* binding */ onlyElements; }\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\r\n\r\nconst getChildKey = (child) => child.key || \"\";\r\nfunction onlyElements(children) {\r\n const filtered = [];\r\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\r\n react__WEBPACK_IMPORTED_MODULE_0__.Children.forEach(children, (child) => {\r\n if ((0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(child))\r\n filtered.push(child);\r\n });\r\n return filtered;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvdXRpbHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSwyQ0FBUTtBQUNaLFlBQVkscURBQWM7QUFDMUI7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ3FDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvdXRpbHMubWpzPzZmOTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hpbGRyZW4sIGlzVmFsaWRFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xyXG5cclxuY29uc3QgZ2V0Q2hpbGRLZXkgPSAoY2hpbGQpID0+IGNoaWxkLmtleSB8fCBcIlwiO1xyXG5mdW5jdGlvbiBvbmx5RWxlbWVudHMoY2hpbGRyZW4pIHtcclxuICAgIGNvbnN0IGZpbHRlcmVkID0gW107XHJcbiAgICAvLyBXZSB1c2UgZm9yRWFjaCBoZXJlIGluc3RlYWQgb2YgbWFwIGFzIG1hcCBtdXRhdGVzIHRoZSBjb21wb25lbnQga2V5IGJ5IHByZXByZW5kaW5nIGAuJGBcclxuICAgIENoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIChjaGlsZCkgPT4ge1xyXG4gICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChjaGlsZCkpXHJcbiAgICAgICAgICAgIGZpbHRlcmVkLnB1c2goY2hpbGQpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZmlsdGVyZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGdldENoaWxkS2V5LCBvbmx5RWxlbWVudHMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LayoutGroupContext: function() { return /* binding */ LayoutGroupContext; }\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\"use client\";\r\n\r\n\r\nconst LayoutGroupContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({});\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9MYXlvdXRHcm91cENvbnRleHQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDc0M7QUFDdEM7QUFDQSwyQkFBMkIsb0RBQWEsR0FBRztBQUMzQztBQUM4QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbnRleHQvTGF5b3V0R3JvdXBDb250ZXh0Lm1qcz82YTkxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xyXG5cclxuY29uc3QgTGF5b3V0R3JvdXBDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7fSk7XHJcblxyXG5leHBvcnQgeyBMYXlvdXRHcm91cENvbnRleHQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/context/LazyContext.mjs ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LazyContext: function() { return /* binding */ LazyContext; }\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\"use client\";\r\n\r\n\r\nconst LazyContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({ strict: false });\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9MYXp5Q29udGV4dC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNzQztBQUN0QztBQUNBLG9CQUFvQixvREFBYSxHQUFHLGVBQWU7QUFDbkQ7QUFDdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9jb250ZXh0L0xhenlDb250ZXh0Lm1qcz8xYzIxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xyXG5cclxuY29uc3QgTGF6eUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHsgc3RyaWN0OiBmYWxzZSB9KTtcclxuXHJcbmV4cG9ydCB7IExhenlDb250ZXh0IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MotionConfigContext: function() { return /* binding */ MotionConfigContext; }\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\"use client\";\r\n\r\n\r\n/**\r\n * @public\r\n */\r\nconst MotionConfigContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({\r\n transformPagePoint: (p) => p,\r\n isStatic: false,\r\n reducedMotion: \"never\",\r\n});\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Nb3Rpb25Db25maWdDb250ZXh0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ3NDO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLG9EQUFhO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUMrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbnRleHQvTW90aW9uQ29uZmlnQ29udGV4dC5tanM/ZWFhYiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcclxuXHJcbi8qKlxyXG4gKiBAcHVibGljXHJcbiAqL1xyXG5jb25zdCBNb3Rpb25Db25maWdDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7XHJcbiAgICB0cmFuc2Zvcm1QYWdlUG9pbnQ6IChwKSA9PiBwLFxyXG4gICAgaXNTdGF0aWM6IGZhbHNlLFxyXG4gICAgcmVkdWNlZE1vdGlvbjogXCJuZXZlclwiLFxyXG59KTtcclxuXHJcbmV4cG9ydCB7IE1vdGlvbkNvbmZpZ0NvbnRleHQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs ***!
|
||
\*****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCreateMotionContext: function() { return /* binding */ useCreateMotionContext; }\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 _index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\nfunction useCreateMotionContext(props) {\r\n const { initial, animate } = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.getCurrentTreeVariants)(props, (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_index_mjs__WEBPACK_IMPORTED_MODULE_2__.MotionContext));\r\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\r\n}\r\nfunction variantLabelsAsDependency(prop) {\r\n return Array.isArray(prop) ? prop.join(\" \") : prop;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Nb3Rpb25Db250ZXh0L2NyZWF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQzRDO0FBQ0E7QUFDUztBQUNyRDtBQUNBO0FBQ0EsWUFBWSxtQkFBbUIsRUFBRSxrRUFBc0IsUUFBUSxpREFBVSxDQUFDLHFEQUFhO0FBQ3ZGLFdBQVcsOENBQU8sVUFBVSxrQkFBa0I7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbnRleHQvTW90aW9uQ29udGV4dC9jcmVhdGUubWpzP2FiOWMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcbmltcG9ydCB7IHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IE1vdGlvbkNvbnRleHQgfSBmcm9tICcuL2luZGV4Lm1qcyc7XHJcbmltcG9ydCB7IGdldEN1cnJlbnRUcmVlVmFyaWFudHMgfSBmcm9tICcuL3V0aWxzLm1qcyc7XHJcblxyXG5mdW5jdGlvbiB1c2VDcmVhdGVNb3Rpb25Db250ZXh0KHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGluaXRpYWwsIGFuaW1hdGUgfSA9IGdldEN1cnJlbnRUcmVlVmFyaWFudHMocHJvcHMsIHVzZUNvbnRleHQoTW90aW9uQ29udGV4dCkpO1xyXG4gICAgcmV0dXJuIHVzZU1lbW8oKCkgPT4gKHsgaW5pdGlhbCwgYW5pbWF0ZSB9KSwgW3ZhcmlhbnRMYWJlbHNBc0RlcGVuZGVuY3koaW5pdGlhbCksIHZhcmlhbnRMYWJlbHNBc0RlcGVuZGVuY3koYW5pbWF0ZSldKTtcclxufVxyXG5mdW5jdGlvbiB2YXJpYW50TGFiZWxzQXNEZXBlbmRlbmN5KHByb3ApIHtcclxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHByb3ApID8gcHJvcC5qb2luKFwiIFwiKSA6IHByb3A7XHJcbn1cclxuXHJcbmV4cG9ydCB7IHVzZUNyZWF0ZU1vdGlvbkNvbnRleHQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MotionContext: function() { return /* binding */ MotionContext; }\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\"use client\";\r\n\r\n\r\nconst MotionContext = /* @__PURE__ */ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({});\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Nb3Rpb25Db250ZXh0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ3NDO0FBQ3RDO0FBQ0Esc0NBQXNDLG9EQUFhLEdBQUc7QUFDdEQ7QUFDeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9jb250ZXh0L01vdGlvbkNvbnRleHQvaW5kZXgubWpzP2I1MTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XHJcblxyXG5jb25zdCBNb3Rpb25Db250ZXh0ID0gLyogQF9fUFVSRV9fICovIGNyZWF0ZUNvbnRleHQoe30pO1xyXG5cclxuZXhwb3J0IHsgTW90aW9uQ29udGV4dCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getCurrentTreeVariants: function() { return /* binding */ getCurrentTreeVariants; }\n/* harmony export */ });\n/* harmony import */ var _render_utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../render/utils/is-controlling-variants.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs\");\n/* harmony import */ var _render_utils_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../render/utils/is-variant-label.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs\");\n\r\n\r\n\r\nfunction getCurrentTreeVariants(props, context) {\r\n if ((0,_render_utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_0__.isControllingVariants)(props)) {\r\n const { initial, animate } = props;\r\n return {\r\n initial: initial === false || (0,_render_utils_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_1__.isVariantLabel)(initial)\r\n ? initial\r\n : undefined,\r\n animate: (0,_render_utils_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_1__.isVariantLabel)(animate) ? animate : undefined,\r\n };\r\n }\r\n return props.inherit !== false ? context : {};\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Nb3Rpb25Db250ZXh0L3V0aWxzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBdUY7QUFDZDtBQUN6RTtBQUNBO0FBQ0EsUUFBUSxnR0FBcUI7QUFDN0IsZ0JBQWdCLG1CQUFtQjtBQUNuQztBQUNBLDBDQUEwQyxrRkFBYztBQUN4RDtBQUNBO0FBQ0EscUJBQXFCLGtGQUFjO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9jb250ZXh0L01vdGlvbkNvbnRleHQvdXRpbHMubWpzP2M0YjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNDb250cm9sbGluZ1ZhcmlhbnRzIH0gZnJvbSAnLi4vLi4vcmVuZGVyL3V0aWxzL2lzLWNvbnRyb2xsaW5nLXZhcmlhbnRzLm1qcyc7XHJcbmltcG9ydCB7IGlzVmFyaWFudExhYmVsIH0gZnJvbSAnLi4vLi4vcmVuZGVyL3V0aWxzL2lzLXZhcmlhbnQtbGFiZWwubWpzJztcclxuXHJcbmZ1bmN0aW9uIGdldEN1cnJlbnRUcmVlVmFyaWFudHMocHJvcHMsIGNvbnRleHQpIHtcclxuICAgIGlmIChpc0NvbnRyb2xsaW5nVmFyaWFudHMocHJvcHMpKSB7XHJcbiAgICAgICAgY29uc3QgeyBpbml0aWFsLCBhbmltYXRlIH0gPSBwcm9wcztcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpbml0aWFsOiBpbml0aWFsID09PSBmYWxzZSB8fCBpc1ZhcmlhbnRMYWJlbChpbml0aWFsKVxyXG4gICAgICAgICAgICAgICAgPyBpbml0aWFsXHJcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgYW5pbWF0ZTogaXNWYXJpYW50TGFiZWwoYW5pbWF0ZSkgPyBhbmltYXRlIDogdW5kZWZpbmVkLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcHJvcHMuaW5oZXJpdCAhPT0gZmFsc2UgPyBjb250ZXh0IDoge307XHJcbn1cclxuXHJcbmV4cG9ydCB7IGdldEN1cnJlbnRUcmVlVmFyaWFudHMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/context/PresenceContext.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PresenceContext: function() { return /* binding */ PresenceContext; }\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\"use client\";\r\n\r\n\r\n/**\r\n * @public\r\n */\r\nconst PresenceContext = \r\n/* @__PURE__ */ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9QcmVzZW5jZUNvbnRleHQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixvREFBYTtBQUM3QjtBQUMyQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbnRleHQvUHJlc2VuY2VDb250ZXh0Lm1qcz8xNWMxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xyXG5cclxuLyoqXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbmNvbnN0IFByZXNlbmNlQ29udGV4dCA9IFxyXG4vKiBAX19QVVJFX18gKi8gY3JlYXRlQ29udGV4dChudWxsKTtcclxuXHJcbmV4cG9ydCB7IFByZXNlbmNlQ29udGV4dCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs ***!
|
||
\*********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SwitchLayoutGroupContext: function() { return /* binding */ SwitchLayoutGroupContext; }\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\"use client\";\r\n\r\n\r\n/**\r\n * Internal, exported only for usage in Framer\r\n */\r\nconst SwitchLayoutGroupContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({});\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Td2l0Y2hMYXlvdXRHcm91cENvbnRleHQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsb0RBQWEsR0FBRztBQUNqRDtBQUNvQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbnRleHQvU3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0Lm1qcz82NGY0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xyXG5cclxuLyoqXHJcbiAqIEludGVybmFsLCBleHBvcnRlZCBvbmx5IGZvciB1c2FnZSBpbiBGcmFtZXJcclxuICovXHJcbmNvbnN0IFN3aXRjaExheW91dEdyb3VwQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe30pO1xyXG5cclxuZXhwb3J0IHsgU3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-dom-event.mjs":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/events/add-dom-event.mjs ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addDomEvent: function() { return /* binding */ addDomEvent; }\n/* harmony export */ });\nfunction addDomEvent(target, eventName, handler, options = { passive: true }) {\r\n target.addEventListener(eventName, handler, options);\r\n return () => target.removeEventListener(eventName, handler);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZXZlbnRzL2FkZC1kb20tZXZlbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSw2REFBNkQsZUFBZTtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUN1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2V2ZW50cy9hZGQtZG9tLWV2ZW50Lm1qcz9hNzJmIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGFkZERvbUV2ZW50KHRhcmdldCwgZXZlbnROYW1lLCBoYW5kbGVyLCBvcHRpb25zID0geyBwYXNzaXZlOiB0cnVlIH0pIHtcclxuICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlciwgb3B0aW9ucyk7XHJcbiAgICByZXR1cm4gKCkgPT4gdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBoYW5kbGVyKTtcclxufVxyXG5cclxuZXhwb3J0IHsgYWRkRG9tRXZlbnQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-dom-event.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addPointerEvent: function() { return /* binding */ addPointerEvent; }\n/* harmony export */ });\n/* harmony import */ var _add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add-dom-event.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var _event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n\r\n\r\n\r\nfunction addPointerEvent(target, eventName, handler, options) {\r\n return (0,_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_0__.addDomEvent)(target, eventName, (0,_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.addPointerInfo)(handler), options);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZXZlbnRzL2FkZC1wb2ludGVyLWV2ZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBa0Q7QUFDQTtBQUNsRDtBQUNBO0FBQ0EsV0FBVywrREFBVyxvQkFBb0IsK0RBQWM7QUFDeEQ7QUFDQTtBQUMyQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2V2ZW50cy9hZGQtcG9pbnRlci1ldmVudC5tanM/Y2U1MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGREb21FdmVudCB9IGZyb20gJy4vYWRkLWRvbS1ldmVudC5tanMnO1xyXG5pbXBvcnQgeyBhZGRQb2ludGVySW5mbyB9IGZyb20gJy4vZXZlbnQtaW5mby5tanMnO1xyXG5cclxuZnVuY3Rpb24gYWRkUG9pbnRlckV2ZW50KHRhcmdldCwgZXZlbnROYW1lLCBoYW5kbGVyLCBvcHRpb25zKSB7XHJcbiAgICByZXR1cm4gYWRkRG9tRXZlbnQodGFyZ2V0LCBldmVudE5hbWUsIGFkZFBvaW50ZXJJbmZvKGhhbmRsZXIpLCBvcHRpb25zKTtcclxufVxyXG5cclxuZXhwb3J0IHsgYWRkUG9pbnRlckV2ZW50IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/events/event-info.mjs ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addPointerInfo: function() { return /* binding */ addPointerInfo; },\n/* harmony export */ extractEventInfo: function() { return /* binding */ extractEventInfo; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\");\n\r\n\r\nfunction extractEventInfo(event) {\r\n return {\r\n point: {\r\n x: event.pageX,\r\n y: event.pageY,\r\n },\r\n };\r\n}\r\nconst addPointerInfo = (handler) => {\r\n return (event) => (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isPrimaryPointer)(event) && handler(event, extractEventInfo(event));\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZXZlbnRzL2V2ZW50LWluZm8ubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE4QztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDREQUFnQjtBQUN0QztBQUNBO0FBQzRDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZXZlbnRzL2V2ZW50LWluZm8ubWpzPzQ1MjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQcmltYXJ5UG9pbnRlciB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5cclxuZnVuY3Rpb24gZXh0cmFjdEV2ZW50SW5mbyhldmVudCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBwb2ludDoge1xyXG4gICAgICAgICAgICB4OiBldmVudC5wYWdlWCxcclxuICAgICAgICAgICAgeTogZXZlbnQucGFnZVksXHJcbiAgICAgICAgfSxcclxuICAgIH07XHJcbn1cclxuY29uc3QgYWRkUG9pbnRlckluZm8gPSAoaGFuZGxlcikgPT4ge1xyXG4gICAgcmV0dXJuIChldmVudCkgPT4gaXNQcmltYXJ5UG9pbnRlcihldmVudCkgJiYgaGFuZGxlcihldmVudCwgZXh0cmFjdEV2ZW50SW5mbyhldmVudCkpO1xyXG59O1xyXG5cclxuZXhwb3J0IHsgYWRkUG9pbnRlckluZm8sIGV4dHJhY3RFdmVudEluZm8gfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs":
|
||
/*!****************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs ***!
|
||
\****************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VisualElementDragControls: function() { return /* binding */ VisualElementDragControls; },\n/* harmony export */ elementDragControls: function() { return /* binding */ elementDragControls; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _animation_interfaces_motion_value_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../animation/interfaces/motion-value.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs\");\n/* harmony import */ var _events_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../events/add-dom-event.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var _events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../events/add-pointer-event.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../events/event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n/* harmony import */ var _projection_geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../projection/geometry/conversion.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs\");\n/* harmony import */ var _projection_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../projection/geometry/delta-calc.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs\");\n/* harmony import */ var _projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../projection/geometry/models.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var _projection_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../projection/utils/each-axis.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs\");\n/* harmony import */ var _projection_utils_measure_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../projection/utils/measure.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/utils/measure.mjs\");\n/* harmony import */ var _utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils/get-context-window.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs\");\n/* harmony import */ var _utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../utils/is-ref-object.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs\");\n/* harmony import */ var _value_use_will_change_add_will_change_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../value/use-will-change/add-will-change.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs\");\n/* harmony import */ var _pan_PanSession_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../pan/PanSession.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs\");\n/* harmony import */ var _utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils/constraints.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst elementDragControls = new WeakMap();\r\nclass VisualElementDragControls {\r\n constructor(visualElement) {\r\n this.openDragLock = null;\r\n this.isDragging = false;\r\n this.currentDirection = null;\r\n this.originPoint = { x: 0, y: 0 };\r\n /**\r\n * The permitted boundaries of travel, in pixels.\r\n */\r\n this.constraints = false;\r\n this.hasMutatedConstraints = false;\r\n /**\r\n * The per-axis resolved elastic values.\r\n */\r\n this.elastic = (0,_projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_0__.createBox)();\r\n /**\r\n * The latest pointer event. Used as fallback when the `cancel` and `stop` functions are called without arguments.\r\n */\r\n this.latestPointerEvent = null;\r\n /**\r\n * The latest pan info. Used as fallback when the `cancel` and `stop` functions are called without arguments.\r\n */\r\n this.latestPanInfo = null;\r\n this.visualElement = visualElement;\r\n }\r\n start(originEvent, { snapToCursor = false, distanceThreshold } = {}) {\r\n /**\r\n * Don't start dragging if this component is exiting\r\n */\r\n const { presenceContext } = this.visualElement;\r\n if (presenceContext && presenceContext.isPresent === false)\r\n return;\r\n const onSessionStart = (event) => {\r\n const { dragSnapToOrigin } = this.getProps();\r\n // Stop or pause any animations on both axis values immediately. This allows the user to throw and catch\r\n // the component.\r\n dragSnapToOrigin ? this.pauseAnimation() : this.stopAnimation();\r\n if (snapToCursor) {\r\n this.snapToCursor((0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.extractEventInfo)(event).point);\r\n }\r\n };\r\n const onStart = (event, info) => {\r\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\r\n const { drag, dragPropagation, onDragStart } = this.getProps();\r\n if (drag && !dragPropagation) {\r\n if (this.openDragLock)\r\n this.openDragLock();\r\n this.openDragLock = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.setDragLock)(drag);\r\n // If we don 't have the lock, don't start dragging\r\n if (!this.openDragLock)\r\n return;\r\n }\r\n this.latestPointerEvent = event;\r\n this.latestPanInfo = info;\r\n this.isDragging = true;\r\n this.currentDirection = null;\r\n this.resolveConstraints();\r\n if (this.visualElement.projection) {\r\n this.visualElement.projection.isAnimationBlocked = true;\r\n this.visualElement.projection.target = undefined;\r\n }\r\n /**\r\n * Record gesture origin\r\n */\r\n (0,_projection_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\r\n let current = this.getAxisMotionValue(axis).get() || 0;\r\n /**\r\n * If the MotionValue is a percentage value convert to px\r\n */\r\n if (motion_dom__WEBPACK_IMPORTED_MODULE_4__.percent.test(current)) {\r\n const { projection } = this.visualElement;\r\n if (projection && projection.layout) {\r\n const measuredAxis = projection.layout.layoutBox[axis];\r\n if (measuredAxis) {\r\n const length = (0,_projection_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_5__.calcLength)(measuredAxis);\r\n current = length * (parseFloat(current) / 100);\r\n }\r\n }\r\n }\r\n this.originPoint[axis] = current;\r\n });\r\n // Fire onDragStart event\r\n if (onDragStart) {\r\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.postRender(() => onDragStart(event, info));\r\n }\r\n (0,_value_use_will_change_add_will_change_mjs__WEBPACK_IMPORTED_MODULE_7__.addValueToWillChange)(this.visualElement, \"transform\");\r\n const { animationState } = this.visualElement;\r\n animationState && animationState.setActive(\"whileDrag\", true);\r\n };\r\n const onMove = (event, info) => {\r\n this.latestPointerEvent = event;\r\n this.latestPanInfo = info;\r\n const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag, } = this.getProps();\r\n // If we didn't successfully receive the gesture lock, early return.\r\n if (!dragPropagation && !this.openDragLock)\r\n return;\r\n const { offset } = info;\r\n // Attempt to detect drag direction if directionLock is true\r\n if (dragDirectionLock && this.currentDirection === null) {\r\n this.currentDirection = getCurrentDirection(offset);\r\n // If we've successfully set a direction, notify listener\r\n if (this.currentDirection !== null) {\r\n onDirectionLock && onDirectionLock(this.currentDirection);\r\n }\r\n return;\r\n }\r\n // Update each point with the latest position\r\n this.updateAxis(\"x\", info.point, offset);\r\n this.updateAxis(\"y\", info.point, offset);\r\n /**\r\n * Ideally we would leave the renderer to fire naturally at the end of\r\n * this frame but if the element is about to change layout as the result\r\n * of a re-render we want to ensure the browser can read the latest\r\n * bounding box to ensure the pointer and element don't fall out of sync.\r\n */\r\n this.visualElement.render();\r\n /**\r\n * This must fire after the render call as it might trigger a state\r\n * change which itself might trigger a layout update.\r\n */\r\n onDrag && onDrag(event, info);\r\n };\r\n const onSessionEnd = (event, info) => {\r\n this.latestPointerEvent = event;\r\n this.latestPanInfo = info;\r\n this.stop(event, info);\r\n this.latestPointerEvent = null;\r\n this.latestPanInfo = null;\r\n };\r\n const resumeAnimation = () => (0,_projection_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => this.getAnimationState(axis) === \"paused\" &&\r\n this.getAxisMotionValue(axis).animation?.play());\r\n const { dragSnapToOrigin } = this.getProps();\r\n this.panSession = new _pan_PanSession_mjs__WEBPACK_IMPORTED_MODULE_8__.PanSession(originEvent, {\r\n onSessionStart,\r\n onStart,\r\n onMove,\r\n onSessionEnd,\r\n resumeAnimation,\r\n }, {\r\n transformPagePoint: this.visualElement.getTransformPagePoint(),\r\n dragSnapToOrigin,\r\n distanceThreshold,\r\n contextWindow: (0,_utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_9__.getContextWindow)(this.visualElement),\r\n });\r\n }\r\n /**\r\n * @internal\r\n */\r\n stop(event, panInfo) {\r\n const finalEvent = event || this.latestPointerEvent;\r\n const finalPanInfo = panInfo || this.latestPanInfo;\r\n const isDragging = this.isDragging;\r\n this.cancel();\r\n if (!isDragging || !finalPanInfo || !finalEvent)\r\n return;\r\n const { velocity } = finalPanInfo;\r\n this.startAnimation(velocity);\r\n const { onDragEnd } = this.getProps();\r\n if (onDragEnd) {\r\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.postRender(() => onDragEnd(finalEvent, finalPanInfo));\r\n }\r\n }\r\n /**\r\n * @internal\r\n */\r\n cancel() {\r\n this.isDragging = false;\r\n const { projection, animationState } = this.visualElement;\r\n if (projection) {\r\n projection.isAnimationBlocked = false;\r\n }\r\n this.panSession && this.panSession.end();\r\n this.panSession = undefined;\r\n const { dragPropagation } = this.getProps();\r\n if (!dragPropagation && this.openDragLock) {\r\n this.openDragLock();\r\n this.openDragLock = null;\r\n }\r\n animationState && animationState.setActive(\"whileDrag\", false);\r\n }\r\n updateAxis(axis, _point, offset) {\r\n const { drag } = this.getProps();\r\n // If we're not dragging this axis, do an early return.\r\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\r\n return;\r\n const axisValue = this.getAxisMotionValue(axis);\r\n let next = this.originPoint[axis] + offset[axis];\r\n // Apply constraints\r\n if (this.constraints && this.constraints[axis]) {\r\n next = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.applyConstraints)(next, this.constraints[axis], this.elastic[axis]);\r\n }\r\n axisValue.set(next);\r\n }\r\n resolveConstraints() {\r\n const { dragConstraints, dragElastic } = this.getProps();\r\n const layout = this.visualElement.projection &&\r\n !this.visualElement.projection.layout\r\n ? this.visualElement.projection.measure(false)\r\n : this.visualElement.projection?.layout;\r\n const prevConstraints = this.constraints;\r\n if (dragConstraints && (0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints)) {\r\n if (!this.constraints) {\r\n this.constraints = this.resolveRefConstraints();\r\n }\r\n }\r\n else {\r\n if (dragConstraints && layout) {\r\n this.constraints = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.calcRelativeConstraints)(layout.layoutBox, dragConstraints);\r\n }\r\n else {\r\n this.constraints = false;\r\n }\r\n }\r\n this.elastic = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.resolveDragElastic)(dragElastic);\r\n /**\r\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\r\n * from viewport-relative to component-relative.\r\n */\r\n if (prevConstraints !== this.constraints &&\r\n layout &&\r\n this.constraints &&\r\n !this.hasMutatedConstraints) {\r\n (0,_projection_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\r\n if (this.constraints !== false &&\r\n this.getAxisMotionValue(axis)) {\r\n this.constraints[axis] = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.rebaseAxisConstraints)(layout.layoutBox[axis], this.constraints[axis]);\r\n }\r\n });\r\n }\r\n }\r\n resolveRefConstraints() {\r\n const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\r\n if (!constraints || !(0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(constraints))\r\n return false;\r\n const constraintsElement = constraints.current;\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.invariant)(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\", \"drag-constraints-ref\");\r\n const { projection } = this.visualElement;\r\n // TODO\r\n if (!projection || !projection.layout)\r\n return false;\r\n const constraintsBox = (0,_projection_utils_measure_mjs__WEBPACK_IMPORTED_MODULE_13__.measurePageBox)(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\r\n let measuredConstraints = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.calcViewportConstraints)(projection.layout.layoutBox, constraintsBox);\r\n /**\r\n * If there's an onMeasureDragConstraints listener we call it and\r\n * if different constraints are returned, set constraints to that\r\n */\r\n if (onMeasureDragConstraints) {\r\n const userConstraints = onMeasureDragConstraints((0,_projection_geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_14__.convertBoxToBoundingBox)(measuredConstraints));\r\n this.hasMutatedConstraints = !!userConstraints;\r\n if (userConstraints) {\r\n measuredConstraints = (0,_projection_geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_14__.convertBoundingBoxToBox)(userConstraints);\r\n }\r\n }\r\n return measuredConstraints;\r\n }\r\n startAnimation(velocity) {\r\n const { drag, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd, } = this.getProps();\r\n const constraints = this.constraints || {};\r\n const momentumAnimations = (0,_projection_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\r\n if (!shouldDrag(axis, drag, this.currentDirection)) {\r\n return;\r\n }\r\n let transition = (constraints && constraints[axis]) || {};\r\n if (dragSnapToOrigin)\r\n transition = { min: 0, max: 0 };\r\n /**\r\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\r\n * of spring animations so we should look into adding a disable spring option to `inertia`.\r\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\r\n * using the value of `dragElastic`.\r\n */\r\n const bounceStiffness = dragElastic ? 200 : 1000000;\r\n const bounceDamping = dragElastic ? 40 : 10000000;\r\n const inertia = {\r\n type: \"inertia\",\r\n velocity: dragMomentum ? velocity[axis] : 0,\r\n bounceStiffness,\r\n bounceDamping,\r\n timeConstant: 750,\r\n restDelta: 1,\r\n restSpeed: 10,\r\n ...dragTransition,\r\n ...transition,\r\n };\r\n // If we're not animating on an externally-provided `MotionValue` we can use the\r\n // component's animation controls which will handle interactions with whileHover (etc),\r\n // otherwise we just have to animate the `MotionValue` itself.\r\n return this.startAxisValueAnimation(axis, inertia);\r\n });\r\n // Run all animations and then resolve the new drag constraints.\r\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\r\n }\r\n startAxisValueAnimation(axis, transition) {\r\n const axisValue = this.getAxisMotionValue(axis);\r\n (0,_value_use_will_change_add_will_change_mjs__WEBPACK_IMPORTED_MODULE_7__.addValueToWillChange)(this.visualElement, axis);\r\n return axisValue.start((0,_animation_interfaces_motion_value_mjs__WEBPACK_IMPORTED_MODULE_15__.animateMotionValue)(axis, axisValue, 0, transition, this.visualElement, false));\r\n }\r\n stopAnimation() {\r\n (0,_projection_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => this.getAxisMotionValue(axis).stop());\r\n }\r\n pauseAnimation() {\r\n (0,_projection_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => this.getAxisMotionValue(axis).animation?.pause());\r\n }\r\n getAnimationState(axis) {\r\n return this.getAxisMotionValue(axis).animation?.state;\r\n }\r\n /**\r\n * Drag works differently depending on which props are provided.\r\n *\r\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\r\n * - Otherwise, we apply the delta to the x/y motion values.\r\n */\r\n getAxisMotionValue(axis) {\r\n const dragKey = `_drag${axis.toUpperCase()}`;\r\n const props = this.visualElement.getProps();\r\n const externalMotionValue = props[dragKey];\r\n return externalMotionValue\r\n ? externalMotionValue\r\n : this.visualElement.getValue(axis, (props.initial\r\n ? props.initial[axis]\r\n : undefined) || 0);\r\n }\r\n snapToCursor(point) {\r\n (0,_projection_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\r\n const { drag } = this.getProps();\r\n // If we're not dragging this axis, do an early return.\r\n if (!shouldDrag(axis, drag, this.currentDirection))\r\n return;\r\n const { projection } = this.visualElement;\r\n const axisValue = this.getAxisMotionValue(axis);\r\n if (projection && projection.layout) {\r\n const { min, max } = projection.layout.layoutBox[axis];\r\n axisValue.set(point[axis] - (0,motion_dom__WEBPACK_IMPORTED_MODULE_16__.mixNumber)(min, max, 0.5));\r\n }\r\n });\r\n }\r\n /**\r\n * When the viewport resizes we want to check if the measured constraints\r\n * have changed and, if so, reposition the element within those new constraints\r\n * relative to where it was before the resize.\r\n */\r\n scalePositionWithinConstraints() {\r\n if (!this.visualElement.current)\r\n return;\r\n const { drag, dragConstraints } = this.getProps();\r\n const { projection } = this.visualElement;\r\n if (!(0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints) || !projection || !this.constraints)\r\n return;\r\n /**\r\n * Stop current animations as there can be visual glitching if we try to do\r\n * this mid-animation\r\n */\r\n this.stopAnimation();\r\n /**\r\n * Record the relative position of the dragged element relative to the\r\n * constraints box and save as a progress value.\r\n */\r\n const boxProgress = { x: 0, y: 0 };\r\n (0,_projection_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\r\n const axisValue = this.getAxisMotionValue(axis);\r\n if (axisValue && this.constraints !== false) {\r\n const latest = axisValue.get();\r\n boxProgress[axis] = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.calcOrigin)({ min: latest, max: latest }, this.constraints[axis]);\r\n }\r\n });\r\n /**\r\n * Update the layout of this element and resolve the latest drag constraints\r\n */\r\n const { transformTemplate } = this.visualElement.getProps();\r\n this.visualElement.current.style.transform = transformTemplate\r\n ? transformTemplate({}, \"\")\r\n : \"none\";\r\n projection.root && projection.root.updateScroll();\r\n projection.updateLayout();\r\n this.resolveConstraints();\r\n /**\r\n * For each axis, calculate the current progress of the layout axis\r\n * within the new constraints.\r\n */\r\n (0,_projection_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\r\n if (!shouldDrag(axis, drag, null))\r\n return;\r\n /**\r\n * Calculate a new transform based on the previous box progress\r\n */\r\n const axisValue = this.getAxisMotionValue(axis);\r\n const { min, max } = this.constraints[axis];\r\n axisValue.set((0,motion_dom__WEBPACK_IMPORTED_MODULE_16__.mixNumber)(min, max, boxProgress[axis]));\r\n });\r\n }\r\n addListeners() {\r\n if (!this.visualElement.current)\r\n return;\r\n elementDragControls.set(this.visualElement, this);\r\n const element = this.visualElement.current;\r\n /**\r\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\r\n */\r\n const stopPointerListener = (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_17__.addPointerEvent)(element, \"pointerdown\", (event) => {\r\n const { drag, dragListener = true } = this.getProps();\r\n drag && dragListener && this.start(event);\r\n });\r\n const measureDragConstraints = () => {\r\n const { dragConstraints } = this.getProps();\r\n if ((0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints) && dragConstraints.current) {\r\n this.constraints = this.resolveRefConstraints();\r\n }\r\n };\r\n const { projection } = this.visualElement;\r\n const stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\r\n if (projection && !projection.layout) {\r\n projection.root && projection.root.updateScroll();\r\n projection.updateLayout();\r\n }\r\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.read(measureDragConstraints);\r\n /**\r\n * Attach a window resize listener to scale the draggable target within its defined\r\n * constraints as the window resizes.\r\n */\r\n const stopResizeListener = (0,_events_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_18__.addDomEvent)(window, \"resize\", () => this.scalePositionWithinConstraints());\r\n /**\r\n * If the element's layout changes, calculate the delta and apply that to\r\n * the drag gesture's origin point.\r\n */\r\n const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", (({ delta, hasLayoutChanged }) => {\r\n if (this.isDragging && hasLayoutChanged) {\r\n (0,_projection_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\r\n const motionValue = this.getAxisMotionValue(axis);\r\n if (!motionValue)\r\n return;\r\n this.originPoint[axis] += delta[axis].translate;\r\n motionValue.set(motionValue.get() + delta[axis].translate);\r\n });\r\n this.visualElement.render();\r\n }\r\n }));\r\n return () => {\r\n stopResizeListener();\r\n stopPointerListener();\r\n stopMeasureLayoutListener();\r\n stopLayoutUpdateListener && stopLayoutUpdateListener();\r\n };\r\n }\r\n getProps() {\r\n const props = this.visualElement.getProps();\r\n const { drag = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = _utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.defaultElastic, dragMomentum = true, } = props;\r\n return {\r\n ...props,\r\n drag,\r\n dragDirectionLock,\r\n dragPropagation,\r\n dragConstraints,\r\n dragElastic,\r\n dragMomentum,\r\n };\r\n }\r\n}\r\nfunction shouldDrag(direction, drag, currentDirection) {\r\n return ((drag === true || drag === direction) &&\r\n (currentDirection === null || currentDirection === direction));\r\n}\r\n/**\r\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\r\n * than the provided threshold, return `null`.\r\n *\r\n * @param offset - The x/y offset from origin.\r\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\r\n */\r\nfunction getCurrentDirection(offset, lockThreshold = 10) {\r\n let direction = null;\r\n if (Math.abs(offset.y) > lockThreshold) {\r\n direction = \"y\";\r\n }\r\n else if (Math.abs(offset.x) > lockThreshold) {\r\n direction = \"x\";\r\n }\r\n return direction;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9WaXN1YWxFbGVtZW50RHJhZ0NvbnRyb2xzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBb0U7QUFDM0I7QUFDd0M7QUFDcEI7QUFDUTtBQUNOO0FBQzZDO0FBQ3RDO0FBQ0w7QUFDRDtBQUNJO0FBQ0U7QUFDVjtBQUMyQjtBQUNwQztBQUNpSTtBQUNwTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLDBFQUFTO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLDBDQUEwQyxJQUFJO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixrQkFBa0I7QUFDbEM7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLG1CQUFtQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyx3RUFBZ0I7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IscUNBQXFDO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyx1REFBVztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVkseUVBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsK0NBQU87QUFDM0IsNEJBQTRCLGFBQWE7QUFDekM7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLCtFQUFVO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLGdCQUFnQiw2Q0FBSztBQUNyQjtBQUNBLFlBQVksZ0dBQW9CO0FBQ2hDLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwrREFBK0Q7QUFDbkY7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFNBQVM7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyx5RUFBUTtBQUM5QztBQUNBLGdCQUFnQixtQkFBbUI7QUFDbkMsOEJBQThCLDJEQUFVO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLCtFQUFnQjtBQUMzQyxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixXQUFXO0FBQzNCO0FBQ0EsZ0JBQWdCLFlBQVk7QUFDNUI7QUFDQSxZQUFZLDZDQUFLO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDZCQUE2QjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGtCQUFrQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixPQUFPO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLHlFQUFnQjtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwrQkFBK0I7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixzRUFBVztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsZ0ZBQXVCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsMkVBQWtCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHlFQUFRO0FBQ3BCO0FBQ0E7QUFDQSw2Q0FBNkMsOEVBQXFCO0FBQ2xFO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQix5REFBeUQ7QUFDekUsNkJBQTZCLHNFQUFXO0FBQ3hDO0FBQ0E7QUFDQSxRQUFRLHdEQUFTO0FBQ2pCLGdCQUFnQixhQUFhO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLCtCQUErQiw4RUFBYztBQUM3QyxrQ0FBa0MsZ0ZBQXVCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2REFBNkQsNkZBQXVCO0FBQ3BGO0FBQ0E7QUFDQSxzQ0FBc0MsNkZBQXVCO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsMEZBQTBGO0FBQzFHO0FBQ0EsbUNBQW1DLHlFQUFRO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxnR0FBb0I7QUFDNUIsK0JBQStCLDJGQUFrQjtBQUNqRDtBQUNBO0FBQ0EsUUFBUSx5RUFBUTtBQUNoQjtBQUNBO0FBQ0EsUUFBUSx5RUFBUTtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLG1CQUFtQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHlFQUFRO0FBQ2hCLG9CQUFvQixPQUFPO0FBQzNCO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixhQUFhO0FBQ2pDO0FBQ0E7QUFDQSx3QkFBd0IsV0FBVztBQUNuQyw0Q0FBNEMsc0RBQVM7QUFDckQ7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHdCQUF3QjtBQUN4QyxnQkFBZ0IsYUFBYTtBQUM3QixhQUFhLHNFQUFXO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCLFFBQVEseUVBQVE7QUFDaEI7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLG1FQUFVLEdBQUcsMEJBQTBCO0FBQzNFO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixvQkFBb0I7QUFDcEM7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEseUVBQVE7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFdBQVc7QUFDL0IsMEJBQTBCLHNEQUFTO0FBQ25DLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsK0VBQWU7QUFDbkQsb0JBQW9CLDRCQUE0QjtBQUNoRDtBQUNBLFNBQVM7QUFDVDtBQUNBLG9CQUFvQixrQkFBa0I7QUFDdEMsZ0JBQWdCLHNFQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixhQUFhO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDZDQUFLO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsdUVBQVc7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzRkFBc0YseUJBQXlCO0FBQy9HO0FBQ0EsZ0JBQWdCLHlFQUFRO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IseUdBQXlHLG1FQUFjLHlCQUF5QjtBQUNoSztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDMEQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9nZXN0dXJlcy9kcmFnL1Zpc3VhbEVsZW1lbnREcmFnQ29udHJvbHMubWpzPzk4NzciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJhbWUsIG1peE51bWJlciwgc2V0RHJhZ0xvY2ssIHBlcmNlbnQgfSBmcm9tICdtb3Rpb24tZG9tJztcclxuaW1wb3J0IHsgaW52YXJpYW50IH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgYW5pbWF0ZU1vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9uL2ludGVyZmFjZXMvbW90aW9uLXZhbHVlLm1qcyc7XHJcbmltcG9ydCB7IGFkZERvbUV2ZW50IH0gZnJvbSAnLi4vLi4vZXZlbnRzL2FkZC1kb20tZXZlbnQubWpzJztcclxuaW1wb3J0IHsgYWRkUG9pbnRlckV2ZW50IH0gZnJvbSAnLi4vLi4vZXZlbnRzL2FkZC1wb2ludGVyLWV2ZW50Lm1qcyc7XHJcbmltcG9ydCB7IGV4dHJhY3RFdmVudEluZm8gfSBmcm9tICcuLi8uLi9ldmVudHMvZXZlbnQtaW5mby5tanMnO1xyXG5pbXBvcnQgeyBjb252ZXJ0Qm94VG9Cb3VuZGluZ0JveCwgY29udmVydEJvdW5kaW5nQm94VG9Cb3ggfSBmcm9tICcuLi8uLi9wcm9qZWN0aW9uL2dlb21ldHJ5L2NvbnZlcnNpb24ubWpzJztcclxuaW1wb3J0IHsgY2FsY0xlbmd0aCB9IGZyb20gJy4uLy4uL3Byb2plY3Rpb24vZ2VvbWV0cnkvZGVsdGEtY2FsYy5tanMnO1xyXG5pbXBvcnQgeyBjcmVhdGVCb3ggfSBmcm9tICcuLi8uLi9wcm9qZWN0aW9uL2dlb21ldHJ5L21vZGVscy5tanMnO1xyXG5pbXBvcnQgeyBlYWNoQXhpcyB9IGZyb20gJy4uLy4uL3Byb2plY3Rpb24vdXRpbHMvZWFjaC1heGlzLm1qcyc7XHJcbmltcG9ydCB7IG1lYXN1cmVQYWdlQm94IH0gZnJvbSAnLi4vLi4vcHJvamVjdGlvbi91dGlscy9tZWFzdXJlLm1qcyc7XHJcbmltcG9ydCB7IGdldENvbnRleHRXaW5kb3cgfSBmcm9tICcuLi8uLi91dGlscy9nZXQtY29udGV4dC13aW5kb3cubWpzJztcclxuaW1wb3J0IHsgaXNSZWZPYmplY3QgfSBmcm9tICcuLi8uLi91dGlscy9pcy1yZWYtb2JqZWN0Lm1qcyc7XHJcbmltcG9ydCB7IGFkZFZhbHVlVG9XaWxsQ2hhbmdlIH0gZnJvbSAnLi4vLi4vdmFsdWUvdXNlLXdpbGwtY2hhbmdlL2FkZC13aWxsLWNoYW5nZS5tanMnO1xyXG5pbXBvcnQgeyBQYW5TZXNzaW9uIH0gZnJvbSAnLi4vcGFuL1BhblNlc3Npb24ubWpzJztcclxuaW1wb3J0IHsgYXBwbHlDb25zdHJhaW50cywgY2FsY1JlbGF0aXZlQ29uc3RyYWludHMsIHJlc29sdmVEcmFnRWxhc3RpYywgcmViYXNlQXhpc0NvbnN0cmFpbnRzLCBjYWxjVmlld3BvcnRDb25zdHJhaW50cywgY2FsY09yaWdpbiwgZGVmYXVsdEVsYXN0aWMgfSBmcm9tICcuL3V0aWxzL2NvbnN0cmFpbnRzLm1qcyc7XHJcblxyXG5jb25zdCBlbGVtZW50RHJhZ0NvbnRyb2xzID0gbmV3IFdlYWtNYXAoKTtcclxuY2xhc3MgVmlzdWFsRWxlbWVudERyYWdDb250cm9scyB7XHJcbiAgICBjb25zdHJ1Y3Rvcih2aXN1YWxFbGVtZW50KSB7XHJcbiAgICAgICAgdGhpcy5vcGVuRHJhZ0xvY2sgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY3VycmVudERpcmVjdGlvbiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5vcmlnaW5Qb2ludCA9IHsgeDogMCwgeTogMCB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBwZXJtaXR0ZWQgYm91bmRhcmllcyBvZiB0cmF2ZWwsIGluIHBpeGVscy5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNvbnN0cmFpbnRzID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5oYXNNdXRhdGVkQ29uc3RyYWludHMgPSBmYWxzZTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgcGVyLWF4aXMgcmVzb2x2ZWQgZWxhc3RpYyB2YWx1ZXMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5lbGFzdGljID0gY3JlYXRlQm94KCk7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGxhdGVzdCBwb2ludGVyIGV2ZW50LiBVc2VkIGFzIGZhbGxiYWNrIHdoZW4gdGhlIGBjYW5jZWxgIGFuZCBgc3RvcGAgZnVuY3Rpb25zIGFyZSBjYWxsZWQgd2l0aG91dCBhcmd1bWVudHMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5sYXRlc3RQb2ludGVyRXZlbnQgPSBudWxsO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBsYXRlc3QgcGFuIGluZm8uIFVzZWQgYXMgZmFsbGJhY2sgd2hlbiB0aGUgYGNhbmNlbGAgYW5kIGBzdG9wYCBmdW5jdGlvbnMgYXJlIGNhbGxlZCB3aXRob3V0IGFyZ3VtZW50cy5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmxhdGVzdFBhbkluZm8gPSBudWxsO1xyXG4gICAgICAgIHRoaXMudmlzdWFsRWxlbWVudCA9IHZpc3VhbEVsZW1lbnQ7XHJcbiAgICB9XHJcbiAgICBzdGFydChvcmlnaW5FdmVudCwgeyBzbmFwVG9DdXJzb3IgPSBmYWxzZSwgZGlzdGFuY2VUaHJlc2hvbGQgfSA9IHt9KSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogRG9uJ3Qgc3RhcnQgZHJhZ2dpbmcgaWYgdGhpcyBjb21wb25lbnQgaXMgZXhpdGluZ1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0IHsgcHJlc2VuY2VDb250ZXh0IH0gPSB0aGlzLnZpc3VhbEVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKHByZXNlbmNlQ29udGV4dCAmJiBwcmVzZW5jZUNvbnRleHQuaXNQcmVzZW50ID09PSBmYWxzZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IG9uU2Vzc2lvblN0YXJ0ID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgZHJhZ1NuYXBUb09yaWdpbiB9ID0gdGhpcy5nZXRQcm9wcygpO1xyXG4gICAgICAgICAgICAvLyBTdG9wIG9yIHBhdXNlIGFueSBhbmltYXRpb25zIG9uIGJvdGggYXhpcyB2YWx1ZXMgaW1tZWRpYXRlbHkuIFRoaXMgYWxsb3dzIHRoZSB1c2VyIHRvIHRocm93IGFuZCBjYXRjaFxyXG4gICAgICAgICAgICAvLyB0aGUgY29tcG9uZW50LlxyXG4gICAgICAgICAgICBkcmFnU25hcFRvT3JpZ2luID8gdGhpcy5wYXVzZUFuaW1hdGlvbigpIDogdGhpcy5zdG9wQW5pbWF0aW9uKCk7XHJcbiAgICAgICAgICAgIGlmIChzbmFwVG9DdXJzb3IpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc25hcFRvQ3Vyc29yKGV4dHJhY3RFdmVudEluZm8oZXZlbnQpLnBvaW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3Qgb25TdGFydCA9IChldmVudCwgaW5mbykgPT4ge1xyXG4gICAgICAgICAgICAvLyBBdHRlbXB0IHRvIGdyYWIgdGhlIGdsb2JhbCBkcmFnIGdlc3R1cmUgbG9jayAtIG1heWJlIG1ha2UgdGhpcyBwYXJ0IG9mIFBhblNlc3Npb25cclxuICAgICAgICAgICAgY29uc3QgeyBkcmFnLCBkcmFnUHJvcGFnYXRpb24sIG9uRHJhZ1N0YXJ0IH0gPSB0aGlzLmdldFByb3BzKCk7XHJcbiAgICAgICAgICAgIGlmIChkcmFnICYmICFkcmFnUHJvcGFnYXRpb24pIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wZW5EcmFnTG9jaylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5EcmFnTG9jaygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuRHJhZ0xvY2sgPSBzZXREcmFnTG9jayhkcmFnKTtcclxuICAgICAgICAgICAgICAgIC8vIElmIHdlIGRvbiAndCBoYXZlIHRoZSBsb2NrLCBkb24ndCBzdGFydCBkcmFnZ2luZ1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm9wZW5EcmFnTG9jaylcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5sYXRlc3RQb2ludGVyRXZlbnQgPSBldmVudDtcclxuICAgICAgICAgICAgdGhpcy5sYXRlc3RQYW5JbmZvID0gaW5mbztcclxuICAgICAgICAgICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy5yZXNvbHZlQ29uc3RyYWludHMoKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMudmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi5pc0FuaW1hdGlvbkJsb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52aXN1YWxFbGVtZW50LnByb2plY3Rpb24udGFyZ2V0ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBSZWNvcmQgZ2VzdHVyZSBvcmlnaW5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGVhY2hBeGlzKChheGlzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudCA9IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpLmdldCgpIHx8IDA7XHJcbiAgICAgICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICAgICAqIElmIHRoZSBNb3Rpb25WYWx1ZSBpcyBhIHBlcmNlbnRhZ2UgdmFsdWUgY29udmVydCB0byBweFxyXG4gICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICBpZiAocGVyY2VudC50ZXN0KGN1cnJlbnQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uIH0gPSB0aGlzLnZpc3VhbEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2plY3Rpb24gJiYgcHJvamVjdGlvbi5sYXlvdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVhc3VyZWRBeGlzID0gcHJvamVjdGlvbi5sYXlvdXQubGF5b3V0Qm94W2F4aXNdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVhc3VyZWRBeGlzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBjYWxjTGVuZ3RoKG1lYXN1cmVkQXhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gbGVuZ3RoICogKHBhcnNlRmxvYXQoY3VycmVudCkgLyAxMDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5Qb2ludFtheGlzXSA9IGN1cnJlbnQ7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAvLyBGaXJlIG9uRHJhZ1N0YXJ0IGV2ZW50XHJcbiAgICAgICAgICAgIGlmIChvbkRyYWdTdGFydCkge1xyXG4gICAgICAgICAgICAgICAgZnJhbWUucG9zdFJlbmRlcigoKSA9PiBvbkRyYWdTdGFydChldmVudCwgaW5mbykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGFkZFZhbHVlVG9XaWxsQ2hhbmdlKHRoaXMudmlzdWFsRWxlbWVudCwgXCJ0cmFuc2Zvcm1cIik7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgYW5pbWF0aW9uU3RhdGUgfSA9IHRoaXMudmlzdWFsRWxlbWVudDtcclxuICAgICAgICAgICAgYW5pbWF0aW9uU3RhdGUgJiYgYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKFwid2hpbGVEcmFnXCIsIHRydWUpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3Qgb25Nb3ZlID0gKGV2ZW50LCBpbmZvKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubGF0ZXN0UG9pbnRlckV2ZW50ID0gZXZlbnQ7XHJcbiAgICAgICAgICAgIHRoaXMubGF0ZXN0UGFuSW5mbyA9IGluZm87XHJcbiAgICAgICAgICAgIGNvbnN0IHsgZHJhZ1Byb3BhZ2F0aW9uLCBkcmFnRGlyZWN0aW9uTG9jaywgb25EaXJlY3Rpb25Mb2NrLCBvbkRyYWcsIH0gPSB0aGlzLmdldFByb3BzKCk7XHJcbiAgICAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBzdWNjZXNzZnVsbHkgcmVjZWl2ZSB0aGUgZ2VzdHVyZSBsb2NrLCBlYXJseSByZXR1cm4uXHJcbiAgICAgICAgICAgIGlmICghZHJhZ1Byb3BhZ2F0aW9uICYmICF0aGlzLm9wZW5EcmFnTG9jaylcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3QgeyBvZmZzZXQgfSA9IGluZm87XHJcbiAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8gZGV0ZWN0IGRyYWcgZGlyZWN0aW9uIGlmIGRpcmVjdGlvbkxvY2sgaXMgdHJ1ZVxyXG4gICAgICAgICAgICBpZiAoZHJhZ0RpcmVjdGlvbkxvY2sgJiYgdGhpcy5jdXJyZW50RGlyZWN0aW9uID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnREaXJlY3Rpb24gPSBnZXRDdXJyZW50RGlyZWN0aW9uKG9mZnNldCk7XHJcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSd2ZSBzdWNjZXNzZnVsbHkgc2V0IGEgZGlyZWN0aW9uLCBub3RpZnkgbGlzdGVuZXJcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnREaXJlY3Rpb24gIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBvbkRpcmVjdGlvbkxvY2sgJiYgb25EaXJlY3Rpb25Mb2NrKHRoaXMuY3VycmVudERpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gVXBkYXRlIGVhY2ggcG9pbnQgd2l0aCB0aGUgbGF0ZXN0IHBvc2l0aW9uXHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQXhpcyhcInhcIiwgaW5mby5wb2ludCwgb2Zmc2V0KTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVBeGlzKFwieVwiLCBpbmZvLnBvaW50LCBvZmZzZXQpO1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogSWRlYWxseSB3ZSB3b3VsZCBsZWF2ZSB0aGUgcmVuZGVyZXIgdG8gZmlyZSBuYXR1cmFsbHkgYXQgdGhlIGVuZCBvZlxyXG4gICAgICAgICAgICAgKiB0aGlzIGZyYW1lIGJ1dCBpZiB0aGUgZWxlbWVudCBpcyBhYm91dCB0byBjaGFuZ2UgbGF5b3V0IGFzIHRoZSByZXN1bHRcclxuICAgICAgICAgICAgICogb2YgYSByZS1yZW5kZXIgd2Ugd2FudCB0byBlbnN1cmUgdGhlIGJyb3dzZXIgY2FuIHJlYWQgdGhlIGxhdGVzdFxyXG4gICAgICAgICAgICAgKiBib3VuZGluZyBib3ggdG8gZW5zdXJlIHRoZSBwb2ludGVyIGFuZCBlbGVtZW50IGRvbid0IGZhbGwgb3V0IG9mIHN5bmMuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICB0aGlzLnZpc3VhbEVsZW1lbnQucmVuZGVyKCk7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBUaGlzIG11c3QgZmlyZSBhZnRlciB0aGUgcmVuZGVyIGNhbGwgYXMgaXQgbWlnaHQgdHJpZ2dlciBhIHN0YXRlXHJcbiAgICAgICAgICAgICAqIGNoYW5nZSB3aGljaCBpdHNlbGYgbWlnaHQgdHJpZ2dlciBhIGxheW91dCB1cGRhdGUuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBvbkRyYWcgJiYgb25EcmFnKGV2ZW50LCBpbmZvKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IG9uU2Vzc2lvbkVuZCA9IChldmVudCwgaW5mbykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxhdGVzdFBvaW50ZXJFdmVudCA9IGV2ZW50O1xyXG4gICAgICAgICAgICB0aGlzLmxhdGVzdFBhbkluZm8gPSBpbmZvO1xyXG4gICAgICAgICAgICB0aGlzLnN0b3AoZXZlbnQsIGluZm8pO1xyXG4gICAgICAgICAgICB0aGlzLmxhdGVzdFBvaW50ZXJFdmVudCA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMubGF0ZXN0UGFuSW5mbyA9IG51bGw7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCByZXN1bWVBbmltYXRpb24gPSAoKSA9PiBlYWNoQXhpcygoYXhpcykgPT4gdGhpcy5nZXRBbmltYXRpb25TdGF0ZShheGlzKSA9PT0gXCJwYXVzZWRcIiAmJlxyXG4gICAgICAgICAgICB0aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShheGlzKS5hbmltYXRpb24/LnBsYXkoKSk7XHJcbiAgICAgICAgY29uc3QgeyBkcmFnU25hcFRvT3JpZ2luIH0gPSB0aGlzLmdldFByb3BzKCk7XHJcbiAgICAgICAgdGhpcy5wYW5TZXNzaW9uID0gbmV3IFBhblNlc3Npb24ob3JpZ2luRXZlbnQsIHtcclxuICAgICAgICAgICAgb25TZXNzaW9uU3RhcnQsXHJcbiAgICAgICAgICAgIG9uU3RhcnQsXHJcbiAgICAgICAgICAgIG9uTW92ZSxcclxuICAgICAgICAgICAgb25TZXNzaW9uRW5kLFxyXG4gICAgICAgICAgICByZXN1bWVBbmltYXRpb24sXHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm1QYWdlUG9pbnQ6IHRoaXMudmlzdWFsRWxlbWVudC5nZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKSxcclxuICAgICAgICAgICAgZHJhZ1NuYXBUb09yaWdpbixcclxuICAgICAgICAgICAgZGlzdGFuY2VUaHJlc2hvbGQsXHJcbiAgICAgICAgICAgIGNvbnRleHRXaW5kb3c6IGdldENvbnRleHRXaW5kb3codGhpcy52aXN1YWxFbGVtZW50KSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHN0b3AoZXZlbnQsIHBhbkluZm8pIHtcclxuICAgICAgICBjb25zdCBmaW5hbEV2ZW50ID0gZXZlbnQgfHwgdGhpcy5sYXRlc3RQb2ludGVyRXZlbnQ7XHJcbiAgICAgICAgY29uc3QgZmluYWxQYW5JbmZvID0gcGFuSW5mbyB8fCB0aGlzLmxhdGVzdFBhbkluZm87XHJcbiAgICAgICAgY29uc3QgaXNEcmFnZ2luZyA9IHRoaXMuaXNEcmFnZ2luZztcclxuICAgICAgICB0aGlzLmNhbmNlbCgpO1xyXG4gICAgICAgIGlmICghaXNEcmFnZ2luZyB8fCAhZmluYWxQYW5JbmZvIHx8ICFmaW5hbEV2ZW50KVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgY29uc3QgeyB2ZWxvY2l0eSB9ID0gZmluYWxQYW5JbmZvO1xyXG4gICAgICAgIHRoaXMuc3RhcnRBbmltYXRpb24odmVsb2NpdHkpO1xyXG4gICAgICAgIGNvbnN0IHsgb25EcmFnRW5kIH0gPSB0aGlzLmdldFByb3BzKCk7XHJcbiAgICAgICAgaWYgKG9uRHJhZ0VuZCkge1xyXG4gICAgICAgICAgICBmcmFtZS5wb3N0UmVuZGVyKCgpID0+IG9uRHJhZ0VuZChmaW5hbEV2ZW50LCBmaW5hbFBhbkluZm8pKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uLCBhbmltYXRpb25TdGF0ZSB9ID0gdGhpcy52aXN1YWxFbGVtZW50O1xyXG4gICAgICAgIGlmIChwcm9qZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIHByb2plY3Rpb24uaXNBbmltYXRpb25CbG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucGFuU2Vzc2lvbiAmJiB0aGlzLnBhblNlc3Npb24uZW5kKCk7XHJcbiAgICAgICAgdGhpcy5wYW5TZXNzaW9uID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGNvbnN0IHsgZHJhZ1Byb3BhZ2F0aW9uIH0gPSB0aGlzLmdldFByb3BzKCk7XHJcbiAgICAgICAgaWYgKCFkcmFnUHJvcGFnYXRpb24gJiYgdGhpcy5vcGVuRHJhZ0xvY2spIHtcclxuICAgICAgICAgICAgdGhpcy5vcGVuRHJhZ0xvY2soKTtcclxuICAgICAgICAgICAgdGhpcy5vcGVuRHJhZ0xvY2sgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhbmltYXRpb25TdGF0ZSAmJiBhbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoXCJ3aGlsZURyYWdcIiwgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgdXBkYXRlQXhpcyhheGlzLCBfcG9pbnQsIG9mZnNldCkge1xyXG4gICAgICAgIGNvbnN0IHsgZHJhZyB9ID0gdGhpcy5nZXRQcm9wcygpO1xyXG4gICAgICAgIC8vIElmIHdlJ3JlIG5vdCBkcmFnZ2luZyB0aGlzIGF4aXMsIGRvIGFuIGVhcmx5IHJldHVybi5cclxuICAgICAgICBpZiAoIW9mZnNldCB8fCAhc2hvdWxkRHJhZyhheGlzLCBkcmFnLCB0aGlzLmN1cnJlbnREaXJlY3Rpb24pKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgY29uc3QgYXhpc1ZhbHVlID0gdGhpcy5nZXRBeGlzTW90aW9uVmFsdWUoYXhpcyk7XHJcbiAgICAgICAgbGV0IG5leHQgPSB0aGlzLm9yaWdpblBvaW50W2F4aXNdICsgb2Zmc2V0W2F4aXNdO1xyXG4gICAgICAgIC8vIEFwcGx5IGNvbnN0cmFpbnRzXHJcbiAgICAgICAgaWYgKHRoaXMuY29uc3RyYWludHMgJiYgdGhpcy5jb25zdHJhaW50c1theGlzXSkge1xyXG4gICAgICAgICAgICBuZXh0ID0gYXBwbHlDb25zdHJhaW50cyhuZXh0LCB0aGlzLmNvbnN0cmFpbnRzW2F4aXNdLCB0aGlzLmVsYXN0aWNbYXhpc10pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBheGlzVmFsdWUuc2V0KG5leHQpO1xyXG4gICAgfVxyXG4gICAgcmVzb2x2ZUNvbnN0cmFpbnRzKCkge1xyXG4gICAgICAgIGNvbnN0IHsgZHJhZ0NvbnN0cmFpbnRzLCBkcmFnRWxhc3RpYyB9ID0gdGhpcy5nZXRQcm9wcygpO1xyXG4gICAgICAgIGNvbnN0IGxheW91dCA9IHRoaXMudmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uICYmXHJcbiAgICAgICAgICAgICF0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi5sYXlvdXRcclxuICAgICAgICAgICAgPyB0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi5tZWFzdXJlKGZhbHNlKVxyXG4gICAgICAgICAgICA6IHRoaXMudmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uPy5sYXlvdXQ7XHJcbiAgICAgICAgY29uc3QgcHJldkNvbnN0cmFpbnRzID0gdGhpcy5jb25zdHJhaW50cztcclxuICAgICAgICBpZiAoZHJhZ0NvbnN0cmFpbnRzICYmIGlzUmVmT2JqZWN0KGRyYWdDb25zdHJhaW50cykpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmNvbnN0cmFpbnRzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN0cmFpbnRzID0gdGhpcy5yZXNvbHZlUmVmQ29uc3RyYWludHMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGRyYWdDb25zdHJhaW50cyAmJiBsYXlvdXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uc3RyYWludHMgPSBjYWxjUmVsYXRpdmVDb25zdHJhaW50cyhsYXlvdXQubGF5b3V0Qm94LCBkcmFnQ29uc3RyYWludHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdHJhaW50cyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZWxhc3RpYyA9IHJlc29sdmVEcmFnRWxhc3RpYyhkcmFnRWxhc3RpYyk7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSWYgd2UncmUgb3V0cHV0dGluZyB0byBleHRlcm5hbCBNb3Rpb25WYWx1ZXMsIHdlIHdhbnQgdG8gcmViYXNlIHRoZSBtZWFzdXJlZCBjb25zdHJhaW50c1xyXG4gICAgICAgICAqIGZyb20gdmlld3BvcnQtcmVsYXRpdmUgdG8gY29tcG9uZW50LXJlbGF0aXZlLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGlmIChwcmV2Q29uc3RyYWludHMgIT09IHRoaXMuY29uc3RyYWludHMgJiZcclxuICAgICAgICAgICAgbGF5b3V0ICYmXHJcbiAgICAgICAgICAgIHRoaXMuY29uc3RyYWludHMgJiZcclxuICAgICAgICAgICAgIXRoaXMuaGFzTXV0YXRlZENvbnN0cmFpbnRzKSB7XHJcbiAgICAgICAgICAgIGVhY2hBeGlzKChheGlzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb25zdHJhaW50cyAhPT0gZmFsc2UgJiZcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShheGlzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3RyYWludHNbYXhpc10gPSByZWJhc2VBeGlzQ29uc3RyYWludHMobGF5b3V0LmxheW91dEJveFtheGlzXSwgdGhpcy5jb25zdHJhaW50c1theGlzXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlc29sdmVSZWZDb25zdHJhaW50cygpIHtcclxuICAgICAgICBjb25zdCB7IGRyYWdDb25zdHJhaW50czogY29uc3RyYWludHMsIG9uTWVhc3VyZURyYWdDb25zdHJhaW50cyB9ID0gdGhpcy5nZXRQcm9wcygpO1xyXG4gICAgICAgIGlmICghY29uc3RyYWludHMgfHwgIWlzUmVmT2JqZWN0KGNvbnN0cmFpbnRzKSlcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzRWxlbWVudCA9IGNvbnN0cmFpbnRzLmN1cnJlbnQ7XHJcbiAgICAgICAgaW52YXJpYW50KGNvbnN0cmFpbnRzRWxlbWVudCAhPT0gbnVsbCwgXCJJZiBgZHJhZ0NvbnN0cmFpbnRzYCBpcyBzZXQgYXMgYSBSZWFjdCByZWYsIHRoYXQgcmVmIG11c3QgYmUgcGFzc2VkIHRvIGFub3RoZXIgY29tcG9uZW50J3MgYHJlZmAgcHJvcC5cIiwgXCJkcmFnLWNvbnN0cmFpbnRzLXJlZlwiKTtcclxuICAgICAgICBjb25zdCB7IHByb2plY3Rpb24gfSA9IHRoaXMudmlzdWFsRWxlbWVudDtcclxuICAgICAgICAvLyBUT0RPXHJcbiAgICAgICAgaWYgKCFwcm9qZWN0aW9uIHx8ICFwcm9qZWN0aW9uLmxheW91dClcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzQm94ID0gbWVhc3VyZVBhZ2VCb3goY29uc3RyYWludHNFbGVtZW50LCBwcm9qZWN0aW9uLnJvb3QsIHRoaXMudmlzdWFsRWxlbWVudC5nZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKSk7XHJcbiAgICAgICAgbGV0IG1lYXN1cmVkQ29uc3RyYWludHMgPSBjYWxjVmlld3BvcnRDb25zdHJhaW50cyhwcm9qZWN0aW9uLmxheW91dC5sYXlvdXRCb3gsIGNvbnN0cmFpbnRzQm94KTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB0aGVyZSdzIGFuIG9uTWVhc3VyZURyYWdDb25zdHJhaW50cyBsaXN0ZW5lciB3ZSBjYWxsIGl0IGFuZFxyXG4gICAgICAgICAqIGlmIGRpZmZlcmVudCBjb25zdHJhaW50cyBhcmUgcmV0dXJuZWQsIHNldCBjb25zdHJhaW50cyB0byB0aGF0XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgaWYgKG9uTWVhc3VyZURyYWdDb25zdHJhaW50cykge1xyXG4gICAgICAgICAgICBjb25zdCB1c2VyQ29uc3RyYWludHMgPSBvbk1lYXN1cmVEcmFnQ29uc3RyYWludHMoY29udmVydEJveFRvQm91bmRpbmdCb3gobWVhc3VyZWRDb25zdHJhaW50cykpO1xyXG4gICAgICAgICAgICB0aGlzLmhhc011dGF0ZWRDb25zdHJhaW50cyA9ICEhdXNlckNvbnN0cmFpbnRzO1xyXG4gICAgICAgICAgICBpZiAodXNlckNvbnN0cmFpbnRzKSB7XHJcbiAgICAgICAgICAgICAgICBtZWFzdXJlZENvbnN0cmFpbnRzID0gY29udmVydEJvdW5kaW5nQm94VG9Cb3godXNlckNvbnN0cmFpbnRzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbWVhc3VyZWRDb25zdHJhaW50cztcclxuICAgIH1cclxuICAgIHN0YXJ0QW5pbWF0aW9uKHZlbG9jaXR5KSB7XHJcbiAgICAgICAgY29uc3QgeyBkcmFnLCBkcmFnTW9tZW50dW0sIGRyYWdFbGFzdGljLCBkcmFnVHJhbnNpdGlvbiwgZHJhZ1NuYXBUb09yaWdpbiwgb25EcmFnVHJhbnNpdGlvbkVuZCwgfSA9IHRoaXMuZ2V0UHJvcHMoKTtcclxuICAgICAgICBjb25zdCBjb25zdHJhaW50cyA9IHRoaXMuY29uc3RyYWludHMgfHwge307XHJcbiAgICAgICAgY29uc3QgbW9tZW50dW1BbmltYXRpb25zID0gZWFjaEF4aXMoKGF4aXMpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFzaG91bGREcmFnKGF4aXMsIGRyYWcsIHRoaXMuY3VycmVudERpcmVjdGlvbikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgdHJhbnNpdGlvbiA9IChjb25zdHJhaW50cyAmJiBjb25zdHJhaW50c1theGlzXSkgfHwge307XHJcbiAgICAgICAgICAgIGlmIChkcmFnU25hcFRvT3JpZ2luKVxyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbiA9IHsgbWluOiAwLCBtYXg6IDAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIE92ZXJkYW1wIHRoZSBib3VuZGFyeSBzcHJpbmcgaWYgYGRyYWdFbGFzdGljYCBpcyBkaXNhYmxlZC4gVGhlcmUncyBzdGlsbCBhIGZyYW1lXHJcbiAgICAgICAgICAgICAqIG9mIHNwcmluZyBhbmltYXRpb25zIHNvIHdlIHNob3VsZCBsb29rIGludG8gYWRkaW5nIGEgZGlzYWJsZSBzcHJpbmcgb3B0aW9uIHRvIGBpbmVydGlhYC5cclxuICAgICAgICAgICAgICogV2UgY291bGQgZG8gc29tZXRoaW5nIGhlcmUgd2hlcmUgd2UgYWZmZWN0IHRoZSBgYm91bmNlU3RpZmZuZXNzYCBhbmQgYGJvdW5jZURhbXBpbmdgXHJcbiAgICAgICAgICAgICAqIHVzaW5nIHRoZSB2YWx1ZSBvZiBgZHJhZ0VsYXN0aWNgLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgY29uc3QgYm91bmNlU3RpZmZuZXNzID0gZHJhZ0VsYXN0aWMgPyAyMDAgOiAxMDAwMDAwO1xyXG4gICAgICAgICAgICBjb25zdCBib3VuY2VEYW1waW5nID0gZHJhZ0VsYXN0aWMgPyA0MCA6IDEwMDAwMDAwO1xyXG4gICAgICAgICAgICBjb25zdCBpbmVydGlhID0ge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJpbmVydGlhXCIsXHJcbiAgICAgICAgICAgICAgICB2ZWxvY2l0eTogZHJhZ01vbWVudHVtID8gdmVsb2NpdHlbYXhpc10gOiAwLFxyXG4gICAgICAgICAgICAgICAgYm91bmNlU3RpZmZuZXNzLFxyXG4gICAgICAgICAgICAgICAgYm91bmNlRGFtcGluZyxcclxuICAgICAgICAgICAgICAgIHRpbWVDb25zdGFudDogNzUwLFxyXG4gICAgICAgICAgICAgICAgcmVzdERlbHRhOiAxLFxyXG4gICAgICAgICAgICAgICAgcmVzdFNwZWVkOiAxMCxcclxuICAgICAgICAgICAgICAgIC4uLmRyYWdUcmFuc2l0aW9uLFxyXG4gICAgICAgICAgICAgICAgLi4udHJhbnNpdGlvbixcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLy8gSWYgd2UncmUgbm90IGFuaW1hdGluZyBvbiBhbiBleHRlcm5hbGx5LXByb3ZpZGVkIGBNb3Rpb25WYWx1ZWAgd2UgY2FuIHVzZSB0aGVcclxuICAgICAgICAgICAgLy8gY29tcG9uZW50J3MgYW5pbWF0aW9uIGNvbnRyb2xzIHdoaWNoIHdpbGwgaGFuZGxlIGludGVyYWN0aW9ucyB3aXRoIHdoaWxlSG92ZXIgKGV0YyksXHJcbiAgICAgICAgICAgIC8vIG90aGVyd2lzZSB3ZSBqdXN0IGhhdmUgdG8gYW5pbWF0ZSB0aGUgYE1vdGlvblZhbHVlYCBpdHNlbGYuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YXJ0QXhpc1ZhbHVlQW5pbWF0aW9uKGF4aXMsIGluZXJ0aWEpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIFJ1biBhbGwgYW5pbWF0aW9ucyBhbmQgdGhlbiByZXNvbHZlIHRoZSBuZXcgZHJhZyBjb25zdHJhaW50cy5cclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwobW9tZW50dW1BbmltYXRpb25zKS50aGVuKG9uRHJhZ1RyYW5zaXRpb25FbmQpO1xyXG4gICAgfVxyXG4gICAgc3RhcnRBeGlzVmFsdWVBbmltYXRpb24oYXhpcywgdHJhbnNpdGlvbikge1xyXG4gICAgICAgIGNvbnN0IGF4aXNWYWx1ZSA9IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpO1xyXG4gICAgICAgIGFkZFZhbHVlVG9XaWxsQ2hhbmdlKHRoaXMudmlzdWFsRWxlbWVudCwgYXhpcyk7XHJcbiAgICAgICAgcmV0dXJuIGF4aXNWYWx1ZS5zdGFydChhbmltYXRlTW90aW9uVmFsdWUoYXhpcywgYXhpc1ZhbHVlLCAwLCB0cmFuc2l0aW9uLCB0aGlzLnZpc3VhbEVsZW1lbnQsIGZhbHNlKSk7XHJcbiAgICB9XHJcbiAgICBzdG9wQW5pbWF0aW9uKCkge1xyXG4gICAgICAgIGVhY2hBeGlzKChheGlzKSA9PiB0aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShheGlzKS5zdG9wKCkpO1xyXG4gICAgfVxyXG4gICAgcGF1c2VBbmltYXRpb24oKSB7XHJcbiAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpLmFuaW1hdGlvbj8ucGF1c2UoKSk7XHJcbiAgICB9XHJcbiAgICBnZXRBbmltYXRpb25TdGF0ZShheGlzKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpLmFuaW1hdGlvbj8uc3RhdGU7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIERyYWcgd29ya3MgZGlmZmVyZW50bHkgZGVwZW5kaW5nIG9uIHdoaWNoIHByb3BzIGFyZSBwcm92aWRlZC5cclxuICAgICAqXHJcbiAgICAgKiAtIElmIF9kcmFnWCBhbmQgX2RyYWdZIGFyZSBwcm92aWRlZCwgd2Ugb3V0cHV0IHRoZSBnZXN0dXJlIGRlbHRhIGRpcmVjdGx5IHRvIHRob3NlIG1vdGlvbiB2YWx1ZXMuXHJcbiAgICAgKiAtIE90aGVyd2lzZSwgd2UgYXBwbHkgdGhlIGRlbHRhIHRvIHRoZSB4L3kgbW90aW9uIHZhbHVlcy5cclxuICAgICAqL1xyXG4gICAgZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpIHtcclxuICAgICAgICBjb25zdCBkcmFnS2V5ID0gYF9kcmFnJHtheGlzLnRvVXBwZXJDYXNlKCl9YDtcclxuICAgICAgICBjb25zdCBwcm9wcyA9IHRoaXMudmlzdWFsRWxlbWVudC5nZXRQcm9wcygpO1xyXG4gICAgICAgIGNvbnN0IGV4dGVybmFsTW90aW9uVmFsdWUgPSBwcm9wc1tkcmFnS2V5XTtcclxuICAgICAgICByZXR1cm4gZXh0ZXJuYWxNb3Rpb25WYWx1ZVxyXG4gICAgICAgICAgICA/IGV4dGVybmFsTW90aW9uVmFsdWVcclxuICAgICAgICAgICAgOiB0aGlzLnZpc3VhbEVsZW1lbnQuZ2V0VmFsdWUoYXhpcywgKHByb3BzLmluaXRpYWxcclxuICAgICAgICAgICAgICAgID8gcHJvcHMuaW5pdGlhbFtheGlzXVxyXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQpIHx8IDApO1xyXG4gICAgfVxyXG4gICAgc25hcFRvQ3Vyc29yKHBvaW50KSB7XHJcbiAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBkcmFnIH0gPSB0aGlzLmdldFByb3BzKCk7XHJcbiAgICAgICAgICAgIC8vIElmIHdlJ3JlIG5vdCBkcmFnZ2luZyB0aGlzIGF4aXMsIGRvIGFuIGVhcmx5IHJldHVybi5cclxuICAgICAgICAgICAgaWYgKCFzaG91bGREcmFnKGF4aXMsIGRyYWcsIHRoaXMuY3VycmVudERpcmVjdGlvbikpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IHsgcHJvamVjdGlvbiB9ID0gdGhpcy52aXN1YWxFbGVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCBheGlzVmFsdWUgPSB0aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShheGlzKTtcclxuICAgICAgICAgICAgaWYgKHByb2plY3Rpb24gJiYgcHJvamVjdGlvbi5sYXlvdXQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgbWluLCBtYXggfSA9IHByb2plY3Rpb24ubGF5b3V0LmxheW91dEJveFtheGlzXTtcclxuICAgICAgICAgICAgICAgIGF4aXNWYWx1ZS5zZXQocG9pbnRbYXhpc10gLSBtaXhOdW1iZXIobWluLCBtYXgsIDAuNSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFdoZW4gdGhlIHZpZXdwb3J0IHJlc2l6ZXMgd2Ugd2FudCB0byBjaGVjayBpZiB0aGUgbWVhc3VyZWQgY29uc3RyYWludHNcclxuICAgICAqIGhhdmUgY2hhbmdlZCBhbmQsIGlmIHNvLCByZXBvc2l0aW9uIHRoZSBlbGVtZW50IHdpdGhpbiB0aG9zZSBuZXcgY29uc3RyYWludHNcclxuICAgICAqIHJlbGF0aXZlIHRvIHdoZXJlIGl0IHdhcyBiZWZvcmUgdGhlIHJlc2l6ZS5cclxuICAgICAqL1xyXG4gICAgc2NhbGVQb3NpdGlvbldpdGhpbkNvbnN0cmFpbnRzKCkge1xyXG4gICAgICAgIGlmICghdGhpcy52aXN1YWxFbGVtZW50LmN1cnJlbnQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBjb25zdCB7IGRyYWcsIGRyYWdDb25zdHJhaW50cyB9ID0gdGhpcy5nZXRQcm9wcygpO1xyXG4gICAgICAgIGNvbnN0IHsgcHJvamVjdGlvbiB9ID0gdGhpcy52aXN1YWxFbGVtZW50O1xyXG4gICAgICAgIGlmICghaXNSZWZPYmplY3QoZHJhZ0NvbnN0cmFpbnRzKSB8fCAhcHJvamVjdGlvbiB8fCAhdGhpcy5jb25zdHJhaW50cylcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFN0b3AgY3VycmVudCBhbmltYXRpb25zIGFzIHRoZXJlIGNhbiBiZSB2aXN1YWwgZ2xpdGNoaW5nIGlmIHdlIHRyeSB0byBkb1xyXG4gICAgICAgICAqIHRoaXMgbWlkLWFuaW1hdGlvblxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFJlY29yZCB0aGUgcmVsYXRpdmUgcG9zaXRpb24gb2YgdGhlIGRyYWdnZWQgZWxlbWVudCByZWxhdGl2ZSB0byB0aGVcclxuICAgICAgICAgKiBjb25zdHJhaW50cyBib3ggYW5kIHNhdmUgYXMgYSBwcm9ncmVzcyB2YWx1ZS5cclxuICAgICAgICAgKi9cclxuICAgICAgICBjb25zdCBib3hQcm9ncmVzcyA9IHsgeDogMCwgeTogMCB9O1xyXG4gICAgICAgIGVhY2hBeGlzKChheGlzKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGF4aXNWYWx1ZSA9IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpO1xyXG4gICAgICAgICAgICBpZiAoYXhpc1ZhbHVlICYmIHRoaXMuY29uc3RyYWludHMgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsYXRlc3QgPSBheGlzVmFsdWUuZ2V0KCk7XHJcbiAgICAgICAgICAgICAgICBib3hQcm9ncmVzc1theGlzXSA9IGNhbGNPcmlnaW4oeyBtaW46IGxhdGVzdCwgbWF4OiBsYXRlc3QgfSwgdGhpcy5jb25zdHJhaW50c1theGlzXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBVcGRhdGUgdGhlIGxheW91dCBvZiB0aGlzIGVsZW1lbnQgYW5kIHJlc29sdmUgdGhlIGxhdGVzdCBkcmFnIGNvbnN0cmFpbnRzXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY29uc3QgeyB0cmFuc2Zvcm1UZW1wbGF0ZSB9ID0gdGhpcy52aXN1YWxFbGVtZW50LmdldFByb3BzKCk7XHJcbiAgICAgICAgdGhpcy52aXN1YWxFbGVtZW50LmN1cnJlbnQuc3R5bGUudHJhbnNmb3JtID0gdHJhbnNmb3JtVGVtcGxhdGVcclxuICAgICAgICAgICAgPyB0cmFuc2Zvcm1UZW1wbGF0ZSh7fSwgXCJcIilcclxuICAgICAgICAgICAgOiBcIm5vbmVcIjtcclxuICAgICAgICBwcm9qZWN0aW9uLnJvb3QgJiYgcHJvamVjdGlvbi5yb290LnVwZGF0ZVNjcm9sbCgpO1xyXG4gICAgICAgIHByb2plY3Rpb24udXBkYXRlTGF5b3V0KCk7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlQ29uc3RyYWludHMoKTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBGb3IgZWFjaCBheGlzLCBjYWxjdWxhdGUgdGhlIGN1cnJlbnQgcHJvZ3Jlc3Mgb2YgdGhlIGxheW91dCBheGlzXHJcbiAgICAgICAgICogd2l0aGluIHRoZSBuZXcgY29uc3RyYWludHMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFzaG91bGREcmFnKGF4aXMsIGRyYWcsIG51bGwpKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogQ2FsY3VsYXRlIGEgbmV3IHRyYW5zZm9ybSBiYXNlZCBvbiB0aGUgcHJldmlvdXMgYm94IHByb2dyZXNzXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBjb25zdCBheGlzVmFsdWUgPSB0aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShheGlzKTtcclxuICAgICAgICAgICAgY29uc3QgeyBtaW4sIG1heCB9ID0gdGhpcy5jb25zdHJhaW50c1theGlzXTtcclxuICAgICAgICAgICAgYXhpc1ZhbHVlLnNldChtaXhOdW1iZXIobWluLCBtYXgsIGJveFByb2dyZXNzW2F4aXNdKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBhZGRMaXN0ZW5lcnMoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnZpc3VhbEVsZW1lbnQuY3VycmVudClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGVsZW1lbnREcmFnQ29udHJvbHMuc2V0KHRoaXMudmlzdWFsRWxlbWVudCwgdGhpcyk7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudmlzdWFsRWxlbWVudC5jdXJyZW50O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEF0dGFjaCBhIHBvaW50ZXJkb3duIGV2ZW50IGxpc3RlbmVyIG9uIHRoaXMgRE9NIGVsZW1lbnQgdG8gaW5pdGlhdGUgZHJhZyB0cmFja2luZy5cclxuICAgICAgICAgKi9cclxuICAgICAgICBjb25zdCBzdG9wUG9pbnRlckxpc3RlbmVyID0gYWRkUG9pbnRlckV2ZW50KGVsZW1lbnQsIFwicG9pbnRlcmRvd25cIiwgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgZHJhZywgZHJhZ0xpc3RlbmVyID0gdHJ1ZSB9ID0gdGhpcy5nZXRQcm9wcygpO1xyXG4gICAgICAgICAgICBkcmFnICYmIGRyYWdMaXN0ZW5lciAmJiB0aGlzLnN0YXJ0KGV2ZW50KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBtZWFzdXJlRHJhZ0NvbnN0cmFpbnRzID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IGRyYWdDb25zdHJhaW50cyB9ID0gdGhpcy5nZXRQcm9wcygpO1xyXG4gICAgICAgICAgICBpZiAoaXNSZWZPYmplY3QoZHJhZ0NvbnN0cmFpbnRzKSAmJiBkcmFnQ29uc3RyYWludHMuY3VycmVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdHJhaW50cyA9IHRoaXMucmVzb2x2ZVJlZkNvbnN0cmFpbnRzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IHsgcHJvamVjdGlvbiB9ID0gdGhpcy52aXN1YWxFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IHN0b3BNZWFzdXJlTGF5b3V0TGlzdGVuZXIgPSBwcm9qZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoXCJtZWFzdXJlXCIsIG1lYXN1cmVEcmFnQ29uc3RyYWludHMpO1xyXG4gICAgICAgIGlmIChwcm9qZWN0aW9uICYmICFwcm9qZWN0aW9uLmxheW91dCkge1xyXG4gICAgICAgICAgICBwcm9qZWN0aW9uLnJvb3QgJiYgcHJvamVjdGlvbi5yb290LnVwZGF0ZVNjcm9sbCgpO1xyXG4gICAgICAgICAgICBwcm9qZWN0aW9uLnVwZGF0ZUxheW91dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmcmFtZS5yZWFkKG1lYXN1cmVEcmFnQ29uc3RyYWludHMpO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEF0dGFjaCBhIHdpbmRvdyByZXNpemUgbGlzdGVuZXIgdG8gc2NhbGUgdGhlIGRyYWdnYWJsZSB0YXJnZXQgd2l0aGluIGl0cyBkZWZpbmVkXHJcbiAgICAgICAgICogY29uc3RyYWludHMgYXMgdGhlIHdpbmRvdyByZXNpemVzLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0IHN0b3BSZXNpemVMaXN0ZW5lciA9IGFkZERvbUV2ZW50KHdpbmRvdywgXCJyZXNpemVcIiwgKCkgPT4gdGhpcy5zY2FsZVBvc2l0aW9uV2l0aGluQ29uc3RyYWludHMoKSk7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSWYgdGhlIGVsZW1lbnQncyBsYXlvdXQgY2hhbmdlcywgY2FsY3VsYXRlIHRoZSBkZWx0YSBhbmQgYXBwbHkgdGhhdCB0b1xyXG4gICAgICAgICAqIHRoZSBkcmFnIGdlc3R1cmUncyBvcmlnaW4gcG9pbnQuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY29uc3Qgc3RvcExheW91dFVwZGF0ZUxpc3RlbmVyID0gcHJvamVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFwiZGlkVXBkYXRlXCIsICgoeyBkZWx0YSwgaGFzTGF5b3V0Q2hhbmdlZCB9KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRHJhZ2dpbmcgJiYgaGFzTGF5b3V0Q2hhbmdlZCkge1xyXG4gICAgICAgICAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb3Rpb25WYWx1ZSA9IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghbW90aW9uVmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9yaWdpblBvaW50W2F4aXNdICs9IGRlbHRhW2F4aXNdLnRyYW5zbGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICBtb3Rpb25WYWx1ZS5zZXQobW90aW9uVmFsdWUuZ2V0KCkgKyBkZWx0YVtheGlzXS50cmFuc2xhdGUpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpc3VhbEVsZW1lbnQucmVuZGVyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICAgICAgc3RvcFJlc2l6ZUxpc3RlbmVyKCk7XHJcbiAgICAgICAgICAgIHN0b3BQb2ludGVyTGlzdGVuZXIoKTtcclxuICAgICAgICAgICAgc3RvcE1lYXN1cmVMYXlvdXRMaXN0ZW5lcigpO1xyXG4gICAgICAgICAgICBzdG9wTGF5b3V0VXBkYXRlTGlzdGVuZXIgJiYgc3RvcExheW91dFVwZGF0ZUxpc3RlbmVyKCk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIGdldFByb3BzKCkge1xyXG4gICAgICAgIGNvbnN0IHByb3BzID0gdGhpcy52aXN1YWxFbGVtZW50LmdldFByb3BzKCk7XHJcbiAgICAgICAgY29uc3QgeyBkcmFnID0gZmFsc2UsIGRyYWdEaXJlY3Rpb25Mb2NrID0gZmFsc2UsIGRyYWdQcm9wYWdhdGlvbiA9IGZhbHNlLCBkcmFnQ29uc3RyYWludHMgPSBmYWxzZSwgZHJhZ0VsYXN0aWMgPSBkZWZhdWx0RWxhc3RpYywgZHJhZ01vbWVudHVtID0gdHJ1ZSwgfSA9IHByb3BzO1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgICBkcmFnLFxyXG4gICAgICAgICAgICBkcmFnRGlyZWN0aW9uTG9jayxcclxuICAgICAgICAgICAgZHJhZ1Byb3BhZ2F0aW9uLFxyXG4gICAgICAgICAgICBkcmFnQ29uc3RyYWludHMsXHJcbiAgICAgICAgICAgIGRyYWdFbGFzdGljLFxyXG4gICAgICAgICAgICBkcmFnTW9tZW50dW0sXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBzaG91bGREcmFnKGRpcmVjdGlvbiwgZHJhZywgY3VycmVudERpcmVjdGlvbikge1xyXG4gICAgcmV0dXJuICgoZHJhZyA9PT0gdHJ1ZSB8fCBkcmFnID09PSBkaXJlY3Rpb24pICYmXHJcbiAgICAgICAgKGN1cnJlbnREaXJlY3Rpb24gPT09IG51bGwgfHwgY3VycmVudERpcmVjdGlvbiA9PT0gZGlyZWN0aW9uKSk7XHJcbn1cclxuLyoqXHJcbiAqIEJhc2VkIG9uIGFuIHgveSBvZmZzZXQgZGV0ZXJtaW5lIHRoZSBjdXJyZW50IGRyYWcgZGlyZWN0aW9uLiBJZiBib3RoIGF4aXMnIG9mZnNldHMgYXJlIGxvd2VyXHJcbiAqIHRoYW4gdGhlIHByb3ZpZGVkIHRocmVzaG9sZCwgcmV0dXJuIGBudWxsYC5cclxuICpcclxuICogQHBhcmFtIG9mZnNldCAtIFRoZSB4L3kgb2Zmc2V0IGZyb20gb3JpZ2luLlxyXG4gKiBAcGFyYW0gbG9ja1RocmVzaG9sZCAtIChPcHRpb25hbCkgLSB0aGUgbWluaW11bSBhYnNvbHV0ZSBvZmZzZXQgYmVmb3JlIHdlIGNhbiBkZXRlcm1pbmUgYSBkcmFnIGRpcmVjdGlvbi5cclxuICovXHJcbmZ1bmN0aW9uIGdldEN1cnJlbnREaXJlY3Rpb24ob2Zmc2V0LCBsb2NrVGhyZXNob2xkID0gMTApIHtcclxuICAgIGxldCBkaXJlY3Rpb24gPSBudWxsO1xyXG4gICAgaWYgKE1hdGguYWJzKG9mZnNldC55KSA+IGxvY2tUaHJlc2hvbGQpIHtcclxuICAgICAgICBkaXJlY3Rpb24gPSBcInlcIjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKE1hdGguYWJzKG9mZnNldC54KSA+IGxvY2tUaHJlc2hvbGQpIHtcclxuICAgICAgICBkaXJlY3Rpb24gPSBcInhcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBkaXJlY3Rpb247XHJcbn1cclxuXHJcbmV4cG9ydCB7IFZpc3VhbEVsZW1lbnREcmFnQ29udHJvbHMsIGVsZW1lbnREcmFnQ29udHJvbHMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/index.mjs":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/gestures/drag/index.mjs ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DragGesture: function() { return /* binding */ DragGesture; }\n/* harmony export */ });\n/* harmony import */ var _motion_features_Feature_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../motion/features/Feature.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/Feature.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _VisualElementDragControls_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VisualElementDragControls.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs\");\n\r\n\r\n\r\n\r\nclass DragGesture extends _motion_features_Feature_mjs__WEBPACK_IMPORTED_MODULE_0__.Feature {\r\n constructor(node) {\r\n super(node);\r\n this.removeGroupControls = motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop;\r\n this.removeListeners = motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop;\r\n this.controls = new _VisualElementDragControls_mjs__WEBPACK_IMPORTED_MODULE_2__.VisualElementDragControls(node);\r\n }\r\n mount() {\r\n // If we've been provided a DragControls for manual control over the drag gesture,\r\n // subscribe this component to it on mount.\r\n const { dragControls } = this.node.getProps();\r\n if (dragControls) {\r\n this.removeGroupControls = dragControls.subscribe(this.controls);\r\n }\r\n this.removeListeners = this.controls.addListeners() || motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop;\r\n }\r\n unmount() {\r\n this.removeGroupControls();\r\n this.removeListeners();\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE0RDtBQUN4QjtBQUN3QztBQUM1RTtBQUNBLDBCQUEwQixpRUFBTztBQUNqQztBQUNBO0FBQ0EsbUNBQW1DLDhDQUFJO0FBQ3ZDLCtCQUErQiw4Q0FBSTtBQUNuQyw0QkFBNEIscUZBQXlCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGVBQWU7QUFDL0I7QUFDQTtBQUNBO0FBQ0EsK0RBQStELDhDQUFJO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3VCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9pbmRleC5tanM/OTNiZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vLi4vbW90aW9uL2ZlYXR1cmVzL0ZlYXR1cmUubWpzJztcclxuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XHJcbmltcG9ydCB7IFZpc3VhbEVsZW1lbnREcmFnQ29udHJvbHMgfSBmcm9tICcuL1Zpc3VhbEVsZW1lbnREcmFnQ29udHJvbHMubWpzJztcclxuXHJcbmNsYXNzIERyYWdHZXN0dXJlIGV4dGVuZHMgRmVhdHVyZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihub2RlKSB7XHJcbiAgICAgICAgc3VwZXIobm9kZSk7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVHcm91cENvbnRyb2xzID0gbm9vcDtcclxuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycyA9IG5vb3A7XHJcbiAgICAgICAgdGhpcy5jb250cm9scyA9IG5ldyBWaXN1YWxFbGVtZW50RHJhZ0NvbnRyb2xzKG5vZGUpO1xyXG4gICAgfVxyXG4gICAgbW91bnQoKSB7XHJcbiAgICAgICAgLy8gSWYgd2UndmUgYmVlbiBwcm92aWRlZCBhIERyYWdDb250cm9scyBmb3IgbWFudWFsIGNvbnRyb2wgb3ZlciB0aGUgZHJhZyBnZXN0dXJlLFxyXG4gICAgICAgIC8vIHN1YnNjcmliZSB0aGlzIGNvbXBvbmVudCB0byBpdCBvbiBtb3VudC5cclxuICAgICAgICBjb25zdCB7IGRyYWdDb250cm9scyB9ID0gdGhpcy5ub2RlLmdldFByb3BzKCk7XHJcbiAgICAgICAgaWYgKGRyYWdDb250cm9scykge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUdyb3VwQ29udHJvbHMgPSBkcmFnQ29udHJvbHMuc3Vic2NyaWJlKHRoaXMuY29udHJvbHMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycyA9IHRoaXMuY29udHJvbHMuYWRkTGlzdGVuZXJzKCkgfHwgbm9vcDtcclxuICAgIH1cclxuICAgIHVubW91bnQoKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVHcm91cENvbnRyb2xzKCk7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnMoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHsgRHJhZ0dlc3R1cmUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs":
|
||
/*!********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs ***!
|
||
\********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyConstraints: function() { return /* binding */ applyConstraints; },\n/* harmony export */ calcOrigin: function() { return /* binding */ calcOrigin; },\n/* harmony export */ calcRelativeAxisConstraints: function() { return /* binding */ calcRelativeAxisConstraints; },\n/* harmony export */ calcRelativeConstraints: function() { return /* binding */ calcRelativeConstraints; },\n/* harmony export */ calcViewportAxisConstraints: function() { return /* binding */ calcViewportAxisConstraints; },\n/* harmony export */ calcViewportConstraints: function() { return /* binding */ calcViewportConstraints; },\n/* harmony export */ defaultElastic: function() { return /* binding */ defaultElastic; },\n/* harmony export */ rebaseAxisConstraints: function() { return /* binding */ rebaseAxisConstraints; },\n/* harmony export */ resolveAxisElastic: function() { return /* binding */ resolveAxisElastic; },\n/* harmony export */ resolveDragElastic: function() { return /* binding */ resolveDragElastic; },\n/* harmony export */ resolvePointElastic: function() { return /* binding */ resolvePointElastic; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _projection_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../projection/geometry/delta-calc.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs\");\n\r\n\r\n\r\n\r\n/**\r\n * Apply constraints to a point. These constraints are both physical along an\r\n * axis, and an elastic factor that determines how much to constrain the point\r\n * by if it does lie outside the defined parameters.\r\n */\r\nfunction applyConstraints(point, { min, max }, elastic) {\r\n if (min !== undefined && point < min) {\r\n // If we have a min point defined, and this is outside of that, constrain\r\n point = elastic\r\n ? (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(min, point, elastic.min)\r\n : Math.max(point, min);\r\n }\r\n else if (max !== undefined && point > max) {\r\n // If we have a max point defined, and this is outside of that, constrain\r\n point = elastic\r\n ? (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(max, point, elastic.max)\r\n : Math.min(point, max);\r\n }\r\n return point;\r\n}\r\n/**\r\n * Calculate constraints in terms of the viewport when defined relatively to the\r\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\r\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\r\n */\r\nfunction calcRelativeAxisConstraints(axis, min, max) {\r\n return {\r\n min: min !== undefined ? axis.min + min : undefined,\r\n max: max !== undefined\r\n ? axis.max + max - (axis.max - axis.min)\r\n : undefined,\r\n };\r\n}\r\n/**\r\n * Calculate constraints in terms of the viewport when\r\n * defined relatively to the measured bounding box.\r\n */\r\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\r\n return {\r\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\r\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\r\n };\r\n}\r\n/**\r\n * Calculate viewport constraints when defined as another viewport-relative axis\r\n */\r\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\r\n let min = constraintsAxis.min - layoutAxis.min;\r\n let max = constraintsAxis.max - layoutAxis.max;\r\n // If the constraints axis is actually smaller than the layout axis then we can\r\n // flip the constraints\r\n if (constraintsAxis.max - constraintsAxis.min <\r\n layoutAxis.max - layoutAxis.min) {\r\n [min, max] = [max, min];\r\n }\r\n return { min, max };\r\n}\r\n/**\r\n * Calculate viewport constraints when defined as another viewport-relative box\r\n */\r\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\r\n return {\r\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\r\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\r\n };\r\n}\r\n/**\r\n * Calculate a transform origin relative to the source axis, between 0-1, that results\r\n * in an asthetically pleasing scale/transform needed to project from source to target.\r\n */\r\nfunction calcOrigin(source, target) {\r\n let origin = 0.5;\r\n const sourceLength = (0,_projection_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_1__.calcLength)(source);\r\n const targetLength = (0,_projection_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_1__.calcLength)(target);\r\n if (targetLength > sourceLength) {\r\n origin = (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.progress)(target.min, target.max - sourceLength, source.min);\r\n }\r\n else if (sourceLength > targetLength) {\r\n origin = (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.progress)(source.min, source.max - targetLength, target.min);\r\n }\r\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.clamp)(0, 1, origin);\r\n}\r\n/**\r\n * Rebase the calculated viewport constraints relative to the layout.min point.\r\n */\r\nfunction rebaseAxisConstraints(layout, constraints) {\r\n const relativeConstraints = {};\r\n if (constraints.min !== undefined) {\r\n relativeConstraints.min = constraints.min - layout.min;\r\n }\r\n if (constraints.max !== undefined) {\r\n relativeConstraints.max = constraints.max - layout.min;\r\n }\r\n return relativeConstraints;\r\n}\r\nconst defaultElastic = 0.35;\r\n/**\r\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\r\n */\r\nfunction resolveDragElastic(dragElastic = defaultElastic) {\r\n if (dragElastic === false) {\r\n dragElastic = 0;\r\n }\r\n else if (dragElastic === true) {\r\n dragElastic = defaultElastic;\r\n }\r\n return {\r\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\r\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\r\n };\r\n}\r\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\r\n return {\r\n min: resolvePointElastic(dragElastic, minLabel),\r\n max: resolvePointElastic(dragElastic, maxLabel),\r\n };\r\n}\r\nfunction resolvePointElastic(dragElastic, label) {\r\n return typeof dragElastic === \"number\"\r\n ? dragElastic\r\n : dragElastic[label] || 0;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy91dGlscy9jb25zdHJhaW50cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXVDO0FBQ1E7QUFDMEI7QUFDekU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLFVBQVU7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsY0FBYyxxREFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxxREFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsMEJBQTBCO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsK0VBQVU7QUFDbkMseUJBQXlCLCtFQUFVO0FBQ25DO0FBQ0EsaUJBQWlCLHNEQUFRO0FBQ3pCO0FBQ0E7QUFDQSxpQkFBaUIsc0RBQVE7QUFDekI7QUFDQSxXQUFXLG1EQUFLO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUN3UCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvdXRpbHMvY29uc3RyYWludHMubWpzP2Q2MDQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWl4TnVtYmVyIH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcbmltcG9ydCB7IHByb2dyZXNzLCBjbGFtcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XHJcbmltcG9ydCB7IGNhbGNMZW5ndGggfSBmcm9tICcuLi8uLi8uLi9wcm9qZWN0aW9uL2dlb21ldHJ5L2RlbHRhLWNhbGMubWpzJztcclxuXHJcbi8qKlxyXG4gKiBBcHBseSBjb25zdHJhaW50cyB0byBhIHBvaW50LiBUaGVzZSBjb25zdHJhaW50cyBhcmUgYm90aCBwaHlzaWNhbCBhbG9uZyBhblxyXG4gKiBheGlzLCBhbmQgYW4gZWxhc3RpYyBmYWN0b3IgdGhhdCBkZXRlcm1pbmVzIGhvdyBtdWNoIHRvIGNvbnN0cmFpbiB0aGUgcG9pbnRcclxuICogYnkgaWYgaXQgZG9lcyBsaWUgb3V0c2lkZSB0aGUgZGVmaW5lZCBwYXJhbWV0ZXJzLlxyXG4gKi9cclxuZnVuY3Rpb24gYXBwbHlDb25zdHJhaW50cyhwb2ludCwgeyBtaW4sIG1heCB9LCBlbGFzdGljKSB7XHJcbiAgICBpZiAobWluICE9PSB1bmRlZmluZWQgJiYgcG9pbnQgPCBtaW4pIHtcclxuICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgbWluIHBvaW50IGRlZmluZWQsIGFuZCB0aGlzIGlzIG91dHNpZGUgb2YgdGhhdCwgY29uc3RyYWluXHJcbiAgICAgICAgcG9pbnQgPSBlbGFzdGljXHJcbiAgICAgICAgICAgID8gbWl4TnVtYmVyKG1pbiwgcG9pbnQsIGVsYXN0aWMubWluKVxyXG4gICAgICAgICAgICA6IE1hdGgubWF4KHBvaW50LCBtaW4pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAobWF4ICE9PSB1bmRlZmluZWQgJiYgcG9pbnQgPiBtYXgpIHtcclxuICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgbWF4IHBvaW50IGRlZmluZWQsIGFuZCB0aGlzIGlzIG91dHNpZGUgb2YgdGhhdCwgY29uc3RyYWluXHJcbiAgICAgICAgcG9pbnQgPSBlbGFzdGljXHJcbiAgICAgICAgICAgID8gbWl4TnVtYmVyKG1heCwgcG9pbnQsIGVsYXN0aWMubWF4KVxyXG4gICAgICAgICAgICA6IE1hdGgubWluKHBvaW50LCBtYXgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBvaW50O1xyXG59XHJcbi8qKlxyXG4gKiBDYWxjdWxhdGUgY29uc3RyYWludHMgaW4gdGVybXMgb2YgdGhlIHZpZXdwb3J0IHdoZW4gZGVmaW5lZCByZWxhdGl2ZWx5IHRvIHRoZVxyXG4gKiBtZWFzdXJlZCBheGlzLiBUaGlzIGlzIG1lYXN1cmVkIGZyb20gdGhlIG5lYXJlc3QgZWRnZSwgc28gYSBtYXggY29uc3RyYWludCBvZiAyMDBcclxuICogb24gYW4gYXhpcyB3aXRoIGEgbWF4IHZhbHVlIG9mIDMwMCB3b3VsZCByZXR1cm4gYSBjb25zdHJhaW50IG9mIDUwMCAtIGF4aXMgbGVuZ3RoXHJcbiAqL1xyXG5mdW5jdGlvbiBjYWxjUmVsYXRpdmVBeGlzQ29uc3RyYWludHMoYXhpcywgbWluLCBtYXgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbWluOiBtaW4gIT09IHVuZGVmaW5lZCA/IGF4aXMubWluICsgbWluIDogdW5kZWZpbmVkLFxyXG4gICAgICAgIG1heDogbWF4ICE9PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgPyBheGlzLm1heCArIG1heCAtIChheGlzLm1heCAtIGF4aXMubWluKVxyXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcclxuICAgIH07XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZSBjb25zdHJhaW50cyBpbiB0ZXJtcyBvZiB0aGUgdmlld3BvcnQgd2hlblxyXG4gKiBkZWZpbmVkIHJlbGF0aXZlbHkgdG8gdGhlIG1lYXN1cmVkIGJvdW5kaW5nIGJveC5cclxuICovXHJcbmZ1bmN0aW9uIGNhbGNSZWxhdGl2ZUNvbnN0cmFpbnRzKGxheW91dEJveCwgeyB0b3AsIGxlZnQsIGJvdHRvbSwgcmlnaHQgfSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB4OiBjYWxjUmVsYXRpdmVBeGlzQ29uc3RyYWludHMobGF5b3V0Qm94LngsIGxlZnQsIHJpZ2h0KSxcclxuICAgICAgICB5OiBjYWxjUmVsYXRpdmVBeGlzQ29uc3RyYWludHMobGF5b3V0Qm94LnksIHRvcCwgYm90dG9tKSxcclxuICAgIH07XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZSB2aWV3cG9ydCBjb25zdHJhaW50cyB3aGVuIGRlZmluZWQgYXMgYW5vdGhlciB2aWV3cG9ydC1yZWxhdGl2ZSBheGlzXHJcbiAqL1xyXG5mdW5jdGlvbiBjYWxjVmlld3BvcnRBeGlzQ29uc3RyYWludHMobGF5b3V0QXhpcywgY29uc3RyYWludHNBeGlzKSB7XHJcbiAgICBsZXQgbWluID0gY29uc3RyYWludHNBeGlzLm1pbiAtIGxheW91dEF4aXMubWluO1xyXG4gICAgbGV0IG1heCA9IGNvbnN0cmFpbnRzQXhpcy5tYXggLSBsYXlvdXRBeGlzLm1heDtcclxuICAgIC8vIElmIHRoZSBjb25zdHJhaW50cyBheGlzIGlzIGFjdHVhbGx5IHNtYWxsZXIgdGhhbiB0aGUgbGF5b3V0IGF4aXMgdGhlbiB3ZSBjYW5cclxuICAgIC8vIGZsaXAgdGhlIGNvbnN0cmFpbnRzXHJcbiAgICBpZiAoY29uc3RyYWludHNBeGlzLm1heCAtIGNvbnN0cmFpbnRzQXhpcy5taW4gPFxyXG4gICAgICAgIGxheW91dEF4aXMubWF4IC0gbGF5b3V0QXhpcy5taW4pIHtcclxuICAgICAgICBbbWluLCBtYXhdID0gW21heCwgbWluXTtcclxuICAgIH1cclxuICAgIHJldHVybiB7IG1pbiwgbWF4IH07XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZSB2aWV3cG9ydCBjb25zdHJhaW50cyB3aGVuIGRlZmluZWQgYXMgYW5vdGhlciB2aWV3cG9ydC1yZWxhdGl2ZSBib3hcclxuICovXHJcbmZ1bmN0aW9uIGNhbGNWaWV3cG9ydENvbnN0cmFpbnRzKGxheW91dEJveCwgY29uc3RyYWludHNCb3gpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgeDogY2FsY1ZpZXdwb3J0QXhpc0NvbnN0cmFpbnRzKGxheW91dEJveC54LCBjb25zdHJhaW50c0JveC54KSxcclxuICAgICAgICB5OiBjYWxjVmlld3BvcnRBeGlzQ29uc3RyYWludHMobGF5b3V0Qm94LnksIGNvbnN0cmFpbnRzQm94LnkpLFxyXG4gICAgfTtcclxufVxyXG4vKipcclxuICogQ2FsY3VsYXRlIGEgdHJhbnNmb3JtIG9yaWdpbiByZWxhdGl2ZSB0byB0aGUgc291cmNlIGF4aXMsIGJldHdlZW4gMC0xLCB0aGF0IHJlc3VsdHNcclxuICogaW4gYW4gYXN0aGV0aWNhbGx5IHBsZWFzaW5nIHNjYWxlL3RyYW5zZm9ybSBuZWVkZWQgdG8gcHJvamVjdCBmcm9tIHNvdXJjZSB0byB0YXJnZXQuXHJcbiAqL1xyXG5mdW5jdGlvbiBjYWxjT3JpZ2luKHNvdXJjZSwgdGFyZ2V0KSB7XHJcbiAgICBsZXQgb3JpZ2luID0gMC41O1xyXG4gICAgY29uc3Qgc291cmNlTGVuZ3RoID0gY2FsY0xlbmd0aChzb3VyY2UpO1xyXG4gICAgY29uc3QgdGFyZ2V0TGVuZ3RoID0gY2FsY0xlbmd0aCh0YXJnZXQpO1xyXG4gICAgaWYgKHRhcmdldExlbmd0aCA+IHNvdXJjZUxlbmd0aCkge1xyXG4gICAgICAgIG9yaWdpbiA9IHByb2dyZXNzKHRhcmdldC5taW4sIHRhcmdldC5tYXggLSBzb3VyY2VMZW5ndGgsIHNvdXJjZS5taW4pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoc291cmNlTGVuZ3RoID4gdGFyZ2V0TGVuZ3RoKSB7XHJcbiAgICAgICAgb3JpZ2luID0gcHJvZ3Jlc3Moc291cmNlLm1pbiwgc291cmNlLm1heCAtIHRhcmdldExlbmd0aCwgdGFyZ2V0Lm1pbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2xhbXAoMCwgMSwgb3JpZ2luKTtcclxufVxyXG4vKipcclxuICogUmViYXNlIHRoZSBjYWxjdWxhdGVkIHZpZXdwb3J0IGNvbnN0cmFpbnRzIHJlbGF0aXZlIHRvIHRoZSBsYXlvdXQubWluIHBvaW50LlxyXG4gKi9cclxuZnVuY3Rpb24gcmViYXNlQXhpc0NvbnN0cmFpbnRzKGxheW91dCwgY29uc3RyYWludHMpIHtcclxuICAgIGNvbnN0IHJlbGF0aXZlQ29uc3RyYWludHMgPSB7fTtcclxuICAgIGlmIChjb25zdHJhaW50cy5taW4gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJlbGF0aXZlQ29uc3RyYWludHMubWluID0gY29uc3RyYWludHMubWluIC0gbGF5b3V0Lm1pbjtcclxuICAgIH1cclxuICAgIGlmIChjb25zdHJhaW50cy5tYXggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJlbGF0aXZlQ29uc3RyYWludHMubWF4ID0gY29uc3RyYWludHMubWF4IC0gbGF5b3V0Lm1pbjtcclxuICAgIH1cclxuICAgIHJldHVybiByZWxhdGl2ZUNvbnN0cmFpbnRzO1xyXG59XHJcbmNvbnN0IGRlZmF1bHRFbGFzdGljID0gMC4zNTtcclxuLyoqXHJcbiAqIEFjY2VwdHMgYSBkcmFnRWxhc3RpYyBwcm9wIGFuZCByZXR1cm5zIHJlc29sdmVkIGVsYXN0aWMgdmFsdWVzIGZvciBlYWNoIGF4aXMuXHJcbiAqL1xyXG5mdW5jdGlvbiByZXNvbHZlRHJhZ0VsYXN0aWMoZHJhZ0VsYXN0aWMgPSBkZWZhdWx0RWxhc3RpYykge1xyXG4gICAgaWYgKGRyYWdFbGFzdGljID09PSBmYWxzZSkge1xyXG4gICAgICAgIGRyYWdFbGFzdGljID0gMDtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGRyYWdFbGFzdGljID09PSB0cnVlKSB7XHJcbiAgICAgICAgZHJhZ0VsYXN0aWMgPSBkZWZhdWx0RWxhc3RpYztcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgeDogcmVzb2x2ZUF4aXNFbGFzdGljKGRyYWdFbGFzdGljLCBcImxlZnRcIiwgXCJyaWdodFwiKSxcclxuICAgICAgICB5OiByZXNvbHZlQXhpc0VsYXN0aWMoZHJhZ0VsYXN0aWMsIFwidG9wXCIsIFwiYm90dG9tXCIpLFxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiByZXNvbHZlQXhpc0VsYXN0aWMoZHJhZ0VsYXN0aWMsIG1pbkxhYmVsLCBtYXhMYWJlbCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBtaW46IHJlc29sdmVQb2ludEVsYXN0aWMoZHJhZ0VsYXN0aWMsIG1pbkxhYmVsKSxcclxuICAgICAgICBtYXg6IHJlc29sdmVQb2ludEVsYXN0aWMoZHJhZ0VsYXN0aWMsIG1heExhYmVsKSxcclxuICAgIH07XHJcbn1cclxuZnVuY3Rpb24gcmVzb2x2ZVBvaW50RWxhc3RpYyhkcmFnRWxhc3RpYywgbGFiZWwpIHtcclxuICAgIHJldHVybiB0eXBlb2YgZHJhZ0VsYXN0aWMgPT09IFwibnVtYmVyXCJcclxuICAgICAgICA/IGRyYWdFbGFzdGljXHJcbiAgICAgICAgOiBkcmFnRWxhc3RpY1tsYWJlbF0gfHwgMDtcclxufVxyXG5cclxuZXhwb3J0IHsgYXBwbHlDb25zdHJhaW50cywgY2FsY09yaWdpbiwgY2FsY1JlbGF0aXZlQXhpc0NvbnN0cmFpbnRzLCBjYWxjUmVsYXRpdmVDb25zdHJhaW50cywgY2FsY1ZpZXdwb3J0QXhpc0NvbnN0cmFpbnRzLCBjYWxjVmlld3BvcnRDb25zdHJhaW50cywgZGVmYXVsdEVsYXN0aWMsIHJlYmFzZUF4aXNDb25zdHJhaW50cywgcmVzb2x2ZUF4aXNFbGFzdGljLCByZXNvbHZlRHJhZ0VsYXN0aWMsIHJlc29sdmVQb2ludEVsYXN0aWMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/focus.mjs":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/gestures/focus.mjs ***!
|
||
\***************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FocusGesture: function() { return /* binding */ FocusGesture; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var _events_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../events/add-dom-event.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var _motion_features_Feature_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../motion/features/Feature.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/Feature.mjs\");\n\r\n\r\n\r\n\r\nclass FocusGesture extends _motion_features_Feature_mjs__WEBPACK_IMPORTED_MODULE_0__.Feature {\r\n constructor() {\r\n super(...arguments);\r\n this.isActive = false;\r\n }\r\n onFocus() {\r\n let isFocusVisible = false;\r\n /**\r\n * If this element doesn't match focus-visible then don't\r\n * apply whileHover. But, if matches throws that focus-visible\r\n * is not a valid selector then in that browser outline styles will be applied\r\n * to the element by default and we want to match that behaviour with whileFocus.\r\n */\r\n try {\r\n isFocusVisible = this.node.current.matches(\":focus-visible\");\r\n }\r\n catch (e) {\r\n isFocusVisible = true;\r\n }\r\n if (!isFocusVisible || !this.node.animationState)\r\n return;\r\n this.node.animationState.setActive(\"whileFocus\", true);\r\n this.isActive = true;\r\n }\r\n onBlur() {\r\n if (!this.isActive || !this.node.animationState)\r\n return;\r\n this.node.animationState.setActive(\"whileFocus\", false);\r\n this.isActive = false;\r\n }\r\n mount() {\r\n this.unmount = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.pipe)((0,_events_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_2__.addDomEvent)(this.node.current, \"focus\", () => this.onFocus()), (0,_events_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_2__.addDomEvent)(this.node.current, \"blur\", () => this.onBlur()));\r\n }\r\n unmount() { }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZm9jdXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBb0M7QUFDc0I7QUFDRDtBQUN6RDtBQUNBLDJCQUEyQixpRUFBTztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsa0RBQUksQ0FBQyxzRUFBVyxvREFBb0Qsc0VBQVc7QUFDdEc7QUFDQTtBQUNBO0FBQ0E7QUFDd0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9nZXN0dXJlcy9mb2N1cy5tanM/NDFhNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwaXBlIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgYWRkRG9tRXZlbnQgfSBmcm9tICcuLi9ldmVudHMvYWRkLWRvbS1ldmVudC5tanMnO1xyXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vbW90aW9uL2ZlYXR1cmVzL0ZlYXR1cmUubWpzJztcclxuXHJcbmNsYXNzIEZvY3VzR2VzdHVyZSBleHRlbmRzIEZlYXR1cmUge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcclxuICAgICAgICB0aGlzLmlzQWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBvbkZvY3VzKCkge1xyXG4gICAgICAgIGxldCBpc0ZvY3VzVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElmIHRoaXMgZWxlbWVudCBkb2Vzbid0IG1hdGNoIGZvY3VzLXZpc2libGUgdGhlbiBkb24ndFxyXG4gICAgICAgICAqIGFwcGx5IHdoaWxlSG92ZXIuIEJ1dCwgaWYgbWF0Y2hlcyB0aHJvd3MgdGhhdCBmb2N1cy12aXNpYmxlXHJcbiAgICAgICAgICogaXMgbm90IGEgdmFsaWQgc2VsZWN0b3IgdGhlbiBpbiB0aGF0IGJyb3dzZXIgb3V0bGluZSBzdHlsZXMgd2lsbCBiZSBhcHBsaWVkXHJcbiAgICAgICAgICogdG8gdGhlIGVsZW1lbnQgYnkgZGVmYXVsdCBhbmQgd2Ugd2FudCB0byBtYXRjaCB0aGF0IGJlaGF2aW91ciB3aXRoIHdoaWxlRm9jdXMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaXNGb2N1c1Zpc2libGUgPSB0aGlzLm5vZGUuY3VycmVudC5tYXRjaGVzKFwiOmZvY3VzLXZpc2libGVcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIGlzRm9jdXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFpc0ZvY3VzVmlzaWJsZSB8fCAhdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShcIndoaWxlRm9jdXNcIiwgdHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBvbkJsdXIoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzQWN0aXZlIHx8ICF0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKFwid2hpbGVGb2N1c1wiLCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgbW91bnQoKSB7XHJcbiAgICAgICAgdGhpcy51bm1vdW50ID0gcGlwZShhZGREb21FdmVudCh0aGlzLm5vZGUuY3VycmVudCwgXCJmb2N1c1wiLCAoKSA9PiB0aGlzLm9uRm9jdXMoKSksIGFkZERvbUV2ZW50KHRoaXMubm9kZS5jdXJyZW50LCBcImJsdXJcIiwgKCkgPT4gdGhpcy5vbkJsdXIoKSkpO1xyXG4gICAgfVxyXG4gICAgdW5tb3VudCgpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgeyBGb2N1c0dlc3R1cmUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/focus.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/hover.mjs":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/gestures/hover.mjs ***!
|
||
\***************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HoverGesture: function() { return /* binding */ HoverGesture; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/hover.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events/event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n/* harmony import */ var _motion_features_Feature_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../motion/features/Feature.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/Feature.mjs\");\n\r\n\r\n\r\n\r\nfunction handleHoverEvent(node, event, lifecycle) {\r\n const { props } = node;\r\n if (node.animationState && props.whileHover) {\r\n node.animationState.setActive(\"whileHover\", lifecycle === \"Start\");\r\n }\r\n const eventName = (\"onHover\" + lifecycle);\r\n const callback = props[eventName];\r\n if (callback) {\r\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.postRender(() => callback(event, (0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.extractEventInfo)(event)));\r\n }\r\n}\r\nclass HoverGesture extends _motion_features_Feature_mjs__WEBPACK_IMPORTED_MODULE_2__.Feature {\r\n mount() {\r\n const { current } = this.node;\r\n if (!current)\r\n return;\r\n this.unmount = (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.hover)(current, (_element, startEvent) => {\r\n handleHoverEvent(this.node, startEvent, \"Start\");\r\n return (endEvent) => handleHoverEvent(this.node, endEvent, \"End\");\r\n });\r\n }\r\n unmount() { }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvaG92ZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQTBDO0FBQ2tCO0FBQ0g7QUFDekQ7QUFDQTtBQUNBLFlBQVksUUFBUTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDZDQUFLLGtDQUFrQyx3RUFBZ0I7QUFDL0Q7QUFDQTtBQUNBLDJCQUEyQixpRUFBTztBQUNsQztBQUNBLGdCQUFnQixVQUFVO0FBQzFCO0FBQ0E7QUFDQSx1QkFBdUIsaURBQUs7QUFDNUI7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUN3QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL2hvdmVyLm1qcz81YTA5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhvdmVyLCBmcmFtZSB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5pbXBvcnQgeyBleHRyYWN0RXZlbnRJbmZvIH0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50LWluZm8ubWpzJztcclxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uL21vdGlvbi9mZWF0dXJlcy9GZWF0dXJlLm1qcyc7XHJcblxyXG5mdW5jdGlvbiBoYW5kbGVIb3ZlckV2ZW50KG5vZGUsIGV2ZW50LCBsaWZlY3ljbGUpIHtcclxuICAgIGNvbnN0IHsgcHJvcHMgfSA9IG5vZGU7XHJcbiAgICBpZiAobm9kZS5hbmltYXRpb25TdGF0ZSAmJiBwcm9wcy53aGlsZUhvdmVyKSB7XHJcbiAgICAgICAgbm9kZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoXCJ3aGlsZUhvdmVyXCIsIGxpZmVjeWNsZSA9PT0gXCJTdGFydFwiKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGV2ZW50TmFtZSA9IChcIm9uSG92ZXJcIiArIGxpZmVjeWNsZSk7XHJcbiAgICBjb25zdCBjYWxsYmFjayA9IHByb3BzW2V2ZW50TmFtZV07XHJcbiAgICBpZiAoY2FsbGJhY2spIHtcclxuICAgICAgICBmcmFtZS5wb3N0UmVuZGVyKCgpID0+IGNhbGxiYWNrKGV2ZW50LCBleHRyYWN0RXZlbnRJbmZvKGV2ZW50KSkpO1xyXG4gICAgfVxyXG59XHJcbmNsYXNzIEhvdmVyR2VzdHVyZSBleHRlbmRzIEZlYXR1cmUge1xyXG4gICAgbW91bnQoKSB7XHJcbiAgICAgICAgY29uc3QgeyBjdXJyZW50IH0gPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgaWYgKCFjdXJyZW50KVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgdGhpcy51bm1vdW50ID0gaG92ZXIoY3VycmVudCwgKF9lbGVtZW50LCBzdGFydEV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGhhbmRsZUhvdmVyRXZlbnQodGhpcy5ub2RlLCBzdGFydEV2ZW50LCBcIlN0YXJ0XCIpO1xyXG4gICAgICAgICAgICByZXR1cm4gKGVuZEV2ZW50KSA9PiBoYW5kbGVIb3ZlckV2ZW50KHRoaXMubm9kZSwgZW5kRXZlbnQsIFwiRW5kXCIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdW5tb3VudCgpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgeyBIb3Zlckdlc3R1cmUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/hover.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PanSession: function() { return /* binding */ PanSession; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../events/add-pointer-event.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../events/event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n/* harmony import */ var _utils_distance_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/distance.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/distance.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * @internal\r\n */\r\nclass PanSession {\r\n constructor(event, handlers, { transformPagePoint, contextWindow = window, dragSnapToOrigin = false, distanceThreshold = 3, } = {}) {\r\n /**\r\n * @internal\r\n */\r\n this.startEvent = null;\r\n /**\r\n * @internal\r\n */\r\n this.lastMoveEvent = null;\r\n /**\r\n * @internal\r\n */\r\n this.lastMoveEventInfo = null;\r\n /**\r\n * @internal\r\n */\r\n this.handlers = {};\r\n /**\r\n * @internal\r\n */\r\n this.contextWindow = window;\r\n this.updatePoint = () => {\r\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\r\n return;\r\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\r\n const isPanStarted = this.startEvent !== null;\r\n // Only start panning if the offset is larger than 3 pixels. If we make it\r\n // any larger than this we'll want to reset the pointer history\r\n // on the first update to avoid visual snapping to the cursor.\r\n const isDistancePastThreshold = (0,_utils_distance_mjs__WEBPACK_IMPORTED_MODULE_0__.distance2D)(info.offset, { x: 0, y: 0 }) >= this.distanceThreshold;\r\n if (!isPanStarted && !isDistancePastThreshold)\r\n return;\r\n const { point } = info;\r\n const { timestamp } = motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData;\r\n this.history.push({ ...point, timestamp });\r\n const { onStart, onMove } = this.handlers;\r\n if (!isPanStarted) {\r\n onStart && onStart(this.lastMoveEvent, info);\r\n this.startEvent = this.lastMoveEvent;\r\n }\r\n onMove && onMove(this.lastMoveEvent, info);\r\n };\r\n this.handlePointerMove = (event, info) => {\r\n this.lastMoveEvent = event;\r\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\r\n // Throttle mouse move event to once per frame\r\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frame.update(this.updatePoint, true);\r\n };\r\n this.handlePointerUp = (event, info) => {\r\n this.end();\r\n const { onEnd, onSessionEnd, resumeAnimation } = this.handlers;\r\n if (this.dragSnapToOrigin)\r\n resumeAnimation && resumeAnimation();\r\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\r\n return;\r\n const panInfo = getPanInfo(event.type === \"pointercancel\"\r\n ? this.lastMoveEventInfo\r\n : transformPoint(info, this.transformPagePoint), this.history);\r\n if (this.startEvent && onEnd) {\r\n onEnd(event, panInfo);\r\n }\r\n onSessionEnd && onSessionEnd(event, panInfo);\r\n };\r\n // If we have more than one touch, don't start detecting this gesture\r\n if (!(0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isPrimaryPointer)(event))\r\n return;\r\n this.dragSnapToOrigin = dragSnapToOrigin;\r\n this.handlers = handlers;\r\n this.transformPagePoint = transformPagePoint;\r\n this.distanceThreshold = distanceThreshold;\r\n this.contextWindow = contextWindow || window;\r\n const info = (0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_3__.extractEventInfo)(event);\r\n const initialInfo = transformPoint(info, this.transformPagePoint);\r\n const { point } = initialInfo;\r\n const { timestamp } = motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData;\r\n this.history = [{ ...point, timestamp }];\r\n const { onSessionStart } = handlers;\r\n onSessionStart &&\r\n onSessionStart(event, getPanInfo(initialInfo, this.history));\r\n this.removeListeners = (0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.pipe)((0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.contextWindow, \"pointermove\", this.handlePointerMove), (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.contextWindow, \"pointerup\", this.handlePointerUp), (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.contextWindow, \"pointercancel\", this.handlePointerUp));\r\n }\r\n updateHandlers(handlers) {\r\n this.handlers = handlers;\r\n }\r\n end() {\r\n this.removeListeners && this.removeListeners();\r\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(this.updatePoint);\r\n }\r\n}\r\nfunction transformPoint(info, transformPagePoint) {\r\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\r\n}\r\nfunction subtractPoint(a, b) {\r\n return { x: a.x - b.x, y: a.y - b.y };\r\n}\r\nfunction getPanInfo({ point }, history) {\r\n return {\r\n point,\r\n delta: subtractPoint(point, lastDevicePoint(history)),\r\n offset: subtractPoint(point, startDevicePoint(history)),\r\n velocity: getVelocity(history, 0.1),\r\n };\r\n}\r\nfunction startDevicePoint(history) {\r\n return history[0];\r\n}\r\nfunction lastDevicePoint(history) {\r\n return history[history.length - 1];\r\n}\r\nfunction getVelocity(history, timeDelta) {\r\n if (history.length < 2) {\r\n return { x: 0, y: 0 };\r\n }\r\n let i = history.length - 1;\r\n let timestampedPoint = null;\r\n const lastPoint = lastDevicePoint(history);\r\n while (i >= 0) {\r\n timestampedPoint = history[i];\r\n if (lastPoint.timestamp - timestampedPoint.timestamp >\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.secondsToMilliseconds)(timeDelta)) {\r\n break;\r\n }\r\n i--;\r\n }\r\n if (!timestampedPoint) {\r\n return { x: 0, y: 0 };\r\n }\r\n const time = (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(lastPoint.timestamp - timestampedPoint.timestamp);\r\n if (time === 0) {\r\n return { x: 0, y: 0 };\r\n }\r\n const currentVelocity = {\r\n x: (lastPoint.x - timestampedPoint.x) / time,\r\n y: (lastPoint.y - timestampedPoint.y) / time,\r\n };\r\n if (currentVelocity.x === Infinity) {\r\n currentVelocity.x = 0;\r\n }\r\n if (currentVelocity.y === Infinity) {\r\n currentVelocity.y = 0;\r\n }\r\n return currentVelocity;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcGFuL1BhblNlc3Npb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQTZFO0FBQ0s7QUFDYjtBQUNOO0FBQ1Q7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQywrRkFBK0YsSUFBSTtBQUN0STtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QywrREFBVSxnQkFBZ0IsWUFBWTtBQUNsRjtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUIsb0JBQW9CLFlBQVksRUFBRSxpREFBUztBQUMzQyxnQ0FBZ0MscUJBQXFCO0FBQ3JELG9CQUFvQixrQkFBa0I7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLDZDQUFLO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix1Q0FBdUM7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLDREQUFnQjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsd0VBQWdCO0FBQ3JDO0FBQ0EsZ0JBQWdCLFFBQVE7QUFDeEIsZ0JBQWdCLFlBQVksRUFBRSxpREFBUztBQUN2QywwQkFBMEIscUJBQXFCO0FBQy9DLGdCQUFnQixpQkFBaUI7QUFDakM7QUFDQTtBQUNBLCtCQUErQixrREFBSSxDQUFDLDhFQUFlLDZEQUE2RCw4RUFBZSx5REFBeUQsOEVBQWU7QUFDdk07QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSx1REFBVztBQUNuQjtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0Msd0NBQXdDO0FBQzFFO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxzQkFBc0IsT0FBTztBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLG1FQUFxQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsaUJBQWlCLG1FQUFxQjtBQUN0QztBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3NCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcGFuL1BhblNlc3Npb24ubWpzP2E5M2YiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJhbWUsIGlzUHJpbWFyeVBvaW50ZXIsIGNhbmNlbEZyYW1lLCBmcmFtZURhdGEgfSBmcm9tICdtb3Rpb24tZG9tJztcclxuaW1wb3J0IHsgcGlwZSwgc2Vjb25kc1RvTWlsbGlzZWNvbmRzLCBtaWxsaXNlY29uZHNUb1NlY29uZHMgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBhZGRQb2ludGVyRXZlbnQgfSBmcm9tICcuLi8uLi9ldmVudHMvYWRkLXBvaW50ZXItZXZlbnQubWpzJztcclxuaW1wb3J0IHsgZXh0cmFjdEV2ZW50SW5mbyB9IGZyb20gJy4uLy4uL2V2ZW50cy9ldmVudC1pbmZvLm1qcyc7XHJcbmltcG9ydCB7IGRpc3RhbmNlMkQgfSBmcm9tICcuLi8uLi91dGlscy9kaXN0YW5jZS5tanMnO1xyXG5cclxuLyoqXHJcbiAqIEBpbnRlcm5hbFxyXG4gKi9cclxuY2xhc3MgUGFuU2Vzc2lvbiB7XHJcbiAgICBjb25zdHJ1Y3RvcihldmVudCwgaGFuZGxlcnMsIHsgdHJhbnNmb3JtUGFnZVBvaW50LCBjb250ZXh0V2luZG93ID0gd2luZG93LCBkcmFnU25hcFRvT3JpZ2luID0gZmFsc2UsIGRpc3RhbmNlVGhyZXNob2xkID0gMywgfSA9IHt9KSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGludGVybmFsXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zdGFydEV2ZW50ID0gbnVsbDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAaW50ZXJuYWxcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmxhc3RNb3ZlRXZlbnQgPSBudWxsO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubGFzdE1vdmVFdmVudEluZm8gPSBudWxsO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaGFuZGxlcnMgPSB7fTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAaW50ZXJuYWxcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNvbnRleHRXaW5kb3cgPSB3aW5kb3c7XHJcbiAgICAgICAgdGhpcy51cGRhdGVQb2ludCA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCEodGhpcy5sYXN0TW92ZUV2ZW50ICYmIHRoaXMubGFzdE1vdmVFdmVudEluZm8pKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBpbmZvID0gZ2V0UGFuSW5mbyh0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvLCB0aGlzLmhpc3RvcnkpO1xyXG4gICAgICAgICAgICBjb25zdCBpc1BhblN0YXJ0ZWQgPSB0aGlzLnN0YXJ0RXZlbnQgIT09IG51bGw7XHJcbiAgICAgICAgICAgIC8vIE9ubHkgc3RhcnQgcGFubmluZyBpZiB0aGUgb2Zmc2V0IGlzIGxhcmdlciB0aGFuIDMgcGl4ZWxzLiBJZiB3ZSBtYWtlIGl0XHJcbiAgICAgICAgICAgIC8vIGFueSBsYXJnZXIgdGhhbiB0aGlzIHdlJ2xsIHdhbnQgdG8gcmVzZXQgdGhlIHBvaW50ZXIgaGlzdG9yeVxyXG4gICAgICAgICAgICAvLyBvbiB0aGUgZmlyc3QgdXBkYXRlIHRvIGF2b2lkIHZpc3VhbCBzbmFwcGluZyB0byB0aGUgY3Vyc29yLlxyXG4gICAgICAgICAgICBjb25zdCBpc0Rpc3RhbmNlUGFzdFRocmVzaG9sZCA9IGRpc3RhbmNlMkQoaW5mby5vZmZzZXQsIHsgeDogMCwgeTogMCB9KSA+PSB0aGlzLmRpc3RhbmNlVGhyZXNob2xkO1xyXG4gICAgICAgICAgICBpZiAoIWlzUGFuU3RhcnRlZCAmJiAhaXNEaXN0YW5jZVBhc3RUaHJlc2hvbGQpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IHsgcG9pbnQgfSA9IGluZm87XHJcbiAgICAgICAgICAgIGNvbnN0IHsgdGltZXN0YW1wIH0gPSBmcmFtZURhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuaGlzdG9yeS5wdXNoKHsgLi4ucG9pbnQsIHRpbWVzdGFtcCB9KTtcclxuICAgICAgICAgICAgY29uc3QgeyBvblN0YXJ0LCBvbk1vdmUgfSA9IHRoaXMuaGFuZGxlcnM7XHJcbiAgICAgICAgICAgIGlmICghaXNQYW5TdGFydGVkKSB7XHJcbiAgICAgICAgICAgICAgICBvblN0YXJ0ICYmIG9uU3RhcnQodGhpcy5sYXN0TW92ZUV2ZW50LCBpbmZvKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRFdmVudCA9IHRoaXMubGFzdE1vdmVFdmVudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvbk1vdmUgJiYgb25Nb3ZlKHRoaXMubGFzdE1vdmVFdmVudCwgaW5mbyk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmhhbmRsZVBvaW50ZXJNb3ZlID0gKGV2ZW50LCBpbmZvKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubGFzdE1vdmVFdmVudCA9IGV2ZW50O1xyXG4gICAgICAgICAgICB0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvID0gdHJhbnNmb3JtUG9pbnQoaW5mbywgdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQpO1xyXG4gICAgICAgICAgICAvLyBUaHJvdHRsZSBtb3VzZSBtb3ZlIGV2ZW50IHRvIG9uY2UgcGVyIGZyYW1lXHJcbiAgICAgICAgICAgIGZyYW1lLnVwZGF0ZSh0aGlzLnVwZGF0ZVBvaW50LCB0cnVlKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuaGFuZGxlUG9pbnRlclVwID0gKGV2ZW50LCBpbmZvKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZW5kKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgb25FbmQsIG9uU2Vzc2lvbkVuZCwgcmVzdW1lQW5pbWF0aW9uIH0gPSB0aGlzLmhhbmRsZXJzO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kcmFnU25hcFRvT3JpZ2luKVxyXG4gICAgICAgICAgICAgICAgcmVzdW1lQW5pbWF0aW9uICYmIHJlc3VtZUFuaW1hdGlvbigpO1xyXG4gICAgICAgICAgICBpZiAoISh0aGlzLmxhc3RNb3ZlRXZlbnQgJiYgdGhpcy5sYXN0TW92ZUV2ZW50SW5mbykpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IHBhbkluZm8gPSBnZXRQYW5JbmZvKGV2ZW50LnR5cGUgPT09IFwicG9pbnRlcmNhbmNlbFwiXHJcbiAgICAgICAgICAgICAgICA/IHRoaXMubGFzdE1vdmVFdmVudEluZm9cclxuICAgICAgICAgICAgICAgIDogdHJhbnNmb3JtUG9pbnQoaW5mbywgdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQpLCB0aGlzLmhpc3RvcnkpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zdGFydEV2ZW50ICYmIG9uRW5kKSB7XHJcbiAgICAgICAgICAgICAgICBvbkVuZChldmVudCwgcGFuSW5mbyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb25TZXNzaW9uRW5kICYmIG9uU2Vzc2lvbkVuZChldmVudCwgcGFuSW5mbyk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvLyBJZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdG91Y2gsIGRvbid0IHN0YXJ0IGRldGVjdGluZyB0aGlzIGdlc3R1cmVcclxuICAgICAgICBpZiAoIWlzUHJpbWFyeVBvaW50ZXIoZXZlbnQpKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgdGhpcy5kcmFnU25hcFRvT3JpZ2luID0gZHJhZ1NuYXBUb09yaWdpbjtcclxuICAgICAgICB0aGlzLmhhbmRsZXJzID0gaGFuZGxlcnM7XHJcbiAgICAgICAgdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQgPSB0cmFuc2Zvcm1QYWdlUG9pbnQ7XHJcbiAgICAgICAgdGhpcy5kaXN0YW5jZVRocmVzaG9sZCA9IGRpc3RhbmNlVGhyZXNob2xkO1xyXG4gICAgICAgIHRoaXMuY29udGV4dFdpbmRvdyA9IGNvbnRleHRXaW5kb3cgfHwgd2luZG93O1xyXG4gICAgICAgIGNvbnN0IGluZm8gPSBleHRyYWN0RXZlbnRJbmZvKGV2ZW50KTtcclxuICAgICAgICBjb25zdCBpbml0aWFsSW5mbyA9IHRyYW5zZm9ybVBvaW50KGluZm8sIHRoaXMudHJhbnNmb3JtUGFnZVBvaW50KTtcclxuICAgICAgICBjb25zdCB7IHBvaW50IH0gPSBpbml0aWFsSW5mbztcclxuICAgICAgICBjb25zdCB7IHRpbWVzdGFtcCB9ID0gZnJhbWVEYXRhO1xyXG4gICAgICAgIHRoaXMuaGlzdG9yeSA9IFt7IC4uLnBvaW50LCB0aW1lc3RhbXAgfV07XHJcbiAgICAgICAgY29uc3QgeyBvblNlc3Npb25TdGFydCB9ID0gaGFuZGxlcnM7XHJcbiAgICAgICAgb25TZXNzaW9uU3RhcnQgJiZcclxuICAgICAgICAgICAgb25TZXNzaW9uU3RhcnQoZXZlbnQsIGdldFBhbkluZm8oaW5pdGlhbEluZm8sIHRoaXMuaGlzdG9yeSkpO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzID0gcGlwZShhZGRQb2ludGVyRXZlbnQodGhpcy5jb250ZXh0V2luZG93LCBcInBvaW50ZXJtb3ZlXCIsIHRoaXMuaGFuZGxlUG9pbnRlck1vdmUpLCBhZGRQb2ludGVyRXZlbnQodGhpcy5jb250ZXh0V2luZG93LCBcInBvaW50ZXJ1cFwiLCB0aGlzLmhhbmRsZVBvaW50ZXJVcCksIGFkZFBvaW50ZXJFdmVudCh0aGlzLmNvbnRleHRXaW5kb3csIFwicG9pbnRlcmNhbmNlbFwiLCB0aGlzLmhhbmRsZVBvaW50ZXJVcCkpO1xyXG4gICAgfVxyXG4gICAgdXBkYXRlSGFuZGxlcnMoaGFuZGxlcnMpIHtcclxuICAgICAgICB0aGlzLmhhbmRsZXJzID0gaGFuZGxlcnM7XHJcbiAgICB9XHJcbiAgICBlbmQoKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnMgJiYgdGhpcy5yZW1vdmVMaXN0ZW5lcnMoKTtcclxuICAgICAgICBjYW5jZWxGcmFtZSh0aGlzLnVwZGF0ZVBvaW50KTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiB0cmFuc2Zvcm1Qb2ludChpbmZvLCB0cmFuc2Zvcm1QYWdlUG9pbnQpIHtcclxuICAgIHJldHVybiB0cmFuc2Zvcm1QYWdlUG9pbnQgPyB7IHBvaW50OiB0cmFuc2Zvcm1QYWdlUG9pbnQoaW5mby5wb2ludCkgfSA6IGluZm87XHJcbn1cclxuZnVuY3Rpb24gc3VidHJhY3RQb2ludChhLCBiKSB7XHJcbiAgICByZXR1cm4geyB4OiBhLnggLSBiLngsIHk6IGEueSAtIGIueSB9O1xyXG59XHJcbmZ1bmN0aW9uIGdldFBhbkluZm8oeyBwb2ludCB9LCBoaXN0b3J5KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHBvaW50LFxyXG4gICAgICAgIGRlbHRhOiBzdWJ0cmFjdFBvaW50KHBvaW50LCBsYXN0RGV2aWNlUG9pbnQoaGlzdG9yeSkpLFxyXG4gICAgICAgIG9mZnNldDogc3VidHJhY3RQb2ludChwb2ludCwgc3RhcnREZXZpY2VQb2ludChoaXN0b3J5KSksXHJcbiAgICAgICAgdmVsb2NpdHk6IGdldFZlbG9jaXR5KGhpc3RvcnksIDAuMSksXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIHN0YXJ0RGV2aWNlUG9pbnQoaGlzdG9yeSkge1xyXG4gICAgcmV0dXJuIGhpc3RvcnlbMF07XHJcbn1cclxuZnVuY3Rpb24gbGFzdERldmljZVBvaW50KGhpc3RvcnkpIHtcclxuICAgIHJldHVybiBoaXN0b3J5W2hpc3RvcnkubGVuZ3RoIC0gMV07XHJcbn1cclxuZnVuY3Rpb24gZ2V0VmVsb2NpdHkoaGlzdG9yeSwgdGltZURlbHRhKSB7XHJcbiAgICBpZiAoaGlzdG9yeS5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgeDogMCwgeTogMCB9O1xyXG4gICAgfVxyXG4gICAgbGV0IGkgPSBoaXN0b3J5Lmxlbmd0aCAtIDE7XHJcbiAgICBsZXQgdGltZXN0YW1wZWRQb2ludCA9IG51bGw7XHJcbiAgICBjb25zdCBsYXN0UG9pbnQgPSBsYXN0RGV2aWNlUG9pbnQoaGlzdG9yeSk7XHJcbiAgICB3aGlsZSAoaSA+PSAwKSB7XHJcbiAgICAgICAgdGltZXN0YW1wZWRQb2ludCA9IGhpc3RvcnlbaV07XHJcbiAgICAgICAgaWYgKGxhc3RQb2ludC50aW1lc3RhbXAgLSB0aW1lc3RhbXBlZFBvaW50LnRpbWVzdGFtcCA+XHJcbiAgICAgICAgICAgIHNlY29uZHNUb01pbGxpc2Vjb25kcyh0aW1lRGVsdGEpKSB7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpLS07XHJcbiAgICB9XHJcbiAgICBpZiAoIXRpbWVzdGFtcGVkUG9pbnQpIHtcclxuICAgICAgICByZXR1cm4geyB4OiAwLCB5OiAwIH07XHJcbiAgICB9XHJcbiAgICBjb25zdCB0aW1lID0gbWlsbGlzZWNvbmRzVG9TZWNvbmRzKGxhc3RQb2ludC50aW1lc3RhbXAgLSB0aW1lc3RhbXBlZFBvaW50LnRpbWVzdGFtcCk7XHJcbiAgICBpZiAodGltZSA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiB7IHg6IDAsIHk6IDAgfTtcclxuICAgIH1cclxuICAgIGNvbnN0IGN1cnJlbnRWZWxvY2l0eSA9IHtcclxuICAgICAgICB4OiAobGFzdFBvaW50LnggLSB0aW1lc3RhbXBlZFBvaW50LngpIC8gdGltZSxcclxuICAgICAgICB5OiAobGFzdFBvaW50LnkgLSB0aW1lc3RhbXBlZFBvaW50LnkpIC8gdGltZSxcclxuICAgIH07XHJcbiAgICBpZiAoY3VycmVudFZlbG9jaXR5LnggPT09IEluZmluaXR5KSB7XHJcbiAgICAgICAgY3VycmVudFZlbG9jaXR5LnggPSAwO1xyXG4gICAgfVxyXG4gICAgaWYgKGN1cnJlbnRWZWxvY2l0eS55ID09PSBJbmZpbml0eSkge1xyXG4gICAgICAgIGN1cnJlbnRWZWxvY2l0eS55ID0gMDtcclxuICAgIH1cclxuICAgIHJldHVybiBjdXJyZW50VmVsb2NpdHk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IFBhblNlc3Npb24gfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/index.mjs":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/gestures/pan/index.mjs ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PanGesture: function() { return /* binding */ PanGesture; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../events/add-pointer-event.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\");\n/* harmony import */ var _motion_features_Feature_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../motion/features/Feature.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/Feature.mjs\");\n/* harmony import */ var _utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/get-context-window.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs\");\n/* harmony import */ var _PanSession_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PanSession.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst asyncHandler = (handler) => (event, info) => {\r\n if (handler) {\r\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.postRender(() => handler(event, info));\r\n }\r\n};\r\nclass PanGesture extends _motion_features_Feature_mjs__WEBPACK_IMPORTED_MODULE_1__.Feature {\r\n constructor() {\r\n super(...arguments);\r\n this.removePointerDownListener = motion_utils__WEBPACK_IMPORTED_MODULE_2__.noop;\r\n }\r\n onPointerDown(pointerDownEvent) {\r\n this.session = new _PanSession_mjs__WEBPACK_IMPORTED_MODULE_3__.PanSession(pointerDownEvent, this.createPanHandlers(), {\r\n transformPagePoint: this.node.getTransformPagePoint(),\r\n contextWindow: (0,_utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_4__.getContextWindow)(this.node),\r\n });\r\n }\r\n createPanHandlers() {\r\n const { onPanSessionStart, onPanStart, onPan, onPanEnd } = this.node.getProps();\r\n return {\r\n onSessionStart: asyncHandler(onPanSessionStart),\r\n onStart: asyncHandler(onPanStart),\r\n onMove: onPan,\r\n onEnd: (event, info) => {\r\n delete this.session;\r\n if (onPanEnd) {\r\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.postRender(() => onPanEnd(event, info));\r\n }\r\n },\r\n };\r\n }\r\n mount() {\r\n this.removePointerDownListener = (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.node.current, \"pointerdown\", (event) => this.onPointerDown(event));\r\n }\r\n update() {\r\n this.session && this.session.updateHandlers(this.createPanHandlers());\r\n }\r\n unmount() {\r\n this.removePointerDownListener();\r\n this.session && this.session.end();\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcGFuL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQW1DO0FBQ0M7QUFDaUM7QUFDVDtBQUNVO0FBQ3hCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBLFFBQVEsNkNBQUs7QUFDYjtBQUNBO0FBQ0EseUJBQXlCLGlFQUFPO0FBQ2hDO0FBQ0E7QUFDQSx5Q0FBeUMsOENBQUk7QUFDN0M7QUFDQTtBQUNBLDJCQUEyQix1REFBVTtBQUNyQztBQUNBLDJCQUEyQiwrRUFBZ0I7QUFDM0MsU0FBUztBQUNUO0FBQ0E7QUFDQSxnQkFBZ0IsaURBQWlEO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDZDQUFLO0FBQ3pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLHlDQUF5Qyw4RUFBZTtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL3Bhbi9pbmRleC5tanM/NTQxMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcmFtZSB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgYWRkUG9pbnRlckV2ZW50IH0gZnJvbSAnLi4vLi4vZXZlbnRzL2FkZC1wb2ludGVyLWV2ZW50Lm1qcyc7XHJcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICcuLi8uLi9tb3Rpb24vZmVhdHVyZXMvRmVhdHVyZS5tanMnO1xyXG5pbXBvcnQgeyBnZXRDb250ZXh0V2luZG93IH0gZnJvbSAnLi4vLi4vdXRpbHMvZ2V0LWNvbnRleHQtd2luZG93Lm1qcyc7XHJcbmltcG9ydCB7IFBhblNlc3Npb24gfSBmcm9tICcuL1BhblNlc3Npb24ubWpzJztcclxuXHJcbmNvbnN0IGFzeW5jSGFuZGxlciA9IChoYW5kbGVyKSA9PiAoZXZlbnQsIGluZm8pID0+IHtcclxuICAgIGlmIChoYW5kbGVyKSB7XHJcbiAgICAgICAgZnJhbWUucG9zdFJlbmRlcigoKSA9PiBoYW5kbGVyKGV2ZW50LCBpbmZvKSk7XHJcbiAgICB9XHJcbn07XHJcbmNsYXNzIFBhbkdlc3R1cmUgZXh0ZW5kcyBGZWF0dXJlIHtcclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVQb2ludGVyRG93bkxpc3RlbmVyID0gbm9vcDtcclxuICAgIH1cclxuICAgIG9uUG9pbnRlckRvd24ocG9pbnRlckRvd25FdmVudCkge1xyXG4gICAgICAgIHRoaXMuc2Vzc2lvbiA9IG5ldyBQYW5TZXNzaW9uKHBvaW50ZXJEb3duRXZlbnQsIHRoaXMuY3JlYXRlUGFuSGFuZGxlcnMoKSwge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm1QYWdlUG9pbnQ6IHRoaXMubm9kZS5nZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKSxcclxuICAgICAgICAgICAgY29udGV4dFdpbmRvdzogZ2V0Q29udGV4dFdpbmRvdyh0aGlzLm5vZGUpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY3JlYXRlUGFuSGFuZGxlcnMoKSB7XHJcbiAgICAgICAgY29uc3QgeyBvblBhblNlc3Npb25TdGFydCwgb25QYW5TdGFydCwgb25QYW4sIG9uUGFuRW5kIH0gPSB0aGlzLm5vZGUuZ2V0UHJvcHMoKTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBvblNlc3Npb25TdGFydDogYXN5bmNIYW5kbGVyKG9uUGFuU2Vzc2lvblN0YXJ0KSxcclxuICAgICAgICAgICAgb25TdGFydDogYXN5bmNIYW5kbGVyKG9uUGFuU3RhcnQpLFxyXG4gICAgICAgICAgICBvbk1vdmU6IG9uUGFuLFxyXG4gICAgICAgICAgICBvbkVuZDogKGV2ZW50LCBpbmZvKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5zZXNzaW9uO1xyXG4gICAgICAgICAgICAgICAgaWYgKG9uUGFuRW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJhbWUucG9zdFJlbmRlcigoKSA9PiBvblBhbkVuZChldmVudCwgaW5mbykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBtb3VudCgpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZVBvaW50ZXJEb3duTGlzdGVuZXIgPSBhZGRQb2ludGVyRXZlbnQodGhpcy5ub2RlLmN1cnJlbnQsIFwicG9pbnRlcmRvd25cIiwgKGV2ZW50KSA9PiB0aGlzLm9uUG9pbnRlckRvd24oZXZlbnQpKTtcclxuICAgIH1cclxuICAgIHVwZGF0ZSgpIHtcclxuICAgICAgICB0aGlzLnNlc3Npb24gJiYgdGhpcy5zZXNzaW9uLnVwZGF0ZUhhbmRsZXJzKHRoaXMuY3JlYXRlUGFuSGFuZGxlcnMoKSk7XHJcbiAgICB9XHJcbiAgICB1bm1vdW50KCkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlUG9pbnRlckRvd25MaXN0ZW5lcigpO1xyXG4gICAgICAgIHRoaXMuc2Vzc2lvbiAmJiB0aGlzLnNlc3Npb24uZW5kKCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IFBhbkdlc3R1cmUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/press.mjs":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/gestures/press.mjs ***!
|
||
\***************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PressGesture: function() { return /* binding */ PressGesture; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/index.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events/event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n/* harmony import */ var _motion_features_Feature_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../motion/features/Feature.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/Feature.mjs\");\n\r\n\r\n\r\n\r\nfunction handlePressEvent(node, event, lifecycle) {\r\n const { props } = node;\r\n if (node.current instanceof HTMLButtonElement && node.current.disabled) {\r\n return;\r\n }\r\n if (node.animationState && props.whileTap) {\r\n node.animationState.setActive(\"whileTap\", lifecycle === \"Start\");\r\n }\r\n const eventName = (\"onTap\" + (lifecycle === \"End\" ? \"\" : lifecycle));\r\n const callback = props[eventName];\r\n if (callback) {\r\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.postRender(() => callback(event, (0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.extractEventInfo)(event)));\r\n }\r\n}\r\nclass PressGesture extends _motion_features_Feature_mjs__WEBPACK_IMPORTED_MODULE_2__.Feature {\r\n mount() {\r\n const { current } = this.node;\r\n if (!current)\r\n return;\r\n this.unmount = (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.press)(current, (_element, startEvent) => {\r\n handlePressEvent(this.node, startEvent, \"Start\");\r\n return (endEvent, { success }) => handlePressEvent(this.node, endEvent, success ? \"End\" : \"Cancel\");\r\n }, { useGlobalTarget: this.node.props.globalTapTarget });\r\n }\r\n unmount() { }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQTBDO0FBQ2tCO0FBQ0g7QUFDekQ7QUFDQTtBQUNBLFlBQVksUUFBUTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDZDQUFLLGtDQUFrQyx3RUFBZ0I7QUFDL0Q7QUFDQTtBQUNBLDJCQUEyQixpRUFBTztBQUNsQztBQUNBLGdCQUFnQixVQUFVO0FBQzFCO0FBQ0E7QUFDQSx1QkFBdUIsaURBQUs7QUFDNUI7QUFDQSxnQ0FBZ0MsU0FBUztBQUN6QyxTQUFTLElBQUksa0RBQWtEO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ3dCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MubWpzP2NjMTQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJlc3MsIGZyYW1lIH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcbmltcG9ydCB7IGV4dHJhY3RFdmVudEluZm8gfSBmcm9tICcuLi9ldmVudHMvZXZlbnQtaW5mby5tanMnO1xyXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vbW90aW9uL2ZlYXR1cmVzL0ZlYXR1cmUubWpzJztcclxuXHJcbmZ1bmN0aW9uIGhhbmRsZVByZXNzRXZlbnQobm9kZSwgZXZlbnQsIGxpZmVjeWNsZSkge1xyXG4gICAgY29uc3QgeyBwcm9wcyB9ID0gbm9kZTtcclxuICAgIGlmIChub2RlLmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MQnV0dG9uRWxlbWVudCAmJiBub2RlLmN1cnJlbnQuZGlzYWJsZWQpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAobm9kZS5hbmltYXRpb25TdGF0ZSAmJiBwcm9wcy53aGlsZVRhcCkge1xyXG4gICAgICAgIG5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKFwid2hpbGVUYXBcIiwgbGlmZWN5Y2xlID09PSBcIlN0YXJ0XCIpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZXZlbnROYW1lID0gKFwib25UYXBcIiArIChsaWZlY3ljbGUgPT09IFwiRW5kXCIgPyBcIlwiIDogbGlmZWN5Y2xlKSk7XHJcbiAgICBjb25zdCBjYWxsYmFjayA9IHByb3BzW2V2ZW50TmFtZV07XHJcbiAgICBpZiAoY2FsbGJhY2spIHtcclxuICAgICAgICBmcmFtZS5wb3N0UmVuZGVyKCgpID0+IGNhbGxiYWNrKGV2ZW50LCBleHRyYWN0RXZlbnRJbmZvKGV2ZW50KSkpO1xyXG4gICAgfVxyXG59XHJcbmNsYXNzIFByZXNzR2VzdHVyZSBleHRlbmRzIEZlYXR1cmUge1xyXG4gICAgbW91bnQoKSB7XHJcbiAgICAgICAgY29uc3QgeyBjdXJyZW50IH0gPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgaWYgKCFjdXJyZW50KVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgdGhpcy51bm1vdW50ID0gcHJlc3MoY3VycmVudCwgKF9lbGVtZW50LCBzdGFydEV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGhhbmRsZVByZXNzRXZlbnQodGhpcy5ub2RlLCBzdGFydEV2ZW50LCBcIlN0YXJ0XCIpO1xyXG4gICAgICAgICAgICByZXR1cm4gKGVuZEV2ZW50LCB7IHN1Y2Nlc3MgfSkgPT4gaGFuZGxlUHJlc3NFdmVudCh0aGlzLm5vZGUsIGVuZEV2ZW50LCBzdWNjZXNzID8gXCJFbmRcIiA6IFwiQ2FuY2VsXCIpO1xyXG4gICAgICAgIH0sIHsgdXNlR2xvYmFsVGFyZ2V0OiB0aGlzLm5vZGUucHJvcHMuZ2xvYmFsVGFwVGFyZ2V0IH0pO1xyXG4gICAgfVxyXG4gICAgdW5tb3VudCgpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgeyBQcmVzc0dlc3R1cmUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/press.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/Feature.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/features/Feature.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Feature: function() { return /* binding */ Feature; }\n/* harmony export */ });\nclass Feature {\r\n constructor(node) {\r\n this.isMounted = false;\r\n this.node = node;\r\n }\r\n update() { }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL0ZlYXR1cmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ21CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL0ZlYXR1cmUubWpzP2Q2NTAiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRmVhdHVyZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihub2RlKSB7XHJcbiAgICAgICAgdGhpcy5pc01vdW50ZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUgPSBub2RlO1xyXG4gICAgfVxyXG4gICAgdXBkYXRlKCkgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IEZlYXR1cmUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/Feature.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ExitAnimationFeature: function() { return /* binding */ ExitAnimationFeature; }\n/* harmony export */ });\n/* harmony import */ var _Feature_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Feature.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/Feature.mjs\");\n\r\n\r\nlet id = 0;\r\nclass ExitAnimationFeature extends _Feature_mjs__WEBPACK_IMPORTED_MODULE_0__.Feature {\r\n constructor() {\r\n super(...arguments);\r\n this.id = id++;\r\n }\r\n update() {\r\n if (!this.node.presenceContext)\r\n return;\r\n const { isPresent, onExitComplete } = this.node.presenceContext;\r\n const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {};\r\n if (!this.node.animationState || isPresent === prevIsPresent) {\r\n return;\r\n }\r\n const exitAnimation = this.node.animationState.setActive(\"exit\", !isPresent);\r\n if (onExitComplete && !isPresent) {\r\n exitAnimation.then(() => {\r\n onExitComplete(this.id);\r\n });\r\n }\r\n }\r\n mount() {\r\n const { register, onExitComplete } = this.node.presenceContext || {};\r\n if (onExitComplete) {\r\n onExitComplete(this.id);\r\n }\r\n if (register) {\r\n this.unmount = register(this.id);\r\n }\r\n }\r\n unmount() { }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2FuaW1hdGlvbi9leGl0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF5QztBQUN6QztBQUNBO0FBQ0EsbUNBQW1DLGlEQUFPO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDRCQUE0QjtBQUM1QyxnQkFBZ0IsMkJBQTJCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwyQkFBMkI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvYW5pbWF0aW9uL2V4aXQubWpzP2RlNmYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uL0ZlYXR1cmUubWpzJztcclxuXHJcbmxldCBpZCA9IDA7XHJcbmNsYXNzIEV4aXRBbmltYXRpb25GZWF0dXJlIGV4dGVuZHMgRmVhdHVyZSB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xyXG4gICAgICAgIHRoaXMuaWQgPSBpZCsrO1xyXG4gICAgfVxyXG4gICAgdXBkYXRlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5ub2RlLnByZXNlbmNlQ29udGV4dClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHsgaXNQcmVzZW50LCBvbkV4aXRDb21wbGV0ZSB9ID0gdGhpcy5ub2RlLnByZXNlbmNlQ29udGV4dDtcclxuICAgICAgICBjb25zdCB7IGlzUHJlc2VudDogcHJldklzUHJlc2VudCB9ID0gdGhpcy5ub2RlLnByZXZQcmVzZW5jZUNvbnRleHQgfHwge307XHJcbiAgICAgICAgaWYgKCF0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUgfHwgaXNQcmVzZW50ID09PSBwcmV2SXNQcmVzZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZXhpdEFuaW1hdGlvbiA9IHRoaXMubm9kZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoXCJleGl0XCIsICFpc1ByZXNlbnQpO1xyXG4gICAgICAgIGlmIChvbkV4aXRDb21wbGV0ZSAmJiAhaXNQcmVzZW50KSB7XHJcbiAgICAgICAgICAgIGV4aXRBbmltYXRpb24udGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvbkV4aXRDb21wbGV0ZSh0aGlzLmlkKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbW91bnQoKSB7XHJcbiAgICAgICAgY29uc3QgeyByZWdpc3Rlciwgb25FeGl0Q29tcGxldGUgfSA9IHRoaXMubm9kZS5wcmVzZW5jZUNvbnRleHQgfHwge307XHJcbiAgICAgICAgaWYgKG9uRXhpdENvbXBsZXRlKSB7XHJcbiAgICAgICAgICAgIG9uRXhpdENvbXBsZXRlKHRoaXMuaWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVnaXN0ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy51bm1vdW50ID0gcmVnaXN0ZXIodGhpcy5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdW5tb3VudCgpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgeyBFeGl0QW5pbWF0aW9uRmVhdHVyZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs":
|
||
/*!********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs ***!
|
||
\********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnimationFeature: function() { return /* binding */ AnimationFeature; }\n/* harmony export */ });\n/* harmony import */ var _animation_utils_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../animation/utils/is-animation-controls.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs\");\n/* harmony import */ var _render_utils_animation_state_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../render/utils/animation-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/animation-state.mjs\");\n/* harmony import */ var _Feature_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Feature.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/Feature.mjs\");\n\r\n\r\n\r\n\r\nclass AnimationFeature extends _Feature_mjs__WEBPACK_IMPORTED_MODULE_0__.Feature {\r\n /**\r\n * We dynamically generate the AnimationState manager as it contains a reference\r\n * to the underlying animation library. We only want to load that if we load this,\r\n * so people can optionally code split it out using the `m` component.\r\n */\r\n constructor(node) {\r\n super(node);\r\n node.animationState || (node.animationState = (0,_render_utils_animation_state_mjs__WEBPACK_IMPORTED_MODULE_1__.createAnimationState)(node));\r\n }\r\n updateAnimationControlsSubscription() {\r\n const { animate } = this.node.getProps();\r\n if ((0,_animation_utils_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_2__.isAnimationControls)(animate)) {\r\n this.unmountControls = animate.subscribe(this.node);\r\n }\r\n }\r\n /**\r\n * Subscribe any provided AnimationControls to the component's VisualElement\r\n */\r\n mount() {\r\n this.updateAnimationControlsSubscription();\r\n }\r\n update() {\r\n const { animate } = this.node.getProps();\r\n const { animate: prevAnimate } = this.node.prevProps || {};\r\n if (animate !== prevAnimate) {\r\n this.updateAnimationControlsSubscription();\r\n }\r\n }\r\n unmount() {\r\n this.node.animationState.reset();\r\n this.unmountControls?.();\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2FuaW1hdGlvbi9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUF5RjtBQUNSO0FBQ3hDO0FBQ3pDO0FBQ0EsK0JBQStCLGlEQUFPO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNELHVGQUFvQjtBQUMxRTtBQUNBO0FBQ0EsZ0JBQWdCLFVBQVU7QUFDMUIsWUFBWSwrRkFBbUI7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsVUFBVTtBQUMxQixnQkFBZ0IsdUJBQXVCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQzRCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2FuaW1hdGlvbi9pbmRleC5tanM/ZTJjZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0FuaW1hdGlvbkNvbnRyb2xzIH0gZnJvbSAnLi4vLi4vLi4vYW5pbWF0aW9uL3V0aWxzL2lzLWFuaW1hdGlvbi1jb250cm9scy5tanMnO1xyXG5pbXBvcnQgeyBjcmVhdGVBbmltYXRpb25TdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlbmRlci91dGlscy9hbmltYXRpb24tc3RhdGUubWpzJztcclxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uL0ZlYXR1cmUubWpzJztcclxuXHJcbmNsYXNzIEFuaW1hdGlvbkZlYXR1cmUgZXh0ZW5kcyBGZWF0dXJlIHtcclxuICAgIC8qKlxyXG4gICAgICogV2UgZHluYW1pY2FsbHkgZ2VuZXJhdGUgdGhlIEFuaW1hdGlvblN0YXRlIG1hbmFnZXIgYXMgaXQgY29udGFpbnMgYSByZWZlcmVuY2VcclxuICAgICAqIHRvIHRoZSB1bmRlcmx5aW5nIGFuaW1hdGlvbiBsaWJyYXJ5LiBXZSBvbmx5IHdhbnQgdG8gbG9hZCB0aGF0IGlmIHdlIGxvYWQgdGhpcyxcclxuICAgICAqIHNvIHBlb3BsZSBjYW4gb3B0aW9uYWxseSBjb2RlIHNwbGl0IGl0IG91dCB1c2luZyB0aGUgYG1gIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3Iobm9kZSkge1xyXG4gICAgICAgIHN1cGVyKG5vZGUpO1xyXG4gICAgICAgIG5vZGUuYW5pbWF0aW9uU3RhdGUgfHwgKG5vZGUuYW5pbWF0aW9uU3RhdGUgPSBjcmVhdGVBbmltYXRpb25TdGF0ZShub2RlKSk7XHJcbiAgICB9XHJcbiAgICB1cGRhdGVBbmltYXRpb25Db250cm9sc1N1YnNjcmlwdGlvbigpIHtcclxuICAgICAgICBjb25zdCB7IGFuaW1hdGUgfSA9IHRoaXMubm9kZS5nZXRQcm9wcygpO1xyXG4gICAgICAgIGlmIChpc0FuaW1hdGlvbkNvbnRyb2xzKGFuaW1hdGUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudW5tb3VudENvbnRyb2xzID0gYW5pbWF0ZS5zdWJzY3JpYmUodGhpcy5ub2RlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmliZSBhbnkgcHJvdmlkZWQgQW5pbWF0aW9uQ29udHJvbHMgdG8gdGhlIGNvbXBvbmVudCdzIFZpc3VhbEVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgbW91bnQoKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVBbmltYXRpb25Db250cm9sc1N1YnNjcmlwdGlvbigpO1xyXG4gICAgfVxyXG4gICAgdXBkYXRlKCkge1xyXG4gICAgICAgIGNvbnN0IHsgYW5pbWF0ZSB9ID0gdGhpcy5ub2RlLmdldFByb3BzKCk7XHJcbiAgICAgICAgY29uc3QgeyBhbmltYXRlOiBwcmV2QW5pbWF0ZSB9ID0gdGhpcy5ub2RlLnByZXZQcm9wcyB8fCB7fTtcclxuICAgICAgICBpZiAoYW5pbWF0ZSAhPT0gcHJldkFuaW1hdGUpIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVBbmltYXRpb25Db250cm9sc1N1YnNjcmlwdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHVubW91bnQoKSB7XHJcbiAgICAgICAgdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnJlc2V0KCk7XHJcbiAgICAgICAgdGhpcy51bm1vdW50Q29udHJvbHM/LigpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgeyBBbmltYXRpb25GZWF0dXJlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animations.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/features/animations.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animations: function() { return /* binding */ animations; }\n/* harmony export */ });\n/* harmony import */ var _animation_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs\");\n/* harmony import */ var _animation_exit_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./animation/exit.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs\");\n\r\n\r\n\r\nconst animations = {\r\n animation: {\r\n Feature: _animation_index_mjs__WEBPACK_IMPORTED_MODULE_0__.AnimationFeature,\r\n },\r\n exit: {\r\n Feature: _animation_exit_mjs__WEBPACK_IMPORTED_MODULE_1__.ExitAnimationFeature,\r\n },\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2FuaW1hdGlvbnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF5RDtBQUNHO0FBQzVEO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixrRUFBZ0I7QUFDakMsS0FBSztBQUNMO0FBQ0EsaUJBQWlCLHFFQUFvQjtBQUNyQyxLQUFLO0FBQ0w7QUFDQTtBQUNzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9hbmltYXRpb25zLm1qcz80YWZhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGlvbkZlYXR1cmUgfSBmcm9tICcuL2FuaW1hdGlvbi9pbmRleC5tanMnO1xyXG5pbXBvcnQgeyBFeGl0QW5pbWF0aW9uRmVhdHVyZSB9IGZyb20gJy4vYW5pbWF0aW9uL2V4aXQubWpzJztcclxuXHJcbmNvbnN0IGFuaW1hdGlvbnMgPSB7XHJcbiAgICBhbmltYXRpb246IHtcclxuICAgICAgICBGZWF0dXJlOiBBbmltYXRpb25GZWF0dXJlLFxyXG4gICAgfSxcclxuICAgIGV4aXQ6IHtcclxuICAgICAgICBGZWF0dXJlOiBFeGl0QW5pbWF0aW9uRmVhdHVyZSxcclxuICAgIH0sXHJcbn07XHJcblxyXG5leHBvcnQgeyBhbmltYXRpb25zIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animations.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/features/definitions.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ featureDefinitions: function() { return /* binding */ featureDefinitions; }\n/* harmony export */ });\nconst featureProps = {\r\n animation: [\r\n \"animate\",\r\n \"variants\",\r\n \"whileHover\",\r\n \"whileTap\",\r\n \"exit\",\r\n \"whileInView\",\r\n \"whileFocus\",\r\n \"whileDrag\",\r\n ],\r\n exit: [\"exit\"],\r\n drag: [\"drag\", \"dragControls\"],\r\n focus: [\"whileFocus\"],\r\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\r\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\r\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\r\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\r\n layout: [\"layout\", \"layoutId\"],\r\n};\r\nconst featureDefinitions = {};\r\nfor (const key in featureProps) {\r\n featureDefinitions[key] = {\r\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2RlZmluaXRpb25zLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQzhCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2RlZmluaXRpb25zLm1qcz8wOGJhIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGZlYXR1cmVQcm9wcyA9IHtcclxuICAgIGFuaW1hdGlvbjogW1xyXG4gICAgICAgIFwiYW5pbWF0ZVwiLFxyXG4gICAgICAgIFwidmFyaWFudHNcIixcclxuICAgICAgICBcIndoaWxlSG92ZXJcIixcclxuICAgICAgICBcIndoaWxlVGFwXCIsXHJcbiAgICAgICAgXCJleGl0XCIsXHJcbiAgICAgICAgXCJ3aGlsZUluVmlld1wiLFxyXG4gICAgICAgIFwid2hpbGVGb2N1c1wiLFxyXG4gICAgICAgIFwid2hpbGVEcmFnXCIsXHJcbiAgICBdLFxyXG4gICAgZXhpdDogW1wiZXhpdFwiXSxcclxuICAgIGRyYWc6IFtcImRyYWdcIiwgXCJkcmFnQ29udHJvbHNcIl0sXHJcbiAgICBmb2N1czogW1wid2hpbGVGb2N1c1wiXSxcclxuICAgIGhvdmVyOiBbXCJ3aGlsZUhvdmVyXCIsIFwib25Ib3ZlclN0YXJ0XCIsIFwib25Ib3ZlckVuZFwiXSxcclxuICAgIHRhcDogW1wid2hpbGVUYXBcIiwgXCJvblRhcFwiLCBcIm9uVGFwU3RhcnRcIiwgXCJvblRhcENhbmNlbFwiXSxcclxuICAgIHBhbjogW1wib25QYW5cIiwgXCJvblBhblN0YXJ0XCIsIFwib25QYW5TZXNzaW9uU3RhcnRcIiwgXCJvblBhbkVuZFwiXSxcclxuICAgIGluVmlldzogW1wid2hpbGVJblZpZXdcIiwgXCJvblZpZXdwb3J0RW50ZXJcIiwgXCJvblZpZXdwb3J0TGVhdmVcIl0sXHJcbiAgICBsYXlvdXQ6IFtcImxheW91dFwiLCBcImxheW91dElkXCJdLFxyXG59O1xyXG5jb25zdCBmZWF0dXJlRGVmaW5pdGlvbnMgPSB7fTtcclxuZm9yIChjb25zdCBrZXkgaW4gZmVhdHVyZVByb3BzKSB7XHJcbiAgICBmZWF0dXJlRGVmaW5pdGlvbnNba2V5XSA9IHtcclxuICAgICAgICBpc0VuYWJsZWQ6IChwcm9wcykgPT4gZmVhdHVyZVByb3BzW2tleV0uc29tZSgobmFtZSkgPT4gISFwcm9wc1tuYW1lXSksXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgeyBmZWF0dXJlRGVmaW5pdGlvbnMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/drag.mjs":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/features/drag.mjs ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drag: function() { return /* binding */ drag; }\n/* harmony export */ });\n/* harmony import */ var _gestures_drag_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../gestures/drag/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/index.mjs\");\n/* harmony import */ var _gestures_pan_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../gestures/pan/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/index.mjs\");\n/* harmony import */ var _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./layout/MeasureLayout.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs\");\n/* harmony import */ var _projection_node_HTMLProjectionNode_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../projection/node/HTMLProjectionNode.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs\");\n\r\n\r\n\r\n\r\n\r\nconst drag = {\r\n pan: {\r\n Feature: _gestures_pan_index_mjs__WEBPACK_IMPORTED_MODULE_0__.PanGesture,\r\n },\r\n drag: {\r\n Feature: _gestures_drag_index_mjs__WEBPACK_IMPORTED_MODULE_1__.DragGesture,\r\n ProjectionNode: _projection_node_HTMLProjectionNode_mjs__WEBPACK_IMPORTED_MODULE_2__.HTMLProjectionNode,\r\n MeasureLayout: _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_3__.MeasureLayout,\r\n },\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2RyYWcubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQTREO0FBQ0Y7QUFDQztBQUN1QjtBQUNsRjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsK0RBQVU7QUFDM0IsS0FBSztBQUNMO0FBQ0EsaUJBQWlCLGlFQUFXO0FBQzVCLHdCQUF3Qix1RkFBa0I7QUFDMUMscUJBQXFCO0FBQ3JCLEtBQUs7QUFDTDtBQUNBO0FBQ2dCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2RyYWcubWpzP2U5ZjMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZ0dlc3R1cmUgfSBmcm9tICcuLi8uLi9nZXN0dXJlcy9kcmFnL2luZGV4Lm1qcyc7XHJcbmltcG9ydCB7IFBhbkdlc3R1cmUgfSBmcm9tICcuLi8uLi9nZXN0dXJlcy9wYW4vaW5kZXgubWpzJztcclxuaW1wb3J0IHsgTWVhc3VyZUxheW91dCB9IGZyb20gJy4vbGF5b3V0L01lYXN1cmVMYXlvdXQubWpzJztcclxuaW1wb3J0IHsgSFRNTFByb2plY3Rpb25Ob2RlIH0gZnJvbSAnLi4vLi4vcHJvamVjdGlvbi9ub2RlL0hUTUxQcm9qZWN0aW9uTm9kZS5tanMnO1xyXG5cclxuY29uc3QgZHJhZyA9IHtcclxuICAgIHBhbjoge1xyXG4gICAgICAgIEZlYXR1cmU6IFBhbkdlc3R1cmUsXHJcbiAgICB9LFxyXG4gICAgZHJhZzoge1xyXG4gICAgICAgIEZlYXR1cmU6IERyYWdHZXN0dXJlLFxyXG4gICAgICAgIFByb2plY3Rpb25Ob2RlOiBIVE1MUHJvamVjdGlvbk5vZGUsXHJcbiAgICAgICAgTWVhc3VyZUxheW91dCxcclxuICAgIH0sXHJcbn07XHJcblxyXG5leHBvcnQgeyBkcmFnIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/drag.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/features/gestures.mjs ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gestureAnimations: function() { return /* binding */ gestureAnimations; }\n/* harmony export */ });\n/* harmony import */ var _gestures_hover_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../gestures/hover.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/hover.mjs\");\n/* harmony import */ var _gestures_focus_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gestures/focus.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/focus.mjs\");\n/* harmony import */ var _gestures_press_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../gestures/press.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/press.mjs\");\n/* harmony import */ var _viewport_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./viewport/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs\");\n\r\n\r\n\r\n\r\n\r\nconst gestureAnimations = {\r\n inView: {\r\n Feature: _viewport_index_mjs__WEBPACK_IMPORTED_MODULE_0__.InViewFeature,\r\n },\r\n tap: {\r\n Feature: _gestures_press_mjs__WEBPACK_IMPORTED_MODULE_1__.PressGesture,\r\n },\r\n focus: {\r\n Feature: _gestures_focus_mjs__WEBPACK_IMPORTED_MODULE_2__.FocusGesture,\r\n },\r\n hover: {\r\n Feature: _gestures_hover_mjs__WEBPACK_IMPORTED_MODULE_3__.HoverGesture,\r\n },\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2dlc3R1cmVzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUF3RDtBQUNBO0FBQ0E7QUFDSDtBQUNyRDtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsOERBQWE7QUFDOUIsS0FBSztBQUNMO0FBQ0EsaUJBQWlCLDZEQUFZO0FBQzdCLEtBQUs7QUFDTDtBQUNBLGlCQUFpQiw2REFBWTtBQUM3QixLQUFLO0FBQ0w7QUFDQSxpQkFBaUIsNkRBQVk7QUFDN0IsS0FBSztBQUNMO0FBQ0E7QUFDNkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvZ2VzdHVyZXMubWpzP2RkOTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSG92ZXJHZXN0dXJlIH0gZnJvbSAnLi4vLi4vZ2VzdHVyZXMvaG92ZXIubWpzJztcclxuaW1wb3J0IHsgRm9jdXNHZXN0dXJlIH0gZnJvbSAnLi4vLi4vZ2VzdHVyZXMvZm9jdXMubWpzJztcclxuaW1wb3J0IHsgUHJlc3NHZXN0dXJlIH0gZnJvbSAnLi4vLi4vZ2VzdHVyZXMvcHJlc3MubWpzJztcclxuaW1wb3J0IHsgSW5WaWV3RmVhdHVyZSB9IGZyb20gJy4vdmlld3BvcnQvaW5kZXgubWpzJztcclxuXHJcbmNvbnN0IGdlc3R1cmVBbmltYXRpb25zID0ge1xyXG4gICAgaW5WaWV3OiB7XHJcbiAgICAgICAgRmVhdHVyZTogSW5WaWV3RmVhdHVyZSxcclxuICAgIH0sXHJcbiAgICB0YXA6IHtcclxuICAgICAgICBGZWF0dXJlOiBQcmVzc0dlc3R1cmUsXHJcbiAgICB9LFxyXG4gICAgZm9jdXM6IHtcclxuICAgICAgICBGZWF0dXJlOiBGb2N1c0dlc3R1cmUsXHJcbiAgICB9LFxyXG4gICAgaG92ZXI6IHtcclxuICAgICAgICBGZWF0dXJlOiBIb3Zlckdlc3R1cmUsXHJcbiAgICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IHsgZ2VzdHVyZUFuaW1hdGlvbnMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout.mjs":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/features/layout.mjs ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ layout: function() { return /* binding */ layout; }\n/* harmony export */ });\n/* harmony import */ var _projection_node_HTMLProjectionNode_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../projection/node/HTMLProjectionNode.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs\");\n/* harmony import */ var _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layout/MeasureLayout.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs\");\n\r\n\r\n\r\nconst layout = {\r\n layout: {\r\n ProjectionNode: _projection_node_HTMLProjectionNode_mjs__WEBPACK_IMPORTED_MODULE_0__.HTMLProjectionNode,\r\n MeasureLayout: _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_1__.MeasureLayout,\r\n },\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2xheW91dC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWtGO0FBQ3ZCO0FBQzNEO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qix1RkFBa0I7QUFDMUMscUJBQXFCO0FBQ3JCLEtBQUs7QUFDTDtBQUNBO0FBQ2tCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2xheW91dC5tanM/YmNjMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVE1MUHJvamVjdGlvbk5vZGUgfSBmcm9tICcuLi8uLi9wcm9qZWN0aW9uL25vZGUvSFRNTFByb2plY3Rpb25Ob2RlLm1qcyc7XHJcbmltcG9ydCB7IE1lYXN1cmVMYXlvdXQgfSBmcm9tICcuL2xheW91dC9NZWFzdXJlTGF5b3V0Lm1qcyc7XHJcblxyXG5jb25zdCBsYXlvdXQgPSB7XHJcbiAgICBsYXlvdXQ6IHtcclxuICAgICAgICBQcm9qZWN0aW9uTm9kZTogSFRNTFByb2plY3Rpb25Ob2RlLFxyXG4gICAgICAgIE1lYXN1cmVMYXlvdXQsXHJcbiAgICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IHsgbGF5b3V0IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs":
|
||
/*!*************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs ***!
|
||
\*************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MeasureLayout: function() { return /* binding */ MeasureLayout; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _components_AnimatePresence_use_presence_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../components/AnimatePresence/use-presence.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs\");\n/* harmony import */ var _context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../context/LayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs\");\n/* harmony import */ var _context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../context/SwitchLayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs\");\n/* harmony import */ var _projection_node_state_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../projection/node/state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/state.mjs\");\n/* harmony import */ var _projection_styles_scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../projection/styles/scale-border-radius.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs\");\n/* harmony import */ var _projection_styles_scale_box_shadow_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../projection/styles/scale-box-shadow.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs\");\n/* harmony import */ var _projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../projection/styles/scale-correction.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Track whether we've taken any snapshots yet. If not,\r\n * we can safely skip notification of didUpdate.\r\n *\r\n * Difficult to capture in a test but to prevent flickering\r\n * we must set this to true either on update or unmount.\r\n * Running `next-env/layout-id` in Safari will show this behaviour if broken.\r\n */\r\nlet hasTakenAnySnapshot = false;\r\nclass MeasureLayoutWithContext extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\r\n /**\r\n * This only mounts projection nodes for components that\r\n * need measuring, we might want to do it for all components\r\n * in order to incorporate transforms\r\n */\r\n componentDidMount() {\r\n const { visualElement, layoutGroup, switchLayoutGroup, layoutId } = this.props;\r\n const { projection } = visualElement;\r\n (0,_projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_2__.addScaleCorrector)(defaultScaleCorrectors);\r\n if (projection) {\r\n if (layoutGroup.group)\r\n layoutGroup.group.add(projection);\r\n if (switchLayoutGroup && switchLayoutGroup.register && layoutId) {\r\n switchLayoutGroup.register(projection);\r\n }\r\n if (hasTakenAnySnapshot) {\r\n projection.root.didUpdate();\r\n }\r\n projection.addEventListener(\"animationComplete\", () => {\r\n this.safeToRemove();\r\n });\r\n projection.setOptions({\r\n ...projection.options,\r\n onExitComplete: () => this.safeToRemove(),\r\n });\r\n }\r\n _projection_node_state_mjs__WEBPACK_IMPORTED_MODULE_3__.globalProjectionState.hasEverUpdated = true;\r\n }\r\n getSnapshotBeforeUpdate(prevProps) {\r\n const { layoutDependency, visualElement, drag, isPresent } = this.props;\r\n const { projection } = visualElement;\r\n if (!projection)\r\n return null;\r\n /**\r\n * TODO: We use this data in relegate to determine whether to\r\n * promote a previous element. There's no guarantee its presence data\r\n * will have updated by this point - if a bug like this arises it will\r\n * have to be that we markForRelegation and then find a new lead some other way,\r\n * perhaps in didUpdate\r\n */\r\n projection.isPresent = isPresent;\r\n hasTakenAnySnapshot = true;\r\n if (drag ||\r\n prevProps.layoutDependency !== layoutDependency ||\r\n layoutDependency === undefined ||\r\n prevProps.isPresent !== isPresent) {\r\n projection.willUpdate();\r\n }\r\n else {\r\n this.safeToRemove();\r\n }\r\n if (prevProps.isPresent !== isPresent) {\r\n if (isPresent) {\r\n projection.promote();\r\n }\r\n else if (!projection.relegate()) {\r\n /**\r\n * If there's another stack member taking over from this one,\r\n * it's in charge of the exit animation and therefore should\r\n * be in charge of the safe to remove. Otherwise we call it here.\r\n */\r\n motion_dom__WEBPACK_IMPORTED_MODULE_4__.frame.postRender(() => {\r\n const stack = projection.getStack();\r\n if (!stack || !stack.members.length) {\r\n this.safeToRemove();\r\n }\r\n });\r\n }\r\n }\r\n return null;\r\n }\r\n componentDidUpdate() {\r\n const { projection } = this.props.visualElement;\r\n if (projection) {\r\n projection.root.didUpdate();\r\n motion_dom__WEBPACK_IMPORTED_MODULE_5__.microtask.postRender(() => {\r\n if (!projection.currentAnimation && projection.isLead()) {\r\n this.safeToRemove();\r\n }\r\n });\r\n }\r\n }\r\n componentWillUnmount() {\r\n const { visualElement, layoutGroup, switchLayoutGroup: promoteContext, } = this.props;\r\n const { projection } = visualElement;\r\n hasTakenAnySnapshot = true;\r\n if (projection) {\r\n projection.scheduleCheckAfterUnmount();\r\n if (layoutGroup && layoutGroup.group)\r\n layoutGroup.group.remove(projection);\r\n if (promoteContext && promoteContext.deregister)\r\n promoteContext.deregister(projection);\r\n }\r\n }\r\n safeToRemove() {\r\n const { safeToRemove } = this.props;\r\n safeToRemove && safeToRemove();\r\n }\r\n render() {\r\n return null;\r\n }\r\n}\r\nfunction MeasureLayout(props) {\r\n const [isPresent, safeToRemove] = (0,_components_AnimatePresence_use_presence_mjs__WEBPACK_IMPORTED_MODULE_6__.usePresence)();\r\n const layoutGroup = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_7__.LayoutGroupContext);\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MeasureLayoutWithContext, { ...props, layoutGroup: layoutGroup, switchLayoutGroup: (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_8__.SwitchLayoutGroupContext), isPresent: isPresent, safeToRemove: safeToRemove }));\r\n}\r\nconst defaultScaleCorrectors = {\r\n borderRadius: {\r\n ..._projection_styles_scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_9__.correctBorderRadius,\r\n applyTo: [\r\n \"borderTopLeftRadius\",\r\n \"borderTopRightRadius\",\r\n \"borderBottomLeftRadius\",\r\n \"borderBottomRightRadius\",\r\n ],\r\n },\r\n borderTopLeftRadius: _projection_styles_scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_9__.correctBorderRadius,\r\n borderTopRightRadius: _projection_styles_scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_9__.correctBorderRadius,\r\n borderBottomLeftRadius: _projection_styles_scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_9__.correctBorderRadius,\r\n borderBottomRightRadius: _projection_styles_scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_9__.correctBorderRadius,\r\n boxShadow: _projection_styles_scale_box_shadow_mjs__WEBPACK_IMPORTED_MODULE_10__.correctBoxShadow,\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2xheW91dC9NZWFzdXJlTGF5b3V0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUN3QztBQUNNO0FBQ0E7QUFDcUM7QUFDTjtBQUNZO0FBQ2Q7QUFDYztBQUNOO0FBQ0M7QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsNENBQVM7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDBEQUEwRDtBQUMxRSxnQkFBZ0IsYUFBYTtBQUM3QixRQUFRLDBGQUFpQjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLFFBQVEsNkVBQXFCO0FBQzdCO0FBQ0E7QUFDQSxnQkFBZ0IsbURBQW1EO0FBQ25FLGdCQUFnQixhQUFhO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw2Q0FBSztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGFBQWE7QUFDN0I7QUFDQTtBQUNBLFlBQVksaURBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixpRUFBaUU7QUFDakYsZ0JBQWdCLGFBQWE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsZUFBZTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyx5RkFBVztBQUNqRCx3QkFBd0IsaURBQVUsQ0FBQywrRUFBa0I7QUFDckQsWUFBWSxzREFBRyw2QkFBNkIsdURBQXVELGlEQUFVLENBQUMsMkZBQXdCLHFEQUFxRDtBQUMzTDtBQUNBO0FBQ0E7QUFDQSxXQUFXLDJGQUFtQjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wseUJBQXlCLDJGQUFtQjtBQUM1QywwQkFBMEIsMkZBQW1CO0FBQzdDLDRCQUE0QiwyRkFBbUI7QUFDL0MsNkJBQTZCLDJGQUFtQjtBQUNoRCxlQUFlLHNGQUFnQjtBQUMvQjtBQUNBO0FBQ3lCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2xheW91dC9NZWFzdXJlTGF5b3V0Lm1qcz83ZWExIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XHJcbmltcG9ydCB7IGZyYW1lLCBtaWNyb3Rhc2sgfSBmcm9tICdtb3Rpb24tZG9tJztcclxuaW1wb3J0IHsgdXNlQ29udGV4dCwgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyB1c2VQcmVzZW5jZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvQW5pbWF0ZVByZXNlbmNlL3VzZS1wcmVzZW5jZS5tanMnO1xyXG5pbXBvcnQgeyBMYXlvdXRHcm91cENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L0xheW91dEdyb3VwQ29udGV4dC5tanMnO1xyXG5pbXBvcnQgeyBTd2l0Y2hMYXlvdXRHcm91cENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L1N3aXRjaExheW91dEdyb3VwQ29udGV4dC5tanMnO1xyXG5pbXBvcnQgeyBnbG9iYWxQcm9qZWN0aW9uU3RhdGUgfSBmcm9tICcuLi8uLi8uLi9wcm9qZWN0aW9uL25vZGUvc3RhdGUubWpzJztcclxuaW1wb3J0IHsgY29ycmVjdEJvcmRlclJhZGl1cyB9IGZyb20gJy4uLy4uLy4uL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWJvcmRlci1yYWRpdXMubWpzJztcclxuaW1wb3J0IHsgY29ycmVjdEJveFNoYWRvdyB9IGZyb20gJy4uLy4uLy4uL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWJveC1zaGFkb3cubWpzJztcclxuaW1wb3J0IHsgYWRkU2NhbGVDb3JyZWN0b3IgfSBmcm9tICcuLi8uLi8uLi9wcm9qZWN0aW9uL3N0eWxlcy9zY2FsZS1jb3JyZWN0aW9uLm1qcyc7XHJcblxyXG4vKipcclxuICogVHJhY2sgd2hldGhlciB3ZSd2ZSB0YWtlbiBhbnkgc25hcHNob3RzIHlldC4gSWYgbm90LFxyXG4gKiB3ZSBjYW4gc2FmZWx5IHNraXAgbm90aWZpY2F0aW9uIG9mIGRpZFVwZGF0ZS5cclxuICpcclxuICogRGlmZmljdWx0IHRvIGNhcHR1cmUgaW4gYSB0ZXN0IGJ1dCB0byBwcmV2ZW50IGZsaWNrZXJpbmdcclxuICogd2UgbXVzdCBzZXQgdGhpcyB0byB0cnVlIGVpdGhlciBvbiB1cGRhdGUgb3IgdW5tb3VudC5cclxuICogUnVubmluZyBgbmV4dC1lbnYvbGF5b3V0LWlkYCBpbiBTYWZhcmkgd2lsbCBzaG93IHRoaXMgYmVoYXZpb3VyIGlmIGJyb2tlbi5cclxuICovXHJcbmxldCBoYXNUYWtlbkFueVNuYXBzaG90ID0gZmFsc2U7XHJcbmNsYXNzIE1lYXN1cmVMYXlvdXRXaXRoQ29udGV4dCBleHRlbmRzIENvbXBvbmVudCB7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgb25seSBtb3VudHMgcHJvamVjdGlvbiBub2RlcyBmb3IgY29tcG9uZW50cyB0aGF0XHJcbiAgICAgKiBuZWVkIG1lYXN1cmluZywgd2UgbWlnaHQgd2FudCB0byBkbyBpdCBmb3IgYWxsIGNvbXBvbmVudHNcclxuICAgICAqIGluIG9yZGVyIHRvIGluY29ycG9yYXRlIHRyYW5zZm9ybXNcclxuICAgICAqL1xyXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICAgICAgY29uc3QgeyB2aXN1YWxFbGVtZW50LCBsYXlvdXRHcm91cCwgc3dpdGNoTGF5b3V0R3JvdXAsIGxheW91dElkIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgIGNvbnN0IHsgcHJvamVjdGlvbiB9ID0gdmlzdWFsRWxlbWVudDtcclxuICAgICAgICBhZGRTY2FsZUNvcnJlY3RvcihkZWZhdWx0U2NhbGVDb3JyZWN0b3JzKTtcclxuICAgICAgICBpZiAocHJvamVjdGlvbikge1xyXG4gICAgICAgICAgICBpZiAobGF5b3V0R3JvdXAuZ3JvdXApXHJcbiAgICAgICAgICAgICAgICBsYXlvdXRHcm91cC5ncm91cC5hZGQocHJvamVjdGlvbik7XHJcbiAgICAgICAgICAgIGlmIChzd2l0Y2hMYXlvdXRHcm91cCAmJiBzd2l0Y2hMYXlvdXRHcm91cC5yZWdpc3RlciAmJiBsYXlvdXRJZCkge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoTGF5b3V0R3JvdXAucmVnaXN0ZXIocHJvamVjdGlvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGhhc1Rha2VuQW55U25hcHNob3QpIHtcclxuICAgICAgICAgICAgICAgIHByb2plY3Rpb24ucm9vdC5kaWRVcGRhdGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwcm9qZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoXCJhbmltYXRpb25Db21wbGV0ZVwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNhZmVUb1JlbW92ZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcHJvamVjdGlvbi5zZXRPcHRpb25zKHtcclxuICAgICAgICAgICAgICAgIC4uLnByb2plY3Rpb24ub3B0aW9ucyxcclxuICAgICAgICAgICAgICAgIG9uRXhpdENvbXBsZXRlOiAoKSA9PiB0aGlzLnNhZmVUb1JlbW92ZSgpLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZ2xvYmFsUHJvamVjdGlvblN0YXRlLmhhc0V2ZXJVcGRhdGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKHByZXZQcm9wcykge1xyXG4gICAgICAgIGNvbnN0IHsgbGF5b3V0RGVwZW5kZW5jeSwgdmlzdWFsRWxlbWVudCwgZHJhZywgaXNQcmVzZW50IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgIGNvbnN0IHsgcHJvamVjdGlvbiB9ID0gdmlzdWFsRWxlbWVudDtcclxuICAgICAgICBpZiAoIXByb2plY3Rpb24pXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRPRE86IFdlIHVzZSB0aGlzIGRhdGEgaW4gcmVsZWdhdGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG9cclxuICAgICAgICAgKiBwcm9tb3RlIGEgcHJldmlvdXMgZWxlbWVudC4gVGhlcmUncyBubyBndWFyYW50ZWUgaXRzIHByZXNlbmNlIGRhdGFcclxuICAgICAgICAgKiB3aWxsIGhhdmUgdXBkYXRlZCBieSB0aGlzIHBvaW50IC0gaWYgYSBidWcgbGlrZSB0aGlzIGFyaXNlcyBpdCB3aWxsXHJcbiAgICAgICAgICogaGF2ZSB0byBiZSB0aGF0IHdlIG1hcmtGb3JSZWxlZ2F0aW9uIGFuZCB0aGVuIGZpbmQgYSBuZXcgbGVhZCBzb21lIG90aGVyIHdheSxcclxuICAgICAgICAgKiBwZXJoYXBzIGluIGRpZFVwZGF0ZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHByb2plY3Rpb24uaXNQcmVzZW50ID0gaXNQcmVzZW50O1xyXG4gICAgICAgIGhhc1Rha2VuQW55U25hcHNob3QgPSB0cnVlO1xyXG4gICAgICAgIGlmIChkcmFnIHx8XHJcbiAgICAgICAgICAgIHByZXZQcm9wcy5sYXlvdXREZXBlbmRlbmN5ICE9PSBsYXlvdXREZXBlbmRlbmN5IHx8XHJcbiAgICAgICAgICAgIGxheW91dERlcGVuZGVuY3kgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgICBwcmV2UHJvcHMuaXNQcmVzZW50ICE9PSBpc1ByZXNlbnQpIHtcclxuICAgICAgICAgICAgcHJvamVjdGlvbi53aWxsVXBkYXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNhZmVUb1JlbW92ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocHJldlByb3BzLmlzUHJlc2VudCAhPT0gaXNQcmVzZW50KSB7XHJcbiAgICAgICAgICAgIGlmIChpc1ByZXNlbnQpIHtcclxuICAgICAgICAgICAgICAgIHByb2plY3Rpb24ucHJvbW90ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKCFwcm9qZWN0aW9uLnJlbGVnYXRlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICogSWYgdGhlcmUncyBhbm90aGVyIHN0YWNrIG1lbWJlciB0YWtpbmcgb3ZlciBmcm9tIHRoaXMgb25lLFxyXG4gICAgICAgICAgICAgICAgICogaXQncyBpbiBjaGFyZ2Ugb2YgdGhlIGV4aXQgYW5pbWF0aW9uIGFuZCB0aGVyZWZvcmUgc2hvdWxkXHJcbiAgICAgICAgICAgICAgICAgKiBiZSBpbiBjaGFyZ2Ugb2YgdGhlIHNhZmUgdG8gcmVtb3ZlLiBPdGhlcndpc2Ugd2UgY2FsbCBpdCBoZXJlLlxyXG4gICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICBmcmFtZS5wb3N0UmVuZGVyKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFjayA9IHByb2plY3Rpb24uZ2V0U3RhY2soKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXN0YWNrIHx8ICFzdGFjay5tZW1iZXJzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNhZmVUb1JlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xyXG4gICAgICAgIGNvbnN0IHsgcHJvamVjdGlvbiB9ID0gdGhpcy5wcm9wcy52aXN1YWxFbGVtZW50O1xyXG4gICAgICAgIGlmIChwcm9qZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIHByb2plY3Rpb24ucm9vdC5kaWRVcGRhdGUoKTtcclxuICAgICAgICAgICAgbWljcm90YXNrLnBvc3RSZW5kZXIoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFwcm9qZWN0aW9uLmN1cnJlbnRBbmltYXRpb24gJiYgcHJvamVjdGlvbi5pc0xlYWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2FmZVRvUmVtb3ZlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCwgbGF5b3V0R3JvdXAsIHN3aXRjaExheW91dEdyb3VwOiBwcm9tb3RlQ29udGV4dCwgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uIH0gPSB2aXN1YWxFbGVtZW50O1xyXG4gICAgICAgIGhhc1Rha2VuQW55U25hcHNob3QgPSB0cnVlO1xyXG4gICAgICAgIGlmIChwcm9qZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIHByb2plY3Rpb24uc2NoZWR1bGVDaGVja0FmdGVyVW5tb3VudCgpO1xyXG4gICAgICAgICAgICBpZiAobGF5b3V0R3JvdXAgJiYgbGF5b3V0R3JvdXAuZ3JvdXApXHJcbiAgICAgICAgICAgICAgICBsYXlvdXRHcm91cC5ncm91cC5yZW1vdmUocHJvamVjdGlvbik7XHJcbiAgICAgICAgICAgIGlmIChwcm9tb3RlQ29udGV4dCAmJiBwcm9tb3RlQ29udGV4dC5kZXJlZ2lzdGVyKVxyXG4gICAgICAgICAgICAgICAgcHJvbW90ZUNvbnRleHQuZGVyZWdpc3Rlcihwcm9qZWN0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBzYWZlVG9SZW1vdmUoKSB7XHJcbiAgICAgICAgY29uc3QgeyBzYWZlVG9SZW1vdmUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgc2FmZVRvUmVtb3ZlICYmIHNhZmVUb1JlbW92ZSgpO1xyXG4gICAgfVxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIE1lYXN1cmVMYXlvdXQocHJvcHMpIHtcclxuICAgIGNvbnN0IFtpc1ByZXNlbnQsIHNhZmVUb1JlbW92ZV0gPSB1c2VQcmVzZW5jZSgpO1xyXG4gICAgY29uc3QgbGF5b3V0R3JvdXAgPSB1c2VDb250ZXh0KExheW91dEdyb3VwQ29udGV4dCk7XHJcbiAgICByZXR1cm4gKGpzeChNZWFzdXJlTGF5b3V0V2l0aENvbnRleHQsIHsgLi4ucHJvcHMsIGxheW91dEdyb3VwOiBsYXlvdXRHcm91cCwgc3dpdGNoTGF5b3V0R3JvdXA6IHVzZUNvbnRleHQoU3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0KSwgaXNQcmVzZW50OiBpc1ByZXNlbnQsIHNhZmVUb1JlbW92ZTogc2FmZVRvUmVtb3ZlIH0pKTtcclxufVxyXG5jb25zdCBkZWZhdWx0U2NhbGVDb3JyZWN0b3JzID0ge1xyXG4gICAgYm9yZGVyUmFkaXVzOiB7XHJcbiAgICAgICAgLi4uY29ycmVjdEJvcmRlclJhZGl1cyxcclxuICAgICAgICBhcHBseVRvOiBbXHJcbiAgICAgICAgICAgIFwiYm9yZGVyVG9wTGVmdFJhZGl1c1wiLFxyXG4gICAgICAgICAgICBcImJvcmRlclRvcFJpZ2h0UmFkaXVzXCIsXHJcbiAgICAgICAgICAgIFwiYm9yZGVyQm90dG9tTGVmdFJhZGl1c1wiLFxyXG4gICAgICAgICAgICBcImJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzXCIsXHJcbiAgICAgICAgXSxcclxuICAgIH0sXHJcbiAgICBib3JkZXJUb3BMZWZ0UmFkaXVzOiBjb3JyZWN0Qm9yZGVyUmFkaXVzLFxyXG4gICAgYm9yZGVyVG9wUmlnaHRSYWRpdXM6IGNvcnJlY3RCb3JkZXJSYWRpdXMsXHJcbiAgICBib3JkZXJCb3R0b21MZWZ0UmFkaXVzOiBjb3JyZWN0Qm9yZGVyUmFkaXVzLFxyXG4gICAgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IGNvcnJlY3RCb3JkZXJSYWRpdXMsXHJcbiAgICBib3hTaGFkb3c6IGNvcnJlY3RCb3hTaGFkb3csXHJcbn07XHJcblxyXG5leHBvcnQgeyBNZWFzdXJlTGF5b3V0IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/features/load-features.mjs ***!
|
||
\******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadFeatures: function() { return /* binding */ loadFeatures; }\n/* harmony export */ });\n/* harmony import */ var _definitions_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./definitions.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs\");\n\r\n\r\nfunction loadFeatures(features) {\r\n for (const key in features) {\r\n _definitions_mjs__WEBPACK_IMPORTED_MODULE_0__.featureDefinitions[key] = {\r\n ..._definitions_mjs__WEBPACK_IMPORTED_MODULE_0__.featureDefinitions[key],\r\n ...features[key],\r\n };\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2xvYWQtZmVhdHVyZXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXVEO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBLFFBQVEsZ0VBQWtCO0FBQzFCLGVBQWUsZ0VBQWtCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDd0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvbG9hZC1mZWF0dXJlcy5tanM/MTEyZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZWF0dXJlRGVmaW5pdGlvbnMgfSBmcm9tICcuL2RlZmluaXRpb25zLm1qcyc7XHJcblxyXG5mdW5jdGlvbiBsb2FkRmVhdHVyZXMoZmVhdHVyZXMpIHtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGZlYXR1cmVzKSB7XHJcbiAgICAgICAgZmVhdHVyZURlZmluaXRpb25zW2tleV0gPSB7XHJcbiAgICAgICAgICAgIC4uLmZlYXR1cmVEZWZpbml0aW9uc1trZXldLFxyXG4gICAgICAgICAgICAuLi5mZWF0dXJlc1trZXldLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IGxvYWRGZWF0dXJlcyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InViewFeature: function() { return /* binding */ InViewFeature; }\n/* harmony export */ });\n/* harmony import */ var _Feature_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Feature.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/Feature.mjs\");\n/* harmony import */ var _observers_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./observers.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs\");\n\r\n\r\n\r\nconst thresholdNames = {\r\n some: 0,\r\n all: 1,\r\n};\r\nclass InViewFeature extends _Feature_mjs__WEBPACK_IMPORTED_MODULE_0__.Feature {\r\n constructor() {\r\n super(...arguments);\r\n this.hasEnteredView = false;\r\n this.isInView = false;\r\n }\r\n startObserver() {\r\n this.unmount();\r\n const { viewport = {} } = this.node.getProps();\r\n const { root, margin: rootMargin, amount = \"some\", once } = viewport;\r\n const options = {\r\n root: root ? root.current : undefined,\r\n rootMargin,\r\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\r\n };\r\n const onIntersectionUpdate = (entry) => {\r\n const { isIntersecting } = entry;\r\n /**\r\n * If there's been no change in the viewport state, early return.\r\n */\r\n if (this.isInView === isIntersecting)\r\n return;\r\n this.isInView = isIntersecting;\r\n /**\r\n * Handle hasEnteredView. If this is only meant to run once, and\r\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\r\n */\r\n if (once && !isIntersecting && this.hasEnteredView) {\r\n return;\r\n }\r\n else if (isIntersecting) {\r\n this.hasEnteredView = true;\r\n }\r\n if (this.node.animationState) {\r\n this.node.animationState.setActive(\"whileInView\", isIntersecting);\r\n }\r\n /**\r\n * Use the latest committed props rather than the ones in scope\r\n * when this observer is created\r\n */\r\n const { onViewportEnter, onViewportLeave } = this.node.getProps();\r\n const callback = isIntersecting ? onViewportEnter : onViewportLeave;\r\n callback && callback(entry);\r\n };\r\n return (0,_observers_mjs__WEBPACK_IMPORTED_MODULE_1__.observeIntersection)(this.node.current, options, onIntersectionUpdate);\r\n }\r\n mount() {\r\n this.startObserver();\r\n }\r\n update() {\r\n if (typeof IntersectionObserver === \"undefined\")\r\n return;\r\n const { props, prevProps } = this.node;\r\n const hasOptionsChanged = [\"amount\", \"margin\", \"root\"].some(hasViewportOptionChanged(props, prevProps));\r\n if (hasOptionsChanged) {\r\n this.startObserver();\r\n }\r\n }\r\n unmount() { }\r\n}\r\nfunction hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) {\r\n return (name) => viewport[name] !== prevViewport[name];\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL3ZpZXdwb3J0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBeUM7QUFDYTtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLGlEQUFPO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGdCQUFnQjtBQUNoQyxnQkFBZ0Isa0RBQWtEO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtQ0FBbUM7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtRUFBbUI7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbUJBQW1CO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLGVBQWUsSUFBSSw4QkFBOEIsSUFBSTtBQUN6RjtBQUNBO0FBQ0E7QUFDeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvdmlld3BvcnQvaW5kZXgubWpzPzQ1ZTQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uL0ZlYXR1cmUubWpzJztcclxuaW1wb3J0IHsgb2JzZXJ2ZUludGVyc2VjdGlvbiB9IGZyb20gJy4vb2JzZXJ2ZXJzLm1qcyc7XHJcblxyXG5jb25zdCB0aHJlc2hvbGROYW1lcyA9IHtcclxuICAgIHNvbWU6IDAsXHJcbiAgICBhbGw6IDEsXHJcbn07XHJcbmNsYXNzIEluVmlld0ZlYXR1cmUgZXh0ZW5kcyBGZWF0dXJlIHtcclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XHJcbiAgICAgICAgdGhpcy5oYXNFbnRlcmVkVmlldyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNJblZpZXcgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHN0YXJ0T2JzZXJ2ZXIoKSB7XHJcbiAgICAgICAgdGhpcy51bm1vdW50KCk7XHJcbiAgICAgICAgY29uc3QgeyB2aWV3cG9ydCA9IHt9IH0gPSB0aGlzLm5vZGUuZ2V0UHJvcHMoKTtcclxuICAgICAgICBjb25zdCB7IHJvb3QsIG1hcmdpbjogcm9vdE1hcmdpbiwgYW1vdW50ID0gXCJzb21lXCIsIG9uY2UgfSA9IHZpZXdwb3J0O1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIHJvb3Q6IHJvb3QgPyByb290LmN1cnJlbnQgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgIHJvb3RNYXJnaW4sXHJcbiAgICAgICAgICAgIHRocmVzaG9sZDogdHlwZW9mIGFtb3VudCA9PT0gXCJudW1iZXJcIiA/IGFtb3VudCA6IHRocmVzaG9sZE5hbWVzW2Ftb3VudF0sXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBvbkludGVyc2VjdGlvblVwZGF0ZSA9IChlbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IGlzSW50ZXJzZWN0aW5nIH0gPSBlbnRyeTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIElmIHRoZXJlJ3MgYmVlbiBubyBjaGFuZ2UgaW4gdGhlIHZpZXdwb3J0IHN0YXRlLCBlYXJseSByZXR1cm4uXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc0luVmlldyA9PT0gaXNJbnRlcnNlY3RpbmcpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIHRoaXMuaXNJblZpZXcgPSBpc0ludGVyc2VjdGluZztcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEhhbmRsZSBoYXNFbnRlcmVkVmlldy4gSWYgdGhpcyBpcyBvbmx5IG1lYW50IHRvIHJ1biBvbmNlLCBhbmRcclxuICAgICAgICAgICAgICogZWxlbWVudCBpc24ndCB2aXNpYmxlLCBlYXJseSByZXR1cm4uIE90aGVyd2lzZSBzZXQgaGFzRW50ZXJlZFZpZXcgdG8gdHJ1ZS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmIChvbmNlICYmICFpc0ludGVyc2VjdGluZyAmJiB0aGlzLmhhc0VudGVyZWRWaWV3KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaXNJbnRlcnNlY3RpbmcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFzRW50ZXJlZFZpZXcgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoXCJ3aGlsZUluVmlld1wiLCBpc0ludGVyc2VjdGluZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFVzZSB0aGUgbGF0ZXN0IGNvbW1pdHRlZCBwcm9wcyByYXRoZXIgdGhhbiB0aGUgb25lcyBpbiBzY29wZVxyXG4gICAgICAgICAgICAgKiB3aGVuIHRoaXMgb2JzZXJ2ZXIgaXMgY3JlYXRlZFxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgY29uc3QgeyBvblZpZXdwb3J0RW50ZXIsIG9uVmlld3BvcnRMZWF2ZSB9ID0gdGhpcy5ub2RlLmdldFByb3BzKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gaXNJbnRlcnNlY3RpbmcgPyBvblZpZXdwb3J0RW50ZXIgOiBvblZpZXdwb3J0TGVhdmU7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKGVudHJ5KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBvYnNlcnZlSW50ZXJzZWN0aW9uKHRoaXMubm9kZS5jdXJyZW50LCBvcHRpb25zLCBvbkludGVyc2VjdGlvblVwZGF0ZSk7XHJcbiAgICB9XHJcbiAgICBtb3VudCgpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0T2JzZXJ2ZXIoKTtcclxuICAgIH1cclxuICAgIHVwZGF0ZSgpIHtcclxuICAgICAgICBpZiAodHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyID09PSBcInVuZGVmaW5lZFwiKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgY29uc3QgeyBwcm9wcywgcHJldlByb3BzIH0gPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgY29uc3QgaGFzT3B0aW9uc0NoYW5nZWQgPSBbXCJhbW91bnRcIiwgXCJtYXJnaW5cIiwgXCJyb290XCJdLnNvbWUoaGFzVmlld3BvcnRPcHRpb25DaGFuZ2VkKHByb3BzLCBwcmV2UHJvcHMpKTtcclxuICAgICAgICBpZiAoaGFzT3B0aW9uc0NoYW5nZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydE9ic2VydmVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdW5tb3VudCgpIHsgfVxyXG59XHJcbmZ1bmN0aW9uIGhhc1ZpZXdwb3J0T3B0aW9uQ2hhbmdlZCh7IHZpZXdwb3J0ID0ge30gfSwgeyB2aWV3cG9ydDogcHJldlZpZXdwb3J0ID0ge30gfSA9IHt9KSB7XHJcbiAgICByZXR1cm4gKG5hbWUpID0+IHZpZXdwb3J0W25hbWVdICE9PSBwcmV2Vmlld3BvcnRbbmFtZV07XHJcbn1cclxuXHJcbmV4cG9ydCB7IEluVmlld0ZlYXR1cmUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs ***!
|
||
\***********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ observeIntersection: function() { return /* binding */ observeIntersection; }\n/* harmony export */ });\n/**\r\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\r\n * element, so even though these handlers might all be triggered by different\r\n * observers, we can keep them in the same map.\r\n */\r\nconst observerCallbacks = new WeakMap();\r\n/**\r\n * Multiple observers can be created for multiple element/document roots. Each with\r\n * different settings. So here we store dictionaries of observers to each root,\r\n * using serialised settings (threshold/margin) as lookup keys.\r\n */\r\nconst observers = new WeakMap();\r\nconst fireObserverCallback = (entry) => {\r\n const callback = observerCallbacks.get(entry.target);\r\n callback && callback(entry);\r\n};\r\nconst fireAllObserverCallbacks = (entries) => {\r\n entries.forEach(fireObserverCallback);\r\n};\r\nfunction initIntersectionObserver({ root, ...options }) {\r\n const lookupRoot = root || document;\r\n /**\r\n * If we don't have an observer lookup map for this root, create one.\r\n */\r\n if (!observers.has(lookupRoot)) {\r\n observers.set(lookupRoot, {});\r\n }\r\n const rootObservers = observers.get(lookupRoot);\r\n const key = JSON.stringify(options);\r\n /**\r\n * If we don't have an observer for this combination of root and settings,\r\n * create one.\r\n */\r\n if (!rootObservers[key]) {\r\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options });\r\n }\r\n return rootObservers[key];\r\n}\r\nfunction observeIntersection(element, options, callback) {\r\n const rootInteresectionObserver = initIntersectionObserver(options);\r\n observerCallbacks.set(element, callback);\r\n rootInteresectionObserver.observe(element);\r\n return () => {\r\n observerCallbacks.delete(element);\r\n rootInteresectionObserver.unobserve(element);\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL3ZpZXdwb3J0L29ic2VydmVycy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLGtCQUFrQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrRkFBa0Ysa0JBQWtCO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQytCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL3ZpZXdwb3J0L29ic2VydmVycy5tanM/NjUwOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogTWFwIGFuIEludGVyc2VjdGlvbkhhbmRsZXIgY2FsbGJhY2sgdG8gYW4gZWxlbWVudC4gV2Ugb25seSBldmVyIG1ha2Ugb25lIGhhbmRsZXIgZm9yIG9uZVxyXG4gKiBlbGVtZW50LCBzbyBldmVuIHRob3VnaCB0aGVzZSBoYW5kbGVycyBtaWdodCBhbGwgYmUgdHJpZ2dlcmVkIGJ5IGRpZmZlcmVudFxyXG4gKiBvYnNlcnZlcnMsIHdlIGNhbiBrZWVwIHRoZW0gaW4gdGhlIHNhbWUgbWFwLlxyXG4gKi9cclxuY29uc3Qgb2JzZXJ2ZXJDYWxsYmFja3MgPSBuZXcgV2Vha01hcCgpO1xyXG4vKipcclxuICogTXVsdGlwbGUgb2JzZXJ2ZXJzIGNhbiBiZSBjcmVhdGVkIGZvciBtdWx0aXBsZSBlbGVtZW50L2RvY3VtZW50IHJvb3RzLiBFYWNoIHdpdGhcclxuICogZGlmZmVyZW50IHNldHRpbmdzLiBTbyBoZXJlIHdlIHN0b3JlIGRpY3Rpb25hcmllcyBvZiBvYnNlcnZlcnMgdG8gZWFjaCByb290LFxyXG4gKiB1c2luZyBzZXJpYWxpc2VkIHNldHRpbmdzICh0aHJlc2hvbGQvbWFyZ2luKSBhcyBsb29rdXAga2V5cy5cclxuICovXHJcbmNvbnN0IG9ic2VydmVycyA9IG5ldyBXZWFrTWFwKCk7XHJcbmNvbnN0IGZpcmVPYnNlcnZlckNhbGxiYWNrID0gKGVudHJ5KSA9PiB7XHJcbiAgICBjb25zdCBjYWxsYmFjayA9IG9ic2VydmVyQ2FsbGJhY2tzLmdldChlbnRyeS50YXJnZXQpO1xyXG4gICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soZW50cnkpO1xyXG59O1xyXG5jb25zdCBmaXJlQWxsT2JzZXJ2ZXJDYWxsYmFja3MgPSAoZW50cmllcykgPT4ge1xyXG4gICAgZW50cmllcy5mb3JFYWNoKGZpcmVPYnNlcnZlckNhbGxiYWNrKTtcclxufTtcclxuZnVuY3Rpb24gaW5pdEludGVyc2VjdGlvbk9ic2VydmVyKHsgcm9vdCwgLi4ub3B0aW9ucyB9KSB7XHJcbiAgICBjb25zdCBsb29rdXBSb290ID0gcm9vdCB8fCBkb2N1bWVudDtcclxuICAgIC8qKlxyXG4gICAgICogSWYgd2UgZG9uJ3QgaGF2ZSBhbiBvYnNlcnZlciBsb29rdXAgbWFwIGZvciB0aGlzIHJvb3QsIGNyZWF0ZSBvbmUuXHJcbiAgICAgKi9cclxuICAgIGlmICghb2JzZXJ2ZXJzLmhhcyhsb29rdXBSb290KSkge1xyXG4gICAgICAgIG9ic2VydmVycy5zZXQobG9va3VwUm9vdCwge30pO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgcm9vdE9ic2VydmVycyA9IG9ic2VydmVycy5nZXQobG9va3VwUm9vdCk7XHJcbiAgICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeShvcHRpb25zKTtcclxuICAgIC8qKlxyXG4gICAgICogSWYgd2UgZG9uJ3QgaGF2ZSBhbiBvYnNlcnZlciBmb3IgdGhpcyBjb21iaW5hdGlvbiBvZiByb290IGFuZCBzZXR0aW5ncyxcclxuICAgICAqIGNyZWF0ZSBvbmUuXHJcbiAgICAgKi9cclxuICAgIGlmICghcm9vdE9ic2VydmVyc1trZXldKSB7XHJcbiAgICAgICAgcm9vdE9ic2VydmVyc1trZXldID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZpcmVBbGxPYnNlcnZlckNhbGxiYWNrcywgeyByb290LCAuLi5vcHRpb25zIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJvb3RPYnNlcnZlcnNba2V5XTtcclxufVxyXG5mdW5jdGlvbiBvYnNlcnZlSW50ZXJzZWN0aW9uKGVsZW1lbnQsIG9wdGlvbnMsIGNhbGxiYWNrKSB7XHJcbiAgICBjb25zdCByb290SW50ZXJlc2VjdGlvbk9ic2VydmVyID0gaW5pdEludGVyc2VjdGlvbk9ic2VydmVyKG9wdGlvbnMpO1xyXG4gICAgb2JzZXJ2ZXJDYWxsYmFja3Muc2V0KGVsZW1lbnQsIGNhbGxiYWNrKTtcclxuICAgIHJvb3RJbnRlcmVzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTtcclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgb2JzZXJ2ZXJDYWxsYmFja3MuZGVsZXRlKGVsZW1lbnQpO1xyXG4gICAgICAgIHJvb3RJbnRlcmVzZWN0aW9uT2JzZXJ2ZXIudW5vYnNlcnZlKGVsZW1lbnQpO1xyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IHsgb2JzZXJ2ZUludGVyc2VjdGlvbiB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/index.mjs":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/index.mjs ***!
|
||
\*************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createMotionComponent: function() { return /* binding */ createMotionComponent; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../context/LayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs\");\n/* harmony import */ var _context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../context/LazyContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs\");\n/* harmony import */ var _context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../context/MotionConfigContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\");\n/* harmony import */ var _context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../context/MotionContext/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _context_MotionContext_create_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../context/MotionContext/create.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs\");\n/* harmony import */ var _render_dom_use_render_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../render/dom/use-render.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs\");\n/* harmony import */ var _render_dom_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../render/dom/utils/is-svg-component.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\");\n/* harmony import */ var _render_html_use_html_visual_state_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../render/html/use-html-visual-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs\");\n/* harmony import */ var _render_svg_use_svg_visual_state_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../render/svg/use-svg-visual-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs\");\n/* harmony import */ var _utils_is_browser_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/is-browser.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs\");\n/* harmony import */ var _features_definitions_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./features/definitions.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs\");\n/* harmony import */ var _features_load_features_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./features/load-features.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs\");\n/* harmony import */ var _utils_symbol_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utils/symbol.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs\");\n/* harmony import */ var _utils_use_motion_ref_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/use-motion-ref.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs\");\n/* harmony import */ var _utils_use_visual_element_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/use-visual-element.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Create a `motion` component.\r\n *\r\n * This function accepts a Component argument, which can be either a string (ie \"div\"\r\n * for `motion.div`), or an actual React component.\r\n *\r\n * Alongside this is a config option which provides a way of rendering the provided\r\n * component \"offline\", or outside the React render cycle.\r\n */\r\nfunction createMotionComponent(Component, { forwardMotionProps = false } = {}, preloadedFeatures, createVisualElement) {\r\n preloadedFeatures && (0,_features_load_features_mjs__WEBPACK_IMPORTED_MODULE_2__.loadFeatures)(preloadedFeatures);\r\n const useVisualState = (0,_render_dom_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_3__.isSVGComponent)(Component)\r\n ? _render_svg_use_svg_visual_state_mjs__WEBPACK_IMPORTED_MODULE_4__.useSVGVisualState\r\n : _render_html_use_html_visual_state_mjs__WEBPACK_IMPORTED_MODULE_5__.useHTMLVisualState;\r\n function MotionDOMComponent(props, externalRef) {\r\n /**\r\n * If we need to measure the element we load this functionality in a\r\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\r\n */\r\n let MeasureLayout;\r\n const configAndProps = {\r\n ...(0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_6__.MotionConfigContext),\r\n ...props,\r\n layoutId: useLayoutId(props),\r\n };\r\n const { isStatic } = configAndProps;\r\n const context = (0,_context_MotionContext_create_mjs__WEBPACK_IMPORTED_MODULE_7__.useCreateMotionContext)(props);\r\n const visualState = useVisualState(props, isStatic);\r\n if (!isStatic && _utils_is_browser_mjs__WEBPACK_IMPORTED_MODULE_8__.isBrowser) {\r\n useStrictMode(configAndProps, preloadedFeatures);\r\n const layoutProjection = getProjectionFunctionality(configAndProps);\r\n MeasureLayout = layoutProjection.MeasureLayout;\r\n /**\r\n * Create a VisualElement for this component. A VisualElement provides a common\r\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\r\n * providing a way of rendering to these APIs outside of the React render loop\r\n * for more performant animations and interactions\r\n */\r\n context.visualElement = (0,_utils_use_visual_element_mjs__WEBPACK_IMPORTED_MODULE_9__.useVisualElement)(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode);\r\n }\r\n /**\r\n * The mount order and hierarchy is specific to ensure our element ref\r\n * is hydrated by the time features fire their effects.\r\n */\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_10__.MotionContext.Provider, { value: context, children: [MeasureLayout && context.visualElement ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null, (0,_render_dom_use_render_mjs__WEBPACK_IMPORTED_MODULE_11__.useRender)(Component, props, (0,_utils_use_motion_ref_mjs__WEBPACK_IMPORTED_MODULE_12__.useMotionRef)(visualState, context.visualElement, externalRef), visualState, isStatic, forwardMotionProps)] }));\r\n }\r\n MotionDOMComponent.displayName = `motion.${typeof Component === \"string\"\r\n ? Component\r\n : `create(${Component.displayName ?? Component.name ?? \"\"})`}`;\r\n const ForwardRefMotionComponent = (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(MotionDOMComponent);\r\n ForwardRefMotionComponent[_utils_symbol_mjs__WEBPACK_IMPORTED_MODULE_13__.motionComponentSymbol] = Component;\r\n return ForwardRefMotionComponent;\r\n}\r\nfunction useLayoutId({ layoutId }) {\r\n const layoutGroupId = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_14__.LayoutGroupContext).id;\r\n return layoutGroupId && layoutId !== undefined\r\n ? layoutGroupId + \"-\" + layoutId\r\n : layoutId;\r\n}\r\nfunction useStrictMode(configAndProps, preloadedFeatures) {\r\n const isStrict = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_15__.LazyContext).strict;\r\n /**\r\n * If we're in development mode, check to make sure we're not rendering a motion component\r\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\r\n */\r\n if ( true &&\r\n preloadedFeatures &&\r\n isStrict) {\r\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\r\n configAndProps.ignoreStrict\r\n ? (0,motion_utils__WEBPACK_IMPORTED_MODULE_16__.warning)(false, strictMessage, \"lazy-strict-mode\")\r\n : (0,motion_utils__WEBPACK_IMPORTED_MODULE_16__.invariant)(false, strictMessage, \"lazy-strict-mode\");\r\n }\r\n}\r\nfunction getProjectionFunctionality(props) {\r\n const { drag, layout } = _features_definitions_mjs__WEBPACK_IMPORTED_MODULE_17__.featureDefinitions;\r\n if (!drag && !layout)\r\n return {};\r\n const combined = { ...drag, ...layout };\r\n return {\r\n MeasureLayout: drag?.isEnabled(props) || layout?.isEnabled(props)\r\n ? combined.MeasureLayout\r\n : undefined,\r\n ProjectionNode: combined.ProjectionNode,\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDOEM7QUFDSTtBQUNIO0FBQ3dCO0FBQ2Q7QUFDZ0I7QUFDTjtBQUNVO0FBQ3BCO0FBQ2lCO0FBQ0k7QUFDSDtBQUN2QjtBQUNZO0FBQ0o7QUFDRDtBQUNEO0FBQ1E7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsNkJBQTZCLElBQUk7QUFDN0UseUJBQXlCLHlFQUFZO0FBQ3JDLDJCQUEyQixzRkFBYztBQUN6QyxVQUFVLG1GQUFpQjtBQUMzQixVQUFVLHNGQUFrQjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsaURBQVUsQ0FBQyxpRkFBbUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFdBQVc7QUFDM0Isd0JBQXdCLHlGQUFzQjtBQUM5QztBQUNBLHlCQUF5Qiw0REFBUztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsK0VBQWdCO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsdURBQUksQ0FBQyw0RUFBYSxhQUFhLHFFQUFxRSxzREFBRyxrQkFBa0IseURBQXlELFdBQVcsc0VBQVMsbUJBQW1CLHdFQUFZLGdHQUFnRztBQUNyVjtBQUNBLCtDQUErQztBQUMvQztBQUNBLG9CQUFvQiw4Q0FBOEMsR0FBRztBQUNyRSxzQ0FBc0MsaURBQVU7QUFDaEQsOEJBQThCLHFFQUFxQjtBQUNuRDtBQUNBO0FBQ0EsdUJBQXVCLFVBQVU7QUFDakMsMEJBQTBCLGlEQUFVLENBQUMsZ0ZBQWtCO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsaURBQVUsQ0FBQyxrRUFBVztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLHNEQUFPO0FBQ3JCLGNBQWMsd0RBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0EsWUFBWSxlQUFlLEVBQUUsMEVBQWtCO0FBQy9DO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9pbmRleC5tanM/NDY4YiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuaW1wb3J0IHsganN4cywganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xyXG5pbXBvcnQgeyB3YXJuaW5nLCBpbnZhcmlhbnQgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBmb3J3YXJkUmVmLCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBMYXlvdXRHcm91cENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0L0xheW91dEdyb3VwQ29udGV4dC5tanMnO1xyXG5pbXBvcnQgeyBMYXp5Q29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQvTGF6eUNvbnRleHQubWpzJztcclxuaW1wb3J0IHsgTW90aW9uQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQvTW90aW9uQ29uZmlnQ29udGV4dC5tanMnO1xyXG5pbXBvcnQgeyBNb3Rpb25Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9Nb3Rpb25Db250ZXh0L2luZGV4Lm1qcyc7XHJcbmltcG9ydCB7IHVzZUNyZWF0ZU1vdGlvbkNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0L01vdGlvbkNvbnRleHQvY3JlYXRlLm1qcyc7XHJcbmltcG9ydCB7IHVzZVJlbmRlciB9IGZyb20gJy4uL3JlbmRlci9kb20vdXNlLXJlbmRlci5tanMnO1xyXG5pbXBvcnQgeyBpc1NWR0NvbXBvbmVudCB9IGZyb20gJy4uL3JlbmRlci9kb20vdXRpbHMvaXMtc3ZnLWNvbXBvbmVudC5tanMnO1xyXG5pbXBvcnQgeyB1c2VIVE1MVmlzdWFsU3RhdGUgfSBmcm9tICcuLi9yZW5kZXIvaHRtbC91c2UtaHRtbC12aXN1YWwtc3RhdGUubWpzJztcclxuaW1wb3J0IHsgdXNlU1ZHVmlzdWFsU3RhdGUgfSBmcm9tICcuLi9yZW5kZXIvc3ZnL3VzZS1zdmctdmlzdWFsLXN0YXRlLm1qcyc7XHJcbmltcG9ydCB7IGlzQnJvd3NlciB9IGZyb20gJy4uL3V0aWxzL2lzLWJyb3dzZXIubWpzJztcclxuaW1wb3J0IHsgZmVhdHVyZURlZmluaXRpb25zIH0gZnJvbSAnLi9mZWF0dXJlcy9kZWZpbml0aW9ucy5tanMnO1xyXG5pbXBvcnQgeyBsb2FkRmVhdHVyZXMgfSBmcm9tICcuL2ZlYXR1cmVzL2xvYWQtZmVhdHVyZXMubWpzJztcclxuaW1wb3J0IHsgbW90aW9uQ29tcG9uZW50U3ltYm9sIH0gZnJvbSAnLi91dGlscy9zeW1ib2wubWpzJztcclxuaW1wb3J0IHsgdXNlTW90aW9uUmVmIH0gZnJvbSAnLi91dGlscy91c2UtbW90aW9uLXJlZi5tanMnO1xyXG5pbXBvcnQgeyB1c2VWaXN1YWxFbGVtZW50IH0gZnJvbSAnLi91dGlscy91c2UtdmlzdWFsLWVsZW1lbnQubWpzJztcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGUgYSBgbW90aW9uYCBjb21wb25lbnQuXHJcbiAqXHJcbiAqIFRoaXMgZnVuY3Rpb24gYWNjZXB0cyBhIENvbXBvbmVudCBhcmd1bWVudCwgd2hpY2ggY2FuIGJlIGVpdGhlciBhIHN0cmluZyAoaWUgXCJkaXZcIlxyXG4gKiBmb3IgYG1vdGlvbi5kaXZgKSwgb3IgYW4gYWN0dWFsIFJlYWN0IGNvbXBvbmVudC5cclxuICpcclxuICogQWxvbmdzaWRlIHRoaXMgaXMgYSBjb25maWcgb3B0aW9uIHdoaWNoIHByb3ZpZGVzIGEgd2F5IG9mIHJlbmRlcmluZyB0aGUgcHJvdmlkZWRcclxuICogY29tcG9uZW50IFwib2ZmbGluZVwiLCBvciBvdXRzaWRlIHRoZSBSZWFjdCByZW5kZXIgY3ljbGUuXHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVNb3Rpb25Db21wb25lbnQoQ29tcG9uZW50LCB7IGZvcndhcmRNb3Rpb25Qcm9wcyA9IGZhbHNlIH0gPSB7fSwgcHJlbG9hZGVkRmVhdHVyZXMsIGNyZWF0ZVZpc3VhbEVsZW1lbnQpIHtcclxuICAgIHByZWxvYWRlZEZlYXR1cmVzICYmIGxvYWRGZWF0dXJlcyhwcmVsb2FkZWRGZWF0dXJlcyk7XHJcbiAgICBjb25zdCB1c2VWaXN1YWxTdGF0ZSA9IGlzU1ZHQ29tcG9uZW50KENvbXBvbmVudClcclxuICAgICAgICA/IHVzZVNWR1Zpc3VhbFN0YXRlXHJcbiAgICAgICAgOiB1c2VIVE1MVmlzdWFsU3RhdGU7XHJcbiAgICBmdW5jdGlvbiBNb3Rpb25ET01Db21wb25lbnQocHJvcHMsIGV4dGVybmFsUmVmKSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSWYgd2UgbmVlZCB0byBtZWFzdXJlIHRoZSBlbGVtZW50IHdlIGxvYWQgdGhpcyBmdW5jdGlvbmFsaXR5IGluIGFcclxuICAgICAgICAgKiBzZXBhcmF0ZSBjbGFzcyBjb21wb25lbnQgaW4gb3JkZXIgdG8gZ2FpbiBhY2Nlc3MgdG8gZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgbGV0IE1lYXN1cmVMYXlvdXQ7XHJcbiAgICAgICAgY29uc3QgY29uZmlnQW5kUHJvcHMgPSB7XHJcbiAgICAgICAgICAgIC4uLnVzZUNvbnRleHQoTW90aW9uQ29uZmlnQ29udGV4dCksXHJcbiAgICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgICBsYXlvdXRJZDogdXNlTGF5b3V0SWQocHJvcHMpLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgeyBpc1N0YXRpYyB9ID0gY29uZmlnQW5kUHJvcHM7XHJcbiAgICAgICAgY29uc3QgY29udGV4dCA9IHVzZUNyZWF0ZU1vdGlvbkNvbnRleHQocHJvcHMpO1xyXG4gICAgICAgIGNvbnN0IHZpc3VhbFN0YXRlID0gdXNlVmlzdWFsU3RhdGUocHJvcHMsIGlzU3RhdGljKTtcclxuICAgICAgICBpZiAoIWlzU3RhdGljICYmIGlzQnJvd3Nlcikge1xyXG4gICAgICAgICAgICB1c2VTdHJpY3RNb2RlKGNvbmZpZ0FuZFByb3BzLCBwcmVsb2FkZWRGZWF0dXJlcyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGxheW91dFByb2plY3Rpb24gPSBnZXRQcm9qZWN0aW9uRnVuY3Rpb25hbGl0eShjb25maWdBbmRQcm9wcyk7XHJcbiAgICAgICAgICAgIE1lYXN1cmVMYXlvdXQgPSBsYXlvdXRQcm9qZWN0aW9uLk1lYXN1cmVMYXlvdXQ7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBDcmVhdGUgYSBWaXN1YWxFbGVtZW50IGZvciB0aGlzIGNvbXBvbmVudC4gQSBWaXN1YWxFbGVtZW50IHByb3ZpZGVzIGEgY29tbW9uXHJcbiAgICAgICAgICAgICAqIGludGVyZmFjZSB0byByZW5kZXJlci1zcGVjaWZpYyBBUElzIChpZSBET00vVGhyZWUuanMgZXRjKSBhcyB3ZWxsIGFzXHJcbiAgICAgICAgICAgICAqIHByb3ZpZGluZyBhIHdheSBvZiByZW5kZXJpbmcgdG8gdGhlc2UgQVBJcyBvdXRzaWRlIG9mIHRoZSBSZWFjdCByZW5kZXIgbG9vcFxyXG4gICAgICAgICAgICAgKiBmb3IgbW9yZSBwZXJmb3JtYW50IGFuaW1hdGlvbnMgYW5kIGludGVyYWN0aW9uc1xyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgY29udGV4dC52aXN1YWxFbGVtZW50ID0gdXNlVmlzdWFsRWxlbWVudChDb21wb25lbnQsIHZpc3VhbFN0YXRlLCBjb25maWdBbmRQcm9wcywgY3JlYXRlVmlzdWFsRWxlbWVudCwgbGF5b3V0UHJvamVjdGlvbi5Qcm9qZWN0aW9uTm9kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBtb3VudCBvcmRlciBhbmQgaGllcmFyY2h5IGlzIHNwZWNpZmljIHRvIGVuc3VyZSBvdXIgZWxlbWVudCByZWZcclxuICAgICAgICAgKiBpcyBoeWRyYXRlZCBieSB0aGUgdGltZSBmZWF0dXJlcyBmaXJlIHRoZWlyIGVmZmVjdHMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcmV0dXJuIChqc3hzKE1vdGlvbkNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbnRleHQsIGNoaWxkcmVuOiBbTWVhc3VyZUxheW91dCAmJiBjb250ZXh0LnZpc3VhbEVsZW1lbnQgPyAoanN4KE1lYXN1cmVMYXlvdXQsIHsgdmlzdWFsRWxlbWVudDogY29udGV4dC52aXN1YWxFbGVtZW50LCAuLi5jb25maWdBbmRQcm9wcyB9KSkgOiBudWxsLCB1c2VSZW5kZXIoQ29tcG9uZW50LCBwcm9wcywgdXNlTW90aW9uUmVmKHZpc3VhbFN0YXRlLCBjb250ZXh0LnZpc3VhbEVsZW1lbnQsIGV4dGVybmFsUmVmKSwgdmlzdWFsU3RhdGUsIGlzU3RhdGljLCBmb3J3YXJkTW90aW9uUHJvcHMpXSB9KSk7XHJcbiAgICB9XHJcbiAgICBNb3Rpb25ET01Db21wb25lbnQuZGlzcGxheU5hbWUgPSBgbW90aW9uLiR7dHlwZW9mIENvbXBvbmVudCA9PT0gXCJzdHJpbmdcIlxyXG4gICAgICAgID8gQ29tcG9uZW50XHJcbiAgICAgICAgOiBgY3JlYXRlKCR7Q29tcG9uZW50LmRpc3BsYXlOYW1lID8/IENvbXBvbmVudC5uYW1lID8/IFwiXCJ9KWB9YDtcclxuICAgIGNvbnN0IEZvcndhcmRSZWZNb3Rpb25Db21wb25lbnQgPSBmb3J3YXJkUmVmKE1vdGlvbkRPTUNvbXBvbmVudCk7XHJcbiAgICBGb3J3YXJkUmVmTW90aW9uQ29tcG9uZW50W21vdGlvbkNvbXBvbmVudFN5bWJvbF0gPSBDb21wb25lbnQ7XHJcbiAgICByZXR1cm4gRm9yd2FyZFJlZk1vdGlvbkNvbXBvbmVudDtcclxufVxyXG5mdW5jdGlvbiB1c2VMYXlvdXRJZCh7IGxheW91dElkIH0pIHtcclxuICAgIGNvbnN0IGxheW91dEdyb3VwSWQgPSB1c2VDb250ZXh0KExheW91dEdyb3VwQ29udGV4dCkuaWQ7XHJcbiAgICByZXR1cm4gbGF5b3V0R3JvdXBJZCAmJiBsYXlvdXRJZCAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyBsYXlvdXRHcm91cElkICsgXCItXCIgKyBsYXlvdXRJZFxyXG4gICAgICAgIDogbGF5b3V0SWQ7XHJcbn1cclxuZnVuY3Rpb24gdXNlU3RyaWN0TW9kZShjb25maWdBbmRQcm9wcywgcHJlbG9hZGVkRmVhdHVyZXMpIHtcclxuICAgIGNvbnN0IGlzU3RyaWN0ID0gdXNlQ29udGV4dChMYXp5Q29udGV4dCkuc3RyaWN0O1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB3ZSdyZSBpbiBkZXZlbG9wbWVudCBtb2RlLCBjaGVjayB0byBtYWtlIHN1cmUgd2UncmUgbm90IHJlbmRlcmluZyBhIG1vdGlvbiBjb21wb25lbnRcclxuICAgICAqIGFzIGEgY2hpbGQgb2YgTGF6eU1vdGlvbiwgYXMgdGhpcyB3aWxsIGJyZWFrIHRoZSBmaWxlLXNpemUgYmVuZWZpdHMgb2YgdXNpbmcgaXQuXHJcbiAgICAgKi9cclxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgJiZcclxuICAgICAgICBwcmVsb2FkZWRGZWF0dXJlcyAmJlxyXG4gICAgICAgIGlzU3RyaWN0KSB7XHJcbiAgICAgICAgY29uc3Qgc3RyaWN0TWVzc2FnZSA9IFwiWW91IGhhdmUgcmVuZGVyZWQgYSBgbW90aW9uYCBjb21wb25lbnQgd2l0aGluIGEgYExhenlNb3Rpb25gIGNvbXBvbmVudC4gVGhpcyB3aWxsIGJyZWFrIHRyZWUgc2hha2luZy4gSW1wb3J0IGFuZCByZW5kZXIgYSBgbWAgY29tcG9uZW50IGluc3RlYWQuXCI7XHJcbiAgICAgICAgY29uZmlnQW5kUHJvcHMuaWdub3JlU3RyaWN0XHJcbiAgICAgICAgICAgID8gd2FybmluZyhmYWxzZSwgc3RyaWN0TWVzc2FnZSwgXCJsYXp5LXN0cmljdC1tb2RlXCIpXHJcbiAgICAgICAgICAgIDogaW52YXJpYW50KGZhbHNlLCBzdHJpY3RNZXNzYWdlLCBcImxhenktc3RyaWN0LW1vZGVcIik7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gZ2V0UHJvamVjdGlvbkZ1bmN0aW9uYWxpdHkocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgZHJhZywgbGF5b3V0IH0gPSBmZWF0dXJlRGVmaW5pdGlvbnM7XHJcbiAgICBpZiAoIWRyYWcgJiYgIWxheW91dClcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICBjb25zdCBjb21iaW5lZCA9IHsgLi4uZHJhZywgLi4ubGF5b3V0IH07XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIE1lYXN1cmVMYXlvdXQ6IGRyYWc/LmlzRW5hYmxlZChwcm9wcykgfHwgbGF5b3V0Py5pc0VuYWJsZWQocHJvcHMpXHJcbiAgICAgICAgICAgID8gY29tYmluZWQuTWVhc3VyZUxheW91dFxyXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcclxuICAgICAgICBQcm9qZWN0aW9uTm9kZTogY29tYmluZWQuUHJvamVjdGlvbk5vZGUsXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgeyBjcmVhdGVNb3Rpb25Db21wb25lbnQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs":
|
||
/*!************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs ***!
|
||
\************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isForcedMotionValue: function() { return /* binding */ isForcedMotionValue; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../projection/styles/scale-correction.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs\");\n\r\n\r\n\r\nfunction isForcedMotionValue(key, { layout, layoutId }) {\r\n return (motion_dom__WEBPACK_IMPORTED_MODULE_0__.transformProps.has(key) ||\r\n key.startsWith(\"origin\") ||\r\n ((layout || layoutId !== undefined) &&\r\n (!!_projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_1__.scaleCorrectors[key] || key === \"opacity\")));\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL2lzLWZvcmNlZC1tb3Rpb24tdmFsdWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE0QztBQUNtQztBQUMvRTtBQUNBLG9DQUFvQyxrQkFBa0I7QUFDdEQsWUFBWSxzREFBYztBQUMxQjtBQUNBO0FBQ0EsZUFBZSxvRkFBZTtBQUM5QjtBQUNBO0FBQytCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL2lzLWZvcmNlZC1tb3Rpb24tdmFsdWUubWpzPzA1OTgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJhbnNmb3JtUHJvcHMgfSBmcm9tICdtb3Rpb24tZG9tJztcclxuaW1wb3J0IHsgc2NhbGVDb3JyZWN0b3JzIH0gZnJvbSAnLi4vLi4vcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtY29ycmVjdGlvbi5tanMnO1xyXG5cclxuZnVuY3Rpb24gaXNGb3JjZWRNb3Rpb25WYWx1ZShrZXksIHsgbGF5b3V0LCBsYXlvdXRJZCB9KSB7XHJcbiAgICByZXR1cm4gKHRyYW5zZm9ybVByb3BzLmhhcyhrZXkpIHx8XHJcbiAgICAgICAga2V5LnN0YXJ0c1dpdGgoXCJvcmlnaW5cIikgfHxcclxuICAgICAgICAoKGxheW91dCB8fCBsYXlvdXRJZCAhPT0gdW5kZWZpbmVkKSAmJlxyXG4gICAgICAgICAgICAoISFzY2FsZUNvcnJlY3RvcnNba2V5XSB8fCBrZXkgPT09IFwib3BhY2l0eVwiKSkpO1xyXG59XHJcblxyXG5leHBvcnQgeyBpc0ZvcmNlZE1vdGlvblZhbHVlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ motionComponentSymbol: function() { return /* binding */ motionComponentSymbol; }\n/* harmony export */ });\nconst motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3N5bWJvbC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vdXRpbHMvc3ltYm9sLm1qcz84NDUyIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IG1vdGlvbkNvbXBvbmVudFN5bWJvbCA9IFN5bWJvbC5mb3IoXCJtb3Rpb25Db21wb25lbnRTeW1ib2xcIik7XHJcblxyXG5leHBvcnQgeyBtb3Rpb25Db21wb25lbnRTeW1ib2wgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useMotionRef: function() { return /* binding */ useMotionRef; }\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 _utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/is-ref-object.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n/**\r\n * Creates a ref function that, when called, hydrates the provided\r\n * external ref and VisualElement.\r\n */\r\nfunction useMotionRef(visualState, visualElement, externalRef) {\r\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((instance) => {\r\n if (instance) {\r\n visualState.onMount && visualState.onMount(instance);\r\n }\r\n if (visualElement) {\r\n if (instance) {\r\n visualElement.mount(instance);\r\n }\r\n else {\r\n visualElement.unmount();\r\n }\r\n }\r\n if (externalRef) {\r\n if (typeof externalRef === \"function\") {\r\n externalRef(instance);\r\n }\r\n else if ((0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_1__.isRefObject)(externalRef)) {\r\n externalRef.current = instance;\r\n }\r\n }\r\n }, \r\n /**\r\n * Include externalRef in dependencies to ensure the callback updates\r\n * when the ref changes, allowing proper ref forwarding.\r\n */\r\n [visualElement]);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3VzZS1tb3Rpb24tcmVmLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNvQztBQUN3QjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGtEQUFXO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixxRUFBVztBQUNoQztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDd0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vdXRpbHMvdXNlLW1vdGlvbi1yZWYubWpzPzc3MTUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcbmltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBpc1JlZk9iamVjdCB9IGZyb20gJy4uLy4uL3V0aWxzL2lzLXJlZi1vYmplY3QubWpzJztcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgcmVmIGZ1bmN0aW9uIHRoYXQsIHdoZW4gY2FsbGVkLCBoeWRyYXRlcyB0aGUgcHJvdmlkZWRcclxuICogZXh0ZXJuYWwgcmVmIGFuZCBWaXN1YWxFbGVtZW50LlxyXG4gKi9cclxuZnVuY3Rpb24gdXNlTW90aW9uUmVmKHZpc3VhbFN0YXRlLCB2aXN1YWxFbGVtZW50LCBleHRlcm5hbFJlZikge1xyXG4gICAgcmV0dXJuIHVzZUNhbGxiYWNrKChpbnN0YW5jZSkgPT4ge1xyXG4gICAgICAgIGlmIChpbnN0YW5jZSkge1xyXG4gICAgICAgICAgICB2aXN1YWxTdGF0ZS5vbk1vdW50ICYmIHZpc3VhbFN0YXRlLm9uTW91bnQoaW5zdGFuY2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodmlzdWFsRWxlbWVudCkge1xyXG4gICAgICAgICAgICBpZiAoaW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQubW91bnQoaW5zdGFuY2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdmlzdWFsRWxlbWVudC51bm1vdW50KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV4dGVybmFsUmVmKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZXh0ZXJuYWxSZWYgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgICAgICAgZXh0ZXJuYWxSZWYoaW5zdGFuY2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzUmVmT2JqZWN0KGV4dGVybmFsUmVmKSkge1xyXG4gICAgICAgICAgICAgICAgZXh0ZXJuYWxSZWYuY3VycmVudCA9IGluc3RhbmNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSwgXHJcbiAgICAvKipcclxuICAgICAqIEluY2x1ZGUgZXh0ZXJuYWxSZWYgaW4gZGVwZW5kZW5jaWVzIHRvIGVuc3VyZSB0aGUgY2FsbGJhY2sgdXBkYXRlc1xyXG4gICAgICogd2hlbiB0aGUgcmVmIGNoYW5nZXMsIGFsbG93aW5nIHByb3BlciByZWYgZm9yd2FyZGluZy5cclxuICAgICAqL1xyXG4gICAgW3Zpc3VhbEVsZW1lbnRdKTtcclxufVxyXG5cclxuZXhwb3J0IHsgdXNlTW90aW9uUmVmIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs":
|
||
/*!********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs ***!
|
||
\********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useVisualElement: function() { return /* binding */ useVisualElement; }\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 _animation_optimized_appear_data_id_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../animation/optimized-appear/data-id.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs\");\n/* harmony import */ var _context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/LazyContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs\");\n/* harmony import */ var _context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context/MotionConfigContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\");\n/* harmony import */ var _context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/MotionContext/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* harmony import */ var _context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../context/SwitchLayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs\");\n/* harmony import */ var _utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/is-ref-object.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs\");\n/* harmony import */ var _utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/use-isomorphic-effect.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor) {\r\n const { visualElement: parent } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_1__.MotionContext);\r\n const lazyContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_2__.LazyContext);\r\n const presenceContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_3__.PresenceContext);\r\n const reducedMotionConfig = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_4__.MotionConfigContext).reducedMotion;\r\n const visualElementRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\r\n /**\r\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\r\n */\r\n createVisualElement =\r\n createVisualElement ||\r\n lazyContext.renderer;\r\n if (!visualElementRef.current && createVisualElement) {\r\n visualElementRef.current = createVisualElement(Component, {\r\n visualState,\r\n parent,\r\n props,\r\n presenceContext,\r\n blockInitialAnimation: presenceContext\r\n ? presenceContext.initial === false\r\n : false,\r\n reducedMotionConfig,\r\n });\r\n }\r\n const visualElement = visualElementRef.current;\r\n /**\r\n * Load Motion gesture and animation features. These are rendered as renderless\r\n * components so each feature can optionally make use of React lifecycle methods.\r\n */\r\n const initialLayoutGroupConfig = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_5__.SwitchLayoutGroupContext);\r\n if (visualElement &&\r\n !visualElement.projection &&\r\n ProjectionNodeConstructor &&\r\n (visualElement.type === \"html\" || visualElement.type === \"svg\")) {\r\n createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);\r\n }\r\n const isMounted = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useInsertionEffect)(() => {\r\n /**\r\n * Check the component has already mounted before calling\r\n * `update` unnecessarily. This ensures we skip the initial update.\r\n */\r\n if (visualElement && isMounted.current) {\r\n visualElement.update(props, presenceContext);\r\n }\r\n });\r\n /**\r\n * Cache this value as we want to know whether HandoffAppearAnimations\r\n * was present on initial render - it will be deleted after this.\r\n */\r\n const optimisedAppearId = props[_animation_optimized_appear_data_id_mjs__WEBPACK_IMPORTED_MODULE_6__.optimizedAppearDataAttribute];\r\n const wantsHandoff = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(Boolean(optimisedAppearId) &&\r\n !window.MotionHandoffIsComplete?.(optimisedAppearId) &&\r\n window.MotionHasOptimisedAnimation?.(optimisedAppearId));\r\n (0,_utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_7__.useIsomorphicLayoutEffect)(() => {\r\n if (!visualElement)\r\n return;\r\n isMounted.current = true;\r\n window.MotionIsMounted = true;\r\n visualElement.updateFeatures();\r\n visualElement.scheduleRenderMicrotask();\r\n /**\r\n * Ideally this function would always run in a useEffect.\r\n *\r\n * However, if we have optimised appear animations to handoff from,\r\n * it needs to happen synchronously to ensure there's no flash of\r\n * incorrect styles in the event of a hydration error.\r\n *\r\n * So if we detect a situtation where optimised appear animations\r\n * are running, we use useLayoutEffect to trigger animations.\r\n */\r\n if (wantsHandoff.current && visualElement.animationState) {\r\n visualElement.animationState.animateChanges();\r\n }\r\n });\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\r\n if (!visualElement)\r\n return;\r\n if (!wantsHandoff.current && visualElement.animationState) {\r\n visualElement.animationState.animateChanges();\r\n }\r\n if (wantsHandoff.current) {\r\n // This ensures all future calls to animateChanges() in this component will run in useEffect\r\n queueMicrotask(() => {\r\n window.MotionHandoffMarkAsComplete?.(optimisedAppearId);\r\n });\r\n wantsHandoff.current = false;\r\n }\r\n /**\r\n * Now we've finished triggering animations for this element we\r\n * can wipe the enteringChildren set for the next render.\r\n */\r\n visualElement.enteringChildren = undefined;\r\n });\r\n return visualElement;\r\n}\r\nfunction createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {\r\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, layoutCrossfade, } = props;\r\n visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props[\"data-framer-portal-id\"]\r\n ? undefined\r\n : getClosestProjectingNode(visualElement.parent));\r\n visualElement.projection.setOptions({\r\n layoutId,\r\n layout,\r\n alwaysMeasureLayout: Boolean(drag) || (dragConstraints && (0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_8__.isRefObject)(dragConstraints)),\r\n visualElement,\r\n /**\r\n * TODO: Update options in an effect. This could be tricky as it'll be too late\r\n * to update by the time layout animations run.\r\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\r\n * ensuring it gets called if there's no potential layout animations.\r\n *\r\n */\r\n animationType: typeof layout === \"string\" ? layout : \"both\",\r\n initialPromotionConfig,\r\n crossfade: layoutCrossfade,\r\n layoutScroll,\r\n layoutRoot,\r\n });\r\n}\r\nfunction getClosestProjectingNode(visualElement) {\r\n if (!visualElement)\r\n return undefined;\r\n return visualElement.options.allowProjection !== false\r\n ? visualElement.projection\r\n : getClosestProjectingNode(visualElement.parent);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3VzZS12aXN1YWwtZWxlbWVudC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBO0FBQzBFO0FBQ2tCO0FBQ2hDO0FBQ2dCO0FBQ047QUFDRjtBQUNrQjtBQUMxQjtBQUNzQjtBQUNsRjtBQUNBO0FBQ0EsWUFBWSx3QkFBd0IsRUFBRSxpREFBVSxDQUFDLDJFQUFhO0FBQzlELHdCQUF3QixpREFBVSxDQUFDLGlFQUFXO0FBQzlDLDRCQUE0QixpREFBVSxDQUFDLHlFQUFlO0FBQ3RELGdDQUFnQyxpREFBVSxDQUFDLGlGQUFtQjtBQUM5RCw2QkFBNkIsNkNBQU07QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLGlEQUFVLENBQUMsMkZBQXdCO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQiw2Q0FBTTtBQUM1QixJQUFJLHlEQUFrQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxpR0FBNEI7QUFDaEUseUJBQXlCLDZDQUFNO0FBQy9CO0FBQ0E7QUFDQSxJQUFJLDJGQUF5QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJLGdEQUFTO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLFlBQVksc0ZBQXNGO0FBQ2xHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtFQUFrRSxxRUFBVztBQUM3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDNEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vdXRpbHMvdXNlLXZpc3VhbC1lbGVtZW50Lm1qcz9hZmI1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VSZWYsIHVzZUluc2VydGlvbkVmZmVjdCwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBvcHRpbWl6ZWRBcHBlYXJEYXRhQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9uL29wdGltaXplZC1hcHBlYXIvZGF0YS1pZC5tanMnO1xyXG5pbXBvcnQgeyBMYXp5Q29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHQvTGF6eUNvbnRleHQubWpzJztcclxuaW1wb3J0IHsgTW90aW9uQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHQvTW90aW9uQ29uZmlnQ29udGV4dC5tanMnO1xyXG5pbXBvcnQgeyBNb3Rpb25Db250ZXh0IH0gZnJvbSAnLi4vLi4vY29udGV4dC9Nb3Rpb25Db250ZXh0L2luZGV4Lm1qcyc7XHJcbmltcG9ydCB7IFByZXNlbmNlQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHQvUHJlc2VuY2VDb250ZXh0Lm1qcyc7XHJcbmltcG9ydCB7IFN3aXRjaExheW91dEdyb3VwQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHQvU3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0Lm1qcyc7XHJcbmltcG9ydCB7IGlzUmVmT2JqZWN0IH0gZnJvbSAnLi4vLi4vdXRpbHMvaXMtcmVmLW9iamVjdC5tanMnO1xyXG5pbXBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSAnLi4vLi4vdXRpbHMvdXNlLWlzb21vcnBoaWMtZWZmZWN0Lm1qcyc7XHJcblxyXG5mdW5jdGlvbiB1c2VWaXN1YWxFbGVtZW50KENvbXBvbmVudCwgdmlzdWFsU3RhdGUsIHByb3BzLCBjcmVhdGVWaXN1YWxFbGVtZW50LCBQcm9qZWN0aW9uTm9kZUNvbnN0cnVjdG9yKSB7XHJcbiAgICBjb25zdCB7IHZpc3VhbEVsZW1lbnQ6IHBhcmVudCB9ID0gdXNlQ29udGV4dChNb3Rpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IGxhenlDb250ZXh0ID0gdXNlQ29udGV4dChMYXp5Q29udGV4dCk7XHJcbiAgICBjb25zdCBwcmVzZW5jZUNvbnRleHQgPSB1c2VDb250ZXh0KFByZXNlbmNlQ29udGV4dCk7XHJcbiAgICBjb25zdCByZWR1Y2VkTW90aW9uQ29uZmlnID0gdXNlQ29udGV4dChNb3Rpb25Db25maWdDb250ZXh0KS5yZWR1Y2VkTW90aW9uO1xyXG4gICAgY29uc3QgdmlzdWFsRWxlbWVudFJlZiA9IHVzZVJlZihudWxsKTtcclxuICAgIC8qKlxyXG4gICAgICogSWYgd2UgaGF2ZW4ndCBwcmVsb2FkZWQgYSByZW5kZXJlciwgY2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUgb25lIGxhenktbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQgPVxyXG4gICAgICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQgfHxcclxuICAgICAgICAgICAgbGF6eUNvbnRleHQucmVuZGVyZXI7XHJcbiAgICBpZiAoIXZpc3VhbEVsZW1lbnRSZWYuY3VycmVudCAmJiBjcmVhdGVWaXN1YWxFbGVtZW50KSB7XHJcbiAgICAgICAgdmlzdWFsRWxlbWVudFJlZi5jdXJyZW50ID0gY3JlYXRlVmlzdWFsRWxlbWVudChDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgdmlzdWFsU3RhdGUsXHJcbiAgICAgICAgICAgIHBhcmVudCxcclxuICAgICAgICAgICAgcHJvcHMsXHJcbiAgICAgICAgICAgIHByZXNlbmNlQ29udGV4dCxcclxuICAgICAgICAgICAgYmxvY2tJbml0aWFsQW5pbWF0aW9uOiBwcmVzZW5jZUNvbnRleHRcclxuICAgICAgICAgICAgICAgID8gcHJlc2VuY2VDb250ZXh0LmluaXRpYWwgPT09IGZhbHNlXHJcbiAgICAgICAgICAgICAgICA6IGZhbHNlLFxyXG4gICAgICAgICAgICByZWR1Y2VkTW90aW9uQ29uZmlnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdmlzdWFsRWxlbWVudCA9IHZpc3VhbEVsZW1lbnRSZWYuY3VycmVudDtcclxuICAgIC8qKlxyXG4gICAgICogTG9hZCBNb3Rpb24gZ2VzdHVyZSBhbmQgYW5pbWF0aW9uIGZlYXR1cmVzLiBUaGVzZSBhcmUgcmVuZGVyZWQgYXMgcmVuZGVybGVzc1xyXG4gICAgICogY29tcG9uZW50cyBzbyBlYWNoIGZlYXR1cmUgY2FuIG9wdGlvbmFsbHkgbWFrZSB1c2Ugb2YgUmVhY3QgbGlmZWN5Y2xlIG1ldGhvZHMuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGluaXRpYWxMYXlvdXRHcm91cENvbmZpZyA9IHVzZUNvbnRleHQoU3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0KTtcclxuICAgIGlmICh2aXN1YWxFbGVtZW50ICYmXHJcbiAgICAgICAgIXZpc3VhbEVsZW1lbnQucHJvamVjdGlvbiAmJlxyXG4gICAgICAgIFByb2plY3Rpb25Ob2RlQ29uc3RydWN0b3IgJiZcclxuICAgICAgICAodmlzdWFsRWxlbWVudC50eXBlID09PSBcImh0bWxcIiB8fCB2aXN1YWxFbGVtZW50LnR5cGUgPT09IFwic3ZnXCIpKSB7XHJcbiAgICAgICAgY3JlYXRlUHJvamVjdGlvbk5vZGUodmlzdWFsRWxlbWVudFJlZi5jdXJyZW50LCBwcm9wcywgUHJvamVjdGlvbk5vZGVDb25zdHJ1Y3RvciwgaW5pdGlhbExheW91dEdyb3VwQ29uZmlnKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGlzTW91bnRlZCA9IHVzZVJlZihmYWxzZSk7XHJcbiAgICB1c2VJbnNlcnRpb25FZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENoZWNrIHRoZSBjb21wb25lbnQgaGFzIGFscmVhZHkgbW91bnRlZCBiZWZvcmUgY2FsbGluZ1xyXG4gICAgICAgICAqIGB1cGRhdGVgIHVubmVjZXNzYXJpbHkuIFRoaXMgZW5zdXJlcyB3ZSBza2lwIHRoZSBpbml0aWFsIHVwZGF0ZS5cclxuICAgICAgICAgKi9cclxuICAgICAgICBpZiAodmlzdWFsRWxlbWVudCAmJiBpc01vdW50ZWQuY3VycmVudCkge1xyXG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50LnVwZGF0ZShwcm9wcywgcHJlc2VuY2VDb250ZXh0KTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8qKlxyXG4gICAgICogQ2FjaGUgdGhpcyB2YWx1ZSBhcyB3ZSB3YW50IHRvIGtub3cgd2hldGhlciBIYW5kb2ZmQXBwZWFyQW5pbWF0aW9uc1xyXG4gICAgICogd2FzIHByZXNlbnQgb24gaW5pdGlhbCByZW5kZXIgLSBpdCB3aWxsIGJlIGRlbGV0ZWQgYWZ0ZXIgdGhpcy5cclxuICAgICAqL1xyXG4gICAgY29uc3Qgb3B0aW1pc2VkQXBwZWFySWQgPSBwcm9wc1tvcHRpbWl6ZWRBcHBlYXJEYXRhQXR0cmlidXRlXTtcclxuICAgIGNvbnN0IHdhbnRzSGFuZG9mZiA9IHVzZVJlZihCb29sZWFuKG9wdGltaXNlZEFwcGVhcklkKSAmJlxyXG4gICAgICAgICF3aW5kb3cuTW90aW9uSGFuZG9mZklzQ29tcGxldGU/LihvcHRpbWlzZWRBcHBlYXJJZCkgJiZcclxuICAgICAgICB3aW5kb3cuTW90aW9uSGFzT3B0aW1pc2VkQW5pbWF0aW9uPy4ob3B0aW1pc2VkQXBwZWFySWQpKTtcclxuICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmICghdmlzdWFsRWxlbWVudClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGlzTW91bnRlZC5jdXJyZW50ID0gdHJ1ZTtcclxuICAgICAgICB3aW5kb3cuTW90aW9uSXNNb3VudGVkID0gdHJ1ZTtcclxuICAgICAgICB2aXN1YWxFbGVtZW50LnVwZGF0ZUZlYXR1cmVzKCk7XHJcbiAgICAgICAgdmlzdWFsRWxlbWVudC5zY2hlZHVsZVJlbmRlck1pY3JvdGFzaygpO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElkZWFsbHkgdGhpcyBmdW5jdGlvbiB3b3VsZCBhbHdheXMgcnVuIGluIGEgdXNlRWZmZWN0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogSG93ZXZlciwgaWYgd2UgaGF2ZSBvcHRpbWlzZWQgYXBwZWFyIGFuaW1hdGlvbnMgdG8gaGFuZG9mZiBmcm9tLFxyXG4gICAgICAgICAqIGl0IG5lZWRzIHRvIGhhcHBlbiBzeW5jaHJvbm91c2x5IHRvIGVuc3VyZSB0aGVyZSdzIG5vIGZsYXNoIG9mXHJcbiAgICAgICAgICogaW5jb3JyZWN0IHN0eWxlcyBpbiB0aGUgZXZlbnQgb2YgYSBoeWRyYXRpb24gZXJyb3IuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBTbyBpZiB3ZSBkZXRlY3QgYSBzaXR1dGF0aW9uIHdoZXJlIG9wdGltaXNlZCBhcHBlYXIgYW5pbWF0aW9uc1xyXG4gICAgICAgICAqIGFyZSBydW5uaW5nLCB3ZSB1c2UgdXNlTGF5b3V0RWZmZWN0IHRvIHRyaWdnZXIgYW5pbWF0aW9ucy5cclxuICAgICAgICAgKi9cclxuICAgICAgICBpZiAod2FudHNIYW5kb2ZmLmN1cnJlbnQgJiYgdmlzdWFsRWxlbWVudC5hbmltYXRpb25TdGF0ZSkge1xyXG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50LmFuaW1hdGlvblN0YXRlLmFuaW1hdGVDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmICghdmlzdWFsRWxlbWVudClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGlmICghd2FudHNIYW5kb2ZmLmN1cnJlbnQgJiYgdmlzdWFsRWxlbWVudC5hbmltYXRpb25TdGF0ZSkge1xyXG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50LmFuaW1hdGlvblN0YXRlLmFuaW1hdGVDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh3YW50c0hhbmRvZmYuY3VycmVudCkge1xyXG4gICAgICAgICAgICAvLyBUaGlzIGVuc3VyZXMgYWxsIGZ1dHVyZSBjYWxscyB0byBhbmltYXRlQ2hhbmdlcygpIGluIHRoaXMgY29tcG9uZW50IHdpbGwgcnVuIGluIHVzZUVmZmVjdFxyXG4gICAgICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cuTW90aW9uSGFuZG9mZk1hcmtBc0NvbXBsZXRlPy4ob3B0aW1pc2VkQXBwZWFySWQpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgd2FudHNIYW5kb2ZmLmN1cnJlbnQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogTm93IHdlJ3ZlIGZpbmlzaGVkIHRyaWdnZXJpbmcgYW5pbWF0aW9ucyBmb3IgdGhpcyBlbGVtZW50IHdlXHJcbiAgICAgICAgICogY2FuIHdpcGUgdGhlIGVudGVyaW5nQ2hpbGRyZW4gc2V0IGZvciB0aGUgbmV4dCByZW5kZXIuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdmlzdWFsRWxlbWVudC5lbnRlcmluZ0NoaWxkcmVuID0gdW5kZWZpbmVkO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdmlzdWFsRWxlbWVudDtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVQcm9qZWN0aW9uTm9kZSh2aXN1YWxFbGVtZW50LCBwcm9wcywgUHJvamVjdGlvbk5vZGVDb25zdHJ1Y3RvciwgaW5pdGlhbFByb21vdGlvbkNvbmZpZykge1xyXG4gICAgY29uc3QgeyBsYXlvdXRJZCwgbGF5b3V0LCBkcmFnLCBkcmFnQ29uc3RyYWludHMsIGxheW91dFNjcm9sbCwgbGF5b3V0Um9vdCwgbGF5b3V0Q3Jvc3NmYWRlLCB9ID0gcHJvcHM7XHJcbiAgICB2aXN1YWxFbGVtZW50LnByb2plY3Rpb24gPSBuZXcgUHJvamVjdGlvbk5vZGVDb25zdHJ1Y3Rvcih2aXN1YWxFbGVtZW50LmxhdGVzdFZhbHVlcywgcHJvcHNbXCJkYXRhLWZyYW1lci1wb3J0YWwtaWRcIl1cclxuICAgICAgICA/IHVuZGVmaW5lZFxyXG4gICAgICAgIDogZ2V0Q2xvc2VzdFByb2plY3RpbmdOb2RlKHZpc3VhbEVsZW1lbnQucGFyZW50KSk7XHJcbiAgICB2aXN1YWxFbGVtZW50LnByb2plY3Rpb24uc2V0T3B0aW9ucyh7XHJcbiAgICAgICAgbGF5b3V0SWQsXHJcbiAgICAgICAgbGF5b3V0LFxyXG4gICAgICAgIGFsd2F5c01lYXN1cmVMYXlvdXQ6IEJvb2xlYW4oZHJhZykgfHwgKGRyYWdDb25zdHJhaW50cyAmJiBpc1JlZk9iamVjdChkcmFnQ29uc3RyYWludHMpKSxcclxuICAgICAgICB2aXN1YWxFbGVtZW50LFxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRPRE86IFVwZGF0ZSBvcHRpb25zIGluIGFuIGVmZmVjdC4gVGhpcyBjb3VsZCBiZSB0cmlja3kgYXMgaXQnbGwgYmUgdG9vIGxhdGVcclxuICAgICAgICAgKiB0byB1cGRhdGUgYnkgdGhlIHRpbWUgbGF5b3V0IGFuaW1hdGlvbnMgcnVuLlxyXG4gICAgICAgICAqIFdlIGFsc28gbmVlZCB0byBmaXggdGhpcyBzYWZlVG9SZW1vdmUgYnkgbGlua2luZyBpdCB1cCB0byB0aGUgb25lIHJldHVybmVkIGJ5IHVzZVByZXNlbmNlLFxyXG4gICAgICAgICAqIGVuc3VyaW5nIGl0IGdldHMgY2FsbGVkIGlmIHRoZXJlJ3Mgbm8gcG90ZW50aWFsIGxheW91dCBhbmltYXRpb25zLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgYW5pbWF0aW9uVHlwZTogdHlwZW9mIGxheW91dCA9PT0gXCJzdHJpbmdcIiA/IGxheW91dCA6IFwiYm90aFwiLFxyXG4gICAgICAgIGluaXRpYWxQcm9tb3Rpb25Db25maWcsXHJcbiAgICAgICAgY3Jvc3NmYWRlOiBsYXlvdXRDcm9zc2ZhZGUsXHJcbiAgICAgICAgbGF5b3V0U2Nyb2xsLFxyXG4gICAgICAgIGxheW91dFJvb3QsXHJcbiAgICB9KTtcclxufVxyXG5mdW5jdGlvbiBnZXRDbG9zZXN0UHJvamVjdGluZ05vZGUodmlzdWFsRWxlbWVudCkge1xyXG4gICAgaWYgKCF2aXN1YWxFbGVtZW50KVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gdmlzdWFsRWxlbWVudC5vcHRpb25zLmFsbG93UHJvamVjdGlvbiAhPT0gZmFsc2VcclxuICAgICAgICA/IHZpc3VhbEVsZW1lbnQucHJvamVjdGlvblxyXG4gICAgICAgIDogZ2V0Q2xvc2VzdFByb2plY3RpbmdOb2RlKHZpc3VhbEVsZW1lbnQucGFyZW50KTtcclxufVxyXG5cclxuZXhwb3J0IHsgdXNlVmlzdWFsRWxlbWVudCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs ***!
|
||
\******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ makeUseVisualState: function() { return /* binding */ makeUseVisualState; }\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 _animation_utils_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../animation/utils/is-animation-controls.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs\");\n/* harmony import */ var _context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../context/MotionContext/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* harmony import */ var _render_utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../render/utils/is-controlling-variants.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs\");\n/* harmony import */ var _render_utils_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../render/utils/resolve-variants.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/use-constant.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n/* harmony import */ var _value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../value/utils/resolve-motion-value.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, }, props, context, presenceContext) {\r\n const state = {\r\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\r\n renderState: createRenderState(),\r\n };\r\n return state;\r\n}\r\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\r\n const values = {};\r\n const motionValues = scrapeMotionValues(props, {});\r\n for (const key in motionValues) {\r\n values[key] = (0,_value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__.resolveMotionValue)(motionValues[key]);\r\n }\r\n let { initial, animate } = props;\r\n const isControllingVariants$1 = (0,_render_utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.isControllingVariants)(props);\r\n const isVariantNode$1 = (0,_render_utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.isVariantNode)(props);\r\n if (context &&\r\n isVariantNode$1 &&\r\n !isControllingVariants$1 &&\r\n props.inherit !== false) {\r\n if (initial === undefined)\r\n initial = context.initial;\r\n if (animate === undefined)\r\n animate = context.animate;\r\n }\r\n let isInitialAnimationBlocked = presenceContext\r\n ? presenceContext.initial === false\r\n : false;\r\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\r\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\r\n if (variantToSet &&\r\n typeof variantToSet !== \"boolean\" &&\r\n !(0,_animation_utils_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_3__.isAnimationControls)(variantToSet)) {\r\n const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\r\n for (let i = 0; i < list.length; i++) {\r\n const resolved = (0,_render_utils_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_4__.resolveVariantFromProps)(props, list[i]);\r\n if (resolved) {\r\n const { transitionEnd, transition, ...target } = resolved;\r\n for (const key in target) {\r\n let valueTarget = target[key];\r\n if (Array.isArray(valueTarget)) {\r\n /**\r\n * Take final keyframe if the initial animation is blocked because\r\n * we want to initialise at the end of that blocked animation.\r\n */\r\n const index = isInitialAnimationBlocked\r\n ? valueTarget.length - 1\r\n : 0;\r\n valueTarget = valueTarget[index];\r\n }\r\n if (valueTarget !== null) {\r\n values[key] = valueTarget;\r\n }\r\n }\r\n for (const key in transitionEnd) {\r\n values[key] = transitionEnd[key];\r\n }\r\n }\r\n }\r\n }\r\n return values;\r\n}\r\nconst makeUseVisualState = (config) => (props, isStatic) => {\r\n const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_5__.MotionContext);\r\n const presenceContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_6__.PresenceContext);\r\n const make = () => makeState(config, props, context, presenceContext);\r\n return isStatic ? make() : (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_7__.useConstant)(make);\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3VzZS12aXN1YWwtc3RhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ21DO0FBQ21EO0FBQ2hCO0FBQ0Y7QUFDa0M7QUFDcEI7QUFDdkI7QUFDcUI7QUFDaEY7QUFDQSxxQkFBcUIsaURBQWlEO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQSxzQkFBc0IseUZBQWtCO0FBQ3hDO0FBQ0EsVUFBVSxtQkFBbUI7QUFDN0Isb0NBQW9DLGdHQUFxQjtBQUN6RCw0QkFBNEIsd0ZBQWE7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLCtGQUFtQjtBQUM1QjtBQUNBLHdCQUF3QixpQkFBaUI7QUFDekMsNkJBQTZCLDJGQUF1QjtBQUNwRDtBQUNBLHdCQUF3Qix1Q0FBdUM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsaURBQVUsQ0FBQywyRUFBYTtBQUM1Qyw0QkFBNEIsaURBQVUsQ0FBQyx5RUFBZTtBQUN0RDtBQUNBLCtCQUErQixvRUFBVztBQUMxQztBQUNBO0FBQzhCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3VzZS12aXN1YWwtc3RhdGUubWpzPzEyNDMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcbmltcG9ydCB7IHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IGlzQW5pbWF0aW9uQ29udHJvbHMgfSBmcm9tICcuLi8uLi9hbmltYXRpb24vdXRpbHMvaXMtYW5pbWF0aW9uLWNvbnRyb2xzLm1qcyc7XHJcbmltcG9ydCB7IE1vdGlvbkNvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0L01vdGlvbkNvbnRleHQvaW5kZXgubWpzJztcclxuaW1wb3J0IHsgUHJlc2VuY2VDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29udGV4dC9QcmVzZW5jZUNvbnRleHQubWpzJztcclxuaW1wb3J0IHsgaXNDb250cm9sbGluZ1ZhcmlhbnRzLCBpc1ZhcmlhbnROb2RlIH0gZnJvbSAnLi4vLi4vcmVuZGVyL3V0aWxzL2lzLWNvbnRyb2xsaW5nLXZhcmlhbnRzLm1qcyc7XHJcbmltcG9ydCB7IHJlc29sdmVWYXJpYW50RnJvbVByb3BzIH0gZnJvbSAnLi4vLi4vcmVuZGVyL3V0aWxzL3Jlc29sdmUtdmFyaWFudHMubWpzJztcclxuaW1wb3J0IHsgdXNlQ29uc3RhbnQgfSBmcm9tICcuLi8uLi91dGlscy91c2UtY29uc3RhbnQubWpzJztcclxuaW1wb3J0IHsgcmVzb2x2ZU1vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vdmFsdWUvdXRpbHMvcmVzb2x2ZS1tb3Rpb24tdmFsdWUubWpzJztcclxuXHJcbmZ1bmN0aW9uIG1ha2VTdGF0ZSh7IHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcywgY3JlYXRlUmVuZGVyU3RhdGUsIH0sIHByb3BzLCBjb250ZXh0LCBwcmVzZW5jZUNvbnRleHQpIHtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxhdGVzdFZhbHVlczogbWFrZUxhdGVzdFZhbHVlcyhwcm9wcywgY29udGV4dCwgcHJlc2VuY2VDb250ZXh0LCBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMpLFxyXG4gICAgICAgIHJlbmRlclN0YXRlOiBjcmVhdGVSZW5kZXJTdGF0ZSgpLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBzdGF0ZTtcclxufVxyXG5mdW5jdGlvbiBtYWtlTGF0ZXN0VmFsdWVzKHByb3BzLCBjb250ZXh0LCBwcmVzZW5jZUNvbnRleHQsIHNjcmFwZU1vdGlvblZhbHVlcykge1xyXG4gICAgY29uc3QgdmFsdWVzID0ge307XHJcbiAgICBjb25zdCBtb3Rpb25WYWx1ZXMgPSBzY3JhcGVNb3Rpb25WYWx1ZXMocHJvcHMsIHt9KTtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIG1vdGlvblZhbHVlcykge1xyXG4gICAgICAgIHZhbHVlc1trZXldID0gcmVzb2x2ZU1vdGlvblZhbHVlKG1vdGlvblZhbHVlc1trZXldKTtcclxuICAgIH1cclxuICAgIGxldCB7IGluaXRpYWwsIGFuaW1hdGUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgaXNDb250cm9sbGluZ1ZhcmlhbnRzJDEgPSBpc0NvbnRyb2xsaW5nVmFyaWFudHMocHJvcHMpO1xyXG4gICAgY29uc3QgaXNWYXJpYW50Tm9kZSQxID0gaXNWYXJpYW50Tm9kZShwcm9wcyk7XHJcbiAgICBpZiAoY29udGV4dCAmJlxyXG4gICAgICAgIGlzVmFyaWFudE5vZGUkMSAmJlxyXG4gICAgICAgICFpc0NvbnRyb2xsaW5nVmFyaWFudHMkMSAmJlxyXG4gICAgICAgIHByb3BzLmluaGVyaXQgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgaWYgKGluaXRpYWwgPT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgaW5pdGlhbCA9IGNvbnRleHQuaW5pdGlhbDtcclxuICAgICAgICBpZiAoYW5pbWF0ZSA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICBhbmltYXRlID0gY29udGV4dC5hbmltYXRlO1xyXG4gICAgfVxyXG4gICAgbGV0IGlzSW5pdGlhbEFuaW1hdGlvbkJsb2NrZWQgPSBwcmVzZW5jZUNvbnRleHRcclxuICAgICAgICA/IHByZXNlbmNlQ29udGV4dC5pbml0aWFsID09PSBmYWxzZVxyXG4gICAgICAgIDogZmFsc2U7XHJcbiAgICBpc0luaXRpYWxBbmltYXRpb25CbG9ja2VkID0gaXNJbml0aWFsQW5pbWF0aW9uQmxvY2tlZCB8fCBpbml0aWFsID09PSBmYWxzZTtcclxuICAgIGNvbnN0IHZhcmlhbnRUb1NldCA9IGlzSW5pdGlhbEFuaW1hdGlvbkJsb2NrZWQgPyBhbmltYXRlIDogaW5pdGlhbDtcclxuICAgIGlmICh2YXJpYW50VG9TZXQgJiZcclxuICAgICAgICB0eXBlb2YgdmFyaWFudFRvU2V0ICE9PSBcImJvb2xlYW5cIiAmJlxyXG4gICAgICAgICFpc0FuaW1hdGlvbkNvbnRyb2xzKHZhcmlhbnRUb1NldCkpIHtcclxuICAgICAgICBjb25zdCBsaXN0ID0gQXJyYXkuaXNBcnJheSh2YXJpYW50VG9TZXQpID8gdmFyaWFudFRvU2V0IDogW3ZhcmlhbnRUb1NldF07XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVZhcmlhbnRGcm9tUHJvcHMocHJvcHMsIGxpc3RbaV0pO1xyXG4gICAgICAgICAgICBpZiAocmVzb2x2ZWQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgdHJhbnNpdGlvbkVuZCwgdHJhbnNpdGlvbiwgLi4udGFyZ2V0IH0gPSByZXNvbHZlZDtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRhcmdldCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZVRhcmdldCA9IHRhcmdldFtrZXldO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlVGFyZ2V0KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICAgICAgICAgICAgICogVGFrZSBmaW5hbCBrZXlmcmFtZSBpZiB0aGUgaW5pdGlhbCBhbmltYXRpb24gaXMgYmxvY2tlZCBiZWNhdXNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIHdlIHdhbnQgdG8gaW5pdGlhbGlzZSBhdCB0aGUgZW5kIG9mIHRoYXQgYmxvY2tlZCBhbmltYXRpb24uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGlzSW5pdGlhbEFuaW1hdGlvbkJsb2NrZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdmFsdWVUYXJnZXQubGVuZ3RoIC0gMVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRhcmdldCA9IHZhbHVlVGFyZ2V0W2luZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlVGFyZ2V0ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlc1trZXldID0gdmFsdWVUYXJnZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdHJhbnNpdGlvbkVuZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlc1trZXldID0gdHJhbnNpdGlvbkVuZFtrZXldO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlcztcclxufVxyXG5jb25zdCBtYWtlVXNlVmlzdWFsU3RhdGUgPSAoY29uZmlnKSA9PiAocHJvcHMsIGlzU3RhdGljKSA9PiB7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChNb3Rpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHByZXNlbmNlQ29udGV4dCA9IHVzZUNvbnRleHQoUHJlc2VuY2VDb250ZXh0KTtcclxuICAgIGNvbnN0IG1ha2UgPSAoKSA9PiBtYWtlU3RhdGUoY29uZmlnLCBwcm9wcywgY29udGV4dCwgcHJlc2VuY2VDb250ZXh0KTtcclxuICAgIHJldHVybiBpc1N0YXRpYyA/IG1ha2UoKSA6IHVzZUNvbnN0YW50KG1ha2UpO1xyXG59O1xyXG5cclxuZXhwb3J0IHsgbWFrZVVzZVZpc3VhbFN0YXRlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isValidMotionProp: function() { return /* binding */ isValidMotionProp; }\n/* harmony export */ });\n/**\r\n * A list of all valid MotionProps.\r\n *\r\n * @privateRemarks\r\n * This doesn't throw if a `MotionProp` name is missing - it should.\r\n */\r\nconst validMotionProps = new Set([\r\n \"animate\",\r\n \"exit\",\r\n \"variants\",\r\n \"initial\",\r\n \"style\",\r\n \"values\",\r\n \"variants\",\r\n \"transition\",\r\n \"transformTemplate\",\r\n \"custom\",\r\n \"inherit\",\r\n \"onBeforeLayoutMeasure\",\r\n \"onAnimationStart\",\r\n \"onAnimationComplete\",\r\n \"onUpdate\",\r\n \"onDragStart\",\r\n \"onDrag\",\r\n \"onDragEnd\",\r\n \"onMeasureDragConstraints\",\r\n \"onDirectionLock\",\r\n \"onDragTransitionEnd\",\r\n \"_dragX\",\r\n \"_dragY\",\r\n \"onHoverStart\",\r\n \"onHoverEnd\",\r\n \"onViewportEnter\",\r\n \"onViewportLeave\",\r\n \"globalTapTarget\",\r\n \"ignoreStrict\",\r\n \"viewport\",\r\n]);\r\n/**\r\n * Check whether a prop name is a valid `MotionProp` key.\r\n *\r\n * @param key - Name of the property to check\r\n * @returns `true` is key is a valid `MotionProp`.\r\n *\r\n * @public\r\n */\r\nfunction isValidMotionProp(key) {\r\n return (key.startsWith(\"while\") ||\r\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\r\n key.startsWith(\"layout\") ||\r\n key.startsWith(\"onTap\") ||\r\n key.startsWith(\"onPan\") ||\r\n key.startsWith(\"onLayout\") ||\r\n validMotionProps.has(key));\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3ZhbGlkLXByb3AubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQzZCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3ZhbGlkLXByb3AubWpzPzQzNzMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEEgbGlzdCBvZiBhbGwgdmFsaWQgTW90aW9uUHJvcHMuXHJcbiAqXHJcbiAqIEBwcml2YXRlUmVtYXJrc1xyXG4gKiBUaGlzIGRvZXNuJ3QgdGhyb3cgaWYgYSBgTW90aW9uUHJvcGAgbmFtZSBpcyBtaXNzaW5nIC0gaXQgc2hvdWxkLlxyXG4gKi9cclxuY29uc3QgdmFsaWRNb3Rpb25Qcm9wcyA9IG5ldyBTZXQoW1xyXG4gICAgXCJhbmltYXRlXCIsXHJcbiAgICBcImV4aXRcIixcclxuICAgIFwidmFyaWFudHNcIixcclxuICAgIFwiaW5pdGlhbFwiLFxyXG4gICAgXCJzdHlsZVwiLFxyXG4gICAgXCJ2YWx1ZXNcIixcclxuICAgIFwidmFyaWFudHNcIixcclxuICAgIFwidHJhbnNpdGlvblwiLFxyXG4gICAgXCJ0cmFuc2Zvcm1UZW1wbGF0ZVwiLFxyXG4gICAgXCJjdXN0b21cIixcclxuICAgIFwiaW5oZXJpdFwiLFxyXG4gICAgXCJvbkJlZm9yZUxheW91dE1lYXN1cmVcIixcclxuICAgIFwib25BbmltYXRpb25TdGFydFwiLFxyXG4gICAgXCJvbkFuaW1hdGlvbkNvbXBsZXRlXCIsXHJcbiAgICBcIm9uVXBkYXRlXCIsXHJcbiAgICBcIm9uRHJhZ1N0YXJ0XCIsXHJcbiAgICBcIm9uRHJhZ1wiLFxyXG4gICAgXCJvbkRyYWdFbmRcIixcclxuICAgIFwib25NZWFzdXJlRHJhZ0NvbnN0cmFpbnRzXCIsXHJcbiAgICBcIm9uRGlyZWN0aW9uTG9ja1wiLFxyXG4gICAgXCJvbkRyYWdUcmFuc2l0aW9uRW5kXCIsXHJcbiAgICBcIl9kcmFnWFwiLFxyXG4gICAgXCJfZHJhZ1lcIixcclxuICAgIFwib25Ib3ZlclN0YXJ0XCIsXHJcbiAgICBcIm9uSG92ZXJFbmRcIixcclxuICAgIFwib25WaWV3cG9ydEVudGVyXCIsXHJcbiAgICBcIm9uVmlld3BvcnRMZWF2ZVwiLFxyXG4gICAgXCJnbG9iYWxUYXBUYXJnZXRcIixcclxuICAgIFwiaWdub3JlU3RyaWN0XCIsXHJcbiAgICBcInZpZXdwb3J0XCIsXHJcbl0pO1xyXG4vKipcclxuICogQ2hlY2sgd2hldGhlciBhIHByb3AgbmFtZSBpcyBhIHZhbGlkIGBNb3Rpb25Qcm9wYCBrZXkuXHJcbiAqXHJcbiAqIEBwYXJhbSBrZXkgLSBOYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBjaGVja1xyXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaXMga2V5IGlzIGEgdmFsaWQgYE1vdGlvblByb3BgLlxyXG4gKlxyXG4gKiBAcHVibGljXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1ZhbGlkTW90aW9uUHJvcChrZXkpIHtcclxuICAgIHJldHVybiAoa2V5LnN0YXJ0c1dpdGgoXCJ3aGlsZVwiKSB8fFxyXG4gICAgICAgIChrZXkuc3RhcnRzV2l0aChcImRyYWdcIikgJiYga2V5ICE9PSBcImRyYWdnYWJsZVwiKSB8fFxyXG4gICAgICAgIGtleS5zdGFydHNXaXRoKFwibGF5b3V0XCIpIHx8XHJcbiAgICAgICAga2V5LnN0YXJ0c1dpdGgoXCJvblRhcFwiKSB8fFxyXG4gICAgICAgIGtleS5zdGFydHNXaXRoKFwib25QYW5cIikgfHxcclxuICAgICAgICBrZXkuc3RhcnRzV2l0aChcIm9uTGF5b3V0XCIpIHx8XHJcbiAgICAgICAgdmFsaWRNb3Rpb25Qcm9wcy5oYXMoa2V5KSk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGlzVmFsaWRNb3Rpb25Qcm9wIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs":
|
||
/*!********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs ***!
|
||
\********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mixValues: function() { return /* binding */ mixValues; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\");\n\r\n\r\n\r\nconst borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\r\nconst numBorders = borders.length;\r\nconst asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\r\nconst isPx = (value) => typeof value === \"number\" || motion_dom__WEBPACK_IMPORTED_MODULE_0__.px.test(value);\r\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\r\n if (shouldCrossfadeOpacity) {\r\n target.opacity = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(0, lead.opacity ?? 1, easeCrossfadeIn(progress));\r\n target.opacityExit = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(follow.opacity ?? 1, 0, easeCrossfadeOut(progress));\r\n }\r\n else if (isOnlyMember) {\r\n target.opacity = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(follow.opacity ?? 1, lead.opacity ?? 1, progress);\r\n }\r\n /**\r\n * Mix border radius\r\n */\r\n for (let i = 0; i < numBorders; i++) {\r\n const borderLabel = `border${borders[i]}Radius`;\r\n let followRadius = getRadius(follow, borderLabel);\r\n let leadRadius = getRadius(lead, borderLabel);\r\n if (followRadius === undefined && leadRadius === undefined)\r\n continue;\r\n followRadius || (followRadius = 0);\r\n leadRadius || (leadRadius = 0);\r\n const canMix = followRadius === 0 ||\r\n leadRadius === 0 ||\r\n isPx(followRadius) === isPx(leadRadius);\r\n if (canMix) {\r\n target[borderLabel] = Math.max((0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(asNumber(followRadius), asNumber(leadRadius), progress), 0);\r\n if (motion_dom__WEBPACK_IMPORTED_MODULE_0__.percent.test(leadRadius) || motion_dom__WEBPACK_IMPORTED_MODULE_0__.percent.test(followRadius)) {\r\n target[borderLabel] += \"%\";\r\n }\r\n }\r\n else {\r\n target[borderLabel] = leadRadius;\r\n }\r\n }\r\n /**\r\n * Mix rotation\r\n */\r\n if (follow.rotate || lead.rotate) {\r\n target.rotate = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(follow.rotate || 0, lead.rotate || 0, progress);\r\n }\r\n}\r\nfunction getRadius(values, radiusName) {\r\n return values[radiusName] !== undefined\r\n ? values[radiusName]\r\n : values.borderRadius;\r\n}\r\n// /**\r\n// * We only want to mix the background color if there's a follow element\r\n// * that we're not crossfading opacity between. For instance with switch\r\n// * AnimateSharedLayout animations, this helps the illusion of a continuous\r\n// * element being animated but also cuts down on the number of paints triggered\r\n// * for elements where opacity is doing that work for us.\r\n// */\r\n// if (\r\n// !hasFollowElement &&\r\n// latestLeadValues.backgroundColor &&\r\n// latestFollowValues.backgroundColor\r\n// ) {\r\n// /**\r\n// * This isn't ideal performance-wise as mixColor is creating a new function every frame.\r\n// * We could probably create a mixer that runs at the start of the animation but\r\n// * the idea behind the crossfader is that it runs dynamically between two potentially\r\n// * changing targets (ie opacity or borderRadius may be animating independently via variants)\r\n// */\r\n// leadState.backgroundColor = followState.backgroundColor = mixColor(\r\n// latestFollowValues.backgroundColor as string,\r\n// latestLeadValues.backgroundColor as string\r\n// )(p)\r\n// }\r\nconst easeCrossfadeIn = /*@__PURE__*/ compress(0, 0.5, motion_utils__WEBPACK_IMPORTED_MODULE_2__.circOut);\r\nconst easeCrossfadeOut = /*@__PURE__*/ compress(0.5, 0.95, motion_utils__WEBPACK_IMPORTED_MODULE_3__.noop);\r\nfunction compress(min, max, easing) {\r\n return (p) => {\r\n // Could replace ifs with clamp\r\n if (p < min)\r\n return 0;\r\n if (p > max)\r\n return 1;\r\n return easing((0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.progress)(min, max, p));\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9hbmltYXRpb24vbWl4LXZhbHVlcy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQW9EO0FBQ0c7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsMENBQUU7QUFDdkQ7QUFDQTtBQUNBLHlCQUF5QixxREFBUztBQUNsQyw2QkFBNkIscURBQVM7QUFDdEM7QUFDQTtBQUNBLHlCQUF5QixxREFBUztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEMscUNBQXFDLFdBQVc7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMscURBQVM7QUFDcEQsZ0JBQWdCLCtDQUFPLHFCQUFxQiwrQ0FBTztBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHFEQUFTO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RCxpREFBTztBQUM5RCwyREFBMkQsOENBQUk7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0Isc0RBQVE7QUFDOUI7QUFDQTtBQUNBO0FBQ3FCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9hbmltYXRpb24vbWl4LXZhbHVlcy5tanM/NTBmYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaXhOdW1iZXIsIHBlcmNlbnQsIHB4IH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcbmltcG9ydCB7IHByb2dyZXNzLCBjaXJjT3V0LCBub29wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuXHJcbmNvbnN0IGJvcmRlcnMgPSBbXCJUb3BMZWZ0XCIsIFwiVG9wUmlnaHRcIiwgXCJCb3R0b21MZWZ0XCIsIFwiQm90dG9tUmlnaHRcIl07XHJcbmNvbnN0IG51bUJvcmRlcnMgPSBib3JkZXJzLmxlbmd0aDtcclxuY29uc3QgYXNOdW1iZXIgPSAodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHBhcnNlRmxvYXQodmFsdWUpIDogdmFsdWU7XHJcbmNvbnN0IGlzUHggPSAodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiB8fCBweC50ZXN0KHZhbHVlKTtcclxuZnVuY3Rpb24gbWl4VmFsdWVzKHRhcmdldCwgZm9sbG93LCBsZWFkLCBwcm9ncmVzcywgc2hvdWxkQ3Jvc3NmYWRlT3BhY2l0eSwgaXNPbmx5TWVtYmVyKSB7XHJcbiAgICBpZiAoc2hvdWxkQ3Jvc3NmYWRlT3BhY2l0eSkge1xyXG4gICAgICAgIHRhcmdldC5vcGFjaXR5ID0gbWl4TnVtYmVyKDAsIGxlYWQub3BhY2l0eSA/PyAxLCBlYXNlQ3Jvc3NmYWRlSW4ocHJvZ3Jlc3MpKTtcclxuICAgICAgICB0YXJnZXQub3BhY2l0eUV4aXQgPSBtaXhOdW1iZXIoZm9sbG93Lm9wYWNpdHkgPz8gMSwgMCwgZWFzZUNyb3NzZmFkZU91dChwcm9ncmVzcykpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaXNPbmx5TWVtYmVyKSB7XHJcbiAgICAgICAgdGFyZ2V0Lm9wYWNpdHkgPSBtaXhOdW1iZXIoZm9sbG93Lm9wYWNpdHkgPz8gMSwgbGVhZC5vcGFjaXR5ID8/IDEsIHByb2dyZXNzKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogTWl4IGJvcmRlciByYWRpdXNcclxuICAgICAqL1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1Cb3JkZXJzOyBpKyspIHtcclxuICAgICAgICBjb25zdCBib3JkZXJMYWJlbCA9IGBib3JkZXIke2JvcmRlcnNbaV19UmFkaXVzYDtcclxuICAgICAgICBsZXQgZm9sbG93UmFkaXVzID0gZ2V0UmFkaXVzKGZvbGxvdywgYm9yZGVyTGFiZWwpO1xyXG4gICAgICAgIGxldCBsZWFkUmFkaXVzID0gZ2V0UmFkaXVzKGxlYWQsIGJvcmRlckxhYmVsKTtcclxuICAgICAgICBpZiAoZm9sbG93UmFkaXVzID09PSB1bmRlZmluZWQgJiYgbGVhZFJhZGl1cyA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICBmb2xsb3dSYWRpdXMgfHwgKGZvbGxvd1JhZGl1cyA9IDApO1xyXG4gICAgICAgIGxlYWRSYWRpdXMgfHwgKGxlYWRSYWRpdXMgPSAwKTtcclxuICAgICAgICBjb25zdCBjYW5NaXggPSBmb2xsb3dSYWRpdXMgPT09IDAgfHxcclxuICAgICAgICAgICAgbGVhZFJhZGl1cyA9PT0gMCB8fFxyXG4gICAgICAgICAgICBpc1B4KGZvbGxvd1JhZGl1cykgPT09IGlzUHgobGVhZFJhZGl1cyk7XHJcbiAgICAgICAgaWYgKGNhbk1peCkge1xyXG4gICAgICAgICAgICB0YXJnZXRbYm9yZGVyTGFiZWxdID0gTWF0aC5tYXgobWl4TnVtYmVyKGFzTnVtYmVyKGZvbGxvd1JhZGl1cyksIGFzTnVtYmVyKGxlYWRSYWRpdXMpLCBwcm9ncmVzcyksIDApO1xyXG4gICAgICAgICAgICBpZiAocGVyY2VudC50ZXN0KGxlYWRSYWRpdXMpIHx8IHBlcmNlbnQudGVzdChmb2xsb3dSYWRpdXMpKSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXRbYm9yZGVyTGFiZWxdICs9IFwiJVwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0YXJnZXRbYm9yZGVyTGFiZWxdID0gbGVhZFJhZGl1cztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIE1peCByb3RhdGlvblxyXG4gICAgICovXHJcbiAgICBpZiAoZm9sbG93LnJvdGF0ZSB8fCBsZWFkLnJvdGF0ZSkge1xyXG4gICAgICAgIHRhcmdldC5yb3RhdGUgPSBtaXhOdW1iZXIoZm9sbG93LnJvdGF0ZSB8fCAwLCBsZWFkLnJvdGF0ZSB8fCAwLCBwcm9ncmVzcyk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gZ2V0UmFkaXVzKHZhbHVlcywgcmFkaXVzTmFtZSkge1xyXG4gICAgcmV0dXJuIHZhbHVlc1tyYWRpdXNOYW1lXSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyB2YWx1ZXNbcmFkaXVzTmFtZV1cclxuICAgICAgICA6IHZhbHVlcy5ib3JkZXJSYWRpdXM7XHJcbn1cclxuLy8gLyoqXHJcbi8vICAqIFdlIG9ubHkgd2FudCB0byBtaXggdGhlIGJhY2tncm91bmQgY29sb3IgaWYgdGhlcmUncyBhIGZvbGxvdyBlbGVtZW50XHJcbi8vICAqIHRoYXQgd2UncmUgbm90IGNyb3NzZmFkaW5nIG9wYWNpdHkgYmV0d2Vlbi4gRm9yIGluc3RhbmNlIHdpdGggc3dpdGNoXHJcbi8vICAqIEFuaW1hdGVTaGFyZWRMYXlvdXQgYW5pbWF0aW9ucywgdGhpcyBoZWxwcyB0aGUgaWxsdXNpb24gb2YgYSBjb250aW51b3VzXHJcbi8vICAqIGVsZW1lbnQgYmVpbmcgYW5pbWF0ZWQgYnV0IGFsc28gY3V0cyBkb3duIG9uIHRoZSBudW1iZXIgb2YgcGFpbnRzIHRyaWdnZXJlZFxyXG4vLyAgKiBmb3IgZWxlbWVudHMgd2hlcmUgb3BhY2l0eSBpcyBkb2luZyB0aGF0IHdvcmsgZm9yIHVzLlxyXG4vLyAgKi9cclxuLy8gaWYgKFxyXG4vLyAgICAgIWhhc0ZvbGxvd0VsZW1lbnQgJiZcclxuLy8gICAgIGxhdGVzdExlYWRWYWx1ZXMuYmFja2dyb3VuZENvbG9yICYmXHJcbi8vICAgICBsYXRlc3RGb2xsb3dWYWx1ZXMuYmFja2dyb3VuZENvbG9yXHJcbi8vICkge1xyXG4vLyAgICAgLyoqXHJcbi8vICAgICAgKiBUaGlzIGlzbid0IGlkZWFsIHBlcmZvcm1hbmNlLXdpc2UgYXMgbWl4Q29sb3IgaXMgY3JlYXRpbmcgYSBuZXcgZnVuY3Rpb24gZXZlcnkgZnJhbWUuXHJcbi8vICAgICAgKiBXZSBjb3VsZCBwcm9iYWJseSBjcmVhdGUgYSBtaXhlciB0aGF0IHJ1bnMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBhbmltYXRpb24gYnV0XHJcbi8vICAgICAgKiB0aGUgaWRlYSBiZWhpbmQgdGhlIGNyb3NzZmFkZXIgaXMgdGhhdCBpdCBydW5zIGR5bmFtaWNhbGx5IGJldHdlZW4gdHdvIHBvdGVudGlhbGx5XHJcbi8vICAgICAgKiBjaGFuZ2luZyB0YXJnZXRzIChpZSBvcGFjaXR5IG9yIGJvcmRlclJhZGl1cyBtYXkgYmUgYW5pbWF0aW5nIGluZGVwZW5kZW50bHkgdmlhIHZhcmlhbnRzKVxyXG4vLyAgICAgICovXHJcbi8vICAgICBsZWFkU3RhdGUuYmFja2dyb3VuZENvbG9yID0gZm9sbG93U3RhdGUuYmFja2dyb3VuZENvbG9yID0gbWl4Q29sb3IoXHJcbi8vICAgICAgICAgbGF0ZXN0Rm9sbG93VmFsdWVzLmJhY2tncm91bmRDb2xvciBhcyBzdHJpbmcsXHJcbi8vICAgICAgICAgbGF0ZXN0TGVhZFZhbHVlcy5iYWNrZ3JvdW5kQ29sb3IgYXMgc3RyaW5nXHJcbi8vICAgICApKHApXHJcbi8vIH1cclxuY29uc3QgZWFzZUNyb3NzZmFkZUluID0gLypAX19QVVJFX18qLyBjb21wcmVzcygwLCAwLjUsIGNpcmNPdXQpO1xyXG5jb25zdCBlYXNlQ3Jvc3NmYWRlT3V0ID0gLypAX19QVVJFX18qLyBjb21wcmVzcygwLjUsIDAuOTUsIG5vb3ApO1xyXG5mdW5jdGlvbiBjb21wcmVzcyhtaW4sIG1heCwgZWFzaW5nKSB7XHJcbiAgICByZXR1cm4gKHApID0+IHtcclxuICAgICAgICAvLyBDb3VsZCByZXBsYWNlIGlmcyB3aXRoIGNsYW1wXHJcbiAgICAgICAgaWYgKHAgPCBtaW4pXHJcbiAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIGlmIChwID4gbWF4KVxyXG4gICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICByZXR1cm4gZWFzaW5nKHByb2dyZXNzKG1pbiwgbWF4LCBwKSk7XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgeyBtaXhWYWx1ZXMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ convertBoundingBoxToBox: function() { return /* binding */ convertBoundingBoxToBox; },\n/* harmony export */ convertBoxToBoundingBox: function() { return /* binding */ convertBoxToBoundingBox; },\n/* harmony export */ transformBoxPoints: function() { return /* binding */ transformBoxPoints; }\n/* harmony export */ });\n/**\r\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\r\n * it's easier to consider each axis individually. This function returns a bounding box\r\n * as a map of single-axis min/max values.\r\n */\r\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\r\n return {\r\n x: { min: left, max: right },\r\n y: { min: top, max: bottom },\r\n };\r\n}\r\nfunction convertBoxToBoundingBox({ x, y }) {\r\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\r\n}\r\n/**\r\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\r\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\r\n * when measuring DOM elements and DOM event points.\r\n */\r\nfunction transformBoxPoints(point, transformPoint) {\r\n if (!transformPoint)\r\n return point;\r\n const topLeft = transformPoint({ x: point.left, y: point.top });\r\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\r\n return {\r\n top: topLeft.y,\r\n left: topLeft.x,\r\n bottom: bottomRight.y,\r\n right: bottomRight.x,\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9jb252ZXJzaW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLDJCQUEyQjtBQUM5RDtBQUNBLGFBQWEsdUJBQXVCO0FBQ3BDLGFBQWEsdUJBQXVCO0FBQ3BDO0FBQ0E7QUFDQSxtQ0FBbUMsTUFBTTtBQUN6QyxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLDZCQUE2QjtBQUNsRSx5Q0FBeUMsaUNBQWlDO0FBQzFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9wcm9qZWN0aW9uL2dlb21ldHJ5L2NvbnZlcnNpb24ubWpzP2I4YTAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEJvdW5kaW5nIGJveGVzIHRlbmQgdG8gYmUgZGVmaW5lZCBhcyB0b3AsIGxlZnQsIHJpZ2h0LCBib3R0b20uIEZvciB2YXJpb3VzIG9wZXJhdGlvbnNcclxuICogaXQncyBlYXNpZXIgdG8gY29uc2lkZXIgZWFjaCBheGlzIGluZGl2aWR1YWxseS4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgYm91bmRpbmcgYm94XHJcbiAqIGFzIGEgbWFwIG9mIHNpbmdsZS1heGlzIG1pbi9tYXggdmFsdWVzLlxyXG4gKi9cclxuZnVuY3Rpb24gY29udmVydEJvdW5kaW5nQm94VG9Cb3goeyB0b3AsIGxlZnQsIHJpZ2h0LCBib3R0b20sIH0pIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgeDogeyBtaW46IGxlZnQsIG1heDogcmlnaHQgfSxcclxuICAgICAgICB5OiB7IG1pbjogdG9wLCBtYXg6IGJvdHRvbSB9LFxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBjb252ZXJ0Qm94VG9Cb3VuZGluZ0JveCh7IHgsIHkgfSkge1xyXG4gICAgcmV0dXJuIHsgdG9wOiB5Lm1pbiwgcmlnaHQ6IHgubWF4LCBib3R0b206IHkubWF4LCBsZWZ0OiB4Lm1pbiB9O1xyXG59XHJcbi8qKlxyXG4gKiBBcHBsaWVzIGEgVHJhbnNmb3JtUG9pbnQgZnVuY3Rpb24gdG8gYSBib3VuZGluZyBib3guIFRyYW5zZm9ybVBvaW50IGlzIHVzdWFsbHkgYSBmdW5jdGlvblxyXG4gKiBwcm92aWRlZCBieSBGcmFtZXIgdG8gYWxsb3cgbWVhc3VyZWQgcG9pbnRzIHRvIGJlIGNvcnJlY3RlZCBmb3IgZGV2aWNlIHNjYWxpbmcuIFRoaXMgaXMgdXNlZFxyXG4gKiB3aGVuIG1lYXN1cmluZyBET00gZWxlbWVudHMgYW5kIERPTSBldmVudCBwb2ludHMuXHJcbiAqL1xyXG5mdW5jdGlvbiB0cmFuc2Zvcm1Cb3hQb2ludHMocG9pbnQsIHRyYW5zZm9ybVBvaW50KSB7XHJcbiAgICBpZiAoIXRyYW5zZm9ybVBvaW50KVxyXG4gICAgICAgIHJldHVybiBwb2ludDtcclxuICAgIGNvbnN0IHRvcExlZnQgPSB0cmFuc2Zvcm1Qb2ludCh7IHg6IHBvaW50LmxlZnQsIHk6IHBvaW50LnRvcCB9KTtcclxuICAgIGNvbnN0IGJvdHRvbVJpZ2h0ID0gdHJhbnNmb3JtUG9pbnQoeyB4OiBwb2ludC5yaWdodCwgeTogcG9pbnQuYm90dG9tIH0pO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB0b3A6IHRvcExlZnQueSxcclxuICAgICAgICBsZWZ0OiB0b3BMZWZ0LngsXHJcbiAgICAgICAgYm90dG9tOiBib3R0b21SaWdodC55LFxyXG4gICAgICAgIHJpZ2h0OiBib3R0b21SaWdodC54LFxyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IHsgY29udmVydEJvdW5kaW5nQm94VG9Cb3gsIGNvbnZlcnRCb3hUb0JvdW5kaW5nQm94LCB0cmFuc2Zvcm1Cb3hQb2ludHMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/copy.mjs":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/geometry/copy.mjs ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ copyAxisDeltaInto: function() { return /* binding */ copyAxisDeltaInto; },\n/* harmony export */ copyAxisInto: function() { return /* binding */ copyAxisInto; },\n/* harmony export */ copyBoxInto: function() { return /* binding */ copyBoxInto; }\n/* harmony export */ });\n/**\r\n * Reset an axis to the provided origin box.\r\n *\r\n * This is a mutative operation.\r\n */\r\nfunction copyAxisInto(axis, originAxis) {\r\n axis.min = originAxis.min;\r\n axis.max = originAxis.max;\r\n}\r\n/**\r\n * Reset a box to the provided origin box.\r\n *\r\n * This is a mutative operation.\r\n */\r\nfunction copyBoxInto(box, originBox) {\r\n copyAxisInto(box.x, originBox.x);\r\n copyAxisInto(box.y, originBox.y);\r\n}\r\n/**\r\n * Reset a delta to the provided origin box.\r\n *\r\n * This is a mutative operation.\r\n */\r\nfunction copyAxisDeltaInto(delta, originDelta) {\r\n delta.translate = originDelta.translate;\r\n delta.scale = originDelta.scale;\r\n delta.originPoint = originDelta.originPoint;\r\n delta.origin = originDelta.origin;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9jb3B5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDd0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9wcm9qZWN0aW9uL2dlb21ldHJ5L2NvcHkubWpzP2EyODkiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFJlc2V0IGFuIGF4aXMgdG8gdGhlIHByb3ZpZGVkIG9yaWdpbiBib3guXHJcbiAqXHJcbiAqIFRoaXMgaXMgYSBtdXRhdGl2ZSBvcGVyYXRpb24uXHJcbiAqL1xyXG5mdW5jdGlvbiBjb3B5QXhpc0ludG8oYXhpcywgb3JpZ2luQXhpcykge1xyXG4gICAgYXhpcy5taW4gPSBvcmlnaW5BeGlzLm1pbjtcclxuICAgIGF4aXMubWF4ID0gb3JpZ2luQXhpcy5tYXg7XHJcbn1cclxuLyoqXHJcbiAqIFJlc2V0IGEgYm94IHRvIHRoZSBwcm92aWRlZCBvcmlnaW4gYm94LlxyXG4gKlxyXG4gKiBUaGlzIGlzIGEgbXV0YXRpdmUgb3BlcmF0aW9uLlxyXG4gKi9cclxuZnVuY3Rpb24gY29weUJveEludG8oYm94LCBvcmlnaW5Cb3gpIHtcclxuICAgIGNvcHlBeGlzSW50byhib3gueCwgb3JpZ2luQm94LngpO1xyXG4gICAgY29weUF4aXNJbnRvKGJveC55LCBvcmlnaW5Cb3gueSk7XHJcbn1cclxuLyoqXHJcbiAqIFJlc2V0IGEgZGVsdGEgdG8gdGhlIHByb3ZpZGVkIG9yaWdpbiBib3guXHJcbiAqXHJcbiAqIFRoaXMgaXMgYSBtdXRhdGl2ZSBvcGVyYXRpb24uXHJcbiAqL1xyXG5mdW5jdGlvbiBjb3B5QXhpc0RlbHRhSW50byhkZWx0YSwgb3JpZ2luRGVsdGEpIHtcclxuICAgIGRlbHRhLnRyYW5zbGF0ZSA9IG9yaWdpbkRlbHRhLnRyYW5zbGF0ZTtcclxuICAgIGRlbHRhLnNjYWxlID0gb3JpZ2luRGVsdGEuc2NhbGU7XHJcbiAgICBkZWx0YS5vcmlnaW5Qb2ludCA9IG9yaWdpbkRlbHRhLm9yaWdpblBvaW50O1xyXG4gICAgZGVsdGEub3JpZ2luID0gb3JpZ2luRGVsdGEub3JpZ2luO1xyXG59XHJcblxyXG5leHBvcnQgeyBjb3B5QXhpc0RlbHRhSW50bywgY29weUF4aXNJbnRvLCBjb3B5Qm94SW50byB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/copy.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs":
|
||
/*!********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs ***!
|
||
\********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyAxisDelta: function() { return /* binding */ applyAxisDelta; },\n/* harmony export */ applyBoxDelta: function() { return /* binding */ applyBoxDelta; },\n/* harmony export */ applyPointDelta: function() { return /* binding */ applyPointDelta; },\n/* harmony export */ applyTreeDeltas: function() { return /* binding */ applyTreeDeltas; },\n/* harmony export */ scalePoint: function() { return /* binding */ scalePoint; },\n/* harmony export */ transformAxis: function() { return /* binding */ transformAxis; },\n/* harmony export */ transformBox: function() { return /* binding */ transformBox; },\n/* harmony export */ translateAxis: function() { return /* binding */ translateAxis; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/has-transform.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs\");\n\r\n\r\n\r\n/**\r\n * Scales a point based on a factor and an originPoint\r\n */\r\nfunction scalePoint(point, scale, originPoint) {\r\n const distanceFromOrigin = point - originPoint;\r\n const scaled = scale * distanceFromOrigin;\r\n return originPoint + scaled;\r\n}\r\n/**\r\n * Applies a translate/scale delta to a point\r\n */\r\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\r\n if (boxScale !== undefined) {\r\n point = scalePoint(point, boxScale, originPoint);\r\n }\r\n return scalePoint(point, scale, originPoint) + translate;\r\n}\r\n/**\r\n * Applies a translate/scale delta to an axis\r\n */\r\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\r\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\r\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\r\n}\r\n/**\r\n * Applies a translate/scale delta to a box\r\n */\r\nfunction applyBoxDelta(box, { x, y }) {\r\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\r\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\r\n}\r\nconst TREE_SCALE_SNAP_MIN = 0.999999999999;\r\nconst TREE_SCALE_SNAP_MAX = 1.0000000000001;\r\n/**\r\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\r\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\r\n *\r\n * This is the final nested loop within updateLayoutDelta for future refactoring\r\n */\r\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\r\n const treeLength = treePath.length;\r\n if (!treeLength)\r\n return;\r\n // Reset the treeScale\r\n treeScale.x = treeScale.y = 1;\r\n let node;\r\n let delta;\r\n for (let i = 0; i < treeLength; i++) {\r\n node = treePath[i];\r\n delta = node.projectionDelta;\r\n /**\r\n * TODO: Prefer to remove this, but currently we have motion components with\r\n * display: contents in Framer.\r\n */\r\n const { visualElement } = node.options;\r\n if (visualElement &&\r\n visualElement.props.style &&\r\n visualElement.props.style.display === \"contents\") {\r\n continue;\r\n }\r\n if (isSharedTransition &&\r\n node.options.layoutScroll &&\r\n node.scroll &&\r\n node !== node.root) {\r\n transformBox(box, {\r\n x: -node.scroll.offset.x,\r\n y: -node.scroll.offset.y,\r\n });\r\n }\r\n if (delta) {\r\n // Incoporate each ancestor's scale into a culmulative treeScale for this component\r\n treeScale.x *= delta.x.scale;\r\n treeScale.y *= delta.y.scale;\r\n // Apply each ancestor's calculated delta into this component's recorded layout box\r\n applyBoxDelta(box, delta);\r\n }\r\n if (isSharedTransition && (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.hasTransform)(node.latestValues)) {\r\n transformBox(box, node.latestValues);\r\n }\r\n }\r\n /**\r\n * Snap tree scale back to 1 if it's within a non-perceivable threshold.\r\n * This will help reduce useless scales getting rendered.\r\n */\r\n if (treeScale.x < TREE_SCALE_SNAP_MAX &&\r\n treeScale.x > TREE_SCALE_SNAP_MIN) {\r\n treeScale.x = 1.0;\r\n }\r\n if (treeScale.y < TREE_SCALE_SNAP_MAX &&\r\n treeScale.y > TREE_SCALE_SNAP_MIN) {\r\n treeScale.y = 1.0;\r\n }\r\n}\r\nfunction translateAxis(axis, distance) {\r\n axis.min = axis.min + distance;\r\n axis.max = axis.max + distance;\r\n}\r\n/**\r\n * Apply a transform to an axis from the latest resolved motion values.\r\n * This function basically acts as a bridge between a flat motion value map\r\n * and applyAxisDelta\r\n */\r\nfunction transformAxis(axis, axisTranslate, axisScale, boxScale, axisOrigin = 0.5) {\r\n const originPoint = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(axis.min, axis.max, axisOrigin);\r\n // Apply the axis delta to the final axis\r\n applyAxisDelta(axis, axisTranslate, axisScale, originPoint, boxScale);\r\n}\r\n/**\r\n * Apply a transform to a box from the latest resolved motion values.\r\n */\r\nfunction transformBox(box, transform) {\r\n transformAxis(box.x, transform.x, transform.scaleX, transform.scale, transform.originX);\r\n transformAxis(box.y, transform.y, transform.scaleY, transform.scale, transform.originY);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9kZWx0YS1hcHBseS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUF1QztBQUNtQjtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixNQUFNO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGdCQUFnQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsZ0JBQWdCO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLHNFQUFZO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IscURBQVM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNtSSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvZGVsdGEtYXBwbHkubWpzPzlkY2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWl4TnVtYmVyIH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcbmltcG9ydCB7IGhhc1RyYW5zZm9ybSB9IGZyb20gJy4uL3V0aWxzL2hhcy10cmFuc2Zvcm0ubWpzJztcclxuXHJcbi8qKlxyXG4gKiBTY2FsZXMgYSBwb2ludCBiYXNlZCBvbiBhIGZhY3RvciBhbmQgYW4gb3JpZ2luUG9pbnRcclxuICovXHJcbmZ1bmN0aW9uIHNjYWxlUG9pbnQocG9pbnQsIHNjYWxlLCBvcmlnaW5Qb2ludCkge1xyXG4gICAgY29uc3QgZGlzdGFuY2VGcm9tT3JpZ2luID0gcG9pbnQgLSBvcmlnaW5Qb2ludDtcclxuICAgIGNvbnN0IHNjYWxlZCA9IHNjYWxlICogZGlzdGFuY2VGcm9tT3JpZ2luO1xyXG4gICAgcmV0dXJuIG9yaWdpblBvaW50ICsgc2NhbGVkO1xyXG59XHJcbi8qKlxyXG4gKiBBcHBsaWVzIGEgdHJhbnNsYXRlL3NjYWxlIGRlbHRhIHRvIGEgcG9pbnRcclxuICovXHJcbmZ1bmN0aW9uIGFwcGx5UG9pbnREZWx0YShwb2ludCwgdHJhbnNsYXRlLCBzY2FsZSwgb3JpZ2luUG9pbnQsIGJveFNjYWxlKSB7XHJcbiAgICBpZiAoYm94U2NhbGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHBvaW50ID0gc2NhbGVQb2ludChwb2ludCwgYm94U2NhbGUsIG9yaWdpblBvaW50KTtcclxuICAgIH1cclxuICAgIHJldHVybiBzY2FsZVBvaW50KHBvaW50LCBzY2FsZSwgb3JpZ2luUG9pbnQpICsgdHJhbnNsYXRlO1xyXG59XHJcbi8qKlxyXG4gKiBBcHBsaWVzIGEgdHJhbnNsYXRlL3NjYWxlIGRlbHRhIHRvIGFuIGF4aXNcclxuICovXHJcbmZ1bmN0aW9uIGFwcGx5QXhpc0RlbHRhKGF4aXMsIHRyYW5zbGF0ZSA9IDAsIHNjYWxlID0gMSwgb3JpZ2luUG9pbnQsIGJveFNjYWxlKSB7XHJcbiAgICBheGlzLm1pbiA9IGFwcGx5UG9pbnREZWx0YShheGlzLm1pbiwgdHJhbnNsYXRlLCBzY2FsZSwgb3JpZ2luUG9pbnQsIGJveFNjYWxlKTtcclxuICAgIGF4aXMubWF4ID0gYXBwbHlQb2ludERlbHRhKGF4aXMubWF4LCB0cmFuc2xhdGUsIHNjYWxlLCBvcmlnaW5Qb2ludCwgYm94U2NhbGUpO1xyXG59XHJcbi8qKlxyXG4gKiBBcHBsaWVzIGEgdHJhbnNsYXRlL3NjYWxlIGRlbHRhIHRvIGEgYm94XHJcbiAqL1xyXG5mdW5jdGlvbiBhcHBseUJveERlbHRhKGJveCwgeyB4LCB5IH0pIHtcclxuICAgIGFwcGx5QXhpc0RlbHRhKGJveC54LCB4LnRyYW5zbGF0ZSwgeC5zY2FsZSwgeC5vcmlnaW5Qb2ludCk7XHJcbiAgICBhcHBseUF4aXNEZWx0YShib3gueSwgeS50cmFuc2xhdGUsIHkuc2NhbGUsIHkub3JpZ2luUG9pbnQpO1xyXG59XHJcbmNvbnN0IFRSRUVfU0NBTEVfU05BUF9NSU4gPSAwLjk5OTk5OTk5OTk5OTtcclxuY29uc3QgVFJFRV9TQ0FMRV9TTkFQX01BWCA9IDEuMDAwMDAwMDAwMDAwMTtcclxuLyoqXHJcbiAqIEFwcGx5IGEgdHJlZSBvZiBkZWx0YXMgdG8gYSBib3guIFdlIGRvIHRoaXMgdG8gY2FsY3VsYXRlIHRoZSBlZmZlY3Qgb2YgYWxsIHRoZSB0cmFuc2Zvcm1zXHJcbiAqIGluIGEgdHJlZSB1cG9uIG91ciBib3ggYmVmb3JlIHRoZW4gY2FsY3VsYXRpbmcgaG93IHRvIHByb2plY3QgaXQgaW50byBvdXIgZGVzaXJlZCB2aWV3cG9ydC1yZWxhdGl2ZSBib3hcclxuICpcclxuICogVGhpcyBpcyB0aGUgZmluYWwgbmVzdGVkIGxvb3Agd2l0aGluIHVwZGF0ZUxheW91dERlbHRhIGZvciBmdXR1cmUgcmVmYWN0b3JpbmdcclxuICovXHJcbmZ1bmN0aW9uIGFwcGx5VHJlZURlbHRhcyhib3gsIHRyZWVTY2FsZSwgdHJlZVBhdGgsIGlzU2hhcmVkVHJhbnNpdGlvbiA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCB0cmVlTGVuZ3RoID0gdHJlZVBhdGgubGVuZ3RoO1xyXG4gICAgaWYgKCF0cmVlTGVuZ3RoKVxyXG4gICAgICAgIHJldHVybjtcclxuICAgIC8vIFJlc2V0IHRoZSB0cmVlU2NhbGVcclxuICAgIHRyZWVTY2FsZS54ID0gdHJlZVNjYWxlLnkgPSAxO1xyXG4gICAgbGV0IG5vZGU7XHJcbiAgICBsZXQgZGVsdGE7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRyZWVMZW5ndGg7IGkrKykge1xyXG4gICAgICAgIG5vZGUgPSB0cmVlUGF0aFtpXTtcclxuICAgICAgICBkZWx0YSA9IG5vZGUucHJvamVjdGlvbkRlbHRhO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRPRE86IFByZWZlciB0byByZW1vdmUgdGhpcywgYnV0IGN1cnJlbnRseSB3ZSBoYXZlIG1vdGlvbiBjb21wb25lbnRzIHdpdGhcclxuICAgICAgICAgKiBkaXNwbGF5OiBjb250ZW50cyBpbiBGcmFtZXIuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY29uc3QgeyB2aXN1YWxFbGVtZW50IH0gPSBub2RlLm9wdGlvbnM7XHJcbiAgICAgICAgaWYgKHZpc3VhbEVsZW1lbnQgJiZcclxuICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5wcm9wcy5zdHlsZSAmJlxyXG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50LnByb3BzLnN0eWxlLmRpc3BsYXkgPT09IFwiY29udGVudHNcIikge1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlzU2hhcmVkVHJhbnNpdGlvbiAmJlxyXG4gICAgICAgICAgICBub2RlLm9wdGlvbnMubGF5b3V0U2Nyb2xsICYmXHJcbiAgICAgICAgICAgIG5vZGUuc2Nyb2xsICYmXHJcbiAgICAgICAgICAgIG5vZGUgIT09IG5vZGUucm9vdCkge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm1Cb3goYm94LCB7XHJcbiAgICAgICAgICAgICAgICB4OiAtbm9kZS5zY3JvbGwub2Zmc2V0LngsXHJcbiAgICAgICAgICAgICAgICB5OiAtbm9kZS5zY3JvbGwub2Zmc2V0LnksXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGVsdGEpIHtcclxuICAgICAgICAgICAgLy8gSW5jb3BvcmF0ZSBlYWNoIGFuY2VzdG9yJ3Mgc2NhbGUgaW50byBhIGN1bG11bGF0aXZlIHRyZWVTY2FsZSBmb3IgdGhpcyBjb21wb25lbnRcclxuICAgICAgICAgICAgdHJlZVNjYWxlLnggKj0gZGVsdGEueC5zY2FsZTtcclxuICAgICAgICAgICAgdHJlZVNjYWxlLnkgKj0gZGVsdGEueS5zY2FsZTtcclxuICAgICAgICAgICAgLy8gQXBwbHkgZWFjaCBhbmNlc3RvcidzIGNhbGN1bGF0ZWQgZGVsdGEgaW50byB0aGlzIGNvbXBvbmVudCdzIHJlY29yZGVkIGxheW91dCBib3hcclxuICAgICAgICAgICAgYXBwbHlCb3hEZWx0YShib3gsIGRlbHRhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlzU2hhcmVkVHJhbnNpdGlvbiAmJiBoYXNUcmFuc2Zvcm0obm9kZS5sYXRlc3RWYWx1ZXMpKSB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybUJveChib3gsIG5vZGUubGF0ZXN0VmFsdWVzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNuYXAgdHJlZSBzY2FsZSBiYWNrIHRvIDEgaWYgaXQncyB3aXRoaW4gYSBub24tcGVyY2VpdmFibGUgdGhyZXNob2xkLlxyXG4gICAgICogVGhpcyB3aWxsIGhlbHAgcmVkdWNlIHVzZWxlc3Mgc2NhbGVzIGdldHRpbmcgcmVuZGVyZWQuXHJcbiAgICAgKi9cclxuICAgIGlmICh0cmVlU2NhbGUueCA8IFRSRUVfU0NBTEVfU05BUF9NQVggJiZcclxuICAgICAgICB0cmVlU2NhbGUueCA+IFRSRUVfU0NBTEVfU05BUF9NSU4pIHtcclxuICAgICAgICB0cmVlU2NhbGUueCA9IDEuMDtcclxuICAgIH1cclxuICAgIGlmICh0cmVlU2NhbGUueSA8IFRSRUVfU0NBTEVfU05BUF9NQVggJiZcclxuICAgICAgICB0cmVlU2NhbGUueSA+IFRSRUVfU0NBTEVfU05BUF9NSU4pIHtcclxuICAgICAgICB0cmVlU2NhbGUueSA9IDEuMDtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiB0cmFuc2xhdGVBeGlzKGF4aXMsIGRpc3RhbmNlKSB7XHJcbiAgICBheGlzLm1pbiA9IGF4aXMubWluICsgZGlzdGFuY2U7XHJcbiAgICBheGlzLm1heCA9IGF4aXMubWF4ICsgZGlzdGFuY2U7XHJcbn1cclxuLyoqXHJcbiAqIEFwcGx5IGEgdHJhbnNmb3JtIHRvIGFuIGF4aXMgZnJvbSB0aGUgbGF0ZXN0IHJlc29sdmVkIG1vdGlvbiB2YWx1ZXMuXHJcbiAqIFRoaXMgZnVuY3Rpb24gYmFzaWNhbGx5IGFjdHMgYXMgYSBicmlkZ2UgYmV0d2VlbiBhIGZsYXQgbW90aW9uIHZhbHVlIG1hcFxyXG4gKiBhbmQgYXBwbHlBeGlzRGVsdGFcclxuICovXHJcbmZ1bmN0aW9uIHRyYW5zZm9ybUF4aXMoYXhpcywgYXhpc1RyYW5zbGF0ZSwgYXhpc1NjYWxlLCBib3hTY2FsZSwgYXhpc09yaWdpbiA9IDAuNSkge1xyXG4gICAgY29uc3Qgb3JpZ2luUG9pbnQgPSBtaXhOdW1iZXIoYXhpcy5taW4sIGF4aXMubWF4LCBheGlzT3JpZ2luKTtcclxuICAgIC8vIEFwcGx5IHRoZSBheGlzIGRlbHRhIHRvIHRoZSBmaW5hbCBheGlzXHJcbiAgICBhcHBseUF4aXNEZWx0YShheGlzLCBheGlzVHJhbnNsYXRlLCBheGlzU2NhbGUsIG9yaWdpblBvaW50LCBib3hTY2FsZSk7XHJcbn1cclxuLyoqXHJcbiAqIEFwcGx5IGEgdHJhbnNmb3JtIHRvIGEgYm94IGZyb20gdGhlIGxhdGVzdCByZXNvbHZlZCBtb3Rpb24gdmFsdWVzLlxyXG4gKi9cclxuZnVuY3Rpb24gdHJhbnNmb3JtQm94KGJveCwgdHJhbnNmb3JtKSB7XHJcbiAgICB0cmFuc2Zvcm1BeGlzKGJveC54LCB0cmFuc2Zvcm0ueCwgdHJhbnNmb3JtLnNjYWxlWCwgdHJhbnNmb3JtLnNjYWxlLCB0cmFuc2Zvcm0ub3JpZ2luWCk7XHJcbiAgICB0cmFuc2Zvcm1BeGlzKGJveC55LCB0cmFuc2Zvcm0ueSwgdHJhbnNmb3JtLnNjYWxlWSwgdHJhbnNmb3JtLnNjYWxlLCB0cmFuc2Zvcm0ub3JpZ2luWSk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGFwcGx5QXhpc0RlbHRhLCBhcHBseUJveERlbHRhLCBhcHBseVBvaW50RGVsdGEsIGFwcGx5VHJlZURlbHRhcywgc2NhbGVQb2ludCwgdHJhbnNmb3JtQXhpcywgdHJhbnNmb3JtQm94LCB0cmFuc2xhdGVBeGlzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcAxisDelta: function() { return /* binding */ calcAxisDelta; },\n/* harmony export */ calcBoxDelta: function() { return /* binding */ calcBoxDelta; },\n/* harmony export */ calcLength: function() { return /* binding */ calcLength; },\n/* harmony export */ calcRelativeAxis: function() { return /* binding */ calcRelativeAxis; },\n/* harmony export */ calcRelativeAxisPosition: function() { return /* binding */ calcRelativeAxisPosition; },\n/* harmony export */ calcRelativeBox: function() { return /* binding */ calcRelativeBox; },\n/* harmony export */ calcRelativePosition: function() { return /* binding */ calcRelativePosition; },\n/* harmony export */ isNear: function() { return /* binding */ isNear; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\r\n\r\nconst SCALE_PRECISION = 0.0001;\r\nconst SCALE_MIN = 1 - SCALE_PRECISION;\r\nconst SCALE_MAX = 1 + SCALE_PRECISION;\r\nconst TRANSLATE_PRECISION = 0.01;\r\nconst TRANSLATE_MIN = 0 - TRANSLATE_PRECISION;\r\nconst TRANSLATE_MAX = 0 + TRANSLATE_PRECISION;\r\nfunction calcLength(axis) {\r\n return axis.max - axis.min;\r\n}\r\nfunction isNear(value, target, maxDistance) {\r\n return Math.abs(value - target) <= maxDistance;\r\n}\r\nfunction calcAxisDelta(delta, source, target, origin = 0.5) {\r\n delta.origin = origin;\r\n delta.originPoint = (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(source.min, source.max, delta.origin);\r\n delta.scale = calcLength(target) / calcLength(source);\r\n delta.translate =\r\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(target.min, target.max, delta.origin) - delta.originPoint;\r\n if ((delta.scale >= SCALE_MIN && delta.scale <= SCALE_MAX) ||\r\n isNaN(delta.scale)) {\r\n delta.scale = 1.0;\r\n }\r\n if ((delta.translate >= TRANSLATE_MIN &&\r\n delta.translate <= TRANSLATE_MAX) ||\r\n isNaN(delta.translate)) {\r\n delta.translate = 0.0;\r\n }\r\n}\r\nfunction calcBoxDelta(delta, source, target, origin) {\r\n calcAxisDelta(delta.x, source.x, target.x, origin ? origin.originX : undefined);\r\n calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : undefined);\r\n}\r\nfunction calcRelativeAxis(target, relative, parent) {\r\n target.min = parent.min + relative.min;\r\n target.max = target.min + calcLength(relative);\r\n}\r\nfunction calcRelativeBox(target, relative, parent) {\r\n calcRelativeAxis(target.x, relative.x, parent.x);\r\n calcRelativeAxis(target.y, relative.y, parent.y);\r\n}\r\nfunction calcRelativeAxisPosition(target, layout, parent) {\r\n target.min = layout.min - parent.min;\r\n target.max = target.min + calcLength(layout);\r\n}\r\nfunction calcRelativePosition(target, layout, parent) {\r\n calcRelativeAxisPosition(target.x, layout.x, parent.x);\r\n calcRelativeAxisPosition(target.y, layout.y, parent.y);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9kZWx0YS1jYWxjLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBdUM7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHFEQUFTO0FBQ2pDO0FBQ0E7QUFDQSxRQUFRLHFEQUFTO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQzhJIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9kZWx0YS1jYWxjLm1qcz83MTU2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1peE51bWJlciB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5cclxuY29uc3QgU0NBTEVfUFJFQ0lTSU9OID0gMC4wMDAxO1xyXG5jb25zdCBTQ0FMRV9NSU4gPSAxIC0gU0NBTEVfUFJFQ0lTSU9OO1xyXG5jb25zdCBTQ0FMRV9NQVggPSAxICsgU0NBTEVfUFJFQ0lTSU9OO1xyXG5jb25zdCBUUkFOU0xBVEVfUFJFQ0lTSU9OID0gMC4wMTtcclxuY29uc3QgVFJBTlNMQVRFX01JTiA9IDAgLSBUUkFOU0xBVEVfUFJFQ0lTSU9OO1xyXG5jb25zdCBUUkFOU0xBVEVfTUFYID0gMCArIFRSQU5TTEFURV9QUkVDSVNJT047XHJcbmZ1bmN0aW9uIGNhbGNMZW5ndGgoYXhpcykge1xyXG4gICAgcmV0dXJuIGF4aXMubWF4IC0gYXhpcy5taW47XHJcbn1cclxuZnVuY3Rpb24gaXNOZWFyKHZhbHVlLCB0YXJnZXQsIG1heERpc3RhbmNlKSB7XHJcbiAgICByZXR1cm4gTWF0aC5hYnModmFsdWUgLSB0YXJnZXQpIDw9IG1heERpc3RhbmNlO1xyXG59XHJcbmZ1bmN0aW9uIGNhbGNBeGlzRGVsdGEoZGVsdGEsIHNvdXJjZSwgdGFyZ2V0LCBvcmlnaW4gPSAwLjUpIHtcclxuICAgIGRlbHRhLm9yaWdpbiA9IG9yaWdpbjtcclxuICAgIGRlbHRhLm9yaWdpblBvaW50ID0gbWl4TnVtYmVyKHNvdXJjZS5taW4sIHNvdXJjZS5tYXgsIGRlbHRhLm9yaWdpbik7XHJcbiAgICBkZWx0YS5zY2FsZSA9IGNhbGNMZW5ndGgodGFyZ2V0KSAvIGNhbGNMZW5ndGgoc291cmNlKTtcclxuICAgIGRlbHRhLnRyYW5zbGF0ZSA9XHJcbiAgICAgICAgbWl4TnVtYmVyKHRhcmdldC5taW4sIHRhcmdldC5tYXgsIGRlbHRhLm9yaWdpbikgLSBkZWx0YS5vcmlnaW5Qb2ludDtcclxuICAgIGlmICgoZGVsdGEuc2NhbGUgPj0gU0NBTEVfTUlOICYmIGRlbHRhLnNjYWxlIDw9IFNDQUxFX01BWCkgfHxcclxuICAgICAgICBpc05hTihkZWx0YS5zY2FsZSkpIHtcclxuICAgICAgICBkZWx0YS5zY2FsZSA9IDEuMDtcclxuICAgIH1cclxuICAgIGlmICgoZGVsdGEudHJhbnNsYXRlID49IFRSQU5TTEFURV9NSU4gJiZcclxuICAgICAgICBkZWx0YS50cmFuc2xhdGUgPD0gVFJBTlNMQVRFX01BWCkgfHxcclxuICAgICAgICBpc05hTihkZWx0YS50cmFuc2xhdGUpKSB7XHJcbiAgICAgICAgZGVsdGEudHJhbnNsYXRlID0gMC4wO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGNhbGNCb3hEZWx0YShkZWx0YSwgc291cmNlLCB0YXJnZXQsIG9yaWdpbikge1xyXG4gICAgY2FsY0F4aXNEZWx0YShkZWx0YS54LCBzb3VyY2UueCwgdGFyZ2V0LngsIG9yaWdpbiA/IG9yaWdpbi5vcmlnaW5YIDogdW5kZWZpbmVkKTtcclxuICAgIGNhbGNBeGlzRGVsdGEoZGVsdGEueSwgc291cmNlLnksIHRhcmdldC55LCBvcmlnaW4gPyBvcmlnaW4ub3JpZ2luWSA6IHVuZGVmaW5lZCk7XHJcbn1cclxuZnVuY3Rpb24gY2FsY1JlbGF0aXZlQXhpcyh0YXJnZXQsIHJlbGF0aXZlLCBwYXJlbnQpIHtcclxuICAgIHRhcmdldC5taW4gPSBwYXJlbnQubWluICsgcmVsYXRpdmUubWluO1xyXG4gICAgdGFyZ2V0Lm1heCA9IHRhcmdldC5taW4gKyBjYWxjTGVuZ3RoKHJlbGF0aXZlKTtcclxufVxyXG5mdW5jdGlvbiBjYWxjUmVsYXRpdmVCb3godGFyZ2V0LCByZWxhdGl2ZSwgcGFyZW50KSB7XHJcbiAgICBjYWxjUmVsYXRpdmVBeGlzKHRhcmdldC54LCByZWxhdGl2ZS54LCBwYXJlbnQueCk7XHJcbiAgICBjYWxjUmVsYXRpdmVBeGlzKHRhcmdldC55LCByZWxhdGl2ZS55LCBwYXJlbnQueSk7XHJcbn1cclxuZnVuY3Rpb24gY2FsY1JlbGF0aXZlQXhpc1Bvc2l0aW9uKHRhcmdldCwgbGF5b3V0LCBwYXJlbnQpIHtcclxuICAgIHRhcmdldC5taW4gPSBsYXlvdXQubWluIC0gcGFyZW50Lm1pbjtcclxuICAgIHRhcmdldC5tYXggPSB0YXJnZXQubWluICsgY2FsY0xlbmd0aChsYXlvdXQpO1xyXG59XHJcbmZ1bmN0aW9uIGNhbGNSZWxhdGl2ZVBvc2l0aW9uKHRhcmdldCwgbGF5b3V0LCBwYXJlbnQpIHtcclxuICAgIGNhbGNSZWxhdGl2ZUF4aXNQb3NpdGlvbih0YXJnZXQueCwgbGF5b3V0LngsIHBhcmVudC54KTtcclxuICAgIGNhbGNSZWxhdGl2ZUF4aXNQb3NpdGlvbih0YXJnZXQueSwgbGF5b3V0LnksIHBhcmVudC55KTtcclxufVxyXG5cclxuZXhwb3J0IHsgY2FsY0F4aXNEZWx0YSwgY2FsY0JveERlbHRhLCBjYWxjTGVuZ3RoLCBjYWxjUmVsYXRpdmVBeGlzLCBjYWxjUmVsYXRpdmVBeGlzUG9zaXRpb24sIGNhbGNSZWxhdGl2ZUJveCwgY2FsY1JlbGF0aXZlUG9zaXRpb24sIGlzTmVhciB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs ***!
|
||
\*********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ removeAxisDelta: function() { return /* binding */ removeAxisDelta; },\n/* harmony export */ removeAxisTransforms: function() { return /* binding */ removeAxisTransforms; },\n/* harmony export */ removeBoxTransforms: function() { return /* binding */ removeBoxTransforms; },\n/* harmony export */ removePointDelta: function() { return /* binding */ removePointDelta; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _delta_apply_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./delta-apply.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs\");\n\r\n\r\n\r\n/**\r\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\r\n */\r\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\r\n point -= translate;\r\n point = (0,_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_0__.scalePoint)(point, 1 / scale, originPoint);\r\n if (boxScale !== undefined) {\r\n point = (0,_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_0__.scalePoint)(point, 1 / boxScale, originPoint);\r\n }\r\n return point;\r\n}\r\n/**\r\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\r\n */\r\nfunction removeAxisDelta(axis, translate = 0, scale = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\r\n if (motion_dom__WEBPACK_IMPORTED_MODULE_1__.percent.test(translate)) {\r\n translate = parseFloat(translate);\r\n const relativeProgress = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.mixNumber)(sourceAxis.min, sourceAxis.max, translate / 100);\r\n translate = relativeProgress - sourceAxis.min;\r\n }\r\n if (typeof translate !== \"number\")\r\n return;\r\n let originPoint = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.mixNumber)(originAxis.min, originAxis.max, origin);\r\n if (axis === originAxis)\r\n originPoint -= translate;\r\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\r\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\r\n}\r\n/**\r\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\r\n * and acts as a bridge between motion values and removeAxisDelta\r\n */\r\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\r\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\r\n}\r\n/**\r\n * The names of the motion values we want to apply as translation, scale and origin.\r\n */\r\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\r\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\r\n/**\r\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\r\n * and acts as a bridge between motion values and removeAxisDelta\r\n */\r\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\r\n removeAxisTransforms(box.x, transforms, xKeys, originBox ? originBox.x : undefined, sourceBox ? sourceBox.x : undefined);\r\n removeAxisTransforms(box.y, transforms, yKeys, originBox ? originBox.y : undefined, sourceBox ? sourceBox.y : undefined);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9kZWx0YS1yZW1vdmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBZ0Q7QUFDRDtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLDREQUFVO0FBQ3RCO0FBQ0EsZ0JBQWdCLDREQUFVO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwrQ0FBTztBQUNmO0FBQ0EsaUNBQWlDLHFEQUFTO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHFEQUFTO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDd0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9wcm9qZWN0aW9uL2dlb21ldHJ5L2RlbHRhLXJlbW92ZS5tanM/ZWNlMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwZXJjZW50LCBtaXhOdW1iZXIgfSBmcm9tICdtb3Rpb24tZG9tJztcclxuaW1wb3J0IHsgc2NhbGVQb2ludCB9IGZyb20gJy4vZGVsdGEtYXBwbHkubWpzJztcclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgYSBkZWx0YSBmcm9tIGEgcG9pbnQuIFRoaXMgaXMgZXNzZW50aWFsbHkgdGhlIHN0ZXBzIG9mIGFwcGx5UG9pbnREZWx0YSBpbiByZXZlcnNlXHJcbiAqL1xyXG5mdW5jdGlvbiByZW1vdmVQb2ludERlbHRhKHBvaW50LCB0cmFuc2xhdGUsIHNjYWxlLCBvcmlnaW5Qb2ludCwgYm94U2NhbGUpIHtcclxuICAgIHBvaW50IC09IHRyYW5zbGF0ZTtcclxuICAgIHBvaW50ID0gc2NhbGVQb2ludChwb2ludCwgMSAvIHNjYWxlLCBvcmlnaW5Qb2ludCk7XHJcbiAgICBpZiAoYm94U2NhbGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHBvaW50ID0gc2NhbGVQb2ludChwb2ludCwgMSAvIGJveFNjYWxlLCBvcmlnaW5Qb2ludCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcG9pbnQ7XHJcbn1cclxuLyoqXHJcbiAqIFJlbW92ZSBhIGRlbHRhIGZyb20gYW4gYXhpcy4gVGhpcyBpcyBlc3NlbnRpYWxseSB0aGUgc3RlcHMgb2YgYXBwbHlBeGlzRGVsdGEgaW4gcmV2ZXJzZVxyXG4gKi9cclxuZnVuY3Rpb24gcmVtb3ZlQXhpc0RlbHRhKGF4aXMsIHRyYW5zbGF0ZSA9IDAsIHNjYWxlID0gMSwgb3JpZ2luID0gMC41LCBib3hTY2FsZSwgb3JpZ2luQXhpcyA9IGF4aXMsIHNvdXJjZUF4aXMgPSBheGlzKSB7XHJcbiAgICBpZiAocGVyY2VudC50ZXN0KHRyYW5zbGF0ZSkpIHtcclxuICAgICAgICB0cmFuc2xhdGUgPSBwYXJzZUZsb2F0KHRyYW5zbGF0ZSk7XHJcbiAgICAgICAgY29uc3QgcmVsYXRpdmVQcm9ncmVzcyA9IG1peE51bWJlcihzb3VyY2VBeGlzLm1pbiwgc291cmNlQXhpcy5tYXgsIHRyYW5zbGF0ZSAvIDEwMCk7XHJcbiAgICAgICAgdHJhbnNsYXRlID0gcmVsYXRpdmVQcm9ncmVzcyAtIHNvdXJjZUF4aXMubWluO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB0cmFuc2xhdGUgIT09IFwibnVtYmVyXCIpXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgbGV0IG9yaWdpblBvaW50ID0gbWl4TnVtYmVyKG9yaWdpbkF4aXMubWluLCBvcmlnaW5BeGlzLm1heCwgb3JpZ2luKTtcclxuICAgIGlmIChheGlzID09PSBvcmlnaW5BeGlzKVxyXG4gICAgICAgIG9yaWdpblBvaW50IC09IHRyYW5zbGF0ZTtcclxuICAgIGF4aXMubWluID0gcmVtb3ZlUG9pbnREZWx0YShheGlzLm1pbiwgdHJhbnNsYXRlLCBzY2FsZSwgb3JpZ2luUG9pbnQsIGJveFNjYWxlKTtcclxuICAgIGF4aXMubWF4ID0gcmVtb3ZlUG9pbnREZWx0YShheGlzLm1heCwgdHJhbnNsYXRlLCBzY2FsZSwgb3JpZ2luUG9pbnQsIGJveFNjYWxlKTtcclxufVxyXG4vKipcclxuICogUmVtb3ZlIGEgdHJhbnNmb3JtcyBmcm9tIGFuIGF4aXMuIFRoaXMgaXMgZXNzZW50aWFsbHkgdGhlIHN0ZXBzIG9mIGFwcGx5QXhpc1RyYW5zZm9ybXMgaW4gcmV2ZXJzZVxyXG4gKiBhbmQgYWN0cyBhcyBhIGJyaWRnZSBiZXR3ZWVuIG1vdGlvbiB2YWx1ZXMgYW5kIHJlbW92ZUF4aXNEZWx0YVxyXG4gKi9cclxuZnVuY3Rpb24gcmVtb3ZlQXhpc1RyYW5zZm9ybXMoYXhpcywgdHJhbnNmb3JtcywgW2tleSwgc2NhbGVLZXksIG9yaWdpbktleV0sIG9yaWdpbiwgc291cmNlQXhpcykge1xyXG4gICAgcmVtb3ZlQXhpc0RlbHRhKGF4aXMsIHRyYW5zZm9ybXNba2V5XSwgdHJhbnNmb3Jtc1tzY2FsZUtleV0sIHRyYW5zZm9ybXNbb3JpZ2luS2V5XSwgdHJhbnNmb3Jtcy5zY2FsZSwgb3JpZ2luLCBzb3VyY2VBeGlzKTtcclxufVxyXG4vKipcclxuICogVGhlIG5hbWVzIG9mIHRoZSBtb3Rpb24gdmFsdWVzIHdlIHdhbnQgdG8gYXBwbHkgYXMgdHJhbnNsYXRpb24sIHNjYWxlIGFuZCBvcmlnaW4uXHJcbiAqL1xyXG5jb25zdCB4S2V5cyA9IFtcInhcIiwgXCJzY2FsZVhcIiwgXCJvcmlnaW5YXCJdO1xyXG5jb25zdCB5S2V5cyA9IFtcInlcIiwgXCJzY2FsZVlcIiwgXCJvcmlnaW5ZXCJdO1xyXG4vKipcclxuICogUmVtb3ZlIGEgdHJhbnNmb3JtcyBmcm9tIGFuIGJveC4gVGhpcyBpcyBlc3NlbnRpYWxseSB0aGUgc3RlcHMgb2YgYXBwbHlBeGlzQm94IGluIHJldmVyc2VcclxuICogYW5kIGFjdHMgYXMgYSBicmlkZ2UgYmV0d2VlbiBtb3Rpb24gdmFsdWVzIGFuZCByZW1vdmVBeGlzRGVsdGFcclxuICovXHJcbmZ1bmN0aW9uIHJlbW92ZUJveFRyYW5zZm9ybXMoYm94LCB0cmFuc2Zvcm1zLCBvcmlnaW5Cb3gsIHNvdXJjZUJveCkge1xyXG4gICAgcmVtb3ZlQXhpc1RyYW5zZm9ybXMoYm94LngsIHRyYW5zZm9ybXMsIHhLZXlzLCBvcmlnaW5Cb3ggPyBvcmlnaW5Cb3gueCA6IHVuZGVmaW5lZCwgc291cmNlQm94ID8gc291cmNlQm94LnggOiB1bmRlZmluZWQpO1xyXG4gICAgcmVtb3ZlQXhpc1RyYW5zZm9ybXMoYm94LnksIHRyYW5zZm9ybXMsIHlLZXlzLCBvcmlnaW5Cb3ggPyBvcmlnaW5Cb3gueSA6IHVuZGVmaW5lZCwgc291cmNlQm94ID8gc291cmNlQm94LnkgOiB1bmRlZmluZWQpO1xyXG59XHJcblxyXG5leHBvcnQgeyByZW1vdmVBeGlzRGVsdGEsIHJlbW92ZUF4aXNUcmFuc2Zvcm1zLCByZW1vdmVCb3hUcmFuc2Zvcm1zLCByZW1vdmVQb2ludERlbHRhIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/models.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/geometry/models.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createAxis: function() { return /* binding */ createAxis; },\n/* harmony export */ createAxisDelta: function() { return /* binding */ createAxisDelta; },\n/* harmony export */ createBox: function() { return /* binding */ createBox; },\n/* harmony export */ createDelta: function() { return /* binding */ createDelta; }\n/* harmony export */ });\nconst createAxisDelta = () => ({\r\n translate: 0,\r\n scale: 1,\r\n origin: 0,\r\n originPoint: 0,\r\n});\r\nconst createDelta = () => ({\r\n x: createAxisDelta(),\r\n y: createAxisDelta(),\r\n});\r\nconst createAxis = () => ({ min: 0, max: 0 });\r\nconst createBox = () => ({\r\n x: createAxis(),\r\n y: createAxis(),\r\n});\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9tb2RlbHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCw0QkFBNEIsZ0JBQWdCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUMrRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvbW9kZWxzLm1qcz81YzBiIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNyZWF0ZUF4aXNEZWx0YSA9ICgpID0+ICh7XHJcbiAgICB0cmFuc2xhdGU6IDAsXHJcbiAgICBzY2FsZTogMSxcclxuICAgIG9yaWdpbjogMCxcclxuICAgIG9yaWdpblBvaW50OiAwLFxyXG59KTtcclxuY29uc3QgY3JlYXRlRGVsdGEgPSAoKSA9PiAoe1xyXG4gICAgeDogY3JlYXRlQXhpc0RlbHRhKCksXHJcbiAgICB5OiBjcmVhdGVBeGlzRGVsdGEoKSxcclxufSk7XHJcbmNvbnN0IGNyZWF0ZUF4aXMgPSAoKSA9PiAoeyBtaW46IDAsIG1heDogMCB9KTtcclxuY29uc3QgY3JlYXRlQm94ID0gKCkgPT4gKHtcclxuICAgIHg6IGNyZWF0ZUF4aXMoKSxcclxuICAgIHk6IGNyZWF0ZUF4aXMoKSxcclxufSk7XHJcblxyXG5leHBvcnQgeyBjcmVhdGVBeGlzLCBjcmVhdGVBeGlzRGVsdGEsIGNyZWF0ZUJveCwgY3JlYXRlRGVsdGEgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/models.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/utils.mjs":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/geometry/utils.mjs ***!
|
||
\**************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ aspectRatio: function() { return /* binding */ aspectRatio; },\n/* harmony export */ axisDeltaEquals: function() { return /* binding */ axisDeltaEquals; },\n/* harmony export */ axisEquals: function() { return /* binding */ axisEquals; },\n/* harmony export */ axisEqualsRounded: function() { return /* binding */ axisEqualsRounded; },\n/* harmony export */ boxEquals: function() { return /* binding */ boxEquals; },\n/* harmony export */ boxEqualsRounded: function() { return /* binding */ boxEqualsRounded; },\n/* harmony export */ isDeltaZero: function() { return /* binding */ isDeltaZero; }\n/* harmony export */ });\n/* harmony import */ var _delta_calc_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./delta-calc.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs\");\n\r\n\r\nfunction isAxisDeltaZero(delta) {\r\n return delta.translate === 0 && delta.scale === 1;\r\n}\r\nfunction isDeltaZero(delta) {\r\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\r\n}\r\nfunction axisEquals(a, b) {\r\n return a.min === b.min && a.max === b.max;\r\n}\r\nfunction boxEquals(a, b) {\r\n return axisEquals(a.x, b.x) && axisEquals(a.y, b.y);\r\n}\r\nfunction axisEqualsRounded(a, b) {\r\n return (Math.round(a.min) === Math.round(b.min) &&\r\n Math.round(a.max) === Math.round(b.max));\r\n}\r\nfunction boxEqualsRounded(a, b) {\r\n return axisEqualsRounded(a.x, b.x) && axisEqualsRounded(a.y, b.y);\r\n}\r\nfunction aspectRatio(box) {\r\n return (0,_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_0__.calcLength)(box.x) / (0,_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_0__.calcLength)(box.y);\r\n}\r\nfunction axisDeltaEquals(a, b) {\r\n return (a.translate === b.translate &&\r\n a.scale === b.scale &&\r\n a.originPoint === b.originPoint);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS91dGlscy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVywyREFBVSxVQUFVLDJEQUFVO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2lIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS91dGlscy5tanM/NDg3ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYWxjTGVuZ3RoIH0gZnJvbSAnLi9kZWx0YS1jYWxjLm1qcyc7XHJcblxyXG5mdW5jdGlvbiBpc0F4aXNEZWx0YVplcm8oZGVsdGEpIHtcclxuICAgIHJldHVybiBkZWx0YS50cmFuc2xhdGUgPT09IDAgJiYgZGVsdGEuc2NhbGUgPT09IDE7XHJcbn1cclxuZnVuY3Rpb24gaXNEZWx0YVplcm8oZGVsdGEpIHtcclxuICAgIHJldHVybiBpc0F4aXNEZWx0YVplcm8oZGVsdGEueCkgJiYgaXNBeGlzRGVsdGFaZXJvKGRlbHRhLnkpO1xyXG59XHJcbmZ1bmN0aW9uIGF4aXNFcXVhbHMoYSwgYikge1xyXG4gICAgcmV0dXJuIGEubWluID09PSBiLm1pbiAmJiBhLm1heCA9PT0gYi5tYXg7XHJcbn1cclxuZnVuY3Rpb24gYm94RXF1YWxzKGEsIGIpIHtcclxuICAgIHJldHVybiBheGlzRXF1YWxzKGEueCwgYi54KSAmJiBheGlzRXF1YWxzKGEueSwgYi55KTtcclxufVxyXG5mdW5jdGlvbiBheGlzRXF1YWxzUm91bmRlZChhLCBiKSB7XHJcbiAgICByZXR1cm4gKE1hdGgucm91bmQoYS5taW4pID09PSBNYXRoLnJvdW5kKGIubWluKSAmJlxyXG4gICAgICAgIE1hdGgucm91bmQoYS5tYXgpID09PSBNYXRoLnJvdW5kKGIubWF4KSk7XHJcbn1cclxuZnVuY3Rpb24gYm94RXF1YWxzUm91bmRlZChhLCBiKSB7XHJcbiAgICByZXR1cm4gYXhpc0VxdWFsc1JvdW5kZWQoYS54LCBiLngpICYmIGF4aXNFcXVhbHNSb3VuZGVkKGEueSwgYi55KTtcclxufVxyXG5mdW5jdGlvbiBhc3BlY3RSYXRpbyhib3gpIHtcclxuICAgIHJldHVybiBjYWxjTGVuZ3RoKGJveC54KSAvIGNhbGNMZW5ndGgoYm94LnkpO1xyXG59XHJcbmZ1bmN0aW9uIGF4aXNEZWx0YUVxdWFscyhhLCBiKSB7XHJcbiAgICByZXR1cm4gKGEudHJhbnNsYXRlID09PSBiLnRyYW5zbGF0ZSAmJlxyXG4gICAgICAgIGEuc2NhbGUgPT09IGIuc2NhbGUgJiZcclxuICAgICAgICBhLm9yaWdpblBvaW50ID09PSBiLm9yaWdpblBvaW50KTtcclxufVxyXG5cclxuZXhwb3J0IHsgYXNwZWN0UmF0aW8sIGF4aXNEZWx0YUVxdWFscywgYXhpc0VxdWFscywgYXhpc0VxdWFsc1JvdW5kZWQsIGJveEVxdWFscywgYm94RXF1YWxzUm91bmRlZCwgaXNEZWx0YVplcm8gfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/utils.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs":
|
||
/*!***************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs ***!
|
||
\***************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DocumentProjectionNode: function() { return /* binding */ DocumentProjectionNode; }\n/* harmony export */ });\n/* harmony import */ var _events_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../events/add-dom-event.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var _create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-projection-node.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs\");\n\r\n\r\n\r\nconst DocumentProjectionNode = (0,_create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__.createProjectionNode)({\r\n attachResizeListener: (ref, notify) => (0,_events_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_1__.addDomEvent)(ref, \"resize\", notify),\r\n measureScroll: () => ({\r\n x: document.documentElement.scrollLeft || document.body.scrollLeft,\r\n y: document.documentElement.scrollTop || document.body.scrollTop,\r\n }),\r\n checkIsScrollRoot: () => true,\r\n});\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL0RvY3VtZW50UHJvamVjdGlvbk5vZGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE2RDtBQUNPO0FBQ3BFO0FBQ0EsK0JBQStCLGlGQUFvQjtBQUNuRCwyQ0FBMkMsc0VBQVc7QUFDdEQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsQ0FBQztBQUNEO0FBQ2tDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL0RvY3VtZW50UHJvamVjdGlvbk5vZGUubWpzP2Y3ODIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkRG9tRXZlbnQgfSBmcm9tICcuLi8uLi9ldmVudHMvYWRkLWRvbS1ldmVudC5tanMnO1xyXG5pbXBvcnQgeyBjcmVhdGVQcm9qZWN0aW9uTm9kZSB9IGZyb20gJy4vY3JlYXRlLXByb2plY3Rpb24tbm9kZS5tanMnO1xyXG5cclxuY29uc3QgRG9jdW1lbnRQcm9qZWN0aW9uTm9kZSA9IGNyZWF0ZVByb2plY3Rpb25Ob2RlKHtcclxuICAgIGF0dGFjaFJlc2l6ZUxpc3RlbmVyOiAocmVmLCBub3RpZnkpID0+IGFkZERvbUV2ZW50KHJlZiwgXCJyZXNpemVcIiwgbm90aWZ5KSxcclxuICAgIG1lYXN1cmVTY3JvbGw6ICgpID0+ICh7XHJcbiAgICAgICAgeDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0LFxyXG4gICAgICAgIHk6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AsXHJcbiAgICB9KSxcclxuICAgIGNoZWNrSXNTY3JvbGxSb290OiAoKSA9PiB0cnVlLFxyXG59KTtcclxuXHJcbmV4cG9ydCB7IERvY3VtZW50UHJvamVjdGlvbk5vZGUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs ***!
|
||
\***********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HTMLProjectionNode: function() { return /* binding */ HTMLProjectionNode; },\n/* harmony export */ rootProjectionNode: function() { return /* binding */ rootProjectionNode; }\n/* harmony export */ });\n/* harmony import */ var _create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-projection-node.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs\");\n/* harmony import */ var _DocumentProjectionNode_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DocumentProjectionNode.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs\");\n\r\n\r\n\r\nconst rootProjectionNode = {\r\n current: undefined,\r\n};\r\nconst HTMLProjectionNode = (0,_create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__.createProjectionNode)({\r\n measureScroll: (instance) => ({\r\n x: instance.scrollLeft,\r\n y: instance.scrollTop,\r\n }),\r\n defaultParent: () => {\r\n if (!rootProjectionNode.current) {\r\n const documentNode = new _DocumentProjectionNode_mjs__WEBPACK_IMPORTED_MODULE_1__.DocumentProjectionNode({});\r\n documentNode.mount(window);\r\n documentNode.setOptions({ layoutScroll: true });\r\n rootProjectionNode.current = documentNode;\r\n }\r\n return rootProjectionNode.current;\r\n },\r\n resetTransform: (instance, value) => {\r\n instance.style.transform = value !== undefined ? value : \"none\";\r\n },\r\n checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\"),\r\n});\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL0hUTUxQcm9qZWN0aW9uTm9kZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFvRTtBQUNFO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLGlGQUFvQjtBQUMvQztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLHFDQUFxQywrRUFBc0IsR0FBRztBQUM5RDtBQUNBLHNDQUFzQyxvQkFBb0I7QUFDMUQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxDQUFDO0FBQ0Q7QUFDa0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9wcm9qZWN0aW9uL25vZGUvSFRNTFByb2plY3Rpb25Ob2RlLm1qcz9jM2NiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVByb2plY3Rpb25Ob2RlIH0gZnJvbSAnLi9jcmVhdGUtcHJvamVjdGlvbi1ub2RlLm1qcyc7XHJcbmltcG9ydCB7IERvY3VtZW50UHJvamVjdGlvbk5vZGUgfSBmcm9tICcuL0RvY3VtZW50UHJvamVjdGlvbk5vZGUubWpzJztcclxuXHJcbmNvbnN0IHJvb3RQcm9qZWN0aW9uTm9kZSA9IHtcclxuICAgIGN1cnJlbnQ6IHVuZGVmaW5lZCxcclxufTtcclxuY29uc3QgSFRNTFByb2plY3Rpb25Ob2RlID0gY3JlYXRlUHJvamVjdGlvbk5vZGUoe1xyXG4gICAgbWVhc3VyZVNjcm9sbDogKGluc3RhbmNlKSA9PiAoe1xyXG4gICAgICAgIHg6IGluc3RhbmNlLnNjcm9sbExlZnQsXHJcbiAgICAgICAgeTogaW5zdGFuY2Uuc2Nyb2xsVG9wLFxyXG4gICAgfSksXHJcbiAgICBkZWZhdWx0UGFyZW50OiAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFyb290UHJvamVjdGlvbk5vZGUuY3VycmVudCkge1xyXG4gICAgICAgICAgICBjb25zdCBkb2N1bWVudE5vZGUgPSBuZXcgRG9jdW1lbnRQcm9qZWN0aW9uTm9kZSh7fSk7XHJcbiAgICAgICAgICAgIGRvY3VtZW50Tm9kZS5tb3VudCh3aW5kb3cpO1xyXG4gICAgICAgICAgICBkb2N1bWVudE5vZGUuc2V0T3B0aW9ucyh7IGxheW91dFNjcm9sbDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgcm9vdFByb2plY3Rpb25Ob2RlLmN1cnJlbnQgPSBkb2N1bWVudE5vZGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByb290UHJvamVjdGlvbk5vZGUuY3VycmVudDtcclxuICAgIH0sXHJcbiAgICByZXNldFRyYW5zZm9ybTogKGluc3RhbmNlLCB2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGluc3RhbmNlLnN0eWxlLnRyYW5zZm9ybSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IFwibm9uZVwiO1xyXG4gICAgfSxcclxuICAgIGNoZWNrSXNTY3JvbGxSb290OiAoaW5zdGFuY2UpID0+IEJvb2xlYW4od2luZG93LmdldENvbXB1dGVkU3R5bGUoaW5zdGFuY2UpLnBvc2l0aW9uID09PSBcImZpeGVkXCIpLFxyXG59KTtcclxuXHJcbmV4cG9ydCB7IEhUTUxQcm9qZWN0aW9uTm9kZSwgcm9vdFByb2plY3Rpb25Ob2RlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs":
|
||
/*!***************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs ***!
|
||
\***************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cleanDirtyNodes: function() { return /* binding */ cleanDirtyNodes; },\n/* harmony export */ createProjectionNode: function() { return /* binding */ createProjectionNode; },\n/* harmony export */ mixAxis: function() { return /* binding */ mixAxis; },\n/* harmony export */ mixAxisDelta: function() { return /* binding */ mixAxisDelta; },\n/* harmony export */ mixBox: function() { return /* binding */ mixBox; },\n/* harmony export */ propagateDirtyNodes: function() { return /* binding */ propagateDirtyNodes; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _animation_animate_single_value_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../../animation/animate/single-value.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/animate/single-value.mjs\");\n/* harmony import */ var _animation_optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../animation/optimized-appear/get-appear-id.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs\");\n/* harmony import */ var _render_utils_flat_tree_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../render/utils/flat-tree.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs\");\n/* harmony import */ var _utils_delay_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/delay.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/delay.mjs\");\n/* harmony import */ var _value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../../value/utils/resolve-motion-value.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs\");\n/* harmony import */ var _animation_mix_values_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../animation/mix-values.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs\");\n/* harmony import */ var _geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../geometry/copy.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/copy.mjs\");\n/* harmony import */ var _geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../geometry/delta-apply.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs\");\n/* harmony import */ var _geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../geometry/delta-calc.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs\");\n/* harmony import */ var _geometry_delta_remove_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../geometry/delta-remove.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs\");\n/* harmony import */ var _geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../geometry/models.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var _geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../geometry/utils.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/utils.mjs\");\n/* harmony import */ var _shared_stack_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../shared/stack.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/shared/stack.mjs\");\n/* harmony import */ var _styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../styles/scale-correction.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs\");\n/* harmony import */ var _styles_transform_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../styles/transform.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/styles/transform.mjs\");\n/* harmony import */ var _utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../utils/each-axis.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs\");\n/* harmony import */ var _utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/has-transform.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs\");\n/* harmony import */ var _state_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/state.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst metrics = {\r\n nodes: 0,\r\n calculatedTargetDeltas: 0,\r\n calculatedProjections: 0,\r\n};\r\nconst transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\r\n/**\r\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\r\n * which has a noticeable difference in spring animations\r\n */\r\nconst animationTarget = 1000;\r\nlet id = 0;\r\nfunction resetDistortingTransform(key, visualElement, values, sharedAnimationValues) {\r\n const { latestValues } = visualElement;\r\n // Record the distorting transform and then temporarily set it to 0\r\n if (latestValues[key]) {\r\n values[key] = latestValues[key];\r\n visualElement.setStaticValue(key, 0);\r\n if (sharedAnimationValues) {\r\n sharedAnimationValues[key] = 0;\r\n }\r\n }\r\n}\r\nfunction cancelTreeOptimisedTransformAnimations(projectionNode) {\r\n projectionNode.hasCheckedOptimisedAppear = true;\r\n if (projectionNode.root === projectionNode)\r\n return;\r\n const { visualElement } = projectionNode.options;\r\n if (!visualElement)\r\n return;\r\n const appearId = (0,_animation_optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_0__.getOptimisedAppearId)(visualElement);\r\n if (window.MotionHasOptimisedAnimation(appearId, \"transform\")) {\r\n const { layout, layoutId } = projectionNode.options;\r\n window.MotionCancelOptimisedAnimation(appearId, \"transform\", motion_dom__WEBPACK_IMPORTED_MODULE_1__.frame, !(layout || layoutId));\r\n }\r\n const { parent } = projectionNode;\r\n if (parent && !parent.hasCheckedOptimisedAppear) {\r\n cancelTreeOptimisedTransformAnimations(parent);\r\n }\r\n}\r\nfunction createProjectionNode({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform, }) {\r\n return class ProjectionNode {\r\n constructor(latestValues = {}, parent = defaultParent?.()) {\r\n /**\r\n * A unique ID generated for every projection node.\r\n */\r\n this.id = id++;\r\n /**\r\n * An id that represents a unique session instigated by startUpdate.\r\n */\r\n this.animationId = 0;\r\n this.animationCommitId = 0;\r\n /**\r\n * A Set containing all this component's children. This is used to iterate\r\n * through the children.\r\n *\r\n * TODO: This could be faster to iterate as a flat array stored on the root node.\r\n */\r\n this.children = new Set();\r\n /**\r\n * Options for the node. We use this to configure what kind of layout animations\r\n * we should perform (if any).\r\n */\r\n this.options = {};\r\n /**\r\n * We use this to detect when its safe to shut down part of a projection tree.\r\n * We have to keep projecting children for scale correction and relative projection\r\n * until all their parents stop performing layout animations.\r\n */\r\n this.isTreeAnimating = false;\r\n this.isAnimationBlocked = false;\r\n /**\r\n * Flag to true if we think this layout has been changed. We can't always know this,\r\n * currently we set it to true every time a component renders, or if it has a layoutDependency\r\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\r\n * and if one node is dirtied, they all are.\r\n */\r\n this.isLayoutDirty = false;\r\n /**\r\n * Flag to true if we think the projection calculations for this node needs\r\n * recalculating as a result of an updated transform or layout animation.\r\n */\r\n this.isProjectionDirty = false;\r\n /**\r\n * Flag to true if the layout *or* transform has changed. This then gets propagated\r\n * throughout the projection tree, forcing any element below to recalculate on the next frame.\r\n */\r\n this.isSharedProjectionDirty = false;\r\n /**\r\n * Flag transform dirty. This gets propagated throughout the whole tree but is only\r\n * respected by shared nodes.\r\n */\r\n this.isTransformDirty = false;\r\n /**\r\n * Block layout updates for instant layout transitions throughout the tree.\r\n */\r\n this.updateManuallyBlocked = false;\r\n this.updateBlockedByResize = false;\r\n /**\r\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\r\n * call.\r\n */\r\n this.isUpdating = false;\r\n /**\r\n * If this is an SVG element we currently disable projection transforms\r\n */\r\n this.isSVG = false;\r\n /**\r\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\r\n * its projection styles.\r\n */\r\n this.needsReset = false;\r\n /**\r\n * Flags whether this node should have its transform reset prior to measuring.\r\n */\r\n this.shouldResetTransform = false;\r\n /**\r\n * Store whether this node has been checked for optimised appear animations. As\r\n * effects fire bottom-up, and we want to look up the tree for appear animations,\r\n * this makes sure we only check each path once, stopping at nodes that\r\n * have already been checked.\r\n */\r\n this.hasCheckedOptimisedAppear = false;\r\n /**\r\n * An object representing the calculated contextual/accumulated/tree scale.\r\n * This will be used to scale calculcated projection transforms, as these are\r\n * calculated in screen-space but need to be scaled for elements to layoutly\r\n * make it to their calculated destinations.\r\n *\r\n * TODO: Lazy-init\r\n */\r\n this.treeScale = { x: 1, y: 1 };\r\n /**\r\n *\r\n */\r\n this.eventHandlers = new Map();\r\n this.hasTreeAnimated = false;\r\n // Note: Currently only running on root node\r\n this.updateScheduled = false;\r\n this.scheduleUpdate = () => this.update();\r\n this.projectionUpdateScheduled = false;\r\n this.checkUpdateFailed = () => {\r\n if (this.isUpdating) {\r\n this.isUpdating = false;\r\n this.clearAllSnapshots();\r\n }\r\n };\r\n /**\r\n * This is a multi-step process as shared nodes might be of different depths. Nodes\r\n * are sorted by depth order, so we need to resolve the entire tree before moving to\r\n * the next step.\r\n */\r\n this.updateProjection = () => {\r\n this.projectionUpdateScheduled = false;\r\n /**\r\n * Reset debug counts. Manually resetting rather than creating a new\r\n * object each frame.\r\n */\r\n if (motion_dom__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\r\n metrics.nodes =\r\n metrics.calculatedTargetDeltas =\r\n metrics.calculatedProjections =\r\n 0;\r\n }\r\n this.nodes.forEach(propagateDirtyNodes);\r\n this.nodes.forEach(resolveTargetDelta);\r\n this.nodes.forEach(calcProjection);\r\n this.nodes.forEach(cleanDirtyNodes);\r\n if (motion_dom__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.addProjectionMetrics) {\r\n motion_dom__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.addProjectionMetrics(metrics);\r\n }\r\n };\r\n /**\r\n * Frame calculations\r\n */\r\n this.resolvedRelativeTargetAt = 0.0;\r\n this.hasProjected = false;\r\n this.isVisible = true;\r\n this.animationProgress = 0;\r\n /**\r\n * Shared layout\r\n */\r\n // TODO Only running on root node\r\n this.sharedNodes = new Map();\r\n this.latestValues = latestValues;\r\n this.root = parent ? parent.root || parent : this;\r\n this.path = parent ? [...parent.path, parent] : [];\r\n this.parent = parent;\r\n this.depth = parent ? parent.depth + 1 : 0;\r\n for (let i = 0; i < this.path.length; i++) {\r\n this.path[i].shouldResetTransform = true;\r\n }\r\n if (this.root === this)\r\n this.nodes = new _render_utils_flat_tree_mjs__WEBPACK_IMPORTED_MODULE_3__.FlatTree();\r\n }\r\n addEventListener(name, handler) {\r\n if (!this.eventHandlers.has(name)) {\r\n this.eventHandlers.set(name, new motion_utils__WEBPACK_IMPORTED_MODULE_4__.SubscriptionManager());\r\n }\r\n return this.eventHandlers.get(name).add(handler);\r\n }\r\n notifyListeners(name, ...args) {\r\n const subscriptionManager = this.eventHandlers.get(name);\r\n subscriptionManager && subscriptionManager.notify(...args);\r\n }\r\n hasListeners(name) {\r\n return this.eventHandlers.has(name);\r\n }\r\n /**\r\n * Lifecycles\r\n */\r\n mount(instance) {\r\n if (this.instance)\r\n return;\r\n this.isSVG = (0,motion_dom__WEBPACK_IMPORTED_MODULE_5__.isSVGElement)(instance) && !(0,motion_dom__WEBPACK_IMPORTED_MODULE_6__.isSVGSVGElement)(instance);\r\n this.instance = instance;\r\n const { layoutId, layout, visualElement } = this.options;\r\n if (visualElement && !visualElement.current) {\r\n visualElement.mount(instance);\r\n }\r\n this.root.nodes.add(this);\r\n this.parent && this.parent.children.add(this);\r\n if (this.root.hasTreeAnimated && (layout || layoutId)) {\r\n this.isLayoutDirty = true;\r\n }\r\n if (attachResizeListener) {\r\n let cancelDelay;\r\n let innerWidth = 0;\r\n const resizeUnblockUpdate = () => (this.root.updateBlockedByResize = false);\r\n // Set initial innerWidth in a frame.read callback to batch the read\r\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frame.read(() => {\r\n innerWidth = window.innerWidth;\r\n });\r\n attachResizeListener(instance, () => {\r\n const newInnerWidth = window.innerWidth;\r\n if (newInnerWidth === innerWidth)\r\n return;\r\n innerWidth = newInnerWidth;\r\n this.root.updateBlockedByResize = true;\r\n cancelDelay && cancelDelay();\r\n cancelDelay = (0,_utils_delay_mjs__WEBPACK_IMPORTED_MODULE_7__.delay)(resizeUnblockUpdate, 250);\r\n if (_state_mjs__WEBPACK_IMPORTED_MODULE_8__.globalProjectionState.hasAnimatedSinceResize) {\r\n _state_mjs__WEBPACK_IMPORTED_MODULE_8__.globalProjectionState.hasAnimatedSinceResize = false;\r\n this.nodes.forEach(finishAnimation);\r\n }\r\n });\r\n }\r\n if (layoutId) {\r\n this.root.registerSharedNode(layoutId, this);\r\n }\r\n // Only register the handler if it requires layout animation\r\n if (this.options.animate !== false &&\r\n visualElement &&\r\n (layoutId || layout)) {\r\n this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeLayoutChanged, layout: newLayout, }) => {\r\n if (this.isTreeAnimationBlocked()) {\r\n this.target = undefined;\r\n this.relativeTarget = undefined;\r\n return;\r\n }\r\n // TODO: Check here if an animation exists\r\n const layoutTransition = this.options.transition ||\r\n visualElement.getDefaultTransition() ||\r\n defaultLayoutTransition;\r\n const { onLayoutAnimationStart, onLayoutAnimationComplete, } = visualElement.getProps();\r\n /**\r\n * The target layout of the element might stay the same,\r\n * but its position relative to its parent has changed.\r\n */\r\n const hasTargetChanged = !this.targetLayout ||\r\n !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.boxEqualsRounded)(this.targetLayout, newLayout);\r\n /*\r\n * Note: Disabled to fix relative animations always triggering new\r\n * layout animations. If this causes further issues, we can try\r\n * a different approach to detecting relative target changes.\r\n */\r\n // || hasRelativeLayoutChanged\r\n /**\r\n * If the layout hasn't seemed to have changed, it might be that the\r\n * element is visually in the same place in the document but its position\r\n * relative to its parent has indeed changed. So here we check for that.\r\n */\r\n const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeLayoutChanged;\r\n if (this.options.layoutRoot ||\r\n this.resumeFrom ||\r\n hasOnlyRelativeTargetChanged ||\r\n (hasLayoutChanged &&\r\n (hasTargetChanged || !this.currentAnimation))) {\r\n if (this.resumeFrom) {\r\n this.resumingFrom = this.resumeFrom;\r\n this.resumingFrom.resumingFrom = undefined;\r\n }\r\n const animationOptions = {\r\n ...(0,motion_dom__WEBPACK_IMPORTED_MODULE_10__.getValueTransition)(layoutTransition, \"layout\"),\r\n onPlay: onLayoutAnimationStart,\r\n onComplete: onLayoutAnimationComplete,\r\n };\r\n if (visualElement.shouldReduceMotion ||\r\n this.options.layoutRoot) {\r\n animationOptions.delay = 0;\r\n animationOptions.type = false;\r\n }\r\n this.startAnimation(animationOptions);\r\n /**\r\n * Set animation origin after starting animation to avoid layout jump\r\n * caused by stopping previous layout animation\r\n */\r\n this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\r\n }\r\n else {\r\n /**\r\n * If the layout hasn't changed and we have an animation that hasn't started yet,\r\n * finish it immediately. Otherwise it will be animating from a location\r\n * that was probably never commited to screen and look like a jumpy box.\r\n */\r\n if (!hasLayoutChanged) {\r\n finishAnimation(this);\r\n }\r\n if (this.isLead() && this.options.onExitComplete) {\r\n this.options.onExitComplete();\r\n }\r\n }\r\n this.targetLayout = newLayout;\r\n });\r\n }\r\n }\r\n unmount() {\r\n this.options.layoutId && this.willUpdate();\r\n this.root.nodes.remove(this);\r\n const stack = this.getStack();\r\n stack && stack.remove(this);\r\n this.parent && this.parent.children.delete(this);\r\n this.instance = undefined;\r\n this.eventHandlers.clear();\r\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(this.updateProjection);\r\n }\r\n // only on the root\r\n blockUpdate() {\r\n this.updateManuallyBlocked = true;\r\n }\r\n unblockUpdate() {\r\n this.updateManuallyBlocked = false;\r\n }\r\n isUpdateBlocked() {\r\n return this.updateManuallyBlocked || this.updateBlockedByResize;\r\n }\r\n isTreeAnimationBlocked() {\r\n return (this.isAnimationBlocked ||\r\n (this.parent && this.parent.isTreeAnimationBlocked()) ||\r\n false);\r\n }\r\n // Note: currently only running on root node\r\n startUpdate() {\r\n if (this.isUpdateBlocked())\r\n return;\r\n this.isUpdating = true;\r\n this.nodes && this.nodes.forEach(resetSkewAndRotation);\r\n this.animationId++;\r\n }\r\n getTransformTemplate() {\r\n const { visualElement } = this.options;\r\n return visualElement && visualElement.getProps().transformTemplate;\r\n }\r\n willUpdate(shouldNotifyListeners = true) {\r\n this.root.hasTreeAnimated = true;\r\n if (this.root.isUpdateBlocked()) {\r\n this.options.onExitComplete && this.options.onExitComplete();\r\n return;\r\n }\r\n /**\r\n * If we're running optimised appear animations then these must be\r\n * cancelled before measuring the DOM. This is so we can measure\r\n * the true layout of the element rather than the WAAPI animation\r\n * which will be unaffected by the resetSkewAndRotate step.\r\n *\r\n * Note: This is a DOM write. Worst case scenario is this is sandwiched\r\n * between other snapshot reads which will cause unnecessary style recalculations.\r\n * This has to happen here though, as we don't yet know which nodes will need\r\n * snapshots in startUpdate(), but we only want to cancel optimised animations\r\n * if a layout animation measurement is actually going to be affected by them.\r\n */\r\n if (window.MotionCancelOptimisedAnimation &&\r\n !this.hasCheckedOptimisedAppear) {\r\n cancelTreeOptimisedTransformAnimations(this);\r\n }\r\n !this.root.isUpdating && this.root.startUpdate();\r\n if (this.isLayoutDirty)\r\n return;\r\n this.isLayoutDirty = true;\r\n for (let i = 0; i < this.path.length; i++) {\r\n const node = this.path[i];\r\n node.shouldResetTransform = true;\r\n node.updateScroll(\"snapshot\");\r\n if (node.options.layoutRoot) {\r\n node.willUpdate(false);\r\n }\r\n }\r\n const { layoutId, layout } = this.options;\r\n if (layoutId === undefined && !layout)\r\n return;\r\n const transformTemplate = this.getTransformTemplate();\r\n this.prevTransformTemplateValue = transformTemplate\r\n ? transformTemplate(this.latestValues, \"\")\r\n : undefined;\r\n this.updateSnapshot();\r\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\r\n }\r\n update() {\r\n this.updateScheduled = false;\r\n const updateWasBlocked = this.isUpdateBlocked();\r\n // When doing an instant transition, we skip the layout update,\r\n // but should still clean up the measurements so that the next\r\n // snapshot could be taken correctly.\r\n if (updateWasBlocked) {\r\n this.unblockUpdate();\r\n this.clearAllSnapshots();\r\n this.nodes.forEach(clearMeasurements);\r\n return;\r\n }\r\n /**\r\n * If this is a repeat of didUpdate then ignore the animation.\r\n */\r\n if (this.animationId <= this.animationCommitId) {\r\n this.nodes.forEach(clearIsLayoutDirty);\r\n return;\r\n }\r\n this.animationCommitId = this.animationId;\r\n if (!this.isUpdating) {\r\n this.nodes.forEach(clearIsLayoutDirty);\r\n }\r\n else {\r\n this.isUpdating = false;\r\n /**\r\n * Write\r\n */\r\n this.nodes.forEach(resetTransformStyle);\r\n /**\r\n * Read ==================\r\n */\r\n // Update layout measurements of updated children\r\n this.nodes.forEach(updateLayout);\r\n /**\r\n * Write\r\n */\r\n // Notify listeners that the layout is updated\r\n this.nodes.forEach(notifyLayoutUpdate);\r\n }\r\n this.clearAllSnapshots();\r\n /**\r\n * Manually flush any pending updates. Ideally\r\n * we could leave this to the following requestAnimationFrame but this seems\r\n * to leave a flash of incorrectly styled content.\r\n */\r\n const now = motion_dom__WEBPACK_IMPORTED_MODULE_11__.time.now();\r\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData.delta = (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.clamp)(0, 1000 / 60, now - motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp);\r\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp = now;\r\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData.isProcessing = true;\r\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameSteps.update.process(motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData);\r\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameSteps.preRender.process(motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData);\r\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameSteps.render.process(motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData);\r\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData.isProcessing = false;\r\n }\r\n didUpdate() {\r\n if (!this.updateScheduled) {\r\n this.updateScheduled = true;\r\n motion_dom__WEBPACK_IMPORTED_MODULE_13__.microtask.read(this.scheduleUpdate);\r\n }\r\n }\r\n clearAllSnapshots() {\r\n this.nodes.forEach(clearSnapshot);\r\n this.sharedNodes.forEach(removeLeadSnapshots);\r\n }\r\n scheduleUpdateProjection() {\r\n if (!this.projectionUpdateScheduled) {\r\n this.projectionUpdateScheduled = true;\r\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frame.preRender(this.updateProjection, false, true);\r\n }\r\n }\r\n scheduleCheckAfterUnmount() {\r\n /**\r\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\r\n * we manually call didUpdate to give a chance to the siblings to animate.\r\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\r\n */\r\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frame.postRender(() => {\r\n if (this.isLayoutDirty) {\r\n this.root.didUpdate();\r\n }\r\n else {\r\n this.root.checkUpdateFailed();\r\n }\r\n });\r\n }\r\n /**\r\n * Update measurements\r\n */\r\n updateSnapshot() {\r\n if (this.snapshot || !this.instance)\r\n return;\r\n this.snapshot = this.measure();\r\n if (this.snapshot &&\r\n !(0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.snapshot.measuredBox.x) &&\r\n !(0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.snapshot.measuredBox.y)) {\r\n this.snapshot = undefined;\r\n }\r\n }\r\n updateLayout() {\r\n if (!this.instance)\r\n return;\r\n this.updateScroll();\r\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\r\n !this.isLayoutDirty) {\r\n return;\r\n }\r\n /**\r\n * When a node is mounted, it simply resumes from the prevLead's\r\n * snapshot instead of taking a new one, but the ancestors scroll\r\n * might have updated while the prevLead is unmounted. We need to\r\n * update the scroll again to make sure the layout we measure is\r\n * up to date.\r\n */\r\n if (this.resumeFrom && !this.resumeFrom.instance) {\r\n for (let i = 0; i < this.path.length; i++) {\r\n const node = this.path[i];\r\n node.updateScroll();\r\n }\r\n }\r\n const prevLayout = this.layout;\r\n this.layout = this.measure(false);\r\n this.layoutCorrected = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n this.isLayoutDirty = false;\r\n this.projectionDelta = undefined;\r\n this.notifyListeners(\"measure\", this.layout.layoutBox);\r\n const { visualElement } = this.options;\r\n visualElement &&\r\n visualElement.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : undefined);\r\n }\r\n updateScroll(phase = \"measure\") {\r\n let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\r\n if (this.scroll &&\r\n this.scroll.animationId === this.root.animationId &&\r\n this.scroll.phase === phase) {\r\n needsMeasurement = false;\r\n }\r\n if (needsMeasurement && this.instance) {\r\n const isRoot = checkIsScrollRoot(this.instance);\r\n this.scroll = {\r\n animationId: this.root.animationId,\r\n phase,\r\n isRoot,\r\n offset: measureScroll(this.instance),\r\n wasRoot: this.scroll ? this.scroll.isRoot : isRoot,\r\n };\r\n }\r\n }\r\n resetTransform() {\r\n if (!resetTransform)\r\n return;\r\n const isResetRequested = this.isLayoutDirty ||\r\n this.shouldResetTransform ||\r\n this.options.alwaysMeasureLayout;\r\n const hasProjection = this.projectionDelta && !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.isDeltaZero)(this.projectionDelta);\r\n const transformTemplate = this.getTransformTemplate();\r\n const transformTemplateValue = transformTemplate\r\n ? transformTemplate(this.latestValues, \"\")\r\n : undefined;\r\n const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\r\n if (isResetRequested &&\r\n this.instance &&\r\n (hasProjection ||\r\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues) ||\r\n transformTemplateHasChanged)) {\r\n resetTransform(this.instance, transformTemplateValue);\r\n this.shouldResetTransform = false;\r\n this.scheduleRender();\r\n }\r\n }\r\n measure(removeTransform = true) {\r\n const pageBox = this.measurePageBox();\r\n let layoutBox = this.removeElementScroll(pageBox);\r\n /**\r\n * Measurements taken during the pre-render stage\r\n * still have transforms applied so we remove them\r\n * via calculation.\r\n */\r\n if (removeTransform) {\r\n layoutBox = this.removeTransform(layoutBox);\r\n }\r\n roundBox(layoutBox);\r\n return {\r\n animationId: this.root.animationId,\r\n measuredBox: pageBox,\r\n layoutBox,\r\n latestValues: {},\r\n source: this.id,\r\n };\r\n }\r\n measurePageBox() {\r\n const { visualElement } = this.options;\r\n if (!visualElement)\r\n return (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n const box = visualElement.measureViewportBox();\r\n const wasInScrollRoot = this.scroll?.wasRoot || this.path.some(checkNodeWasScrollRoot);\r\n if (!wasInScrollRoot) {\r\n // Remove viewport scroll to give page-relative coordinates\r\n const { scroll } = this.root;\r\n if (scroll) {\r\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(box.x, scroll.offset.x);\r\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(box.y, scroll.offset.y);\r\n }\r\n }\r\n return box;\r\n }\r\n removeElementScroll(box) {\r\n const boxWithoutScroll = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(boxWithoutScroll, box);\r\n if (this.scroll?.wasRoot) {\r\n return boxWithoutScroll;\r\n }\r\n /**\r\n * Performance TODO: Keep a cumulative scroll offset down the tree\r\n * rather than loop back up the path.\r\n */\r\n for (let i = 0; i < this.path.length; i++) {\r\n const node = this.path[i];\r\n const { scroll, options } = node;\r\n if (node !== this.root && scroll && options.layoutScroll) {\r\n /**\r\n * If this is a new scroll root, we want to remove all previous scrolls\r\n * from the viewport box.\r\n */\r\n if (scroll.wasRoot) {\r\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(boxWithoutScroll, box);\r\n }\r\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(boxWithoutScroll.x, scroll.offset.x);\r\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(boxWithoutScroll.y, scroll.offset.y);\r\n }\r\n }\r\n return boxWithoutScroll;\r\n }\r\n applyTransform(box, transformOnly = false) {\r\n const withTransforms = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(withTransforms, box);\r\n for (let i = 0; i < this.path.length; i++) {\r\n const node = this.path[i];\r\n if (!transformOnly &&\r\n node.options.layoutScroll &&\r\n node.scroll &&\r\n node !== node.root) {\r\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(withTransforms, {\r\n x: -node.scroll.offset.x,\r\n y: -node.scroll.offset.y,\r\n });\r\n }\r\n if (!(0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(node.latestValues))\r\n continue;\r\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(withTransforms, node.latestValues);\r\n }\r\n if ((0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues)) {\r\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(withTransforms, this.latestValues);\r\n }\r\n return withTransforms;\r\n }\r\n removeTransform(box) {\r\n const boxWithoutTransform = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(boxWithoutTransform, box);\r\n for (let i = 0; i < this.path.length; i++) {\r\n const node = this.path[i];\r\n if (!node.instance)\r\n continue;\r\n if (!(0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(node.latestValues))\r\n continue;\r\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasScale)(node.latestValues) && node.updateSnapshot();\r\n const sourceBox = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n const nodeBox = node.measurePageBox();\r\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(sourceBox, nodeBox);\r\n (0,_geometry_delta_remove_mjs__WEBPACK_IMPORTED_MODULE_19__.removeBoxTransforms)(boxWithoutTransform, node.latestValues, node.snapshot ? node.snapshot.layoutBox : undefined, sourceBox);\r\n }\r\n if ((0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues)) {\r\n (0,_geometry_delta_remove_mjs__WEBPACK_IMPORTED_MODULE_19__.removeBoxTransforms)(boxWithoutTransform, this.latestValues);\r\n }\r\n return boxWithoutTransform;\r\n }\r\n setTargetDelta(delta) {\r\n this.targetDelta = delta;\r\n this.root.scheduleUpdateProjection();\r\n this.isProjectionDirty = true;\r\n }\r\n setOptions(options) {\r\n this.options = {\r\n ...this.options,\r\n ...options,\r\n crossfade: options.crossfade !== undefined ? options.crossfade : true,\r\n };\r\n }\r\n clearMeasurements() {\r\n this.scroll = undefined;\r\n this.layout = undefined;\r\n this.snapshot = undefined;\r\n this.prevTransformTemplateValue = undefined;\r\n this.targetDelta = undefined;\r\n this.target = undefined;\r\n this.isLayoutDirty = false;\r\n }\r\n forceRelativeParentToResolveTarget() {\r\n if (!this.relativeParent)\r\n return;\r\n /**\r\n * If the parent target isn't up-to-date, force it to update.\r\n * This is an unfortunate de-optimisation as it means any updating relative\r\n * projection will cause all the relative parents to recalculate back\r\n * up the tree.\r\n */\r\n if (this.relativeParent.resolvedRelativeTargetAt !==\r\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp) {\r\n this.relativeParent.resolveTargetDelta(true);\r\n }\r\n }\r\n resolveTargetDelta(forceRecalculation = false) {\r\n /**\r\n * Once the dirty status of nodes has been spread through the tree, we also\r\n * need to check if we have a shared node of a different depth that has itself\r\n * been dirtied.\r\n */\r\n const lead = this.getLead();\r\n this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty);\r\n this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty);\r\n this.isSharedProjectionDirty || (this.isSharedProjectionDirty = lead.isSharedProjectionDirty);\r\n const isShared = Boolean(this.resumingFrom) || this !== lead;\r\n /**\r\n * We don't use transform for this step of processing so we don't\r\n * need to check whether any nodes have changed transform.\r\n */\r\n const canSkip = !(forceRecalculation ||\r\n (isShared && this.isSharedProjectionDirty) ||\r\n this.isProjectionDirty ||\r\n this.parent?.isProjectionDirty ||\r\n this.attemptToResolveRelativeTarget ||\r\n this.root.updateBlockedByResize);\r\n if (canSkip)\r\n return;\r\n const { layout, layoutId } = this.options;\r\n /**\r\n * If we have no layout, we can't perform projection, so early return\r\n */\r\n if (!this.layout || !(layout || layoutId))\r\n return;\r\n this.resolvedRelativeTargetAt = motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp;\r\n /**\r\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\r\n * a relativeParent. This will allow a component to perform scale correction\r\n * even if no animation has started.\r\n */\r\n if (!this.targetDelta && !this.relativeTarget) {\r\n const relativeParent = this.getClosestProjectingParent();\r\n if (relativeParent &&\r\n relativeParent.layout &&\r\n this.animationProgress !== 1) {\r\n this.relativeParent = relativeParent;\r\n this.forceRelativeParentToResolveTarget();\r\n this.relativeTarget = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n this.relativeTargetOrigin = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(this.relativeTargetOrigin, this.layout.layoutBox, relativeParent.layout.layoutBox);\r\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.relativeTarget, this.relativeTargetOrigin);\r\n }\r\n else {\r\n this.relativeParent = this.relativeTarget = undefined;\r\n }\r\n }\r\n /**\r\n * If we have no relative target or no target delta our target isn't valid\r\n * for this frame.\r\n */\r\n if (!this.relativeTarget && !this.targetDelta)\r\n return;\r\n /**\r\n * Lazy-init target data structure\r\n */\r\n if (!this.target) {\r\n this.target = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n this.targetWithTransforms = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n }\r\n /**\r\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\r\n */\r\n if (this.relativeTarget &&\r\n this.relativeTargetOrigin &&\r\n this.relativeParent &&\r\n this.relativeParent.target) {\r\n this.forceRelativeParentToResolveTarget();\r\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativeBox)(this.target, this.relativeTarget, this.relativeParent.target);\r\n /**\r\n * If we've only got a targetDelta, resolve it into a target\r\n */\r\n }\r\n else if (this.targetDelta) {\r\n if (Boolean(this.resumingFrom)) {\r\n // TODO: This is creating a new object every frame\r\n this.target = this.applyTransform(this.layout.layoutBox);\r\n }\r\n else {\r\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.target, this.layout.layoutBox);\r\n }\r\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.applyBoxDelta)(this.target, this.targetDelta);\r\n }\r\n else {\r\n /**\r\n * If no target, use own layout as target\r\n */\r\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.target, this.layout.layoutBox);\r\n }\r\n /**\r\n * If we've been told to attempt to resolve a relative target, do so.\r\n */\r\n if (this.attemptToResolveRelativeTarget) {\r\n this.attemptToResolveRelativeTarget = false;\r\n const relativeParent = this.getClosestProjectingParent();\r\n if (relativeParent &&\r\n Boolean(relativeParent.resumingFrom) ===\r\n Boolean(this.resumingFrom) &&\r\n !relativeParent.options.layoutScroll &&\r\n relativeParent.target &&\r\n this.animationProgress !== 1) {\r\n this.relativeParent = relativeParent;\r\n this.forceRelativeParentToResolveTarget();\r\n this.relativeTarget = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n this.relativeTargetOrigin = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(this.relativeTargetOrigin, this.target, relativeParent.target);\r\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.relativeTarget, this.relativeTargetOrigin);\r\n }\r\n else {\r\n this.relativeParent = this.relativeTarget = undefined;\r\n }\r\n }\r\n /**\r\n * Increase debug counter for resolved target deltas\r\n */\r\n if (motion_dom__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\r\n metrics.calculatedTargetDeltas++;\r\n }\r\n }\r\n getClosestProjectingParent() {\r\n if (!this.parent ||\r\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasScale)(this.parent.latestValues) ||\r\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.has2DTranslate)(this.parent.latestValues)) {\r\n return undefined;\r\n }\r\n if (this.parent.isProjecting()) {\r\n return this.parent;\r\n }\r\n else {\r\n return this.parent.getClosestProjectingParent();\r\n }\r\n }\r\n isProjecting() {\r\n return Boolean((this.relativeTarget ||\r\n this.targetDelta ||\r\n this.options.layoutRoot) &&\r\n this.layout);\r\n }\r\n calcProjection() {\r\n const lead = this.getLead();\r\n const isShared = Boolean(this.resumingFrom) || this !== lead;\r\n let canSkip = true;\r\n /**\r\n * If this is a normal layout animation and neither this node nor its nearest projecting\r\n * is dirty then we can't skip.\r\n */\r\n if (this.isProjectionDirty || this.parent?.isProjectionDirty) {\r\n canSkip = false;\r\n }\r\n /**\r\n * If this is a shared layout animation and this node's shared projection is dirty then\r\n * we can't skip.\r\n */\r\n if (isShared &&\r\n (this.isSharedProjectionDirty || this.isTransformDirty)) {\r\n canSkip = false;\r\n }\r\n /**\r\n * If we have resolved the target this frame we must recalculate the\r\n * projection to ensure it visually represents the internal calculations.\r\n */\r\n if (this.resolvedRelativeTargetAt === motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp) {\r\n canSkip = false;\r\n }\r\n if (canSkip)\r\n return;\r\n const { layout, layoutId } = this.options;\r\n /**\r\n * If this section of the tree isn't animating we can\r\n * delete our target sources for the following frame.\r\n */\r\n this.isTreeAnimating = Boolean((this.parent && this.parent.isTreeAnimating) ||\r\n this.currentAnimation ||\r\n this.pendingAnimation);\r\n if (!this.isTreeAnimating) {\r\n this.targetDelta = this.relativeTarget = undefined;\r\n }\r\n if (!this.layout || !(layout || layoutId))\r\n return;\r\n /**\r\n * Reset the corrected box with the latest values from box, as we're then going\r\n * to perform mutative operations on it.\r\n */\r\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.layoutCorrected, this.layout.layoutBox);\r\n /**\r\n * Record previous tree scales before updating.\r\n */\r\n const prevTreeScaleX = this.treeScale.x;\r\n const prevTreeScaleY = this.treeScale.y;\r\n /**\r\n * Apply all the parent deltas to this box to produce the corrected box. This\r\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\r\n */\r\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.applyTreeDeltas)(this.layoutCorrected, this.treeScale, this.path, isShared);\r\n /**\r\n * If this layer needs to perform scale correction but doesn't have a target,\r\n * use the layout as the target.\r\n */\r\n if (lead.layout &&\r\n !lead.target &&\r\n (this.treeScale.x !== 1 || this.treeScale.y !== 1)) {\r\n lead.target = lead.layout.layoutBox;\r\n lead.targetWithTransforms = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n }\r\n const { target } = lead;\r\n if (!target) {\r\n /**\r\n * If we don't have a target to project into, but we were previously\r\n * projecting, we want to remove the stored transform and schedule\r\n * a render to ensure the elements reflect the removed transform.\r\n */\r\n if (this.prevProjectionDelta) {\r\n this.createProjectionDeltas();\r\n this.scheduleRender();\r\n }\r\n return;\r\n }\r\n if (!this.projectionDelta || !this.prevProjectionDelta) {\r\n this.createProjectionDeltas();\r\n }\r\n else {\r\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyAxisDeltaInto)(this.prevProjectionDelta.x, this.projectionDelta.x);\r\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyAxisDeltaInto)(this.prevProjectionDelta.y, this.projectionDelta.y);\r\n }\r\n /**\r\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\r\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\r\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\r\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\r\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\r\n * to allow people to choose whether these styles are corrected based on just the\r\n * layout reprojection or the final bounding box.\r\n */\r\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\r\n if (this.treeScale.x !== prevTreeScaleX ||\r\n this.treeScale.y !== prevTreeScaleY ||\r\n !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.axisDeltaEquals)(this.projectionDelta.x, this.prevProjectionDelta.x) ||\r\n !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.axisDeltaEquals)(this.projectionDelta.y, this.prevProjectionDelta.y)) {\r\n this.hasProjected = true;\r\n this.scheduleRender();\r\n this.notifyListeners(\"projectionUpdate\", target);\r\n }\r\n /**\r\n * Increase debug counter for recalculated projections\r\n */\r\n if (motion_dom__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\r\n metrics.calculatedProjections++;\r\n }\r\n }\r\n hide() {\r\n this.isVisible = false;\r\n // TODO: Schedule render\r\n }\r\n show() {\r\n this.isVisible = true;\r\n // TODO: Schedule render\r\n }\r\n scheduleRender(notifyAll = true) {\r\n this.options.visualElement?.scheduleRender();\r\n if (notifyAll) {\r\n const stack = this.getStack();\r\n stack && stack.scheduleRender();\r\n }\r\n if (this.resumingFrom && !this.resumingFrom.instance) {\r\n this.resumingFrom = undefined;\r\n }\r\n }\r\n createProjectionDeltas() {\r\n this.prevProjectionDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\r\n this.projectionDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\r\n this.projectionDeltaWithTransform = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\r\n }\r\n setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\r\n const snapshot = this.snapshot;\r\n const snapshotLatestValues = snapshot ? snapshot.latestValues : {};\r\n const mixedValues = { ...this.latestValues };\r\n const targetDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\r\n if (!this.relativeParent ||\r\n !this.relativeParent.options.layoutRoot) {\r\n this.relativeTarget = this.relativeTargetOrigin = undefined;\r\n }\r\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\r\n const relativeLayout = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n const snapshotSource = snapshot ? snapshot.source : undefined;\r\n const layoutSource = this.layout ? this.layout.source : undefined;\r\n const isSharedLayoutAnimation = snapshotSource !== layoutSource;\r\n const stack = this.getStack();\r\n const isOnlyMember = !stack || stack.members.length <= 1;\r\n const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\r\n !isOnlyMember &&\r\n this.options.crossfade === true &&\r\n !this.path.some(hasOpacityCrossfade));\r\n this.animationProgress = 0;\r\n let prevRelativeTarget;\r\n this.mixTargetDelta = (latest) => {\r\n const progress = latest / 1000;\r\n mixAxisDelta(targetDelta.x, delta.x, progress);\r\n mixAxisDelta(targetDelta.y, delta.y, progress);\r\n this.setTargetDelta(targetDelta);\r\n if (this.relativeTarget &&\r\n this.relativeTargetOrigin &&\r\n this.layout &&\r\n this.relativeParent &&\r\n this.relativeParent.layout) {\r\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\r\n mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress);\r\n /**\r\n * If this is an unchanged relative target we can consider the\r\n * projection not dirty.\r\n */\r\n if (prevRelativeTarget &&\r\n (0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.boxEquals)(this.relativeTarget, prevRelativeTarget)) {\r\n this.isProjectionDirty = false;\r\n }\r\n if (!prevRelativeTarget)\r\n prevRelativeTarget = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(prevRelativeTarget, this.relativeTarget);\r\n }\r\n if (isSharedLayoutAnimation) {\r\n this.animationValues = mixedValues;\r\n (0,_animation_mix_values_mjs__WEBPACK_IMPORTED_MODULE_20__.mixValues)(mixedValues, snapshotLatestValues, this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\r\n }\r\n this.root.scheduleUpdateProjection();\r\n this.scheduleRender();\r\n this.animationProgress = progress;\r\n };\r\n this.mixTargetDelta(this.options.layoutRoot ? 1000 : 0);\r\n }\r\n startAnimation(options) {\r\n this.notifyListeners(\"animationStart\");\r\n this.currentAnimation?.stop();\r\n this.resumingFrom?.currentAnimation?.stop();\r\n if (this.pendingAnimation) {\r\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(this.pendingAnimation);\r\n this.pendingAnimation = undefined;\r\n }\r\n /**\r\n * Start the animation in the next frame to have a frame with progress 0,\r\n * where the target is the same as when the animation started, so we can\r\n * calculate the relative positions correctly for instant transitions.\r\n */\r\n this.pendingAnimation = motion_dom__WEBPACK_IMPORTED_MODULE_1__.frame.update(() => {\r\n _state_mjs__WEBPACK_IMPORTED_MODULE_8__.globalProjectionState.hasAnimatedSinceResize = true;\r\n motion_dom__WEBPACK_IMPORTED_MODULE_21__.activeAnimations.layout++;\r\n this.motionValue || (this.motionValue = (0,motion_dom__WEBPACK_IMPORTED_MODULE_22__.motionValue)(0));\r\n this.currentAnimation = (0,_animation_animate_single_value_mjs__WEBPACK_IMPORTED_MODULE_23__.animateSingleValue)(this.motionValue, [0, 1000], {\r\n ...options,\r\n velocity: 0,\r\n isSync: true,\r\n onUpdate: (latest) => {\r\n this.mixTargetDelta(latest);\r\n options.onUpdate && options.onUpdate(latest);\r\n },\r\n onStop: () => {\r\n motion_dom__WEBPACK_IMPORTED_MODULE_21__.activeAnimations.layout--;\r\n },\r\n onComplete: () => {\r\n motion_dom__WEBPACK_IMPORTED_MODULE_21__.activeAnimations.layout--;\r\n options.onComplete && options.onComplete();\r\n this.completeAnimation();\r\n },\r\n });\r\n if (this.resumingFrom) {\r\n this.resumingFrom.currentAnimation = this.currentAnimation;\r\n }\r\n this.pendingAnimation = undefined;\r\n });\r\n }\r\n completeAnimation() {\r\n if (this.resumingFrom) {\r\n this.resumingFrom.currentAnimation = undefined;\r\n this.resumingFrom.preserveOpacity = undefined;\r\n }\r\n const stack = this.getStack();\r\n stack && stack.exitAnimationComplete();\r\n this.resumingFrom =\r\n this.currentAnimation =\r\n this.animationValues =\r\n undefined;\r\n this.notifyListeners(\"animationComplete\");\r\n }\r\n finishAnimation() {\r\n if (this.currentAnimation) {\r\n this.mixTargetDelta && this.mixTargetDelta(animationTarget);\r\n this.currentAnimation.stop();\r\n }\r\n this.completeAnimation();\r\n }\r\n applyTransformsToTarget() {\r\n const lead = this.getLead();\r\n let { targetWithTransforms, target, layout, latestValues } = lead;\r\n if (!targetWithTransforms || !target || !layout)\r\n return;\r\n /**\r\n * If we're only animating position, and this element isn't the lead element,\r\n * then instead of projecting into the lead box we instead want to calculate\r\n * a new target that aligns the two boxes but maintains the layout shape.\r\n */\r\n if (this !== lead &&\r\n this.layout &&\r\n layout &&\r\n shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout.layoutBox)) {\r\n target = this.target || (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n const xLength = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.layout.layoutBox.x);\r\n target.x.min = lead.target.x.min;\r\n target.x.max = target.x.min + xLength;\r\n const yLength = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.layout.layoutBox.y);\r\n target.y.min = lead.target.y.min;\r\n target.y.max = target.y.min + yLength;\r\n }\r\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(targetWithTransforms, target);\r\n /**\r\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\r\n * This is the final box that we will then project into by calculating a transform delta and\r\n * applying it to the corrected box.\r\n */\r\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(targetWithTransforms, latestValues);\r\n /**\r\n * Update the delta between the corrected box and the final target box, after\r\n * user-set transforms are applied to it. This will be used by the renderer to\r\n * create a transform style that will reproject the element from its layout layout\r\n * into the desired bounding box.\r\n */\r\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\r\n }\r\n registerSharedNode(layoutId, node) {\r\n if (!this.sharedNodes.has(layoutId)) {\r\n this.sharedNodes.set(layoutId, new _shared_stack_mjs__WEBPACK_IMPORTED_MODULE_24__.NodeStack());\r\n }\r\n const stack = this.sharedNodes.get(layoutId);\r\n stack.add(node);\r\n const config = node.options.initialPromotionConfig;\r\n node.promote({\r\n transition: config ? config.transition : undefined,\r\n preserveFollowOpacity: config && config.shouldPreserveFollowOpacity\r\n ? config.shouldPreserveFollowOpacity(node)\r\n : undefined,\r\n });\r\n }\r\n isLead() {\r\n const stack = this.getStack();\r\n return stack ? stack.lead === this : true;\r\n }\r\n getLead() {\r\n const { layoutId } = this.options;\r\n return layoutId ? this.getStack()?.lead || this : this;\r\n }\r\n getPrevLead() {\r\n const { layoutId } = this.options;\r\n return layoutId ? this.getStack()?.prevLead : undefined;\r\n }\r\n getStack() {\r\n const { layoutId } = this.options;\r\n if (layoutId)\r\n return this.root.sharedNodes.get(layoutId);\r\n }\r\n promote({ needsReset, transition, preserveFollowOpacity, } = {}) {\r\n const stack = this.getStack();\r\n if (stack)\r\n stack.promote(this, preserveFollowOpacity);\r\n if (needsReset) {\r\n this.projectionDelta = undefined;\r\n this.needsReset = true;\r\n }\r\n if (transition)\r\n this.setOptions({ transition });\r\n }\r\n relegate() {\r\n const stack = this.getStack();\r\n if (stack) {\r\n return stack.relegate(this);\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n resetSkewAndRotation() {\r\n const { visualElement } = this.options;\r\n if (!visualElement)\r\n return;\r\n // If there's no detected skew or rotation values, we can early return without a forced render.\r\n let hasDistortingTransform = false;\r\n /**\r\n * An unrolled check for rotation values. Most elements don't have any rotation and\r\n * skipping the nested loop and new object creation is 50% faster.\r\n */\r\n const { latestValues } = visualElement;\r\n if (latestValues.z ||\r\n latestValues.rotate ||\r\n latestValues.rotateX ||\r\n latestValues.rotateY ||\r\n latestValues.rotateZ ||\r\n latestValues.skewX ||\r\n latestValues.skewY) {\r\n hasDistortingTransform = true;\r\n }\r\n // If there's no distorting values, we don't need to do any more.\r\n if (!hasDistortingTransform)\r\n return;\r\n const resetValues = {};\r\n if (latestValues.z) {\r\n resetDistortingTransform(\"z\", visualElement, resetValues, this.animationValues);\r\n }\r\n // Check the skew and rotate value of all axes and reset to 0\r\n for (let i = 0; i < transformAxes.length; i++) {\r\n resetDistortingTransform(`rotate${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\r\n resetDistortingTransform(`skew${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\r\n }\r\n // Force a render of this element to apply the transform with all skews and rotations\r\n // set to 0.\r\n visualElement.render();\r\n // Put back all the values we reset\r\n for (const key in resetValues) {\r\n visualElement.setStaticValue(key, resetValues[key]);\r\n if (this.animationValues) {\r\n this.animationValues[key] = resetValues[key];\r\n }\r\n }\r\n // Schedule a render for the next frame. This ensures we won't visually\r\n // see the element with the reset rotate value applied.\r\n visualElement.scheduleRender();\r\n }\r\n applyProjectionStyles(targetStyle, // CSSStyleDeclaration - doesn't allow numbers to be assigned to properties\r\n styleProp) {\r\n if (!this.instance || this.isSVG)\r\n return;\r\n if (!this.isVisible) {\r\n targetStyle.visibility = \"hidden\";\r\n return;\r\n }\r\n const transformTemplate = this.getTransformTemplate();\r\n if (this.needsReset) {\r\n this.needsReset = false;\r\n targetStyle.visibility = \"\";\r\n targetStyle.opacity = \"\";\r\n targetStyle.pointerEvents =\r\n (0,_value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__.resolveMotionValue)(styleProp?.pointerEvents) || \"\";\r\n targetStyle.transform = transformTemplate\r\n ? transformTemplate(this.latestValues, \"\")\r\n : \"none\";\r\n return;\r\n }\r\n const lead = this.getLead();\r\n if (!this.projectionDelta || !this.layout || !lead.target) {\r\n if (this.options.layoutId) {\r\n targetStyle.opacity =\r\n this.latestValues.opacity !== undefined\r\n ? this.latestValues.opacity\r\n : 1;\r\n targetStyle.pointerEvents =\r\n (0,_value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__.resolveMotionValue)(styleProp?.pointerEvents) || \"\";\r\n }\r\n if (this.hasProjected && !(0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues)) {\r\n targetStyle.transform = transformTemplate\r\n ? transformTemplate({}, \"\")\r\n : \"none\";\r\n this.hasProjected = false;\r\n }\r\n return;\r\n }\r\n targetStyle.visibility = \"\";\r\n const valuesToRender = lead.animationValues || lead.latestValues;\r\n this.applyTransformsToTarget();\r\n let transform = (0,_styles_transform_mjs__WEBPACK_IMPORTED_MODULE_26__.buildProjectionTransform)(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\r\n if (transformTemplate) {\r\n transform = transformTemplate(valuesToRender, transform);\r\n }\r\n targetStyle.transform = transform;\r\n const { x, y } = this.projectionDelta;\r\n targetStyle.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;\r\n if (lead.animationValues) {\r\n /**\r\n * If the lead component is animating, assign this either the entering/leaving\r\n * opacity\r\n */\r\n targetStyle.opacity =\r\n lead === this\r\n ? valuesToRender.opacity ??\r\n this.latestValues.opacity ??\r\n 1\r\n : this.preserveOpacity\r\n ? this.latestValues.opacity\r\n : valuesToRender.opacityExit;\r\n }\r\n else {\r\n /**\r\n * Or we're not animating at all, set the lead component to its layout\r\n * opacity and other components to hidden.\r\n */\r\n targetStyle.opacity =\r\n lead === this\r\n ? valuesToRender.opacity !== undefined\r\n ? valuesToRender.opacity\r\n : \"\"\r\n : valuesToRender.opacityExit !== undefined\r\n ? valuesToRender.opacityExit\r\n : 0;\r\n }\r\n /**\r\n * Apply scale correction\r\n */\r\n for (const key in _styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_27__.scaleCorrectors) {\r\n if (valuesToRender[key] === undefined)\r\n continue;\r\n const { correct, applyTo, isCSSVariable } = _styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_27__.scaleCorrectors[key];\r\n /**\r\n * Only apply scale correction to the value if we have an\r\n * active projection transform. Otherwise these values become\r\n * vulnerable to distortion if the element changes size without\r\n * a corresponding layout animation.\r\n */\r\n const corrected = transform === \"none\"\r\n ? valuesToRender[key]\r\n : correct(valuesToRender[key], lead);\r\n if (applyTo) {\r\n const num = applyTo.length;\r\n for (let i = 0; i < num; i++) {\r\n targetStyle[applyTo[i]] = corrected;\r\n }\r\n }\r\n else {\r\n // If this is a CSS variable, set it directly on the instance.\r\n // Replacing this function from creating styles to setting them\r\n // would be a good place to remove per frame object creation\r\n if (isCSSVariable) {\r\n this.options.visualElement.renderState.vars[key] = corrected;\r\n }\r\n else {\r\n targetStyle[key] = corrected;\r\n }\r\n }\r\n }\r\n /**\r\n * Disable pointer events on follow components. This is to ensure\r\n * that if a follow component covers a lead component it doesn't block\r\n * pointer events on the lead.\r\n */\r\n if (this.options.layoutId) {\r\n targetStyle.pointerEvents =\r\n lead === this\r\n ? (0,_value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__.resolveMotionValue)(styleProp?.pointerEvents) || \"\"\r\n : \"none\";\r\n }\r\n }\r\n clearSnapshot() {\r\n this.resumeFrom = this.snapshot = undefined;\r\n }\r\n // Only run on root\r\n resetTree() {\r\n this.root.nodes.forEach((node) => node.currentAnimation?.stop());\r\n this.root.nodes.forEach(clearMeasurements);\r\n this.root.sharedNodes.clear();\r\n }\r\n };\r\n}\r\nfunction updateLayout(node) {\r\n node.updateLayout();\r\n}\r\nfunction notifyLayoutUpdate(node) {\r\n const snapshot = node.resumeFrom?.snapshot || node.snapshot;\r\n if (node.isLead() &&\r\n node.layout &&\r\n snapshot &&\r\n node.hasListeners(\"didUpdate\")) {\r\n const { layoutBox: layout, measuredBox: measuredLayout } = node.layout;\r\n const { animationType } = node.options;\r\n const isShared = snapshot.source !== node.layout.source;\r\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\r\n // animations for instance if layout=\"size\" and an element has only changed position\r\n if (animationType === \"size\") {\r\n (0,_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_28__.eachAxis)((axis) => {\r\n const axisSnapshot = isShared\r\n ? snapshot.measuredBox[axis]\r\n : snapshot.layoutBox[axis];\r\n const length = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(axisSnapshot);\r\n axisSnapshot.min = layout[axis].min;\r\n axisSnapshot.max = axisSnapshot.min + length;\r\n });\r\n }\r\n else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout)) {\r\n (0,_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_28__.eachAxis)((axis) => {\r\n const axisSnapshot = isShared\r\n ? snapshot.measuredBox[axis]\r\n : snapshot.layoutBox[axis];\r\n const length = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(layout[axis]);\r\n axisSnapshot.max = axisSnapshot.min + length;\r\n /**\r\n * Ensure relative target gets resized and rerendererd\r\n */\r\n if (node.relativeTarget && !node.currentAnimation) {\r\n node.isProjectionDirty = true;\r\n node.relativeTarget[axis].max =\r\n node.relativeTarget[axis].min + length;\r\n }\r\n });\r\n }\r\n const layoutDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\r\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(layoutDelta, layout, snapshot.layoutBox);\r\n const visualDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\r\n if (isShared) {\r\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\r\n }\r\n else {\r\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(visualDelta, layout, snapshot.layoutBox);\r\n }\r\n const hasLayoutChanged = !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.isDeltaZero)(layoutDelta);\r\n let hasRelativeLayoutChanged = false;\r\n if (!node.resumeFrom) {\r\n const relativeParent = node.getClosestProjectingParent();\r\n /**\r\n * If the relativeParent is itself resuming from a different element then\r\n * the relative snapshot is not relavent\r\n */\r\n if (relativeParent && !relativeParent.resumeFrom) {\r\n const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent;\r\n if (parentSnapshot && parentLayout) {\r\n const relativeSnapshot = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox);\r\n const relativeLayout = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\r\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(relativeLayout, layout, parentLayout.layoutBox);\r\n if (!(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.boxEqualsRounded)(relativeSnapshot, relativeLayout)) {\r\n hasRelativeLayoutChanged = true;\r\n }\r\n if (relativeParent.options.layoutRoot) {\r\n node.relativeTarget = relativeLayout;\r\n node.relativeTargetOrigin = relativeSnapshot;\r\n node.relativeParent = relativeParent;\r\n }\r\n }\r\n }\r\n }\r\n node.notifyListeners(\"didUpdate\", {\r\n layout,\r\n snapshot,\r\n delta: visualDelta,\r\n layoutDelta,\r\n hasLayoutChanged,\r\n hasRelativeLayoutChanged,\r\n });\r\n }\r\n else if (node.isLead()) {\r\n const { onExitComplete } = node.options;\r\n onExitComplete && onExitComplete();\r\n }\r\n /**\r\n * Clearing transition\r\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\r\n * and why we need it at all\r\n */\r\n node.options.transition = undefined;\r\n}\r\nfunction propagateDirtyNodes(node) {\r\n /**\r\n * Increase debug counter for nodes encountered this frame\r\n */\r\n if (motion_dom__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\r\n metrics.nodes++;\r\n }\r\n if (!node.parent)\r\n return;\r\n /**\r\n * If this node isn't projecting, propagate isProjectionDirty. It will have\r\n * no performance impact but it will allow the next child that *is* projecting\r\n * but *isn't* dirty to just check its parent to see if *any* ancestor needs\r\n * correcting.\r\n */\r\n if (!node.isProjecting()) {\r\n node.isProjectionDirty = node.parent.isProjectionDirty;\r\n }\r\n /**\r\n * Propagate isSharedProjectionDirty and isTransformDirty\r\n * throughout the whole tree. A future revision can take another look at\r\n * this but for safety we still recalcualte shared nodes.\r\n */\r\n node.isSharedProjectionDirty || (node.isSharedProjectionDirty = Boolean(node.isProjectionDirty ||\r\n node.parent.isProjectionDirty ||\r\n node.parent.isSharedProjectionDirty));\r\n node.isTransformDirty || (node.isTransformDirty = node.parent.isTransformDirty);\r\n}\r\nfunction cleanDirtyNodes(node) {\r\n node.isProjectionDirty =\r\n node.isSharedProjectionDirty =\r\n node.isTransformDirty =\r\n false;\r\n}\r\nfunction clearSnapshot(node) {\r\n node.clearSnapshot();\r\n}\r\nfunction clearMeasurements(node) {\r\n node.clearMeasurements();\r\n}\r\nfunction clearIsLayoutDirty(node) {\r\n node.isLayoutDirty = false;\r\n}\r\nfunction resetTransformStyle(node) {\r\n const { visualElement } = node.options;\r\n if (visualElement && visualElement.getProps().onBeforeLayoutMeasure) {\r\n visualElement.notify(\"BeforeLayoutMeasure\");\r\n }\r\n node.resetTransform();\r\n}\r\nfunction finishAnimation(node) {\r\n node.finishAnimation();\r\n node.targetDelta = node.relativeTarget = node.target = undefined;\r\n node.isProjectionDirty = true;\r\n}\r\nfunction resolveTargetDelta(node) {\r\n node.resolveTargetDelta();\r\n}\r\nfunction calcProjection(node) {\r\n node.calcProjection();\r\n}\r\nfunction resetSkewAndRotation(node) {\r\n node.resetSkewAndRotation();\r\n}\r\nfunction removeLeadSnapshots(stack) {\r\n stack.removeLeadSnapshot();\r\n}\r\nfunction mixAxisDelta(output, delta, p) {\r\n output.translate = (0,motion_dom__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(delta.translate, 0, p);\r\n output.scale = (0,motion_dom__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(delta.scale, 1, p);\r\n output.origin = delta.origin;\r\n output.originPoint = delta.originPoint;\r\n}\r\nfunction mixAxis(output, from, to, p) {\r\n output.min = (0,motion_dom__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(from.min, to.min, p);\r\n output.max = (0,motion_dom__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(from.max, to.max, p);\r\n}\r\nfunction mixBox(output, from, to, p) {\r\n mixAxis(output.x, from.x, to.x, p);\r\n mixAxis(output.y, from.y, to.y, p);\r\n}\r\nfunction hasOpacityCrossfade(node) {\r\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\r\n}\r\nconst defaultLayoutTransition = {\r\n duration: 0.45,\r\n ease: [0.4, 0, 0.1, 1],\r\n};\r\nconst userAgentContains = (string) => typeof navigator !== \"undefined\" &&\r\n navigator.userAgent &&\r\n navigator.userAgent.toLowerCase().includes(string);\r\n/**\r\n * Measured bounding boxes must be rounded in Safari and\r\n * left untouched in Chrome, otherwise non-integer layouts within scaled-up elements\r\n * can appear to jump.\r\n */\r\nconst roundPoint = userAgentContains(\"applewebkit/\") && !userAgentContains(\"chrome/\")\r\n ? Math.round\r\n : motion_utils__WEBPACK_IMPORTED_MODULE_30__.noop;\r\nfunction roundAxis(axis) {\r\n // Round to the nearest .5 pixels to support subpixel layouts\r\n axis.min = roundPoint(axis.min);\r\n axis.max = roundPoint(axis.max);\r\n}\r\nfunction roundBox(box) {\r\n roundAxis(box.x);\r\n roundAxis(box.y);\r\n}\r\nfunction shouldAnimatePositionOnly(animationType, snapshot, layout) {\r\n return (animationType === \"position\" ||\r\n (animationType === \"preserve-aspect\" &&\r\n !(0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.isNear)((0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.aspectRatio)(snapshot), (0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.aspectRatio)(layout), 0.2)));\r\n}\r\nfunction checkNodeWasScrollRoot(node) {\r\n return node !== node.root && node.scroll?.wasRoot;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL2NyZWF0ZS1wcm9qZWN0aW9uLW5vZGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBa007QUFDbEk7QUFDYztBQUNZO0FBQzlCO0FBQ2Q7QUFDa0M7QUFDeEI7QUFDYztBQUNvQztBQUNXO0FBQ2xEO0FBQ0g7QUFDK0M7QUFDL0Q7QUFDaUI7QUFDRTtBQUNqQjtBQUNrQztBQUNoQztBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxlQUFlO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxnQkFBZ0I7QUFDNUI7QUFDQTtBQUNBLHFCQUFxQixtR0FBb0I7QUFDekM7QUFDQSxnQkFBZ0IsbUJBQW1CO0FBQ25DLHFFQUFxRSw2Q0FBSztBQUMxRTtBQUNBLFlBQVksU0FBUztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyx3RkFBd0Y7QUFDeEg7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtREFBVztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsbURBQVc7QUFDL0Isb0JBQW9CLG1EQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHNCQUFzQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsaUVBQVE7QUFDekM7QUFDQTtBQUNBO0FBQ0EsaURBQWlELDZEQUFtQjtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5Qix3REFBWSxlQUFlLDJEQUFlO0FBQ25FO0FBQ0Esb0JBQW9CLGtDQUFrQztBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw2Q0FBSztBQUNyQjtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyx1REFBSztBQUN2Qyx3QkFBd0IsNkRBQXFCO0FBQzdDLHdCQUF3Qiw2REFBcUI7QUFDN0M7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNELHVFQUF1RTtBQUM3SDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIscURBQXFEO0FBQ2pGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIscUVBQWdCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLCtEQUFrQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx1REFBVztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsc0JBQXNCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLG1CQUFtQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qiw2Q0FBSTtBQUM1QixZQUFZLGlEQUFTLFNBQVMsb0RBQUsscUJBQXFCLGlEQUFTO0FBQ2pFLFlBQVksaURBQVM7QUFDckIsWUFBWSxpREFBUztBQUNyQixZQUFZLGtEQUFVLGdCQUFnQixpREFBUztBQUMvQyxZQUFZLGtEQUFVLG1CQUFtQixpREFBUztBQUNsRCxZQUFZLGtEQUFVLGdCQUFnQixpREFBUztBQUMvQyxZQUFZLGlEQUFTO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGtEQUFTO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw2Q0FBSztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSw2Q0FBSztBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHFFQUFVO0FBQzNCLGlCQUFpQixxRUFBVTtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyxzQkFBc0I7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLGdFQUFTO0FBQzVDO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkRBQTJELGdFQUFXO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsdUVBQVk7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0EsdUJBQXVCLGdFQUFTO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFNBQVM7QUFDakM7QUFDQSxvQkFBb0IseUVBQWE7QUFDakMsb0JBQW9CLHlFQUFhO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsZ0VBQVM7QUFDOUMsWUFBWSxnRUFBVztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixzQkFBc0I7QUFDbEQ7QUFDQSx3QkFBd0Isa0JBQWtCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnRUFBVztBQUNuQztBQUNBLG9CQUFvQix5RUFBYTtBQUNqQyxvQkFBb0IseUVBQWE7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxnRUFBUztBQUM1QyxZQUFZLGdFQUFXO0FBQ3ZCLDRCQUE0QixzQkFBc0I7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix3RUFBWTtBQUNoQztBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0EscUJBQXFCLHVFQUFZO0FBQ2pDO0FBQ0EsZ0JBQWdCLHdFQUFZO0FBQzVCO0FBQ0EsZ0JBQWdCLHVFQUFZO0FBQzVCLGdCQUFnQix3RUFBWTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QyxnRUFBUztBQUNqRCxZQUFZLGdFQUFXO0FBQ3ZCLDRCQUE0QixzQkFBc0I7QUFDbEQ7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLHVFQUFZO0FBQ2pDO0FBQ0EsZ0JBQWdCLG1FQUFRO0FBQ3hCLGtDQUFrQyxnRUFBUztBQUMzQztBQUNBLGdCQUFnQixnRUFBVztBQUMzQixnQkFBZ0IsZ0ZBQW1CO0FBQ25DO0FBQ0EsZ0JBQWdCLHVFQUFZO0FBQzVCLGdCQUFnQixnRkFBbUI7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsaURBQVM7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtQkFBbUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QyxpREFBUztBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsZ0VBQVM7QUFDbkQsZ0RBQWdELGdFQUFTO0FBQ3pELG9CQUFvQiwrRUFBb0I7QUFDeEMsb0JBQW9CLGdFQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixnRUFBUztBQUN2Qyw0Q0FBNEMsZ0VBQVM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDBFQUFlO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGdFQUFXO0FBQy9CO0FBQ0EsZ0JBQWdCLHlFQUFhO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsZ0VBQVc7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLGdFQUFTO0FBQ25ELGdEQUFnRCxnRUFBUztBQUN6RCxvQkFBb0IsK0VBQW9CO0FBQ3hDLG9CQUFvQixnRUFBVztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG1EQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbUVBQVE7QUFDeEIsZ0JBQWdCLHlFQUFjO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QsaURBQVM7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsbUJBQW1CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxnRUFBVztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLDJFQUFlO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsZ0VBQVM7QUFDckQ7QUFDQSxvQkFBb0IsU0FBUztBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixzRUFBaUI7QUFDakMsZ0JBQWdCLHNFQUFpQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksdUVBQVk7QUFDeEI7QUFDQTtBQUNBLGlCQUFpQixvRUFBZTtBQUNoQyxpQkFBaUIsb0VBQWU7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbURBQVc7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsa0VBQVc7QUFDbEQsbUNBQW1DLGtFQUFXO0FBQzlDLGdEQUFnRCxrRUFBVztBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQyxnQ0FBZ0Msa0VBQVc7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxnRUFBUztBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsK0VBQW9CO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qiw4REFBUztBQUNqQztBQUNBO0FBQ0E7QUFDQSw2Q0FBNkMsZ0VBQVM7QUFDdEQsb0JBQW9CLGdFQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixxRUFBUztBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsdURBQVc7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsNkNBQUs7QUFDekMsZ0JBQWdCLDZEQUFxQjtBQUNyQyxnQkFBZ0IseURBQWdCO0FBQ2hDLHdEQUF3RCx3REFBVztBQUNuRSx3Q0FBd0Msd0ZBQWtCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBLHdCQUF3Qix5REFBZ0I7QUFDeEMscUJBQXFCO0FBQ3JCO0FBQ0Esd0JBQXdCLHlEQUFnQjtBQUN4QztBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLHFEQUFxRDtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLGdFQUFTO0FBQ2pELGdDQUFnQyxxRUFBVTtBQUMxQztBQUNBO0FBQ0EsZ0NBQWdDLHFFQUFVO0FBQzFDO0FBQ0E7QUFDQTtBQUNBLFlBQVksZ0VBQVc7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksd0VBQVk7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx1RUFBWTtBQUN4QjtBQUNBO0FBQ0E7QUFDQSxtREFBbUQseURBQVM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixpREFBaUQsSUFBSTtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLFlBQVk7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixlQUFlO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsMEJBQTBCO0FBQ3RELGtEQUFrRCxpQkFBaUI7QUFDbkUsZ0RBQWdELGlCQUFpQjtBQUNqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDBGQUFrQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QiwwRkFBa0I7QUFDMUM7QUFDQSwwQ0FBMEMsdUVBQVk7QUFDdEQ7QUFDQSw4Q0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixnRkFBd0I7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTztBQUMzQiw2Q0FBNkMsZUFBZSxJQUFJLGVBQWU7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsMEVBQWU7QUFDN0M7QUFDQTtBQUNBLHdCQUF3QixrQ0FBa0MsRUFBRSwwRUFBZTtBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLFNBQVM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQiwwRkFBa0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixpREFBaUQ7QUFDakUsZ0JBQWdCLGdCQUFnQjtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksK0RBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLHFFQUFVO0FBQ3pDO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLFlBQVksK0RBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLHFFQUFVO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLDRCQUE0QixrRUFBVztBQUN2QyxRQUFRLHVFQUFZO0FBQ3BCLDRCQUE0QixrRUFBVztBQUN2QztBQUNBLFlBQVksdUVBQVk7QUFDeEI7QUFDQTtBQUNBLFlBQVksdUVBQVk7QUFDeEI7QUFDQSxrQ0FBa0MsZ0VBQVc7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixpREFBaUQ7QUFDekU7QUFDQSw2Q0FBNkMsZ0VBQVM7QUFDdEQsb0JBQW9CLCtFQUFvQjtBQUN4QywyQ0FBMkMsZ0VBQVM7QUFDcEQsb0JBQW9CLCtFQUFvQjtBQUN4Qyx5QkFBeUIscUVBQWdCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLGdCQUFnQixpQkFBaUI7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvRUFBb0UsY0FBYztBQUNsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxtREFBVztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGdCQUFnQjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLHNEQUFTO0FBQ2hDLG1CQUFtQixzREFBUztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixzREFBUztBQUMxQixpQkFBaUIsc0RBQVM7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLCtDQUFJO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxpRUFBTSxDQUFDLGdFQUFXLFlBQVksZ0VBQVc7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNxRyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3Byb2plY3Rpb24vbm9kZS9jcmVhdGUtcHJvamVjdGlvbi1ub2RlLm1qcz83OWYxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0YXRzQnVmZmVyLCBpc1NWR0VsZW1lbnQsIGlzU1ZHU1ZHRWxlbWVudCwgZnJhbWUsIGdldFZhbHVlVHJhbnNpdGlvbiwgY2FuY2VsRnJhbWUsIHRpbWUsIGZyYW1lRGF0YSwgZnJhbWVTdGVwcywgbWljcm90YXNrLCBhY3RpdmVBbmltYXRpb25zLCBtb3Rpb25WYWx1ZSwgbWl4TnVtYmVyIH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbk1hbmFnZXIsIGNsYW1wLCBub29wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgYW5pbWF0ZVNpbmdsZVZhbHVlIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9uL2FuaW1hdGUvc2luZ2xlLXZhbHVlLm1qcyc7XHJcbmltcG9ydCB7IGdldE9wdGltaXNlZEFwcGVhcklkIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9uL29wdGltaXplZC1hcHBlYXIvZ2V0LWFwcGVhci1pZC5tanMnO1xyXG5pbXBvcnQgeyBGbGF0VHJlZSB9IGZyb20gJy4uLy4uL3JlbmRlci91dGlscy9mbGF0LXRyZWUubWpzJztcclxuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICcuLi8uLi91dGlscy9kZWxheS5tanMnO1xyXG5pbXBvcnQgeyByZXNvbHZlTW90aW9uVmFsdWUgfSBmcm9tICcuLi8uLi92YWx1ZS91dGlscy9yZXNvbHZlLW1vdGlvbi12YWx1ZS5tanMnO1xyXG5pbXBvcnQgeyBtaXhWYWx1ZXMgfSBmcm9tICcuLi9hbmltYXRpb24vbWl4LXZhbHVlcy5tanMnO1xyXG5pbXBvcnQgeyBjb3B5Qm94SW50bywgY29weUF4aXNEZWx0YUludG8gfSBmcm9tICcuLi9nZW9tZXRyeS9jb3B5Lm1qcyc7XHJcbmltcG9ydCB7IHRyYW5zbGF0ZUF4aXMsIHRyYW5zZm9ybUJveCwgYXBwbHlCb3hEZWx0YSwgYXBwbHlUcmVlRGVsdGFzIH0gZnJvbSAnLi4vZ2VvbWV0cnkvZGVsdGEtYXBwbHkubWpzJztcclxuaW1wb3J0IHsgY2FsY0xlbmd0aCwgY2FsY1JlbGF0aXZlUG9zaXRpb24sIGNhbGNSZWxhdGl2ZUJveCwgY2FsY0JveERlbHRhLCBpc05lYXIgfSBmcm9tICcuLi9nZW9tZXRyeS9kZWx0YS1jYWxjLm1qcyc7XHJcbmltcG9ydCB7IHJlbW92ZUJveFRyYW5zZm9ybXMgfSBmcm9tICcuLi9nZW9tZXRyeS9kZWx0YS1yZW1vdmUubWpzJztcclxuaW1wb3J0IHsgY3JlYXRlQm94LCBjcmVhdGVEZWx0YSB9IGZyb20gJy4uL2dlb21ldHJ5L21vZGVscy5tanMnO1xyXG5pbXBvcnQgeyBib3hFcXVhbHNSb3VuZGVkLCBpc0RlbHRhWmVybywgYXhpc0RlbHRhRXF1YWxzLCBhc3BlY3RSYXRpbywgYm94RXF1YWxzIH0gZnJvbSAnLi4vZ2VvbWV0cnkvdXRpbHMubWpzJztcclxuaW1wb3J0IHsgTm9kZVN0YWNrIH0gZnJvbSAnLi4vc2hhcmVkL3N0YWNrLm1qcyc7XHJcbmltcG9ydCB7IHNjYWxlQ29ycmVjdG9ycyB9IGZyb20gJy4uL3N0eWxlcy9zY2FsZS1jb3JyZWN0aW9uLm1qcyc7XHJcbmltcG9ydCB7IGJ1aWxkUHJvamVjdGlvblRyYW5zZm9ybSB9IGZyb20gJy4uL3N0eWxlcy90cmFuc2Zvcm0ubWpzJztcclxuaW1wb3J0IHsgZWFjaEF4aXMgfSBmcm9tICcuLi91dGlscy9lYWNoLWF4aXMubWpzJztcclxuaW1wb3J0IHsgaGFzVHJhbnNmb3JtLCBoYXNTY2FsZSwgaGFzMkRUcmFuc2xhdGUgfSBmcm9tICcuLi91dGlscy9oYXMtdHJhbnNmb3JtLm1qcyc7XHJcbmltcG9ydCB7IGdsb2JhbFByb2plY3Rpb25TdGF0ZSB9IGZyb20gJy4vc3RhdGUubWpzJztcclxuXHJcbmNvbnN0IG1ldHJpY3MgPSB7XHJcbiAgICBub2RlczogMCxcclxuICAgIGNhbGN1bGF0ZWRUYXJnZXREZWx0YXM6IDAsXHJcbiAgICBjYWxjdWxhdGVkUHJvamVjdGlvbnM6IDAsXHJcbn07XHJcbmNvbnN0IHRyYW5zZm9ybUF4ZXMgPSBbXCJcIiwgXCJYXCIsIFwiWVwiLCBcIlpcIl07XHJcbi8qKlxyXG4gKiBXZSB1c2UgMTAwMCBhcyB0aGUgYW5pbWF0aW9uIHRhcmdldCBhcyAwLTEwMDAgbWFwcyBiZXR0ZXIgdG8gcGl4ZWxzIHRoYW4gMC0xXHJcbiAqIHdoaWNoIGhhcyBhIG5vdGljZWFibGUgZGlmZmVyZW5jZSBpbiBzcHJpbmcgYW5pbWF0aW9uc1xyXG4gKi9cclxuY29uc3QgYW5pbWF0aW9uVGFyZ2V0ID0gMTAwMDtcclxubGV0IGlkID0gMDtcclxuZnVuY3Rpb24gcmVzZXREaXN0b3J0aW5nVHJhbnNmb3JtKGtleSwgdmlzdWFsRWxlbWVudCwgdmFsdWVzLCBzaGFyZWRBbmltYXRpb25WYWx1ZXMpIHtcclxuICAgIGNvbnN0IHsgbGF0ZXN0VmFsdWVzIH0gPSB2aXN1YWxFbGVtZW50O1xyXG4gICAgLy8gUmVjb3JkIHRoZSBkaXN0b3J0aW5nIHRyYW5zZm9ybSBhbmQgdGhlbiB0ZW1wb3JhcmlseSBzZXQgaXQgdG8gMFxyXG4gICAgaWYgKGxhdGVzdFZhbHVlc1trZXldKSB7XHJcbiAgICAgICAgdmFsdWVzW2tleV0gPSBsYXRlc3RWYWx1ZXNba2V5XTtcclxuICAgICAgICB2aXN1YWxFbGVtZW50LnNldFN0YXRpY1ZhbHVlKGtleSwgMCk7XHJcbiAgICAgICAgaWYgKHNoYXJlZEFuaW1hdGlvblZhbHVlcykge1xyXG4gICAgICAgICAgICBzaGFyZWRBbmltYXRpb25WYWx1ZXNba2V5XSA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGNhbmNlbFRyZWVPcHRpbWlzZWRUcmFuc2Zvcm1BbmltYXRpb25zKHByb2plY3Rpb25Ob2RlKSB7XHJcbiAgICBwcm9qZWN0aW9uTm9kZS5oYXNDaGVja2VkT3B0aW1pc2VkQXBwZWFyID0gdHJ1ZTtcclxuICAgIGlmIChwcm9qZWN0aW9uTm9kZS5yb290ID09PSBwcm9qZWN0aW9uTm9kZSlcclxuICAgICAgICByZXR1cm47XHJcbiAgICBjb25zdCB7IHZpc3VhbEVsZW1lbnQgfSA9IHByb2plY3Rpb25Ob2RlLm9wdGlvbnM7XHJcbiAgICBpZiAoIXZpc3VhbEVsZW1lbnQpXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgY29uc3QgYXBwZWFySWQgPSBnZXRPcHRpbWlzZWRBcHBlYXJJZCh2aXN1YWxFbGVtZW50KTtcclxuICAgIGlmICh3aW5kb3cuTW90aW9uSGFzT3B0aW1pc2VkQW5pbWF0aW9uKGFwcGVhcklkLCBcInRyYW5zZm9ybVwiKSkge1xyXG4gICAgICAgIGNvbnN0IHsgbGF5b3V0LCBsYXlvdXRJZCB9ID0gcHJvamVjdGlvbk5vZGUub3B0aW9ucztcclxuICAgICAgICB3aW5kb3cuTW90aW9uQ2FuY2VsT3B0aW1pc2VkQW5pbWF0aW9uKGFwcGVhcklkLCBcInRyYW5zZm9ybVwiLCBmcmFtZSwgIShsYXlvdXQgfHwgbGF5b3V0SWQpKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgcGFyZW50IH0gPSBwcm9qZWN0aW9uTm9kZTtcclxuICAgIGlmIChwYXJlbnQgJiYgIXBhcmVudC5oYXNDaGVja2VkT3B0aW1pc2VkQXBwZWFyKSB7XHJcbiAgICAgICAgY2FuY2VsVHJlZU9wdGltaXNlZFRyYW5zZm9ybUFuaW1hdGlvbnMocGFyZW50KTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBjcmVhdGVQcm9qZWN0aW9uTm9kZSh7IGF0dGFjaFJlc2l6ZUxpc3RlbmVyLCBkZWZhdWx0UGFyZW50LCBtZWFzdXJlU2Nyb2xsLCBjaGVja0lzU2Nyb2xsUm9vdCwgcmVzZXRUcmFuc2Zvcm0sIH0pIHtcclxuICAgIHJldHVybiBjbGFzcyBQcm9qZWN0aW9uTm9kZSB7XHJcbiAgICAgICAgY29uc3RydWN0b3IobGF0ZXN0VmFsdWVzID0ge30sIHBhcmVudCA9IGRlZmF1bHRQYXJlbnQ/LigpKSB7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBBIHVuaXF1ZSBJRCBnZW5lcmF0ZWQgZm9yIGV2ZXJ5IHByb2plY3Rpb24gbm9kZS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIHRoaXMuaWQgPSBpZCsrO1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogQW4gaWQgdGhhdCByZXByZXNlbnRzIGEgdW5pcXVlIHNlc3Npb24gaW5zdGlnYXRlZCBieSBzdGFydFVwZGF0ZS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSWQgPSAwO1xyXG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkNvbW1pdElkID0gMDtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEEgU2V0IGNvbnRhaW5pbmcgYWxsIHRoaXMgY29tcG9uZW50J3MgY2hpbGRyZW4uIFRoaXMgaXMgdXNlZCB0byBpdGVyYXRlXHJcbiAgICAgICAgICAgICAqIHRocm91Z2ggdGhlIGNoaWxkcmVuLlxyXG4gICAgICAgICAgICAgKlxyXG4gICAgICAgICAgICAgKiBUT0RPOiBUaGlzIGNvdWxkIGJlIGZhc3RlciB0byBpdGVyYXRlIGFzIGEgZmxhdCBhcnJheSBzdG9yZWQgb24gdGhlIHJvb3Qgbm9kZS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW4gPSBuZXcgU2V0KCk7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBPcHRpb25zIGZvciB0aGUgbm9kZS4gV2UgdXNlIHRoaXMgdG8gY29uZmlndXJlIHdoYXQga2luZCBvZiBsYXlvdXQgYW5pbWF0aW9uc1xyXG4gICAgICAgICAgICAgKiB3ZSBzaG91bGQgcGVyZm9ybSAoaWYgYW55KS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHt9O1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogV2UgdXNlIHRoaXMgdG8gZGV0ZWN0IHdoZW4gaXRzIHNhZmUgdG8gc2h1dCBkb3duIHBhcnQgb2YgYSBwcm9qZWN0aW9uIHRyZWUuXHJcbiAgICAgICAgICAgICAqIFdlIGhhdmUgdG8ga2VlcCBwcm9qZWN0aW5nIGNoaWxkcmVuIGZvciBzY2FsZSBjb3JyZWN0aW9uIGFuZCByZWxhdGl2ZSBwcm9qZWN0aW9uXHJcbiAgICAgICAgICAgICAqIHVudGlsIGFsbCB0aGVpciBwYXJlbnRzIHN0b3AgcGVyZm9ybWluZyBsYXlvdXQgYW5pbWF0aW9ucy5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIHRoaXMuaXNUcmVlQW5pbWF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNBbmltYXRpb25CbG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBGbGFnIHRvIHRydWUgaWYgd2UgdGhpbmsgdGhpcyBsYXlvdXQgaGFzIGJlZW4gY2hhbmdlZC4gV2UgY2FuJ3QgYWx3YXlzIGtub3cgdGhpcyxcclxuICAgICAgICAgICAgICogY3VycmVudGx5IHdlIHNldCBpdCB0byB0cnVlIGV2ZXJ5IHRpbWUgYSBjb21wb25lbnQgcmVuZGVycywgb3IgaWYgaXQgaGFzIGEgbGF5b3V0RGVwZW5kZW5jeVxyXG4gICAgICAgICAgICAgKiBpZiB0aGF0IGhhcyBjaGFuZ2VkIGJldHdlZW4gcmVuZGVycy4gQWRkaXRpb25hbGx5LCBjb21wb25lbnRzIGNhbiBiZSBncm91cGVkIGJ5IExheW91dEdyb3VwXHJcbiAgICAgICAgICAgICAqIGFuZCBpZiBvbmUgbm9kZSBpcyBkaXJ0aWVkLCB0aGV5IGFsbCBhcmUuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICB0aGlzLmlzTGF5b3V0RGlydHkgPSBmYWxzZTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEZsYWcgdG8gdHJ1ZSBpZiB3ZSB0aGluayB0aGUgcHJvamVjdGlvbiBjYWxjdWxhdGlvbnMgZm9yIHRoaXMgbm9kZSBuZWVkc1xyXG4gICAgICAgICAgICAgKiByZWNhbGN1bGF0aW5nIGFzIGEgcmVzdWx0IG9mIGFuIHVwZGF0ZWQgdHJhbnNmb3JtIG9yIGxheW91dCBhbmltYXRpb24uXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICB0aGlzLmlzUHJvamVjdGlvbkRpcnR5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBGbGFnIHRvIHRydWUgaWYgdGhlIGxheW91dCAqb3IqIHRyYW5zZm9ybSBoYXMgY2hhbmdlZC4gVGhpcyB0aGVuIGdldHMgcHJvcGFnYXRlZFxyXG4gICAgICAgICAgICAgKiB0aHJvdWdob3V0IHRoZSBwcm9qZWN0aW9uIHRyZWUsIGZvcmNpbmcgYW55IGVsZW1lbnQgYmVsb3cgdG8gcmVjYWxjdWxhdGUgb24gdGhlIG5leHQgZnJhbWUuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICB0aGlzLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBGbGFnIHRyYW5zZm9ybSBkaXJ0eS4gVGhpcyBnZXRzIHByb3BhZ2F0ZWQgdGhyb3VnaG91dCB0aGUgd2hvbGUgdHJlZSBidXQgaXMgb25seVxyXG4gICAgICAgICAgICAgKiByZXNwZWN0ZWQgYnkgc2hhcmVkIG5vZGVzLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgdGhpcy5pc1RyYW5zZm9ybURpcnR5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBCbG9jayBsYXlvdXQgdXBkYXRlcyBmb3IgaW5zdGFudCBsYXlvdXQgdHJhbnNpdGlvbnMgdGhyb3VnaG91dCB0aGUgdHJlZS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTWFudWFsbHlCbG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQmxvY2tlZEJ5UmVzaXplID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBTZXQgdG8gdHJ1ZSBiZXR3ZWVuIHRoZSBzdGFydCBvZiB0aGUgZmlyc3QgYHdpbGxVcGRhdGVgIGNhbGwgYW5kIHRoZSBlbmQgb2YgdGhlIGBkaWRVcGRhdGVgXHJcbiAgICAgICAgICAgICAqIGNhbGwuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICB0aGlzLmlzVXBkYXRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIElmIHRoaXMgaXMgYW4gU1ZHIGVsZW1lbnQgd2UgY3VycmVudGx5IGRpc2FibGUgcHJvamVjdGlvbiB0cmFuc2Zvcm1zXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICB0aGlzLmlzU1ZHID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBGbGFnIHRvIHRydWUgKGR1cmluZyBwcm9tb3Rpb24pIGlmIGEgbm9kZSBkb2luZyBhbiBpbnN0YW50IGxheW91dCB0cmFuc2l0aW9uIG5lZWRzIHRvIHJlc2V0XHJcbiAgICAgICAgICAgICAqIGl0cyBwcm9qZWN0aW9uIHN0eWxlcy5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIHRoaXMubmVlZHNSZXNldCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogRmxhZ3Mgd2hldGhlciB0aGlzIG5vZGUgc2hvdWxkIGhhdmUgaXRzIHRyYW5zZm9ybSByZXNldCBwcmlvciB0byBtZWFzdXJpbmcuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICB0aGlzLnNob3VsZFJlc2V0VHJhbnNmb3JtID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBTdG9yZSB3aGV0aGVyIHRoaXMgbm9kZSBoYXMgYmVlbiBjaGVja2VkIGZvciBvcHRpbWlzZWQgYXBwZWFyIGFuaW1hdGlvbnMuIEFzXHJcbiAgICAgICAgICAgICAqIGVmZmVjdHMgZmlyZSBib3R0b20tdXAsIGFuZCB3ZSB3YW50IHRvIGxvb2sgdXAgdGhlIHRyZWUgZm9yIGFwcGVhciBhbmltYXRpb25zLFxyXG4gICAgICAgICAgICAgKiB0aGlzIG1ha2VzIHN1cmUgd2Ugb25seSBjaGVjayBlYWNoIHBhdGggb25jZSwgc3RvcHBpbmcgYXQgbm9kZXMgdGhhdFxyXG4gICAgICAgICAgICAgKiBoYXZlIGFscmVhZHkgYmVlbiBjaGVja2VkLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgdGhpcy5oYXNDaGVja2VkT3B0aW1pc2VkQXBwZWFyID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBBbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBjYWxjdWxhdGVkIGNvbnRleHR1YWwvYWNjdW11bGF0ZWQvdHJlZSBzY2FsZS5cclxuICAgICAgICAgICAgICogVGhpcyB3aWxsIGJlIHVzZWQgdG8gc2NhbGUgY2FsY3VsY2F0ZWQgcHJvamVjdGlvbiB0cmFuc2Zvcm1zLCBhcyB0aGVzZSBhcmVcclxuICAgICAgICAgICAgICogY2FsY3VsYXRlZCBpbiBzY3JlZW4tc3BhY2UgYnV0IG5lZWQgdG8gYmUgc2NhbGVkIGZvciBlbGVtZW50cyB0byBsYXlvdXRseVxyXG4gICAgICAgICAgICAgKiBtYWtlIGl0IHRvIHRoZWlyIGNhbGN1bGF0ZWQgZGVzdGluYXRpb25zLlxyXG4gICAgICAgICAgICAgKlxyXG4gICAgICAgICAgICAgKiBUT0RPOiBMYXp5LWluaXRcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIHRoaXMudHJlZVNjYWxlID0geyB4OiAxLCB5OiAxIH07XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgdGhpcy5ldmVudEhhbmRsZXJzID0gbmV3IE1hcCgpO1xyXG4gICAgICAgICAgICB0aGlzLmhhc1RyZWVBbmltYXRlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyBOb3RlOiBDdXJyZW50bHkgb25seSBydW5uaW5nIG9uIHJvb3Qgbm9kZVxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNjaGVkdWxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlVXBkYXRlID0gKCkgPT4gdGhpcy51cGRhdGUoKTtcclxuICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uVXBkYXRlU2NoZWR1bGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tVcGRhdGVGYWlsZWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1VwZGF0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1VwZGF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckFsbFNuYXBzaG90cygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogVGhpcyBpcyBhIG11bHRpLXN0ZXAgcHJvY2VzcyBhcyBzaGFyZWQgbm9kZXMgbWlnaHQgYmUgb2YgZGlmZmVyZW50IGRlcHRocy4gTm9kZXNcclxuICAgICAgICAgICAgICogYXJlIHNvcnRlZCBieSBkZXB0aCBvcmRlciwgc28gd2UgbmVlZCB0byByZXNvbHZlIHRoZSBlbnRpcmUgdHJlZSBiZWZvcmUgbW92aW5nIHRvXHJcbiAgICAgICAgICAgICAqIHRoZSBuZXh0IHN0ZXAuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVByb2plY3Rpb24gPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2plY3Rpb25VcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICogUmVzZXQgZGVidWcgY291bnRzLiBNYW51YWxseSByZXNldHRpbmcgcmF0aGVyIHRoYW4gY3JlYXRpbmcgYSBuZXdcclxuICAgICAgICAgICAgICAgICAqIG9iamVjdCBlYWNoIGZyYW1lLlxyXG4gICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICBpZiAoc3RhdHNCdWZmZXIudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICBtZXRyaWNzLm5vZGVzID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0cmljcy5jYWxjdWxhdGVkVGFyZ2V0RGVsdGFzID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldHJpY3MuY2FsY3VsYXRlZFByb2plY3Rpb25zID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKHByb3BhZ2F0ZURpcnR5Tm9kZXMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKHJlc29sdmVUYXJnZXREZWx0YSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2goY2FsY1Byb2plY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKGNsZWFuRGlydHlOb2Rlcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3RhdHNCdWZmZXIuYWRkUHJvamVjdGlvbk1ldHJpY3MpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdGF0c0J1ZmZlci5hZGRQcm9qZWN0aW9uTWV0cmljcyhtZXRyaWNzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEZyYW1lIGNhbGN1bGF0aW9uc1xyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgdGhpcy5yZXNvbHZlZFJlbGF0aXZlVGFyZ2V0QXQgPSAwLjA7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzUHJvamVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5hbmltYXRpb25Qcm9ncmVzcyA9IDA7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBTaGFyZWQgbGF5b3V0XHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAvLyBUT0RPIE9ubHkgcnVubmluZyBvbiByb290IG5vZGVcclxuICAgICAgICAgICAgdGhpcy5zaGFyZWROb2RlcyA9IG5ldyBNYXAoKTtcclxuICAgICAgICAgICAgdGhpcy5sYXRlc3RWYWx1ZXMgPSBsYXRlc3RWYWx1ZXM7XHJcbiAgICAgICAgICAgIHRoaXMucm9vdCA9IHBhcmVudCA/IHBhcmVudC5yb290IHx8IHBhcmVudCA6IHRoaXM7XHJcbiAgICAgICAgICAgIHRoaXMucGF0aCA9IHBhcmVudCA/IFsuLi5wYXJlbnQucGF0aCwgcGFyZW50XSA6IFtdO1xyXG4gICAgICAgICAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcclxuICAgICAgICAgICAgdGhpcy5kZXB0aCA9IHBhcmVudCA/IHBhcmVudC5kZXB0aCArIDEgOiAwO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGF0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXRoW2ldLnNob3VsZFJlc2V0VHJhbnNmb3JtID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5yb290ID09PSB0aGlzKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlcyA9IG5ldyBGbGF0VHJlZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhZGRFdmVudExpc3RlbmVyKG5hbWUsIGhhbmRsZXIpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmV2ZW50SGFuZGxlcnMuaGFzKG5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50SGFuZGxlcnMuc2V0KG5hbWUsIG5ldyBTdWJzY3JpcHRpb25NYW5hZ2VyKCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV2ZW50SGFuZGxlcnMuZ2V0KG5hbWUpLmFkZChoYW5kbGVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbm90aWZ5TGlzdGVuZXJzKG5hbWUsIC4uLmFyZ3MpIHtcclxuICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uTWFuYWdlciA9IHRoaXMuZXZlbnRIYW5kbGVycy5nZXQobmFtZSk7XHJcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbk1hbmFnZXIgJiYgc3Vic2NyaXB0aW9uTWFuYWdlci5ub3RpZnkoLi4uYXJncyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGhhc0xpc3RlbmVycyhuYW1lKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV2ZW50SGFuZGxlcnMuaGFzKG5hbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBMaWZlY3ljbGVzXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgbW91bnQoaW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIHRoaXMuaXNTVkcgPSBpc1NWR0VsZW1lbnQoaW5zdGFuY2UpICYmICFpc1NWR1NWR0VsZW1lbnQoaW5zdGFuY2UpO1xyXG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlID0gaW5zdGFuY2U7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgbGF5b3V0SWQsIGxheW91dCwgdmlzdWFsRWxlbWVudCB9ID0gdGhpcy5vcHRpb25zO1xyXG4gICAgICAgICAgICBpZiAodmlzdWFsRWxlbWVudCAmJiAhdmlzdWFsRWxlbWVudC5jdXJyZW50KSB7XHJcbiAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50Lm1vdW50KGluc3RhbmNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnJvb3Qubm9kZXMuYWRkKHRoaXMpO1xyXG4gICAgICAgICAgICB0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5jaGlsZHJlbi5hZGQodGhpcyk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJvb3QuaGFzVHJlZUFuaW1hdGVkICYmIChsYXlvdXQgfHwgbGF5b3V0SWQpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzTGF5b3V0RGlydHkgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhdHRhY2hSZXNpemVMaXN0ZW5lcikge1xyXG4gICAgICAgICAgICAgICAgbGV0IGNhbmNlbERlbGF5O1xyXG4gICAgICAgICAgICAgICAgbGV0IGlubmVyV2lkdGggPSAwO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzaXplVW5ibG9ja1VwZGF0ZSA9ICgpID0+ICh0aGlzLnJvb3QudXBkYXRlQmxvY2tlZEJ5UmVzaXplID0gZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgLy8gU2V0IGluaXRpYWwgaW5uZXJXaWR0aCBpbiBhIGZyYW1lLnJlYWQgY2FsbGJhY2sgdG8gYmF0Y2ggdGhlIHJlYWRcclxuICAgICAgICAgICAgICAgIGZyYW1lLnJlYWQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlubmVyV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgYXR0YWNoUmVzaXplTGlzdGVuZXIoaW5zdGFuY2UsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdJbm5lcldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0lubmVyV2lkdGggPT09IGlubmVyV2lkdGgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICBpbm5lcldpZHRoID0gbmV3SW5uZXJXaWR0aDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb3QudXBkYXRlQmxvY2tlZEJ5UmVzaXplID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYW5jZWxEZWxheSAmJiBjYW5jZWxEZWxheSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbERlbGF5ID0gZGVsYXkocmVzaXplVW5ibG9ja1VwZGF0ZSwgMjUwKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsUHJvamVjdGlvblN0YXRlLmhhc0FuaW1hdGVkU2luY2VSZXNpemUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsUHJvamVjdGlvblN0YXRlLmhhc0FuaW1hdGVkU2luY2VSZXNpemUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKGZpbmlzaEFuaW1hdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGxheW91dElkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvb3QucmVnaXN0ZXJTaGFyZWROb2RlKGxheW91dElkLCB0aGlzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBPbmx5IHJlZ2lzdGVyIHRoZSBoYW5kbGVyIGlmIGl0IHJlcXVpcmVzIGxheW91dCBhbmltYXRpb25cclxuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hbmltYXRlICE9PSBmYWxzZSAmJlxyXG4gICAgICAgICAgICAgICAgdmlzdWFsRWxlbWVudCAmJlxyXG4gICAgICAgICAgICAgICAgKGxheW91dElkIHx8IGxheW91dCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcImRpZFVwZGF0ZVwiLCAoeyBkZWx0YSwgaGFzTGF5b3V0Q2hhbmdlZCwgaGFzUmVsYXRpdmVMYXlvdXRDaGFuZ2VkLCBsYXlvdXQ6IG5ld0xheW91dCwgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzVHJlZUFuaW1hdGlvbkJsb2NrZWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldCA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVRhcmdldCA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBDaGVjayBoZXJlIGlmIGFuIGFuaW1hdGlvbiBleGlzdHNcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXlvdXRUcmFuc2l0aW9uID0gdGhpcy5vcHRpb25zLnRyYW5zaXRpb24gfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5nZXREZWZhdWx0VHJhbnNpdGlvbigpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMYXlvdXRUcmFuc2l0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgb25MYXlvdXRBbmltYXRpb25TdGFydCwgb25MYXlvdXRBbmltYXRpb25Db21wbGV0ZSwgfSA9IHZpc3VhbEVsZW1lbnQuZ2V0UHJvcHMoKTtcclxuICAgICAgICAgICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICAgICAgICAgKiBUaGUgdGFyZ2V0IGxheW91dCBvZiB0aGUgZWxlbWVudCBtaWdodCBzdGF5IHRoZSBzYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAqIGJ1dCBpdHMgcG9zaXRpb24gcmVsYXRpdmUgdG8gaXRzIHBhcmVudCBoYXMgY2hhbmdlZC5cclxuICAgICAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNUYXJnZXRDaGFuZ2VkID0gIXRoaXMudGFyZ2V0TGF5b3V0IHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICFib3hFcXVhbHNSb3VuZGVkKHRoaXMudGFyZ2V0TGF5b3V0LCBuZXdMYXlvdXQpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8qXHJcbiAgICAgICAgICAgICAgICAgICAgICogTm90ZTogRGlzYWJsZWQgdG8gZml4IHJlbGF0aXZlIGFuaW1hdGlvbnMgYWx3YXlzIHRyaWdnZXJpbmcgbmV3XHJcbiAgICAgICAgICAgICAgICAgICAgICogbGF5b3V0IGFuaW1hdGlvbnMuIElmIHRoaXMgY2F1c2VzIGZ1cnRoZXIgaXNzdWVzLCB3ZSBjYW4gdHJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICogYSBkaWZmZXJlbnQgYXBwcm9hY2ggdG8gZGV0ZWN0aW5nIHJlbGF0aXZlIHRhcmdldCBjaGFuZ2VzLlxyXG4gICAgICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHx8IGhhc1JlbGF0aXZlTGF5b3V0Q2hhbmdlZFxyXG4gICAgICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICAgICAqIElmIHRoZSBsYXlvdXQgaGFzbid0IHNlZW1lZCB0byBoYXZlIGNoYW5nZWQsIGl0IG1pZ2h0IGJlIHRoYXQgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICogZWxlbWVudCBpcyB2aXN1YWxseSBpbiB0aGUgc2FtZSBwbGFjZSBpbiB0aGUgZG9jdW1lbnQgYnV0IGl0cyBwb3NpdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAqIHJlbGF0aXZlIHRvIGl0cyBwYXJlbnQgaGFzIGluZGVlZCBjaGFuZ2VkLiBTbyBoZXJlIHdlIGNoZWNrIGZvciB0aGF0LlxyXG4gICAgICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc09ubHlSZWxhdGl2ZVRhcmdldENoYW5nZWQgPSAhaGFzTGF5b3V0Q2hhbmdlZCAmJiBoYXNSZWxhdGl2ZUxheW91dENoYW5nZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sYXlvdXRSb290IHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzdW1lRnJvbSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNPbmx5UmVsYXRpdmVUYXJnZXRDaGFuZ2VkIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChoYXNMYXlvdXRDaGFuZ2VkICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzVGFyZ2V0Q2hhbmdlZCB8fCAhdGhpcy5jdXJyZW50QW5pbWF0aW9uKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucmVzdW1lRnJvbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXN1bWluZ0Zyb20gPSB0aGlzLnJlc3VtZUZyb207XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3VtaW5nRnJvbS5yZXN1bWluZ0Zyb20gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYW5pbWF0aW9uT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmdldFZhbHVlVHJhbnNpdGlvbihsYXlvdXRUcmFuc2l0aW9uLCBcImxheW91dFwiKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uUGxheTogb25MYXlvdXRBbmltYXRpb25TdGFydCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ29tcGxldGU6IG9uTGF5b3V0QW5pbWF0aW9uQ29tcGxldGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2aXN1YWxFbGVtZW50LnNob3VsZFJlZHVjZU1vdGlvbiB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmxheW91dFJvb3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbk9wdGlvbnMuZGVsYXkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uT3B0aW9ucy50eXBlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydEFuaW1hdGlvbihhbmltYXRpb25PcHRpb25zKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIFNldCBhbmltYXRpb24gb3JpZ2luIGFmdGVyIHN0YXJ0aW5nIGFuaW1hdGlvbiB0byBhdm9pZCBsYXlvdXQganVtcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBjYXVzZWQgYnkgc3RvcHBpbmcgcHJldmlvdXMgbGF5b3V0IGFuaW1hdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRBbmltYXRpb25PcmlnaW4oZGVsdGEsIGhhc09ubHlSZWxhdGl2ZVRhcmdldENoYW5nZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIElmIHRoZSBsYXlvdXQgaGFzbid0IGNoYW5nZWQgYW5kIHdlIGhhdmUgYW4gYW5pbWF0aW9uIHRoYXQgaGFzbid0IHN0YXJ0ZWQgeWV0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBmaW5pc2ggaXQgaW1tZWRpYXRlbHkuIE90aGVyd2lzZSBpdCB3aWxsIGJlIGFuaW1hdGluZyBmcm9tIGEgbG9jYXRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICogdGhhdCB3YXMgcHJvYmFibHkgbmV2ZXIgY29tbWl0ZWQgdG8gc2NyZWVuIGFuZCBsb29rIGxpa2UgYSBqdW1weSBib3guXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc0xheW91dENoYW5nZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEFuaW1hdGlvbih0aGlzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0xlYWQoKSAmJiB0aGlzLm9wdGlvbnMub25FeGl0Q29tcGxldGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0TGF5b3V0ID0gbmV3TGF5b3V0O1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdW5tb3VudCgpIHtcclxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLmxheW91dElkICYmIHRoaXMud2lsbFVwZGF0ZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnJvb3Qubm9kZXMucmVtb3ZlKHRoaXMpO1xyXG4gICAgICAgICAgICBjb25zdCBzdGFjayA9IHRoaXMuZ2V0U3RhY2soKTtcclxuICAgICAgICAgICAgc3RhY2sgJiYgc3RhY2sucmVtb3ZlKHRoaXMpO1xyXG4gICAgICAgICAgICB0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5jaGlsZHJlbi5kZWxldGUodGhpcyk7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRIYW5kbGVycy5jbGVhcigpO1xyXG4gICAgICAgICAgICBjYW5jZWxGcmFtZSh0aGlzLnVwZGF0ZVByb2plY3Rpb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBvbmx5IG9uIHRoZSByb290XHJcbiAgICAgICAgYmxvY2tVcGRhdGUoKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTWFudWFsbHlCbG9ja2VkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdW5ibG9ja1VwZGF0ZSgpIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVNYW51YWxseUJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaXNVcGRhdGVCbG9ja2VkKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVNYW51YWxseUJsb2NrZWQgfHwgdGhpcy51cGRhdGVCbG9ja2VkQnlSZXNpemU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlzVHJlZUFuaW1hdGlvbkJsb2NrZWQoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5pc0FuaW1hdGlvbkJsb2NrZWQgfHxcclxuICAgICAgICAgICAgICAgICh0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5pc1RyZWVBbmltYXRpb25CbG9ja2VkKCkpIHx8XHJcbiAgICAgICAgICAgICAgICBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE5vdGU6IGN1cnJlbnRseSBvbmx5IHJ1bm5pbmcgb24gcm9vdCBub2RlXHJcbiAgICAgICAgc3RhcnRVcGRhdGUoKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVXBkYXRlQmxvY2tlZCgpKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLmlzVXBkYXRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGVzICYmIHRoaXMubm9kZXMuZm9yRWFjaChyZXNldFNrZXdBbmRSb3RhdGlvbik7XHJcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSWQrKztcclxuICAgICAgICB9XHJcbiAgICAgICAgZ2V0VHJhbnNmb3JtVGVtcGxhdGUoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCB9ID0gdGhpcy5vcHRpb25zO1xyXG4gICAgICAgICAgICByZXR1cm4gdmlzdWFsRWxlbWVudCAmJiB2aXN1YWxFbGVtZW50LmdldFByb3BzKCkudHJhbnNmb3JtVGVtcGxhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHdpbGxVcGRhdGUoc2hvdWxkTm90aWZ5TGlzdGVuZXJzID0gdHJ1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnJvb3QuaGFzVHJlZUFuaW1hdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMucm9vdC5pc1VwZGF0ZUJsb2NrZWQoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLm9uRXhpdENvbXBsZXRlICYmIHRoaXMub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB3ZSdyZSBydW5uaW5nIG9wdGltaXNlZCBhcHBlYXIgYW5pbWF0aW9ucyB0aGVuIHRoZXNlIG11c3QgYmVcclxuICAgICAgICAgICAgICogY2FuY2VsbGVkIGJlZm9yZSBtZWFzdXJpbmcgdGhlIERPTS4gVGhpcyBpcyBzbyB3ZSBjYW4gbWVhc3VyZVxyXG4gICAgICAgICAgICAgKiB0aGUgdHJ1ZSBsYXlvdXQgb2YgdGhlIGVsZW1lbnQgcmF0aGVyIHRoYW4gdGhlIFdBQVBJIGFuaW1hdGlvblxyXG4gICAgICAgICAgICAgKiB3aGljaCB3aWxsIGJlIHVuYWZmZWN0ZWQgYnkgdGhlIHJlc2V0U2tld0FuZFJvdGF0ZSBzdGVwLlxyXG4gICAgICAgICAgICAgKlxyXG4gICAgICAgICAgICAgKiBOb3RlOiBUaGlzIGlzIGEgRE9NIHdyaXRlLiBXb3JzdCBjYXNlIHNjZW5hcmlvIGlzIHRoaXMgaXMgc2FuZHdpY2hlZFxyXG4gICAgICAgICAgICAgKiBiZXR3ZWVuIG90aGVyIHNuYXBzaG90IHJlYWRzIHdoaWNoIHdpbGwgY2F1c2UgdW5uZWNlc3Nhcnkgc3R5bGUgcmVjYWxjdWxhdGlvbnMuXHJcbiAgICAgICAgICAgICAqIFRoaXMgaGFzIHRvIGhhcHBlbiBoZXJlIHRob3VnaCwgYXMgd2UgZG9uJ3QgeWV0IGtub3cgd2hpY2ggbm9kZXMgd2lsbCBuZWVkXHJcbiAgICAgICAgICAgICAqIHNuYXBzaG90cyBpbiBzdGFydFVwZGF0ZSgpLCBidXQgd2Ugb25seSB3YW50IHRvIGNhbmNlbCBvcHRpbWlzZWQgYW5pbWF0aW9uc1xyXG4gICAgICAgICAgICAgKiBpZiBhIGxheW91dCBhbmltYXRpb24gbWVhc3VyZW1lbnQgaXMgYWN0dWFsbHkgZ29pbmcgdG8gYmUgYWZmZWN0ZWQgYnkgdGhlbS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmICh3aW5kb3cuTW90aW9uQ2FuY2VsT3B0aW1pc2VkQW5pbWF0aW9uICYmXHJcbiAgICAgICAgICAgICAgICAhdGhpcy5oYXNDaGVja2VkT3B0aW1pc2VkQXBwZWFyKSB7XHJcbiAgICAgICAgICAgICAgICBjYW5jZWxUcmVlT3B0aW1pc2VkVHJhbnNmb3JtQW5pbWF0aW9ucyh0aGlzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAhdGhpcy5yb290LmlzVXBkYXRpbmcgJiYgdGhpcy5yb290LnN0YXJ0VXBkYXRlKCk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzTGF5b3V0RGlydHkpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIHRoaXMuaXNMYXlvdXREaXJ0eSA9IHRydWU7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXRoLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5wYXRoW2ldO1xyXG4gICAgICAgICAgICAgICAgbm9kZS5zaG91bGRSZXNldFRyYW5zZm9ybSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBub2RlLnVwZGF0ZVNjcm9sbChcInNuYXBzaG90XCIpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5vZGUub3B0aW9ucy5sYXlvdXRSb290KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS53aWxsVXBkYXRlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB7IGxheW91dElkLCBsYXlvdXQgfSA9IHRoaXMub3B0aW9ucztcclxuICAgICAgICAgICAgaWYgKGxheW91dElkID09PSB1bmRlZmluZWQgJiYgIWxheW91dClcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtVGVtcGxhdGUgPSB0aGlzLmdldFRyYW5zZm9ybVRlbXBsYXRlKCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJldlRyYW5zZm9ybVRlbXBsYXRlVmFsdWUgPSB0cmFuc2Zvcm1UZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgPyB0cmFuc2Zvcm1UZW1wbGF0ZSh0aGlzLmxhdGVzdFZhbHVlcywgXCJcIilcclxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNuYXBzaG90KCk7XHJcbiAgICAgICAgICAgIHNob3VsZE5vdGlmeUxpc3RlbmVycyAmJiB0aGlzLm5vdGlmeUxpc3RlbmVycyhcIndpbGxVcGRhdGVcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHVwZGF0ZSgpIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgY29uc3QgdXBkYXRlV2FzQmxvY2tlZCA9IHRoaXMuaXNVcGRhdGVCbG9ja2VkKCk7XHJcbiAgICAgICAgICAgIC8vIFdoZW4gZG9pbmcgYW4gaW5zdGFudCB0cmFuc2l0aW9uLCB3ZSBza2lwIHRoZSBsYXlvdXQgdXBkYXRlLFxyXG4gICAgICAgICAgICAvLyBidXQgc2hvdWxkIHN0aWxsIGNsZWFuIHVwIHRoZSBtZWFzdXJlbWVudHMgc28gdGhhdCB0aGUgbmV4dFxyXG4gICAgICAgICAgICAvLyBzbmFwc2hvdCBjb3VsZCBiZSB0YWtlbiBjb3JyZWN0bHkuXHJcbiAgICAgICAgICAgIGlmICh1cGRhdGVXYXNCbG9ja2VkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVuYmxvY2tVcGRhdGUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJBbGxTbmFwc2hvdHMoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChjbGVhck1lYXN1cmVtZW50cyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIElmIHRoaXMgaXMgYSByZXBlYXQgb2YgZGlkVXBkYXRlIHRoZW4gaWdub3JlIHRoZSBhbmltYXRpb24uXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hbmltYXRpb25JZCA8PSB0aGlzLmFuaW1hdGlvbkNvbW1pdElkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2goY2xlYXJJc0xheW91dERpcnR5KTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkNvbW1pdElkID0gdGhpcy5hbmltYXRpb25JZDtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzVXBkYXRpbmcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChjbGVhcklzTGF5b3V0RGlydHkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1VwZGF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICAgICAqIFdyaXRlXHJcbiAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChyZXNldFRyYW5zZm9ybVN0eWxlKTtcclxuICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICogUmVhZCA9PT09PT09PT09PT09PT09PT1cclxuICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgLy8gVXBkYXRlIGxheW91dCBtZWFzdXJlbWVudHMgb2YgdXBkYXRlZCBjaGlsZHJlblxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKHVwZGF0ZUxheW91dCk7XHJcbiAgICAgICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICAgICAqIFdyaXRlXHJcbiAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgICAgIC8vIE5vdGlmeSBsaXN0ZW5lcnMgdGhhdCB0aGUgbGF5b3V0IGlzIHVwZGF0ZWRcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChub3RpZnlMYXlvdXRVcGRhdGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJBbGxTbmFwc2hvdHMoKTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIE1hbnVhbGx5IGZsdXNoIGFueSBwZW5kaW5nIHVwZGF0ZXMuIElkZWFsbHlcclxuICAgICAgICAgICAgICogd2UgY291bGQgbGVhdmUgdGhpcyB0byB0aGUgZm9sbG93aW5nIHJlcXVlc3RBbmltYXRpb25GcmFtZSBidXQgdGhpcyBzZWVtc1xyXG4gICAgICAgICAgICAgKiB0byBsZWF2ZSBhIGZsYXNoIG9mIGluY29ycmVjdGx5IHN0eWxlZCBjb250ZW50LlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgY29uc3Qgbm93ID0gdGltZS5ub3coKTtcclxuICAgICAgICAgICAgZnJhbWVEYXRhLmRlbHRhID0gY2xhbXAoMCwgMTAwMCAvIDYwLCBub3cgLSBmcmFtZURhdGEudGltZXN0YW1wKTtcclxuICAgICAgICAgICAgZnJhbWVEYXRhLnRpbWVzdGFtcCA9IG5vdztcclxuICAgICAgICAgICAgZnJhbWVEYXRhLmlzUHJvY2Vzc2luZyA9IHRydWU7XHJcbiAgICAgICAgICAgIGZyYW1lU3RlcHMudXBkYXRlLnByb2Nlc3MoZnJhbWVEYXRhKTtcclxuICAgICAgICAgICAgZnJhbWVTdGVwcy5wcmVSZW5kZXIucHJvY2VzcyhmcmFtZURhdGEpO1xyXG4gICAgICAgICAgICBmcmFtZVN0ZXBzLnJlbmRlci5wcm9jZXNzKGZyYW1lRGF0YSk7XHJcbiAgICAgICAgICAgIGZyYW1lRGF0YS5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZGlkVXBkYXRlKCkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMudXBkYXRlU2NoZWR1bGVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNjaGVkdWxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBtaWNyb3Rhc2sucmVhZCh0aGlzLnNjaGVkdWxlVXBkYXRlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjbGVhckFsbFNuYXBzaG90cygpIHtcclxuICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKGNsZWFyU25hcHNob3QpO1xyXG4gICAgICAgICAgICB0aGlzLnNoYXJlZE5vZGVzLmZvckVhY2gocmVtb3ZlTGVhZFNuYXBzaG90cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNjaGVkdWxlVXBkYXRlUHJvamVjdGlvbigpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnByb2plY3Rpb25VcGRhdGVTY2hlZHVsZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvamVjdGlvblVwZGF0ZVNjaGVkdWxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBmcmFtZS5wcmVSZW5kZXIodGhpcy51cGRhdGVQcm9qZWN0aW9uLCBmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2NoZWR1bGVDaGVja0FmdGVyVW5tb3VudCgpIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIElmIHRoZSB1bm1vdW50aW5nIG5vZGUgaXMgaW4gYSBsYXlvdXRHcm91cCBhbmQgZGlkIHRyaWdnZXIgYSB3aWxsVXBkYXRlLFxyXG4gICAgICAgICAgICAgKiB3ZSBtYW51YWxseSBjYWxsIGRpZFVwZGF0ZSB0byBnaXZlIGEgY2hhbmNlIHRvIHRoZSBzaWJsaW5ncyB0byBhbmltYXRlLlxyXG4gICAgICAgICAgICAgKiBPdGhlcndpc2UsIGNsZWFudXAgYWxsIHNuYXBzaG90cyB0byBwcmV2ZW50cyBmdXR1cmUgbm9kZXMgZnJvbSByZXVzaW5nIHRoZW0uXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBmcmFtZS5wb3N0UmVuZGVyKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTGF5b3V0RGlydHkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb3QuZGlkVXBkYXRlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb3QuY2hlY2tVcGRhdGVGYWlsZWQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFVwZGF0ZSBtZWFzdXJlbWVudHNcclxuICAgICAgICAgKi9cclxuICAgICAgICB1cGRhdGVTbmFwc2hvdCgpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc25hcHNob3QgfHwgIXRoaXMuaW5zdGFuY2UpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIHRoaXMuc25hcHNob3QgPSB0aGlzLm1lYXN1cmUoKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc25hcHNob3QgJiZcclxuICAgICAgICAgICAgICAgICFjYWxjTGVuZ3RoKHRoaXMuc25hcHNob3QubWVhc3VyZWRCb3gueCkgJiZcclxuICAgICAgICAgICAgICAgICFjYWxjTGVuZ3RoKHRoaXMuc25hcHNob3QubWVhc3VyZWRCb3gueSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc25hcHNob3QgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdXBkYXRlTGF5b3V0KCkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2UpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2Nyb2xsKCk7XHJcbiAgICAgICAgICAgIGlmICghKHRoaXMub3B0aW9ucy5hbHdheXNNZWFzdXJlTGF5b3V0ICYmIHRoaXMuaXNMZWFkKCkpICYmXHJcbiAgICAgICAgICAgICAgICAhdGhpcy5pc0xheW91dERpcnR5KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFdoZW4gYSBub2RlIGlzIG1vdW50ZWQsIGl0IHNpbXBseSByZXN1bWVzIGZyb20gdGhlIHByZXZMZWFkJ3NcclxuICAgICAgICAgICAgICogc25hcHNob3QgaW5zdGVhZCBvZiB0YWtpbmcgYSBuZXcgb25lLCBidXQgdGhlIGFuY2VzdG9ycyBzY3JvbGxcclxuICAgICAgICAgICAgICogbWlnaHQgaGF2ZSB1cGRhdGVkIHdoaWxlIHRoZSBwcmV2TGVhZCBpcyB1bm1vdW50ZWQuIFdlIG5lZWQgdG9cclxuICAgICAgICAgICAgICogdXBkYXRlIHRoZSBzY3JvbGwgYWdhaW4gdG8gbWFrZSBzdXJlIHRoZSBsYXlvdXQgd2UgbWVhc3VyZSBpc1xyXG4gICAgICAgICAgICAgKiB1cCB0byBkYXRlLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKHRoaXMucmVzdW1lRnJvbSAmJiAhdGhpcy5yZXN1bWVGcm9tLmluc3RhbmNlKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGF0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLnBhdGhbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS51cGRhdGVTY3JvbGwoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBwcmV2TGF5b3V0ID0gdGhpcy5sYXlvdXQ7XHJcbiAgICAgICAgICAgIHRoaXMubGF5b3V0ID0gdGhpcy5tZWFzdXJlKGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5sYXlvdXRDb3JyZWN0ZWQgPSBjcmVhdGVCb3goKTtcclxuICAgICAgICAgICAgdGhpcy5pc0xheW91dERpcnR5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucHJvamVjdGlvbkRlbHRhID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmeUxpc3RlbmVycyhcIm1lYXN1cmVcIiwgdGhpcy5sYXlvdXQubGF5b3V0Qm94KTtcclxuICAgICAgICAgICAgY29uc3QgeyB2aXN1YWxFbGVtZW50IH0gPSB0aGlzLm9wdGlvbnM7XHJcbiAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQgJiZcclxuICAgICAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQubm90aWZ5KFwiTGF5b3V0TWVhc3VyZVwiLCB0aGlzLmxheW91dC5sYXlvdXRCb3gsIHByZXZMYXlvdXQgPyBwcmV2TGF5b3V0LmxheW91dEJveCA6IHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHVwZGF0ZVNjcm9sbChwaGFzZSA9IFwibWVhc3VyZVwiKSB7XHJcbiAgICAgICAgICAgIGxldCBuZWVkc01lYXN1cmVtZW50ID0gQm9vbGVhbih0aGlzLm9wdGlvbnMubGF5b3V0U2Nyb2xsICYmIHRoaXMuaW5zdGFuY2UpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zY3JvbGwgJiZcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsLmFuaW1hdGlvbklkID09PSB0aGlzLnJvb3QuYW5pbWF0aW9uSWQgJiZcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsLnBoYXNlID09PSBwaGFzZSkge1xyXG4gICAgICAgICAgICAgICAgbmVlZHNNZWFzdXJlbWVudCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChuZWVkc01lYXN1cmVtZW50ICYmIHRoaXMuaW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGlzUm9vdCA9IGNoZWNrSXNTY3JvbGxSb290KHRoaXMuaW5zdGFuY2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGwgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uSWQ6IHRoaXMucm9vdC5hbmltYXRpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICBwaGFzZSxcclxuICAgICAgICAgICAgICAgICAgICBpc1Jvb3QsXHJcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiBtZWFzdXJlU2Nyb2xsKHRoaXMuaW5zdGFuY2UpLFxyXG4gICAgICAgICAgICAgICAgICAgIHdhc1Jvb3Q6IHRoaXMuc2Nyb2xsID8gdGhpcy5zY3JvbGwuaXNSb290IDogaXNSb290LFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXNldFRyYW5zZm9ybSgpIHtcclxuICAgICAgICAgICAgaWYgKCFyZXNldFRyYW5zZm9ybSlcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3QgaXNSZXNldFJlcXVlc3RlZCA9IHRoaXMuaXNMYXlvdXREaXJ0eSB8fFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG91bGRSZXNldFRyYW5zZm9ybSB8fFxyXG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmFsd2F5c01lYXN1cmVMYXlvdXQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGhhc1Byb2plY3Rpb24gPSB0aGlzLnByb2plY3Rpb25EZWx0YSAmJiAhaXNEZWx0YVplcm8odGhpcy5wcm9qZWN0aW9uRGVsdGEpO1xyXG4gICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1UZW1wbGF0ZSA9IHRoaXMuZ2V0VHJhbnNmb3JtVGVtcGxhdGUoKTtcclxuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtVGVtcGxhdGVWYWx1ZSA9IHRyYW5zZm9ybVRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICA/IHRyYW5zZm9ybVRlbXBsYXRlKHRoaXMubGF0ZXN0VmFsdWVzLCBcIlwiKVxyXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybVRlbXBsYXRlSGFzQ2hhbmdlZCA9IHRyYW5zZm9ybVRlbXBsYXRlVmFsdWUgIT09IHRoaXMucHJldlRyYW5zZm9ybVRlbXBsYXRlVmFsdWU7XHJcbiAgICAgICAgICAgIGlmIChpc1Jlc2V0UmVxdWVzdGVkICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlICYmXHJcbiAgICAgICAgICAgICAgICAoaGFzUHJvamVjdGlvbiB8fFxyXG4gICAgICAgICAgICAgICAgICAgIGhhc1RyYW5zZm9ybSh0aGlzLmxhdGVzdFZhbHVlcykgfHxcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1UZW1wbGF0ZUhhc0NoYW5nZWQpKSB7XHJcbiAgICAgICAgICAgICAgICByZXNldFRyYW5zZm9ybSh0aGlzLmluc3RhbmNlLCB0cmFuc2Zvcm1UZW1wbGF0ZVZhbHVlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hvdWxkUmVzZXRUcmFuc2Zvcm0gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVSZW5kZXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBtZWFzdXJlKHJlbW92ZVRyYW5zZm9ybSA9IHRydWUpIHtcclxuICAgICAgICAgICAgY29uc3QgcGFnZUJveCA9IHRoaXMubWVhc3VyZVBhZ2VCb3goKTtcclxuICAgICAgICAgICAgbGV0IGxheW91dEJveCA9IHRoaXMucmVtb3ZlRWxlbWVudFNjcm9sbChwYWdlQm94KTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIE1lYXN1cmVtZW50cyB0YWtlbiBkdXJpbmcgdGhlIHByZS1yZW5kZXIgc3RhZ2VcclxuICAgICAgICAgICAgICogc3RpbGwgaGF2ZSB0cmFuc2Zvcm1zIGFwcGxpZWQgc28gd2UgcmVtb3ZlIHRoZW1cclxuICAgICAgICAgICAgICogdmlhIGNhbGN1bGF0aW9uLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKHJlbW92ZVRyYW5zZm9ybSkge1xyXG4gICAgICAgICAgICAgICAgbGF5b3V0Qm94ID0gdGhpcy5yZW1vdmVUcmFuc2Zvcm0obGF5b3V0Qm94KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByb3VuZEJveChsYXlvdXRCb3gpO1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uSWQ6IHRoaXMucm9vdC5hbmltYXRpb25JZCxcclxuICAgICAgICAgICAgICAgIG1lYXN1cmVkQm94OiBwYWdlQm94LFxyXG4gICAgICAgICAgICAgICAgbGF5b3V0Qm94LFxyXG4gICAgICAgICAgICAgICAgbGF0ZXN0VmFsdWVzOiB7fSxcclxuICAgICAgICAgICAgICAgIHNvdXJjZTogdGhpcy5pZCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWVhc3VyZVBhZ2VCb3goKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCB9ID0gdGhpcy5vcHRpb25zO1xyXG4gICAgICAgICAgICBpZiAoIXZpc3VhbEVsZW1lbnQpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQm94KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGJveCA9IHZpc3VhbEVsZW1lbnQubWVhc3VyZVZpZXdwb3J0Qm94KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHdhc0luU2Nyb2xsUm9vdCA9IHRoaXMuc2Nyb2xsPy53YXNSb290IHx8IHRoaXMucGF0aC5zb21lKGNoZWNrTm9kZVdhc1Njcm9sbFJvb3QpO1xyXG4gICAgICAgICAgICBpZiAoIXdhc0luU2Nyb2xsUm9vdCkge1xyXG4gICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHZpZXdwb3J0IHNjcm9sbCB0byBnaXZlIHBhZ2UtcmVsYXRpdmUgY29vcmRpbmF0ZXNcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsIH0gPSB0aGlzLnJvb3Q7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlQXhpcyhib3gueCwgc2Nyb2xsLm9mZnNldC54KTtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVBeGlzKGJveC55LCBzY3JvbGwub2Zmc2V0LnkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBib3g7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlbW92ZUVsZW1lbnRTY3JvbGwoYm94KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJveFdpdGhvdXRTY3JvbGwgPSBjcmVhdGVCb3goKTtcclxuICAgICAgICAgICAgY29weUJveEludG8oYm94V2l0aG91dFNjcm9sbCwgYm94KTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2Nyb2xsPy53YXNSb290KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYm94V2l0aG91dFNjcm9sbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogUGVyZm9ybWFuY2UgVE9ETzogS2VlcCBhIGN1bXVsYXRpdmUgc2Nyb2xsIG9mZnNldCBkb3duIHRoZSB0cmVlXHJcbiAgICAgICAgICAgICAqIHJhdGhlciB0aGFuIGxvb3AgYmFjayB1cCB0aGUgcGF0aC5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXRoLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5wYXRoW2ldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBzY3JvbGwsIG9wdGlvbnMgfSA9IG5vZGU7XHJcbiAgICAgICAgICAgICAgICBpZiAobm9kZSAhPT0gdGhpcy5yb290ICYmIHNjcm9sbCAmJiBvcHRpb25zLmxheW91dFNjcm9sbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICAgICAqIElmIHRoaXMgaXMgYSBuZXcgc2Nyb2xsIHJvb3QsIHdlIHdhbnQgdG8gcmVtb3ZlIGFsbCBwcmV2aW91cyBzY3JvbGxzXHJcbiAgICAgICAgICAgICAgICAgICAgICogZnJvbSB0aGUgdmlld3BvcnQgYm94LlxyXG4gICAgICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGwud2FzUm9vdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3B5Qm94SW50byhib3hXaXRob3V0U2Nyb2xsLCBib3gpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVBeGlzKGJveFdpdGhvdXRTY3JvbGwueCwgc2Nyb2xsLm9mZnNldC54KTtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVBeGlzKGJveFdpdGhvdXRTY3JvbGwueSwgc2Nyb2xsLm9mZnNldC55KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gYm94V2l0aG91dFNjcm9sbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXBwbHlUcmFuc2Zvcm0oYm94LCB0cmFuc2Zvcm1Pbmx5ID0gZmFsc2UpIHtcclxuICAgICAgICAgICAgY29uc3Qgd2l0aFRyYW5zZm9ybXMgPSBjcmVhdGVCb3goKTtcclxuICAgICAgICAgICAgY29weUJveEludG8od2l0aFRyYW5zZm9ybXMsIGJveCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXRoLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5wYXRoW2ldO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0cmFuc2Zvcm1Pbmx5ICYmXHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5vcHRpb25zLmxheW91dFNjcm9sbCAmJlxyXG4gICAgICAgICAgICAgICAgICAgIG5vZGUuc2Nyb2xsICYmXHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZSAhPT0gbm9kZS5yb290KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtQm94KHdpdGhUcmFuc2Zvcm1zLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IC1ub2RlLnNjcm9sbC5vZmZzZXQueCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgeTogLW5vZGUuc2Nyb2xsLm9mZnNldC55LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKCFoYXNUcmFuc2Zvcm0obm9kZS5sYXRlc3RWYWx1ZXMpKVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtQm94KHdpdGhUcmFuc2Zvcm1zLCBub2RlLmxhdGVzdFZhbHVlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGhhc1RyYW5zZm9ybSh0aGlzLmxhdGVzdFZhbHVlcykpIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybUJveCh3aXRoVHJhbnNmb3JtcywgdGhpcy5sYXRlc3RWYWx1ZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB3aXRoVHJhbnNmb3JtcztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVtb3ZlVHJhbnNmb3JtKGJveCkge1xyXG4gICAgICAgICAgICBjb25zdCBib3hXaXRob3V0VHJhbnNmb3JtID0gY3JlYXRlQm94KCk7XHJcbiAgICAgICAgICAgIGNvcHlCb3hJbnRvKGJveFdpdGhvdXRUcmFuc2Zvcm0sIGJveCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXRoLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5wYXRoW2ldO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFub2RlLmluc3RhbmNlKVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFoYXNUcmFuc2Zvcm0obm9kZS5sYXRlc3RWYWx1ZXMpKVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgaGFzU2NhbGUobm9kZS5sYXRlc3RWYWx1ZXMpICYmIG5vZGUudXBkYXRlU25hcHNob3QoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUJveCA9IGNyZWF0ZUJveCgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZUJveCA9IG5vZGUubWVhc3VyZVBhZ2VCb3goKTtcclxuICAgICAgICAgICAgICAgIGNvcHlCb3hJbnRvKHNvdXJjZUJveCwgbm9kZUJveCk7XHJcbiAgICAgICAgICAgICAgICByZW1vdmVCb3hUcmFuc2Zvcm1zKGJveFdpdGhvdXRUcmFuc2Zvcm0sIG5vZGUubGF0ZXN0VmFsdWVzLCBub2RlLnNuYXBzaG90ID8gbm9kZS5zbmFwc2hvdC5sYXlvdXRCb3ggOiB1bmRlZmluZWQsIHNvdXJjZUJveCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGhhc1RyYW5zZm9ybSh0aGlzLmxhdGVzdFZhbHVlcykpIHtcclxuICAgICAgICAgICAgICAgIHJlbW92ZUJveFRyYW5zZm9ybXMoYm94V2l0aG91dFRyYW5zZm9ybSwgdGhpcy5sYXRlc3RWYWx1ZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBib3hXaXRob3V0VHJhbnNmb3JtO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUYXJnZXREZWx0YShkZWx0YSkge1xyXG4gICAgICAgICAgICB0aGlzLnRhcmdldERlbHRhID0gZGVsdGE7XHJcbiAgICAgICAgICAgIHRoaXMucm9vdC5zY2hlZHVsZVVwZGF0ZVByb2plY3Rpb24oKTtcclxuICAgICAgICAgICAgdGhpcy5pc1Byb2plY3Rpb25EaXJ0eSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNldE9wdGlvbnMob3B0aW9ucykge1xyXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICAuLi50aGlzLm9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAuLi5vcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgY3Jvc3NmYWRlOiBvcHRpb25zLmNyb3NzZmFkZSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5jcm9zc2ZhZGUgOiB0cnVlLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjbGVhck1lYXN1cmVtZW50cygpIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGwgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMubGF5b3V0ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLnNuYXBzaG90ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLnByZXZUcmFuc2Zvcm1UZW1wbGF0ZVZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLnRhcmdldERlbHRhID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLnRhcmdldCA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgdGhpcy5pc0xheW91dERpcnR5ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5yZWxhdGl2ZVBhcmVudClcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIElmIHRoZSBwYXJlbnQgdGFyZ2V0IGlzbid0IHVwLXRvLWRhdGUsIGZvcmNlIGl0IHRvIHVwZGF0ZS5cclxuICAgICAgICAgICAgICogVGhpcyBpcyBhbiB1bmZvcnR1bmF0ZSBkZS1vcHRpbWlzYXRpb24gYXMgaXQgbWVhbnMgYW55IHVwZGF0aW5nIHJlbGF0aXZlXHJcbiAgICAgICAgICAgICAqIHByb2plY3Rpb24gd2lsbCBjYXVzZSBhbGwgdGhlIHJlbGF0aXZlIHBhcmVudHMgdG8gcmVjYWxjdWxhdGUgYmFja1xyXG4gICAgICAgICAgICAgKiB1cCB0aGUgdHJlZS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlbGF0aXZlUGFyZW50LnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdCAhPT1cclxuICAgICAgICAgICAgICAgIGZyYW1lRGF0YS50aW1lc3RhbXApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpdmVQYXJlbnQucmVzb2x2ZVRhcmdldERlbHRhKHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc29sdmVUYXJnZXREZWx0YShmb3JjZVJlY2FsY3VsYXRpb24gPSBmYWxzZSkge1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogT25jZSB0aGUgZGlydHkgc3RhdHVzIG9mIG5vZGVzIGhhcyBiZWVuIHNwcmVhZCB0aHJvdWdoIHRoZSB0cmVlLCB3ZSBhbHNvXHJcbiAgICAgICAgICAgICAqIG5lZWQgdG8gY2hlY2sgaWYgd2UgaGF2ZSBhIHNoYXJlZCBub2RlIG9mIGEgZGlmZmVyZW50IGRlcHRoIHRoYXQgaGFzIGl0c2VsZlxyXG4gICAgICAgICAgICAgKiBiZWVuIGRpcnRpZWQuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBjb25zdCBsZWFkID0gdGhpcy5nZXRMZWFkKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNQcm9qZWN0aW9uRGlydHkgfHwgKHRoaXMuaXNQcm9qZWN0aW9uRGlydHkgPSBsZWFkLmlzUHJvamVjdGlvbkRpcnR5KTtcclxuICAgICAgICAgICAgdGhpcy5pc1RyYW5zZm9ybURpcnR5IHx8ICh0aGlzLmlzVHJhbnNmb3JtRGlydHkgPSBsZWFkLmlzVHJhbnNmb3JtRGlydHkpO1xyXG4gICAgICAgICAgICB0aGlzLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5IHx8ICh0aGlzLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5ID0gbGVhZC5pc1NoYXJlZFByb2plY3Rpb25EaXJ0eSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzU2hhcmVkID0gQm9vbGVhbih0aGlzLnJlc3VtaW5nRnJvbSkgfHwgdGhpcyAhPT0gbGVhZDtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFdlIGRvbid0IHVzZSB0cmFuc2Zvcm0gZm9yIHRoaXMgc3RlcCBvZiBwcm9jZXNzaW5nIHNvIHdlIGRvbid0XHJcbiAgICAgICAgICAgICAqIG5lZWQgdG8gY2hlY2sgd2hldGhlciBhbnkgbm9kZXMgaGF2ZSBjaGFuZ2VkIHRyYW5zZm9ybS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGNvbnN0IGNhblNraXAgPSAhKGZvcmNlUmVjYWxjdWxhdGlvbiB8fFxyXG4gICAgICAgICAgICAgICAgKGlzU2hhcmVkICYmIHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkpIHx8XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzUHJvamVjdGlvbkRpcnR5IHx8XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudD8uaXNQcm9qZWN0aW9uRGlydHkgfHxcclxuICAgICAgICAgICAgICAgIHRoaXMuYXR0ZW1wdFRvUmVzb2x2ZVJlbGF0aXZlVGFyZ2V0IHx8XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvb3QudXBkYXRlQmxvY2tlZEJ5UmVzaXplKTtcclxuICAgICAgICAgICAgaWYgKGNhblNraXApXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IHsgbGF5b3V0LCBsYXlvdXRJZCB9ID0gdGhpcy5vcHRpb25zO1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBubyBsYXlvdXQsIHdlIGNhbid0IHBlcmZvcm0gcHJvamVjdGlvbiwgc28gZWFybHkgcmV0dXJuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMubGF5b3V0IHx8ICEobGF5b3V0IHx8IGxheW91dElkKSlcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgdGhpcy5yZXNvbHZlZFJlbGF0aXZlVGFyZ2V0QXQgPSBmcmFtZURhdGEudGltZXN0YW1wO1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogSWYgd2UgZG9uJ3QgaGF2ZSBhIHRhcmdldERlbHRhIGJ1dCBkbyBoYXZlIGEgbGF5b3V0LCB3ZSBjYW4gYXR0ZW1wdCB0byByZXNvbHZlXHJcbiAgICAgICAgICAgICAqIGEgcmVsYXRpdmVQYXJlbnQuIFRoaXMgd2lsbCBhbGxvdyBhIGNvbXBvbmVudCB0byBwZXJmb3JtIHNjYWxlIGNvcnJlY3Rpb25cclxuICAgICAgICAgICAgICogZXZlbiBpZiBubyBhbmltYXRpb24gaGFzIHN0YXJ0ZWQuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMudGFyZ2V0RGVsdGEgJiYgIXRoaXMucmVsYXRpdmVUYXJnZXQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0aXZlUGFyZW50ID0gdGhpcy5nZXRDbG9zZXN0UHJvamVjdGluZ1BhcmVudCgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlbGF0aXZlUGFyZW50ICYmXHJcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVQYXJlbnQubGF5b3V0ICYmXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25Qcm9ncmVzcyAhPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpdmVQYXJlbnQgPSByZWxhdGl2ZVBhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlVGFyZ2V0ID0gY3JlYXRlQm94KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiA9IGNyZWF0ZUJveCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGNSZWxhdGl2ZVBvc2l0aW9uKHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4sIHRoaXMubGF5b3V0LmxheW91dEJveCwgcmVsYXRpdmVQYXJlbnQubGF5b3V0LmxheW91dEJveCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29weUJveEludG8odGhpcy5yZWxhdGl2ZVRhcmdldCwgdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlUGFyZW50ID0gdGhpcy5yZWxhdGl2ZVRhcmdldCA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBubyByZWxhdGl2ZSB0YXJnZXQgb3Igbm8gdGFyZ2V0IGRlbHRhIG91ciB0YXJnZXQgaXNuJ3QgdmFsaWRcclxuICAgICAgICAgICAgICogZm9yIHRoaXMgZnJhbWUuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVsYXRpdmVUYXJnZXQgJiYgIXRoaXMudGFyZ2V0RGVsdGEpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBMYXp5LWluaXQgdGFyZ2V0IGRhdGEgc3RydWN0dXJlXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMudGFyZ2V0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhcmdldCA9IGNyZWF0ZUJveCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YXJnZXRXaXRoVHJhbnNmb3JtcyA9IGNyZWF0ZUJveCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB3ZSd2ZSBnb3QgYSByZWxhdGl2ZSBib3ggZm9yIHRoaXMgY29tcG9uZW50LCByZXNvbHZlIGl0IGludG8gYSB0YXJnZXQgcmVsYXRpdmUgdG8gdGhlIHBhcmVudC5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlbGF0aXZlVGFyZ2V0ICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlUGFyZW50ICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlUGFyZW50LnRhcmdldCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JjZVJlbGF0aXZlUGFyZW50VG9SZXNvbHZlVGFyZ2V0KCk7XHJcbiAgICAgICAgICAgICAgICBjYWxjUmVsYXRpdmVCb3godGhpcy50YXJnZXQsIHRoaXMucmVsYXRpdmVUYXJnZXQsIHRoaXMucmVsYXRpdmVQYXJlbnQudGFyZ2V0KTtcclxuICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICogSWYgd2UndmUgb25seSBnb3QgYSB0YXJnZXREZWx0YSwgcmVzb2x2ZSBpdCBpbnRvIGEgdGFyZ2V0XHJcbiAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLnRhcmdldERlbHRhKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQm9vbGVhbih0aGlzLnJlc3VtaW5nRnJvbSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBUaGlzIGlzIGNyZWF0aW5nIGEgbmV3IG9iamVjdCBldmVyeSBmcmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0ID0gdGhpcy5hcHBseVRyYW5zZm9ybSh0aGlzLmxheW91dC5sYXlvdXRCb3gpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29weUJveEludG8odGhpcy50YXJnZXQsIHRoaXMubGF5b3V0LmxheW91dEJveCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBhcHBseUJveERlbHRhKHRoaXMudGFyZ2V0LCB0aGlzLnRhcmdldERlbHRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICogSWYgbm8gdGFyZ2V0LCB1c2Ugb3duIGxheW91dCBhcyB0YXJnZXRcclxuICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgY29weUJveEludG8odGhpcy50YXJnZXQsIHRoaXMubGF5b3V0LmxheW91dEJveCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIElmIHdlJ3ZlIGJlZW4gdG9sZCB0byBhdHRlbXB0IHRvIHJlc29sdmUgYSByZWxhdGl2ZSB0YXJnZXQsIGRvIHNvLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKHRoaXMuYXR0ZW1wdFRvUmVzb2x2ZVJlbGF0aXZlVGFyZ2V0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF0dGVtcHRUb1Jlc29sdmVSZWxhdGl2ZVRhcmdldCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVQYXJlbnQgPSB0aGlzLmdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVsYXRpdmVQYXJlbnQgJiZcclxuICAgICAgICAgICAgICAgICAgICBCb29sZWFuKHJlbGF0aXZlUGFyZW50LnJlc3VtaW5nRnJvbSkgPT09XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEJvb2xlYW4odGhpcy5yZXN1bWluZ0Zyb20pICYmXHJcbiAgICAgICAgICAgICAgICAgICAgIXJlbGF0aXZlUGFyZW50Lm9wdGlvbnMubGF5b3V0U2Nyb2xsICYmXHJcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVQYXJlbnQudGFyZ2V0ICYmXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25Qcm9ncmVzcyAhPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpdmVQYXJlbnQgPSByZWxhdGl2ZVBhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlVGFyZ2V0ID0gY3JlYXRlQm94KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiA9IGNyZWF0ZUJveCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGNSZWxhdGl2ZVBvc2l0aW9uKHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4sIHRoaXMudGFyZ2V0LCByZWxhdGl2ZVBhcmVudC50YXJnZXQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvcHlCb3hJbnRvKHRoaXMucmVsYXRpdmVUYXJnZXQsIHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVBhcmVudCA9IHRoaXMucmVsYXRpdmVUYXJnZXQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEluY3JlYXNlIGRlYnVnIGNvdW50ZXIgZm9yIHJlc29sdmVkIHRhcmdldCBkZWx0YXNcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmIChzdGF0c0J1ZmZlci52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgbWV0cmljcy5jYWxjdWxhdGVkVGFyZ2V0RGVsdGFzKys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZ2V0Q2xvc2VzdFByb2plY3RpbmdQYXJlbnQoKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5wYXJlbnQgfHxcclxuICAgICAgICAgICAgICAgIGhhc1NjYWxlKHRoaXMucGFyZW50LmxhdGVzdFZhbHVlcykgfHxcclxuICAgICAgICAgICAgICAgIGhhczJEVHJhbnNsYXRlKHRoaXMucGFyZW50LmxhdGVzdFZhbHVlcykpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50LmlzUHJvamVjdGluZygpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0Q2xvc2VzdFByb2plY3RpbmdQYXJlbnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpc1Byb2plY3RpbmcoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBCb29sZWFuKCh0aGlzLnJlbGF0aXZlVGFyZ2V0IHx8XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhcmdldERlbHRhIHx8XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMubGF5b3V0Um9vdCkgJiZcclxuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FsY1Byb2plY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxlYWQgPSB0aGlzLmdldExlYWQoKTtcclxuICAgICAgICAgICAgY29uc3QgaXNTaGFyZWQgPSBCb29sZWFuKHRoaXMucmVzdW1pbmdGcm9tKSB8fCB0aGlzICE9PSBsZWFkO1xyXG4gICAgICAgICAgICBsZXQgY2FuU2tpcCA9IHRydWU7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB0aGlzIGlzIGEgbm9ybWFsIGxheW91dCBhbmltYXRpb24gYW5kIG5laXRoZXIgdGhpcyBub2RlIG5vciBpdHMgbmVhcmVzdCBwcm9qZWN0aW5nXHJcbiAgICAgICAgICAgICAqIGlzIGRpcnR5IHRoZW4gd2UgY2FuJ3Qgc2tpcC5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUHJvamVjdGlvbkRpcnR5IHx8IHRoaXMucGFyZW50Py5pc1Byb2plY3Rpb25EaXJ0eSkge1xyXG4gICAgICAgICAgICAgICAgY2FuU2tpcCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB0aGlzIGlzIGEgc2hhcmVkIGxheW91dCBhbmltYXRpb24gYW5kIHRoaXMgbm9kZSdzIHNoYXJlZCBwcm9qZWN0aW9uIGlzIGRpcnR5IHRoZW5cclxuICAgICAgICAgICAgICogd2UgY2FuJ3Qgc2tpcC5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmIChpc1NoYXJlZCAmJlxyXG4gICAgICAgICAgICAgICAgKHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgfHwgdGhpcy5pc1RyYW5zZm9ybURpcnR5KSkge1xyXG4gICAgICAgICAgICAgICAgY2FuU2tpcCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB3ZSBoYXZlIHJlc29sdmVkIHRoZSB0YXJnZXQgdGhpcyBmcmFtZSB3ZSBtdXN0IHJlY2FsY3VsYXRlIHRoZVxyXG4gICAgICAgICAgICAgKiBwcm9qZWN0aW9uIHRvIGVuc3VyZSBpdCB2aXN1YWxseSByZXByZXNlbnRzIHRoZSBpbnRlcm5hbCBjYWxjdWxhdGlvbnMuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXNvbHZlZFJlbGF0aXZlVGFyZ2V0QXQgPT09IGZyYW1lRGF0YS50aW1lc3RhbXApIHtcclxuICAgICAgICAgICAgICAgIGNhblNraXAgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoY2FuU2tpcClcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3QgeyBsYXlvdXQsIGxheW91dElkIH0gPSB0aGlzLm9wdGlvbnM7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB0aGlzIHNlY3Rpb24gb2YgdGhlIHRyZWUgaXNuJ3QgYW5pbWF0aW5nIHdlIGNhblxyXG4gICAgICAgICAgICAgKiBkZWxldGUgb3VyIHRhcmdldCBzb3VyY2VzIGZvciB0aGUgZm9sbG93aW5nIGZyYW1lLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgdGhpcy5pc1RyZWVBbmltYXRpbmcgPSBCb29sZWFuKCh0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5pc1RyZWVBbmltYXRpbmcpIHx8XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBbmltYXRpb24gfHxcclxuICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ0FuaW1hdGlvbik7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1RyZWVBbmltYXRpbmcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0RGVsdGEgPSB0aGlzLnJlbGF0aXZlVGFyZ2V0ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5sYXlvdXQgfHwgIShsYXlvdXQgfHwgbGF5b3V0SWQpKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogUmVzZXQgdGhlIGNvcnJlY3RlZCBib3ggd2l0aCB0aGUgbGF0ZXN0IHZhbHVlcyBmcm9tIGJveCwgYXMgd2UncmUgdGhlbiBnb2luZ1xyXG4gICAgICAgICAgICAgKiB0byBwZXJmb3JtIG11dGF0aXZlIG9wZXJhdGlvbnMgb24gaXQuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBjb3B5Qm94SW50byh0aGlzLmxheW91dENvcnJlY3RlZCwgdGhpcy5sYXlvdXQubGF5b3V0Qm94KTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFJlY29yZCBwcmV2aW91cyB0cmVlIHNjYWxlcyBiZWZvcmUgdXBkYXRpbmcuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBjb25zdCBwcmV2VHJlZVNjYWxlWCA9IHRoaXMudHJlZVNjYWxlLng7XHJcbiAgICAgICAgICAgIGNvbnN0IHByZXZUcmVlU2NhbGVZID0gdGhpcy50cmVlU2NhbGUueTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEFwcGx5IGFsbCB0aGUgcGFyZW50IGRlbHRhcyB0byB0aGlzIGJveCB0byBwcm9kdWNlIHRoZSBjb3JyZWN0ZWQgYm94LiBUaGlzXHJcbiAgICAgICAgICAgICAqIGlzIHRoZSBsYXlvdXQgYm94LCBhcyBpdCB3aWxsIGFwcGVhciBvbiBzY3JlZW4gYXMgYSByZXN1bHQgb2YgdGhlIHRyYW5zZm9ybXMgb2YgaXRzIHBhcmVudHMuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBhcHBseVRyZWVEZWx0YXModGhpcy5sYXlvdXRDb3JyZWN0ZWQsIHRoaXMudHJlZVNjYWxlLCB0aGlzLnBhdGgsIGlzU2hhcmVkKTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIElmIHRoaXMgbGF5ZXIgbmVlZHMgdG8gcGVyZm9ybSBzY2FsZSBjb3JyZWN0aW9uIGJ1dCBkb2Vzbid0IGhhdmUgYSB0YXJnZXQsXHJcbiAgICAgICAgICAgICAqIHVzZSB0aGUgbGF5b3V0IGFzIHRoZSB0YXJnZXQuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAobGVhZC5sYXlvdXQgJiZcclxuICAgICAgICAgICAgICAgICFsZWFkLnRhcmdldCAmJlxyXG4gICAgICAgICAgICAgICAgKHRoaXMudHJlZVNjYWxlLnggIT09IDEgfHwgdGhpcy50cmVlU2NhbGUueSAhPT0gMSkpIHtcclxuICAgICAgICAgICAgICAgIGxlYWQudGFyZ2V0ID0gbGVhZC5sYXlvdXQubGF5b3V0Qm94O1xyXG4gICAgICAgICAgICAgICAgbGVhZC50YXJnZXRXaXRoVHJhbnNmb3JtcyA9IGNyZWF0ZUJveCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBsZWFkO1xyXG4gICAgICAgICAgICBpZiAoIXRhcmdldCkge1xyXG4gICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgKiBJZiB3ZSBkb24ndCBoYXZlIGEgdGFyZ2V0IHRvIHByb2plY3QgaW50bywgYnV0IHdlIHdlcmUgcHJldmlvdXNseVxyXG4gICAgICAgICAgICAgICAgICogcHJvamVjdGluZywgd2Ugd2FudCB0byByZW1vdmUgdGhlIHN0b3JlZCB0cmFuc2Zvcm0gYW5kIHNjaGVkdWxlXHJcbiAgICAgICAgICAgICAgICAgKiBhIHJlbmRlciB0byBlbnN1cmUgdGhlIGVsZW1lbnRzIHJlZmxlY3QgdGhlIHJlbW92ZWQgdHJhbnNmb3JtLlxyXG4gICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcmV2UHJvamVjdGlvbkRlbHRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQcm9qZWN0aW9uRGVsdGFzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5wcm9qZWN0aW9uRGVsdGEgfHwgIXRoaXMucHJldlByb2plY3Rpb25EZWx0YSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQcm9qZWN0aW9uRGVsdGFzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb3B5QXhpc0RlbHRhSW50byh0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEueCwgdGhpcy5wcm9qZWN0aW9uRGVsdGEueCk7XHJcbiAgICAgICAgICAgICAgICBjb3B5QXhpc0RlbHRhSW50byh0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEueSwgdGhpcy5wcm9qZWN0aW9uRGVsdGEueSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFVwZGF0ZSB0aGUgZGVsdGEgYmV0d2VlbiB0aGUgY29ycmVjdGVkIGJveCBhbmQgdGhlIHRhcmdldCBib3ggYmVmb3JlIHVzZXItc2V0IHRyYW5zZm9ybXMgd2VyZSBhcHBsaWVkLlxyXG4gICAgICAgICAgICAgKiBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gY2FsY3VsYXRlIHRoZSBjb3JyZWN0ZWQgYm9yZGVyUmFkaXVzIGFuZCBib3hTaGFkb3cgdG8gY29tcGVuc2F0ZVxyXG4gICAgICAgICAgICAgKiBmb3Igb3VyIGxheW91dCByZXByb2plY3Rpb24sIGJ1dCBzdGlsbCBhbGxvdyB0aGVtIHRvIGJlIHNjYWxlZCBjb3JyZWN0bHkgYnkgdGhlIHVzZXIuXHJcbiAgICAgICAgICAgICAqIEl0IG1pZ2h0IGJlIHRoYXQgdG8gc2ltcGxpZnkgdGhpcyB3ZSBtYXkgd2FudCB0byBhY2NlcHQgdGhhdCB1c2VyLXNldCBzY2FsZSBpcyBhbHNvIGNvcnJlY3RlZFxyXG4gICAgICAgICAgICAgKiBhbmQgd2Ugd291bGRuJ3QgaGF2ZSB0byBrZWVwIGFuZCBjYWxjIGJvdGggZGVsdGFzLCBPUiB3ZSBjb3VsZCBzdXBwb3J0IGEgdXNlciBzZXR0aW5nXHJcbiAgICAgICAgICAgICAqIHRvIGFsbG93IHBlb3BsZSB0byBjaG9vc2Ugd2hldGhlciB0aGVzZSBzdHlsZXMgYXJlIGNvcnJlY3RlZCBiYXNlZCBvbiBqdXN0IHRoZVxyXG4gICAgICAgICAgICAgKiBsYXlvdXQgcmVwcm9qZWN0aW9uIG9yIHRoZSBmaW5hbCBib3VuZGluZyBib3guXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBjYWxjQm94RGVsdGEodGhpcy5wcm9qZWN0aW9uRGVsdGEsIHRoaXMubGF5b3V0Q29ycmVjdGVkLCB0YXJnZXQsIHRoaXMubGF0ZXN0VmFsdWVzKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMudHJlZVNjYWxlLnggIT09IHByZXZUcmVlU2NhbGVYIHx8XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVTY2FsZS55ICE9PSBwcmV2VHJlZVNjYWxlWSB8fFxyXG4gICAgICAgICAgICAgICAgIWF4aXNEZWx0YUVxdWFscyh0aGlzLnByb2plY3Rpb25EZWx0YS54LCB0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEueCkgfHxcclxuICAgICAgICAgICAgICAgICFheGlzRGVsdGFFcXVhbHModGhpcy5wcm9qZWN0aW9uRGVsdGEueSwgdGhpcy5wcmV2UHJvamVjdGlvbkRlbHRhLnkpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhc1Byb2plY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlUmVuZGVyKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeUxpc3RlbmVycyhcInByb2plY3Rpb25VcGRhdGVcIiwgdGFyZ2V0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogSW5jcmVhc2UgZGVidWcgY291bnRlciBmb3IgcmVjYWxjdWxhdGVkIHByb2plY3Rpb25zXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAoc3RhdHNCdWZmZXIudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIG1ldHJpY3MuY2FsY3VsYXRlZFByb2plY3Rpb25zKys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaGlkZSgpIHtcclxuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gVE9ETzogU2NoZWR1bGUgcmVuZGVyXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNob3coKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy8gVE9ETzogU2NoZWR1bGUgcmVuZGVyXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNjaGVkdWxlUmVuZGVyKG5vdGlmeUFsbCA9IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnZpc3VhbEVsZW1lbnQ/LnNjaGVkdWxlUmVuZGVyKCk7XHJcbiAgICAgICAgICAgIGlmIChub3RpZnlBbGwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5nZXRTdGFjaygpO1xyXG4gICAgICAgICAgICAgICAgc3RhY2sgJiYgc3RhY2suc2NoZWR1bGVSZW5kZXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXN1bWluZ0Zyb20gJiYgIXRoaXMucmVzdW1pbmdGcm9tLmluc3RhbmNlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlc3VtaW5nRnJvbSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjcmVhdGVQcm9qZWN0aW9uRGVsdGFzKCkge1xyXG4gICAgICAgICAgICB0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEgPSBjcmVhdGVEZWx0YSgpO1xyXG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb25EZWx0YSA9IGNyZWF0ZURlbHRhKCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvamVjdGlvbkRlbHRhV2l0aFRyYW5zZm9ybSA9IGNyZWF0ZURlbHRhKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNldEFuaW1hdGlvbk9yaWdpbihkZWx0YSwgaGFzT25seVJlbGF0aXZlVGFyZ2V0Q2hhbmdlZCA9IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy5zbmFwc2hvdDtcclxuICAgICAgICAgICAgY29uc3Qgc25hcHNob3RMYXRlc3RWYWx1ZXMgPSBzbmFwc2hvdCA/IHNuYXBzaG90LmxhdGVzdFZhbHVlcyA6IHt9O1xyXG4gICAgICAgICAgICBjb25zdCBtaXhlZFZhbHVlcyA9IHsgLi4udGhpcy5sYXRlc3RWYWx1ZXMgfTtcclxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0RGVsdGEgPSBjcmVhdGVEZWx0YSgpO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVsYXRpdmVQYXJlbnQgfHxcclxuICAgICAgICAgICAgICAgICF0aGlzLnJlbGF0aXZlUGFyZW50Lm9wdGlvbnMubGF5b3V0Um9vdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVRhcmdldCA9IHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5hdHRlbXB0VG9SZXNvbHZlUmVsYXRpdmVUYXJnZXQgPSAhaGFzT25seVJlbGF0aXZlVGFyZ2V0Q2hhbmdlZDtcclxuICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVMYXlvdXQgPSBjcmVhdGVCb3goKTtcclxuICAgICAgICAgICAgY29uc3Qgc25hcHNob3RTb3VyY2UgPSBzbmFwc2hvdCA/IHNuYXBzaG90LnNvdXJjZSA6IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgY29uc3QgbGF5b3V0U291cmNlID0gdGhpcy5sYXlvdXQgPyB0aGlzLmxheW91dC5zb3VyY2UgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzU2hhcmVkTGF5b3V0QW5pbWF0aW9uID0gc25hcHNob3RTb3VyY2UgIT09IGxheW91dFNvdXJjZTtcclxuICAgICAgICAgICAgY29uc3Qgc3RhY2sgPSB0aGlzLmdldFN0YWNrKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzT25seU1lbWJlciA9ICFzdGFjayB8fCBzdGFjay5tZW1iZXJzLmxlbmd0aCA8PSAxO1xyXG4gICAgICAgICAgICBjb25zdCBzaG91bGRDcm9zc2ZhZGVPcGFjaXR5ID0gQm9vbGVhbihpc1NoYXJlZExheW91dEFuaW1hdGlvbiAmJlxyXG4gICAgICAgICAgICAgICAgIWlzT25seU1lbWJlciAmJlxyXG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmNyb3NzZmFkZSA9PT0gdHJ1ZSAmJlxyXG4gICAgICAgICAgICAgICAgIXRoaXMucGF0aC5zb21lKGhhc09wYWNpdHlDcm9zc2ZhZGUpKTtcclxuICAgICAgICAgICAgdGhpcy5hbmltYXRpb25Qcm9ncmVzcyA9IDA7XHJcbiAgICAgICAgICAgIGxldCBwcmV2UmVsYXRpdmVUYXJnZXQ7XHJcbiAgICAgICAgICAgIHRoaXMubWl4VGFyZ2V0RGVsdGEgPSAobGF0ZXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9ncmVzcyA9IGxhdGVzdCAvIDEwMDA7XHJcbiAgICAgICAgICAgICAgICBtaXhBeGlzRGVsdGEodGFyZ2V0RGVsdGEueCwgZGVsdGEueCwgcHJvZ3Jlc3MpO1xyXG4gICAgICAgICAgICAgICAgbWl4QXhpc0RlbHRhKHRhcmdldERlbHRhLnksIGRlbHRhLnksIHByb2dyZXNzKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0VGFyZ2V0RGVsdGEodGFyZ2V0RGVsdGEpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucmVsYXRpdmVUYXJnZXQgJiZcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luICYmXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQgJiZcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlUGFyZW50ICYmXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVBhcmVudC5sYXlvdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYWxjUmVsYXRpdmVQb3NpdGlvbihyZWxhdGl2ZUxheW91dCwgdGhpcy5sYXlvdXQubGF5b3V0Qm94LCB0aGlzLnJlbGF0aXZlUGFyZW50LmxheW91dC5sYXlvdXRCb3gpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1peEJveCh0aGlzLnJlbGF0aXZlVGFyZ2V0LCB0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luLCByZWxhdGl2ZUxheW91dCwgcHJvZ3Jlc3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICAgICAqIElmIHRoaXMgaXMgYW4gdW5jaGFuZ2VkIHJlbGF0aXZlIHRhcmdldCB3ZSBjYW4gY29uc2lkZXIgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICogcHJvamVjdGlvbiBub3QgZGlydHkuXHJcbiAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZSZWxhdGl2ZVRhcmdldCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3hFcXVhbHModGhpcy5yZWxhdGl2ZVRhcmdldCwgcHJldlJlbGF0aXZlVGFyZ2V0KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUHJvamVjdGlvbkRpcnR5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcHJldlJlbGF0aXZlVGFyZ2V0KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2UmVsYXRpdmVUYXJnZXQgPSBjcmVhdGVCb3goKTtcclxuICAgICAgICAgICAgICAgICAgICBjb3B5Qm94SW50byhwcmV2UmVsYXRpdmVUYXJnZXQsIHRoaXMucmVsYXRpdmVUYXJnZXQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGlzU2hhcmVkTGF5b3V0QW5pbWF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25WYWx1ZXMgPSBtaXhlZFZhbHVlcztcclxuICAgICAgICAgICAgICAgICAgICBtaXhWYWx1ZXMobWl4ZWRWYWx1ZXMsIHNuYXBzaG90TGF0ZXN0VmFsdWVzLCB0aGlzLmxhdGVzdFZhbHVlcywgcHJvZ3Jlc3MsIHNob3VsZENyb3NzZmFkZU9wYWNpdHksIGlzT25seU1lbWJlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvb3Quc2NoZWR1bGVVcGRhdGVQcm9qZWN0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlUmVuZGVyKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvblByb2dyZXNzID0gcHJvZ3Jlc3M7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMubWl4VGFyZ2V0RGVsdGEodGhpcy5vcHRpb25zLmxheW91dFJvb3QgPyAxMDAwIDogMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0YXJ0QW5pbWF0aW9uKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZnlMaXN0ZW5lcnMoXCJhbmltYXRpb25TdGFydFwiKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50QW5pbWF0aW9uPy5zdG9wKCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVzdW1pbmdGcm9tPy5jdXJyZW50QW5pbWF0aW9uPy5zdG9wKCk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBlbmRpbmdBbmltYXRpb24pIHtcclxuICAgICAgICAgICAgICAgIGNhbmNlbEZyYW1lKHRoaXMucGVuZGluZ0FuaW1hdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdBbmltYXRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFN0YXJ0IHRoZSBhbmltYXRpb24gaW4gdGhlIG5leHQgZnJhbWUgdG8gaGF2ZSBhIGZyYW1lIHdpdGggcHJvZ3Jlc3MgMCxcclxuICAgICAgICAgICAgICogd2hlcmUgdGhlIHRhcmdldCBpcyB0aGUgc2FtZSBhcyB3aGVuIHRoZSBhbmltYXRpb24gc3RhcnRlZCwgc28gd2UgY2FuXHJcbiAgICAgICAgICAgICAqIGNhbGN1bGF0ZSB0aGUgcmVsYXRpdmUgcG9zaXRpb25zIGNvcnJlY3RseSBmb3IgaW5zdGFudCB0cmFuc2l0aW9ucy5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0FuaW1hdGlvbiA9IGZyYW1lLnVwZGF0ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBnbG9iYWxQcm9qZWN0aW9uU3RhdGUuaGFzQW5pbWF0ZWRTaW5jZVJlc2l6ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBhY3RpdmVBbmltYXRpb25zLmxheW91dCsrO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb3Rpb25WYWx1ZSB8fCAodGhpcy5tb3Rpb25WYWx1ZSA9IG1vdGlvblZhbHVlKDApKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEFuaW1hdGlvbiA9IGFuaW1hdGVTaW5nbGVWYWx1ZSh0aGlzLm1vdGlvblZhbHVlLCBbMCwgMTAwMF0sIHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5vcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgIHZlbG9jaXR5OiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIGlzU3luYzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBvblVwZGF0ZTogKGxhdGVzdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1peFRhcmdldERlbHRhKGxhdGVzdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMub25VcGRhdGUgJiYgb3B0aW9ucy5vblVwZGF0ZShsYXRlc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgb25TdG9wOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUFuaW1hdGlvbnMubGF5b3V0LS07XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBvbkNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUFuaW1hdGlvbnMubGF5b3V0LS07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMub25Db21wbGV0ZSAmJiBvcHRpb25zLm9uQ29tcGxldGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZUFuaW1hdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlc3VtaW5nRnJvbSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzdW1pbmdGcm9tLmN1cnJlbnRBbmltYXRpb24gPSB0aGlzLmN1cnJlbnRBbmltYXRpb247XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdBbmltYXRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb21wbGV0ZUFuaW1hdGlvbigpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVzdW1pbmdGcm9tKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlc3VtaW5nRnJvbS5jdXJyZW50QW5pbWF0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZXN1bWluZ0Zyb20ucHJlc2VydmVPcGFjaXR5ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5nZXRTdGFjaygpO1xyXG4gICAgICAgICAgICBzdGFjayAmJiBzdGFjay5leGl0QW5pbWF0aW9uQ29tcGxldGUoKTtcclxuICAgICAgICAgICAgdGhpcy5yZXN1bWluZ0Zyb20gPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QW5pbWF0aW9uID1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvblZhbHVlcyA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZnlMaXN0ZW5lcnMoXCJhbmltYXRpb25Db21wbGV0ZVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluaXNoQW5pbWF0aW9uKCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50QW5pbWF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1peFRhcmdldERlbHRhICYmIHRoaXMubWl4VGFyZ2V0RGVsdGEoYW5pbWF0aW9uVGFyZ2V0KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEFuaW1hdGlvbi5zdG9wKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jb21wbGV0ZUFuaW1hdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhcHBseVRyYW5zZm9ybXNUb1RhcmdldCgpIHtcclxuICAgICAgICAgICAgY29uc3QgbGVhZCA9IHRoaXMuZ2V0TGVhZCgpO1xyXG4gICAgICAgICAgICBsZXQgeyB0YXJnZXRXaXRoVHJhbnNmb3JtcywgdGFyZ2V0LCBsYXlvdXQsIGxhdGVzdFZhbHVlcyB9ID0gbGVhZDtcclxuICAgICAgICAgICAgaWYgKCF0YXJnZXRXaXRoVHJhbnNmb3JtcyB8fCAhdGFyZ2V0IHx8ICFsYXlvdXQpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB3ZSdyZSBvbmx5IGFuaW1hdGluZyBwb3NpdGlvbiwgYW5kIHRoaXMgZWxlbWVudCBpc24ndCB0aGUgbGVhZCBlbGVtZW50LFxyXG4gICAgICAgICAgICAgKiB0aGVuIGluc3RlYWQgb2YgcHJvamVjdGluZyBpbnRvIHRoZSBsZWFkIGJveCB3ZSBpbnN0ZWFkIHdhbnQgdG8gY2FsY3VsYXRlXHJcbiAgICAgICAgICAgICAqIGEgbmV3IHRhcmdldCB0aGF0IGFsaWducyB0aGUgdHdvIGJveGVzIGJ1dCBtYWludGFpbnMgdGhlIGxheW91dCBzaGFwZS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmICh0aGlzICE9PSBsZWFkICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxheW91dCAmJlxyXG4gICAgICAgICAgICAgICAgbGF5b3V0ICYmXHJcbiAgICAgICAgICAgICAgICBzaG91bGRBbmltYXRlUG9zaXRpb25Pbmx5KHRoaXMub3B0aW9ucy5hbmltYXRpb25UeXBlLCB0aGlzLmxheW91dC5sYXlvdXRCb3gsIGxheW91dC5sYXlvdXRCb3gpKSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSB0aGlzLnRhcmdldCB8fCBjcmVhdGVCb3goKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHhMZW5ndGggPSBjYWxjTGVuZ3RoKHRoaXMubGF5b3V0LmxheW91dEJveC54KTtcclxuICAgICAgICAgICAgICAgIHRhcmdldC54Lm1pbiA9IGxlYWQudGFyZ2V0LngubWluO1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0LngubWF4ID0gdGFyZ2V0LngubWluICsgeExlbmd0aDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHlMZW5ndGggPSBjYWxjTGVuZ3RoKHRoaXMubGF5b3V0LmxheW91dEJveC55KTtcclxuICAgICAgICAgICAgICAgIHRhcmdldC55Lm1pbiA9IGxlYWQudGFyZ2V0LnkubWluO1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0LnkubWF4ID0gdGFyZ2V0LnkubWluICsgeUxlbmd0aDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb3B5Qm94SW50byh0YXJnZXRXaXRoVHJhbnNmb3JtcywgdGFyZ2V0KTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEFwcGx5IHRoZSBsYXRlc3QgdXNlci1zZXQgdHJhbnNmb3JtcyB0byB0aGUgdGFyZ2V0Qm94IHRvIHByb2R1Y2UgdGhlIHRhcmdldEJveEZpbmFsLlxyXG4gICAgICAgICAgICAgKiBUaGlzIGlzIHRoZSBmaW5hbCBib3ggdGhhdCB3ZSB3aWxsIHRoZW4gcHJvamVjdCBpbnRvIGJ5IGNhbGN1bGF0aW5nIGEgdHJhbnNmb3JtIGRlbHRhIGFuZFxyXG4gICAgICAgICAgICAgKiBhcHBseWluZyBpdCB0byB0aGUgY29ycmVjdGVkIGJveC5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybUJveCh0YXJnZXRXaXRoVHJhbnNmb3JtcywgbGF0ZXN0VmFsdWVzKTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFVwZGF0ZSB0aGUgZGVsdGEgYmV0d2VlbiB0aGUgY29ycmVjdGVkIGJveCBhbmQgdGhlIGZpbmFsIHRhcmdldCBib3gsIGFmdGVyXHJcbiAgICAgICAgICAgICAqIHVzZXItc2V0IHRyYW5zZm9ybXMgYXJlIGFwcGxpZWQgdG8gaXQuIFRoaXMgd2lsbCBiZSB1c2VkIGJ5IHRoZSByZW5kZXJlciB0b1xyXG4gICAgICAgICAgICAgKiBjcmVhdGUgYSB0cmFuc2Zvcm0gc3R5bGUgdGhhdCB3aWxsIHJlcHJvamVjdCB0aGUgZWxlbWVudCBmcm9tIGl0cyBsYXlvdXQgbGF5b3V0XHJcbiAgICAgICAgICAgICAqIGludG8gdGhlIGRlc2lyZWQgYm91bmRpbmcgYm94LlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgY2FsY0JveERlbHRhKHRoaXMucHJvamVjdGlvbkRlbHRhV2l0aFRyYW5zZm9ybSwgdGhpcy5sYXlvdXRDb3JyZWN0ZWQsIHRhcmdldFdpdGhUcmFuc2Zvcm1zLCBsYXRlc3RWYWx1ZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZWdpc3RlclNoYXJlZE5vZGUobGF5b3V0SWQsIG5vZGUpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnNoYXJlZE5vZGVzLmhhcyhsYXlvdXRJZCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hhcmVkTm9kZXMuc2V0KGxheW91dElkLCBuZXcgTm9kZVN0YWNrKCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5zaGFyZWROb2Rlcy5nZXQobGF5b3V0SWQpO1xyXG4gICAgICAgICAgICBzdGFjay5hZGQobm9kZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IG5vZGUub3B0aW9ucy5pbml0aWFsUHJvbW90aW9uQ29uZmlnO1xyXG4gICAgICAgICAgICBub2RlLnByb21vdGUoe1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogY29uZmlnID8gY29uZmlnLnRyYW5zaXRpb24gOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICBwcmVzZXJ2ZUZvbGxvd09wYWNpdHk6IGNvbmZpZyAmJiBjb25maWcuc2hvdWxkUHJlc2VydmVGb2xsb3dPcGFjaXR5XHJcbiAgICAgICAgICAgICAgICAgICAgPyBjb25maWcuc2hvdWxkUHJlc2VydmVGb2xsb3dPcGFjaXR5KG5vZGUpXHJcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpc0xlYWQoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5nZXRTdGFjaygpO1xyXG4gICAgICAgICAgICByZXR1cm4gc3RhY2sgPyBzdGFjay5sZWFkID09PSB0aGlzIDogdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZ2V0TGVhZCgpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBsYXlvdXRJZCB9ID0gdGhpcy5vcHRpb25zO1xyXG4gICAgICAgICAgICByZXR1cm4gbGF5b3V0SWQgPyB0aGlzLmdldFN0YWNrKCk/LmxlYWQgfHwgdGhpcyA6IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGdldFByZXZMZWFkKCkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGxheW91dElkIH0gPSB0aGlzLm9wdGlvbnM7XHJcbiAgICAgICAgICAgIHJldHVybiBsYXlvdXRJZCA/IHRoaXMuZ2V0U3RhY2soKT8ucHJldkxlYWQgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGdldFN0YWNrKCkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGxheW91dElkIH0gPSB0aGlzLm9wdGlvbnM7XHJcbiAgICAgICAgICAgIGlmIChsYXlvdXRJZClcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJvb3Quc2hhcmVkTm9kZXMuZ2V0KGxheW91dElkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcHJvbW90ZSh7IG5lZWRzUmVzZXQsIHRyYW5zaXRpb24sIHByZXNlcnZlRm9sbG93T3BhY2l0eSwgfSA9IHt9KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5nZXRTdGFjaygpO1xyXG4gICAgICAgICAgICBpZiAoc3RhY2spXHJcbiAgICAgICAgICAgICAgICBzdGFjay5wcm9tb3RlKHRoaXMsIHByZXNlcnZlRm9sbG93T3BhY2l0eSk7XHJcbiAgICAgICAgICAgIGlmIChuZWVkc1Jlc2V0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2plY3Rpb25EZWx0YSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIHRoaXMubmVlZHNSZXNldCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRyYW5zaXRpb24pXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldE9wdGlvbnMoeyB0cmFuc2l0aW9uIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZWxlZ2F0ZSgpIHtcclxuICAgICAgICAgICAgY29uc3Qgc3RhY2sgPSB0aGlzLmdldFN0YWNrKCk7XHJcbiAgICAgICAgICAgIGlmIChzdGFjaykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0YWNrLnJlbGVnYXRlKHRoaXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc2V0U2tld0FuZFJvdGF0aW9uKCkge1xyXG4gICAgICAgICAgICBjb25zdCB7IHZpc3VhbEVsZW1lbnQgfSA9IHRoaXMub3B0aW9ucztcclxuICAgICAgICAgICAgaWYgKCF2aXN1YWxFbGVtZW50KVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAvLyBJZiB0aGVyZSdzIG5vIGRldGVjdGVkIHNrZXcgb3Igcm90YXRpb24gdmFsdWVzLCB3ZSBjYW4gZWFybHkgcmV0dXJuIHdpdGhvdXQgYSBmb3JjZWQgcmVuZGVyLlxyXG4gICAgICAgICAgICBsZXQgaGFzRGlzdG9ydGluZ1RyYW5zZm9ybSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogQW4gdW5yb2xsZWQgY2hlY2sgZm9yIHJvdGF0aW9uIHZhbHVlcy4gTW9zdCBlbGVtZW50cyBkb24ndCBoYXZlIGFueSByb3RhdGlvbiBhbmRcclxuICAgICAgICAgICAgICogc2tpcHBpbmcgdGhlIG5lc3RlZCBsb29wIGFuZCBuZXcgb2JqZWN0IGNyZWF0aW9uIGlzIDUwJSBmYXN0ZXIuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBjb25zdCB7IGxhdGVzdFZhbHVlcyB9ID0gdmlzdWFsRWxlbWVudDtcclxuICAgICAgICAgICAgaWYgKGxhdGVzdFZhbHVlcy56IHx8XHJcbiAgICAgICAgICAgICAgICBsYXRlc3RWYWx1ZXMucm90YXRlIHx8XHJcbiAgICAgICAgICAgICAgICBsYXRlc3RWYWx1ZXMucm90YXRlWCB8fFxyXG4gICAgICAgICAgICAgICAgbGF0ZXN0VmFsdWVzLnJvdGF0ZVkgfHxcclxuICAgICAgICAgICAgICAgIGxhdGVzdFZhbHVlcy5yb3RhdGVaIHx8XHJcbiAgICAgICAgICAgICAgICBsYXRlc3RWYWx1ZXMuc2tld1ggfHxcclxuICAgICAgICAgICAgICAgIGxhdGVzdFZhbHVlcy5za2V3WSkge1xyXG4gICAgICAgICAgICAgICAgaGFzRGlzdG9ydGluZ1RyYW5zZm9ybSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBubyBkaXN0b3J0aW5nIHZhbHVlcywgd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnkgbW9yZS5cclxuICAgICAgICAgICAgaWYgKCFoYXNEaXN0b3J0aW5nVHJhbnNmb3JtKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCByZXNldFZhbHVlcyA9IHt9O1xyXG4gICAgICAgICAgICBpZiAobGF0ZXN0VmFsdWVzLnopIHtcclxuICAgICAgICAgICAgICAgIHJlc2V0RGlzdG9ydGluZ1RyYW5zZm9ybShcInpcIiwgdmlzdWFsRWxlbWVudCwgcmVzZXRWYWx1ZXMsIHRoaXMuYW5pbWF0aW9uVmFsdWVzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBDaGVjayB0aGUgc2tldyBhbmQgcm90YXRlIHZhbHVlIG9mIGFsbCBheGVzIGFuZCByZXNldCB0byAwXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHJhbnNmb3JtQXhlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgcmVzZXREaXN0b3J0aW5nVHJhbnNmb3JtKGByb3RhdGUke3RyYW5zZm9ybUF4ZXNbaV19YCwgdmlzdWFsRWxlbWVudCwgcmVzZXRWYWx1ZXMsIHRoaXMuYW5pbWF0aW9uVmFsdWVzKTtcclxuICAgICAgICAgICAgICAgIHJlc2V0RGlzdG9ydGluZ1RyYW5zZm9ybShgc2tldyR7dHJhbnNmb3JtQXhlc1tpXX1gLCB2aXN1YWxFbGVtZW50LCByZXNldFZhbHVlcywgdGhpcy5hbmltYXRpb25WYWx1ZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIEZvcmNlIGEgcmVuZGVyIG9mIHRoaXMgZWxlbWVudCB0byBhcHBseSB0aGUgdHJhbnNmb3JtIHdpdGggYWxsIHNrZXdzIGFuZCByb3RhdGlvbnNcclxuICAgICAgICAgICAgLy8gc2V0IHRvIDAuXHJcbiAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQucmVuZGVyKCk7XHJcbiAgICAgICAgICAgIC8vIFB1dCBiYWNrIGFsbCB0aGUgdmFsdWVzIHdlIHJlc2V0XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHJlc2V0VmFsdWVzKSB7XHJcbiAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50LnNldFN0YXRpY1ZhbHVlKGtleSwgcmVzZXRWYWx1ZXNba2V5XSk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hbmltYXRpb25WYWx1ZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvblZhbHVlc1trZXldID0gcmVzZXRWYWx1ZXNba2V5XTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBTY2hlZHVsZSBhIHJlbmRlciBmb3IgdGhlIG5leHQgZnJhbWUuIFRoaXMgZW5zdXJlcyB3ZSB3b24ndCB2aXN1YWxseVxyXG4gICAgICAgICAgICAvLyBzZWUgdGhlIGVsZW1lbnQgd2l0aCB0aGUgcmVzZXQgcm90YXRlIHZhbHVlIGFwcGxpZWQuXHJcbiAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQuc2NoZWR1bGVSZW5kZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXBwbHlQcm9qZWN0aW9uU3R5bGVzKHRhcmdldFN0eWxlLCAvLyBDU1NTdHlsZURlY2xhcmF0aW9uIC0gZG9lc24ndCBhbGxvdyBudW1iZXJzIHRvIGJlIGFzc2lnbmVkIHRvIHByb3BlcnRpZXNcclxuICAgICAgICBzdHlsZVByb3ApIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlIHx8IHRoaXMuaXNTVkcpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1Zpc2libGUpIHtcclxuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybVRlbXBsYXRlID0gdGhpcy5nZXRUcmFuc2Zvcm1UZW1wbGF0ZSgpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5uZWVkc1Jlc2V0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5lZWRzUmVzZXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnZpc2liaWxpdHkgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0U3R5bGUub3BhY2l0eSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXRTdHlsZS5wb2ludGVyRXZlbnRzID1cclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlTW90aW9uVmFsdWUoc3R5bGVQcm9wPy5wb2ludGVyRXZlbnRzKSB8fCBcIlwiO1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0U3R5bGUudHJhbnNmb3JtID0gdHJhbnNmb3JtVGVtcGxhdGVcclxuICAgICAgICAgICAgICAgICAgICA/IHRyYW5zZm9ybVRlbXBsYXRlKHRoaXMubGF0ZXN0VmFsdWVzLCBcIlwiKVxyXG4gICAgICAgICAgICAgICAgICAgIDogXCJub25lXCI7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgbGVhZCA9IHRoaXMuZ2V0TGVhZCgpO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMucHJvamVjdGlvbkRlbHRhIHx8ICF0aGlzLmxheW91dCB8fCAhbGVhZC50YXJnZXQpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubGF5b3V0SWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRTdHlsZS5vcGFjaXR5ID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXRlc3RWYWx1ZXMub3BhY2l0eSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMubGF0ZXN0VmFsdWVzLm9wYWNpdHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMTtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRTdHlsZS5wb2ludGVyRXZlbnRzID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZU1vdGlvblZhbHVlKHN0eWxlUHJvcD8ucG9pbnRlckV2ZW50cykgfHwgXCJcIjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1Byb2plY3RlZCAmJiAhaGFzVHJhbnNmb3JtKHRoaXMubGF0ZXN0VmFsdWVzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdHJhbnNmb3JtVGVtcGxhdGUoe30sIFwiXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJub25lXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNQcm9qZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0YXJnZXRTdHlsZS52aXNpYmlsaXR5ID0gXCJcIjtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWVzVG9SZW5kZXIgPSBsZWFkLmFuaW1hdGlvblZhbHVlcyB8fCBsZWFkLmxhdGVzdFZhbHVlcztcclxuICAgICAgICAgICAgdGhpcy5hcHBseVRyYW5zZm9ybXNUb1RhcmdldCgpO1xyXG4gICAgICAgICAgICBsZXQgdHJhbnNmb3JtID0gYnVpbGRQcm9qZWN0aW9uVHJhbnNmb3JtKHRoaXMucHJvamVjdGlvbkRlbHRhV2l0aFRyYW5zZm9ybSwgdGhpcy50cmVlU2NhbGUsIHZhbHVlc1RvUmVuZGVyKTtcclxuICAgICAgICAgICAgaWYgKHRyYW5zZm9ybVRlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm1UZW1wbGF0ZSh2YWx1ZXNUb1JlbmRlciwgdHJhbnNmb3JtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0YXJnZXRTdHlsZS50cmFuc2Zvcm0gPSB0cmFuc2Zvcm07XHJcbiAgICAgICAgICAgIGNvbnN0IHsgeCwgeSB9ID0gdGhpcy5wcm9qZWN0aW9uRGVsdGE7XHJcbiAgICAgICAgICAgIHRhcmdldFN0eWxlLnRyYW5zZm9ybU9yaWdpbiA9IGAke3gub3JpZ2luICogMTAwfSUgJHt5Lm9yaWdpbiAqIDEwMH0lIDBgO1xyXG4gICAgICAgICAgICBpZiAobGVhZC5hbmltYXRpb25WYWx1ZXMpIHtcclxuICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICogSWYgdGhlIGxlYWQgY29tcG9uZW50IGlzIGFuaW1hdGluZywgYXNzaWduIHRoaXMgZWl0aGVyIHRoZSBlbnRlcmluZy9sZWF2aW5nXHJcbiAgICAgICAgICAgICAgICAgKiBvcGFjaXR5XHJcbiAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLm9wYWNpdHkgPVxyXG4gICAgICAgICAgICAgICAgICAgIGxlYWQgPT09IHRoaXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZXNUb1JlbmRlci5vcGFjaXR5ID8/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxhdGVzdFZhbHVlcy5vcGFjaXR5ID8/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5wcmVzZXJ2ZU9wYWNpdHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5sYXRlc3RWYWx1ZXMub3BhY2l0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB2YWx1ZXNUb1JlbmRlci5vcGFjaXR5RXhpdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICogT3Igd2UncmUgbm90IGFuaW1hdGluZyBhdCBhbGwsIHNldCB0aGUgbGVhZCBjb21wb25lbnQgdG8gaXRzIGxheW91dFxyXG4gICAgICAgICAgICAgICAgICogb3BhY2l0eSBhbmQgb3RoZXIgY29tcG9uZW50cyB0byBoaWRkZW4uXHJcbiAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLm9wYWNpdHkgPVxyXG4gICAgICAgICAgICAgICAgICAgIGxlYWQgPT09IHRoaXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZXNUb1JlbmRlci5vcGFjaXR5ICE9PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdmFsdWVzVG9SZW5kZXIub3BhY2l0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdmFsdWVzVG9SZW5kZXIub3BhY2l0eUV4aXQgIT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZXNUb1JlbmRlci5vcGFjaXR5RXhpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBBcHBseSBzY2FsZSBjb3JyZWN0aW9uXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2FsZUNvcnJlY3RvcnMpIHtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZXNUb1JlbmRlcltrZXldID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGNvcnJlY3QsIGFwcGx5VG8sIGlzQ1NTVmFyaWFibGUgfSA9IHNjYWxlQ29ycmVjdG9yc1trZXldO1xyXG4gICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgKiBPbmx5IGFwcGx5IHNjYWxlIGNvcnJlY3Rpb24gdG8gdGhlIHZhbHVlIGlmIHdlIGhhdmUgYW5cclxuICAgICAgICAgICAgICAgICAqIGFjdGl2ZSBwcm9qZWN0aW9uIHRyYW5zZm9ybS4gT3RoZXJ3aXNlIHRoZXNlIHZhbHVlcyBiZWNvbWVcclxuICAgICAgICAgICAgICAgICAqIHZ1bG5lcmFibGUgdG8gZGlzdG9ydGlvbiBpZiB0aGUgZWxlbWVudCBjaGFuZ2VzIHNpemUgd2l0aG91dFxyXG4gICAgICAgICAgICAgICAgICogYSBjb3JyZXNwb25kaW5nIGxheW91dCBhbmltYXRpb24uXHJcbiAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvcnJlY3RlZCA9IHRyYW5zZm9ybSA9PT0gXCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICA/IHZhbHVlc1RvUmVuZGVyW2tleV1cclxuICAgICAgICAgICAgICAgICAgICA6IGNvcnJlY3QodmFsdWVzVG9SZW5kZXJba2V5XSwgbGVhZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoYXBwbHlUbykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG51bSA9IGFwcGx5VG8ubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U3R5bGVbYXBwbHlUb1tpXV0gPSBjb3JyZWN0ZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIENTUyB2YXJpYWJsZSwgc2V0IGl0IGRpcmVjdGx5IG9uIHRoZSBpbnN0YW5jZS5cclxuICAgICAgICAgICAgICAgICAgICAvLyBSZXBsYWNpbmcgdGhpcyBmdW5jdGlvbiBmcm9tIGNyZWF0aW5nIHN0eWxlcyB0byBzZXR0aW5nIHRoZW1cclxuICAgICAgICAgICAgICAgICAgICAvLyB3b3VsZCBiZSBhIGdvb2QgcGxhY2UgdG8gcmVtb3ZlIHBlciBmcmFtZSBvYmplY3QgY3JlYXRpb25cclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNDU1NWYXJpYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmlzdWFsRWxlbWVudC5yZW5kZXJTdGF0ZS52YXJzW2tleV0gPSBjb3JyZWN0ZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRTdHlsZVtrZXldID0gY29ycmVjdGVkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogRGlzYWJsZSBwb2ludGVyIGV2ZW50cyBvbiBmb2xsb3cgY29tcG9uZW50cy4gVGhpcyBpcyB0byBlbnN1cmVcclxuICAgICAgICAgICAgICogdGhhdCBpZiBhIGZvbGxvdyBjb21wb25lbnQgY292ZXJzIGEgbGVhZCBjb21wb25lbnQgaXQgZG9lc24ndCBibG9ja1xyXG4gICAgICAgICAgICAgKiBwb2ludGVyIGV2ZW50cyBvbiB0aGUgbGVhZC5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubGF5b3V0SWQpIHtcclxuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnBvaW50ZXJFdmVudHMgPVxyXG4gICAgICAgICAgICAgICAgICAgIGxlYWQgPT09IHRoaXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyByZXNvbHZlTW90aW9uVmFsdWUoc3R5bGVQcm9wPy5wb2ludGVyRXZlbnRzKSB8fCBcIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJub25lXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2xlYXJTbmFwc2hvdCgpIHtcclxuICAgICAgICAgICAgdGhpcy5yZXN1bWVGcm9tID0gdGhpcy5zbmFwc2hvdCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gT25seSBydW4gb24gcm9vdFxyXG4gICAgICAgIHJlc2V0VHJlZSgpIHtcclxuICAgICAgICAgICAgdGhpcy5yb290Lm5vZGVzLmZvckVhY2goKG5vZGUpID0+IG5vZGUuY3VycmVudEFuaW1hdGlvbj8uc3RvcCgpKTtcclxuICAgICAgICAgICAgdGhpcy5yb290Lm5vZGVzLmZvckVhY2goY2xlYXJNZWFzdXJlbWVudHMpO1xyXG4gICAgICAgICAgICB0aGlzLnJvb3Quc2hhcmVkTm9kZXMuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIHVwZGF0ZUxheW91dChub2RlKSB7XHJcbiAgICBub2RlLnVwZGF0ZUxheW91dCgpO1xyXG59XHJcbmZ1bmN0aW9uIG5vdGlmeUxheW91dFVwZGF0ZShub2RlKSB7XHJcbiAgICBjb25zdCBzbmFwc2hvdCA9IG5vZGUucmVzdW1lRnJvbT8uc25hcHNob3QgfHwgbm9kZS5zbmFwc2hvdDtcclxuICAgIGlmIChub2RlLmlzTGVhZCgpICYmXHJcbiAgICAgICAgbm9kZS5sYXlvdXQgJiZcclxuICAgICAgICBzbmFwc2hvdCAmJlxyXG4gICAgICAgIG5vZGUuaGFzTGlzdGVuZXJzKFwiZGlkVXBkYXRlXCIpKSB7XHJcbiAgICAgICAgY29uc3QgeyBsYXlvdXRCb3g6IGxheW91dCwgbWVhc3VyZWRCb3g6IG1lYXN1cmVkTGF5b3V0IH0gPSBub2RlLmxheW91dDtcclxuICAgICAgICBjb25zdCB7IGFuaW1hdGlvblR5cGUgfSA9IG5vZGUub3B0aW9ucztcclxuICAgICAgICBjb25zdCBpc1NoYXJlZCA9IHNuYXBzaG90LnNvdXJjZSAhPT0gbm9kZS5sYXlvdXQuc291cmNlO1xyXG4gICAgICAgIC8vIFRPRE8gTWF5YmUgd2Ugd2FudCB0byBhbHNvIHJlc2l6ZSB0aGUgbGF5b3V0IHNuYXBzaG90IHNvIHdlIGRvbid0IHRyaWdnZXJcclxuICAgICAgICAvLyBhbmltYXRpb25zIGZvciBpbnN0YW5jZSBpZiBsYXlvdXQ9XCJzaXplXCIgYW5kIGFuIGVsZW1lbnQgaGFzIG9ubHkgY2hhbmdlZCBwb3NpdGlvblxyXG4gICAgICAgIGlmIChhbmltYXRpb25UeXBlID09PSBcInNpemVcIikge1xyXG4gICAgICAgICAgICBlYWNoQXhpcygoYXhpcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYXhpc1NuYXBzaG90ID0gaXNTaGFyZWRcclxuICAgICAgICAgICAgICAgICAgICA/IHNuYXBzaG90Lm1lYXN1cmVkQm94W2F4aXNdXHJcbiAgICAgICAgICAgICAgICAgICAgOiBzbmFwc2hvdC5sYXlvdXRCb3hbYXhpc107XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBjYWxjTGVuZ3RoKGF4aXNTbmFwc2hvdCk7XHJcbiAgICAgICAgICAgICAgICBheGlzU25hcHNob3QubWluID0gbGF5b3V0W2F4aXNdLm1pbjtcclxuICAgICAgICAgICAgICAgIGF4aXNTbmFwc2hvdC5tYXggPSBheGlzU25hcHNob3QubWluICsgbGVuZ3RoO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoc2hvdWxkQW5pbWF0ZVBvc2l0aW9uT25seShhbmltYXRpb25UeXBlLCBzbmFwc2hvdC5sYXlvdXRCb3gsIGxheW91dCkpIHtcclxuICAgICAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGF4aXNTbmFwc2hvdCA9IGlzU2hhcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgPyBzbmFwc2hvdC5tZWFzdXJlZEJveFtheGlzXVxyXG4gICAgICAgICAgICAgICAgICAgIDogc25hcHNob3QubGF5b3V0Qm94W2F4aXNdO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gY2FsY0xlbmd0aChsYXlvdXRbYXhpc10pO1xyXG4gICAgICAgICAgICAgICAgYXhpc1NuYXBzaG90Lm1heCA9IGF4aXNTbmFwc2hvdC5taW4gKyBsZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICAgICAqIEVuc3VyZSByZWxhdGl2ZSB0YXJnZXQgZ2V0cyByZXNpemVkIGFuZCByZXJlbmRlcmVyZFxyXG4gICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5yZWxhdGl2ZVRhcmdldCAmJiAhbm9kZS5jdXJyZW50QW5pbWF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5pc1Byb2plY3Rpb25EaXJ0eSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5yZWxhdGl2ZVRhcmdldFtheGlzXS5tYXggPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLnJlbGF0aXZlVGFyZ2V0W2F4aXNdLm1pbiArIGxlbmd0aDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGxheW91dERlbHRhID0gY3JlYXRlRGVsdGEoKTtcclxuICAgICAgICBjYWxjQm94RGVsdGEobGF5b3V0RGVsdGEsIGxheW91dCwgc25hcHNob3QubGF5b3V0Qm94KTtcclxuICAgICAgICBjb25zdCB2aXN1YWxEZWx0YSA9IGNyZWF0ZURlbHRhKCk7XHJcbiAgICAgICAgaWYgKGlzU2hhcmVkKSB7XHJcbiAgICAgICAgICAgIGNhbGNCb3hEZWx0YSh2aXN1YWxEZWx0YSwgbm9kZS5hcHBseVRyYW5zZm9ybShtZWFzdXJlZExheW91dCwgdHJ1ZSksIHNuYXBzaG90Lm1lYXN1cmVkQm94KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGNhbGNCb3hEZWx0YSh2aXN1YWxEZWx0YSwgbGF5b3V0LCBzbmFwc2hvdC5sYXlvdXRCb3gpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBoYXNMYXlvdXRDaGFuZ2VkID0gIWlzRGVsdGFaZXJvKGxheW91dERlbHRhKTtcclxuICAgICAgICBsZXQgaGFzUmVsYXRpdmVMYXlvdXRDaGFuZ2VkID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKCFub2RlLnJlc3VtZUZyb20pIHtcclxuICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVQYXJlbnQgPSBub2RlLmdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCk7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB0aGUgcmVsYXRpdmVQYXJlbnQgaXMgaXRzZWxmIHJlc3VtaW5nIGZyb20gYSBkaWZmZXJlbnQgZWxlbWVudCB0aGVuXHJcbiAgICAgICAgICAgICAqIHRoZSByZWxhdGl2ZSBzbmFwc2hvdCBpcyBub3QgcmVsYXZlbnRcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmIChyZWxhdGl2ZVBhcmVudCAmJiAhcmVsYXRpdmVQYXJlbnQucmVzdW1lRnJvbSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBzbmFwc2hvdDogcGFyZW50U25hcHNob3QsIGxheW91dDogcGFyZW50TGF5b3V0IH0gPSByZWxhdGl2ZVBhcmVudDtcclxuICAgICAgICAgICAgICAgIGlmIChwYXJlbnRTbmFwc2hvdCAmJiBwYXJlbnRMYXlvdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWxhdGl2ZVNuYXBzaG90ID0gY3JlYXRlQm94KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsY1JlbGF0aXZlUG9zaXRpb24ocmVsYXRpdmVTbmFwc2hvdCwgc25hcHNob3QubGF5b3V0Qm94LCBwYXJlbnRTbmFwc2hvdC5sYXlvdXRCb3gpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0aXZlTGF5b3V0ID0gY3JlYXRlQm94KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsY1JlbGF0aXZlUG9zaXRpb24ocmVsYXRpdmVMYXlvdXQsIGxheW91dCwgcGFyZW50TGF5b3V0LmxheW91dEJveCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFib3hFcXVhbHNSb3VuZGVkKHJlbGF0aXZlU25hcHNob3QsIHJlbGF0aXZlTGF5b3V0KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNSZWxhdGl2ZUxheW91dENoYW5nZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVsYXRpdmVQYXJlbnQub3B0aW9ucy5sYXlvdXRSb290KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUucmVsYXRpdmVUYXJnZXQgPSByZWxhdGl2ZUxheW91dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5yZWxhdGl2ZVRhcmdldE9yaWdpbiA9IHJlbGF0aXZlU25hcHNob3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUucmVsYXRpdmVQYXJlbnQgPSByZWxhdGl2ZVBhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbm9kZS5ub3RpZnlMaXN0ZW5lcnMoXCJkaWRVcGRhdGVcIiwge1xyXG4gICAgICAgICAgICBsYXlvdXQsXHJcbiAgICAgICAgICAgIHNuYXBzaG90LFxyXG4gICAgICAgICAgICBkZWx0YTogdmlzdWFsRGVsdGEsXHJcbiAgICAgICAgICAgIGxheW91dERlbHRhLFxyXG4gICAgICAgICAgICBoYXNMYXlvdXRDaGFuZ2VkLFxyXG4gICAgICAgICAgICBoYXNSZWxhdGl2ZUxheW91dENoYW5nZWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChub2RlLmlzTGVhZCgpKSB7XHJcbiAgICAgICAgY29uc3QgeyBvbkV4aXRDb21wbGV0ZSB9ID0gbm9kZS5vcHRpb25zO1xyXG4gICAgICAgIG9uRXhpdENvbXBsZXRlICYmIG9uRXhpdENvbXBsZXRlKCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIENsZWFyaW5nIHRyYW5zaXRpb25cclxuICAgICAqIFRPRE86IEludmVzdGlnYXRlIHdoeSB0aGlzIHRyYW5zaXRpb24gaXMgYmVpbmcgcGFzc2VkIGluIGFzIHt0eXBlOiBmYWxzZSB9IGZyb20gRnJhbWVyXHJcbiAgICAgKiBhbmQgd2h5IHdlIG5lZWQgaXQgYXQgYWxsXHJcbiAgICAgKi9cclxuICAgIG5vZGUub3B0aW9ucy50cmFuc2l0aW9uID0gdW5kZWZpbmVkO1xyXG59XHJcbmZ1bmN0aW9uIHByb3BhZ2F0ZURpcnR5Tm9kZXMobm9kZSkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbmNyZWFzZSBkZWJ1ZyBjb3VudGVyIGZvciBub2RlcyBlbmNvdW50ZXJlZCB0aGlzIGZyYW1lXHJcbiAgICAgKi9cclxuICAgIGlmIChzdGF0c0J1ZmZlci52YWx1ZSkge1xyXG4gICAgICAgIG1ldHJpY3Mubm9kZXMrKztcclxuICAgIH1cclxuICAgIGlmICghbm9kZS5wYXJlbnQpXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB0aGlzIG5vZGUgaXNuJ3QgcHJvamVjdGluZywgcHJvcGFnYXRlIGlzUHJvamVjdGlvbkRpcnR5LiBJdCB3aWxsIGhhdmVcclxuICAgICAqIG5vIHBlcmZvcm1hbmNlIGltcGFjdCBidXQgaXQgd2lsbCBhbGxvdyB0aGUgbmV4dCBjaGlsZCB0aGF0ICppcyogcHJvamVjdGluZ1xyXG4gICAgICogYnV0ICppc24ndCogZGlydHkgdG8ganVzdCBjaGVjayBpdHMgcGFyZW50IHRvIHNlZSBpZiAqYW55KiBhbmNlc3RvciBuZWVkc1xyXG4gICAgICogY29ycmVjdGluZy5cclxuICAgICAqL1xyXG4gICAgaWYgKCFub2RlLmlzUHJvamVjdGluZygpKSB7XHJcbiAgICAgICAgbm9kZS5pc1Byb2plY3Rpb25EaXJ0eSA9IG5vZGUucGFyZW50LmlzUHJvamVjdGlvbkRpcnR5O1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wYWdhdGUgaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgYW5kIGlzVHJhbnNmb3JtRGlydHlcclxuICAgICAqIHRocm91Z2hvdXQgdGhlIHdob2xlIHRyZWUuIEEgZnV0dXJlIHJldmlzaW9uIGNhbiB0YWtlIGFub3RoZXIgbG9vayBhdFxyXG4gICAgICogdGhpcyBidXQgZm9yIHNhZmV0eSB3ZSBzdGlsbCByZWNhbGN1YWx0ZSBzaGFyZWQgbm9kZXMuXHJcbiAgICAgKi9cclxuICAgIG5vZGUuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgfHwgKG5vZGUuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgPSBCb29sZWFuKG5vZGUuaXNQcm9qZWN0aW9uRGlydHkgfHxcclxuICAgICAgICBub2RlLnBhcmVudC5pc1Byb2plY3Rpb25EaXJ0eSB8fFxyXG4gICAgICAgIG5vZGUucGFyZW50LmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5KSk7XHJcbiAgICBub2RlLmlzVHJhbnNmb3JtRGlydHkgfHwgKG5vZGUuaXNUcmFuc2Zvcm1EaXJ0eSA9IG5vZGUucGFyZW50LmlzVHJhbnNmb3JtRGlydHkpO1xyXG59XHJcbmZ1bmN0aW9uIGNsZWFuRGlydHlOb2Rlcyhub2RlKSB7XHJcbiAgICBub2RlLmlzUHJvamVjdGlvbkRpcnR5ID1cclxuICAgICAgICBub2RlLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5ID1cclxuICAgICAgICAgICAgbm9kZS5pc1RyYW5zZm9ybURpcnR5ID1cclxuICAgICAgICAgICAgICAgIGZhbHNlO1xyXG59XHJcbmZ1bmN0aW9uIGNsZWFyU25hcHNob3Qobm9kZSkge1xyXG4gICAgbm9kZS5jbGVhclNuYXBzaG90KCk7XHJcbn1cclxuZnVuY3Rpb24gY2xlYXJNZWFzdXJlbWVudHMobm9kZSkge1xyXG4gICAgbm9kZS5jbGVhck1lYXN1cmVtZW50cygpO1xyXG59XHJcbmZ1bmN0aW9uIGNsZWFySXNMYXlvdXREaXJ0eShub2RlKSB7XHJcbiAgICBub2RlLmlzTGF5b3V0RGlydHkgPSBmYWxzZTtcclxufVxyXG5mdW5jdGlvbiByZXNldFRyYW5zZm9ybVN0eWxlKG5vZGUpIHtcclxuICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCB9ID0gbm9kZS5vcHRpb25zO1xyXG4gICAgaWYgKHZpc3VhbEVsZW1lbnQgJiYgdmlzdWFsRWxlbWVudC5nZXRQcm9wcygpLm9uQmVmb3JlTGF5b3V0TWVhc3VyZSkge1xyXG4gICAgICAgIHZpc3VhbEVsZW1lbnQubm90aWZ5KFwiQmVmb3JlTGF5b3V0TWVhc3VyZVwiKTtcclxuICAgIH1cclxuICAgIG5vZGUucmVzZXRUcmFuc2Zvcm0oKTtcclxufVxyXG5mdW5jdGlvbiBmaW5pc2hBbmltYXRpb24obm9kZSkge1xyXG4gICAgbm9kZS5maW5pc2hBbmltYXRpb24oKTtcclxuICAgIG5vZGUudGFyZ2V0RGVsdGEgPSBub2RlLnJlbGF0aXZlVGFyZ2V0ID0gbm9kZS50YXJnZXQgPSB1bmRlZmluZWQ7XHJcbiAgICBub2RlLmlzUHJvamVjdGlvbkRpcnR5ID0gdHJ1ZTtcclxufVxyXG5mdW5jdGlvbiByZXNvbHZlVGFyZ2V0RGVsdGEobm9kZSkge1xyXG4gICAgbm9kZS5yZXNvbHZlVGFyZ2V0RGVsdGEoKTtcclxufVxyXG5mdW5jdGlvbiBjYWxjUHJvamVjdGlvbihub2RlKSB7XHJcbiAgICBub2RlLmNhbGNQcm9qZWN0aW9uKCk7XHJcbn1cclxuZnVuY3Rpb24gcmVzZXRTa2V3QW5kUm90YXRpb24obm9kZSkge1xyXG4gICAgbm9kZS5yZXNldFNrZXdBbmRSb3RhdGlvbigpO1xyXG59XHJcbmZ1bmN0aW9uIHJlbW92ZUxlYWRTbmFwc2hvdHMoc3RhY2spIHtcclxuICAgIHN0YWNrLnJlbW92ZUxlYWRTbmFwc2hvdCgpO1xyXG59XHJcbmZ1bmN0aW9uIG1peEF4aXNEZWx0YShvdXRwdXQsIGRlbHRhLCBwKSB7XHJcbiAgICBvdXRwdXQudHJhbnNsYXRlID0gbWl4TnVtYmVyKGRlbHRhLnRyYW5zbGF0ZSwgMCwgcCk7XHJcbiAgICBvdXRwdXQuc2NhbGUgPSBtaXhOdW1iZXIoZGVsdGEuc2NhbGUsIDEsIHApO1xyXG4gICAgb3V0cHV0Lm9yaWdpbiA9IGRlbHRhLm9yaWdpbjtcclxuICAgIG91dHB1dC5vcmlnaW5Qb2ludCA9IGRlbHRhLm9yaWdpblBvaW50O1xyXG59XHJcbmZ1bmN0aW9uIG1peEF4aXMob3V0cHV0LCBmcm9tLCB0bywgcCkge1xyXG4gICAgb3V0cHV0Lm1pbiA9IG1peE51bWJlcihmcm9tLm1pbiwgdG8ubWluLCBwKTtcclxuICAgIG91dHB1dC5tYXggPSBtaXhOdW1iZXIoZnJvbS5tYXgsIHRvLm1heCwgcCk7XHJcbn1cclxuZnVuY3Rpb24gbWl4Qm94KG91dHB1dCwgZnJvbSwgdG8sIHApIHtcclxuICAgIG1peEF4aXMob3V0cHV0LngsIGZyb20ueCwgdG8ueCwgcCk7XHJcbiAgICBtaXhBeGlzKG91dHB1dC55LCBmcm9tLnksIHRvLnksIHApO1xyXG59XHJcbmZ1bmN0aW9uIGhhc09wYWNpdHlDcm9zc2ZhZGUobm9kZSkge1xyXG4gICAgcmV0dXJuIChub2RlLmFuaW1hdGlvblZhbHVlcyAmJiBub2RlLmFuaW1hdGlvblZhbHVlcy5vcGFjaXR5RXhpdCAhPT0gdW5kZWZpbmVkKTtcclxufVxyXG5jb25zdCBkZWZhdWx0TGF5b3V0VHJhbnNpdGlvbiA9IHtcclxuICAgIGR1cmF0aW9uOiAwLjQ1LFxyXG4gICAgZWFzZTogWzAuNCwgMCwgMC4xLCAxXSxcclxufTtcclxuY29uc3QgdXNlckFnZW50Q29udGFpbnMgPSAoc3RyaW5nKSA9PiB0eXBlb2YgbmF2aWdhdG9yICE9PSBcInVuZGVmaW5lZFwiICYmXHJcbiAgICBuYXZpZ2F0b3IudXNlckFnZW50ICYmXHJcbiAgICBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc3RyaW5nKTtcclxuLyoqXHJcbiAqIE1lYXN1cmVkIGJvdW5kaW5nIGJveGVzIG11c3QgYmUgcm91bmRlZCBpbiBTYWZhcmkgYW5kXHJcbiAqIGxlZnQgdW50b3VjaGVkIGluIENocm9tZSwgb3RoZXJ3aXNlIG5vbi1pbnRlZ2VyIGxheW91dHMgd2l0aGluIHNjYWxlZC11cCBlbGVtZW50c1xyXG4gKiBjYW4gYXBwZWFyIHRvIGp1bXAuXHJcbiAqL1xyXG5jb25zdCByb3VuZFBvaW50ID0gdXNlckFnZW50Q29udGFpbnMoXCJhcHBsZXdlYmtpdC9cIikgJiYgIXVzZXJBZ2VudENvbnRhaW5zKFwiY2hyb21lL1wiKVxyXG4gICAgPyBNYXRoLnJvdW5kXHJcbiAgICA6IG5vb3A7XHJcbmZ1bmN0aW9uIHJvdW5kQXhpcyhheGlzKSB7XHJcbiAgICAvLyBSb3VuZCB0byB0aGUgbmVhcmVzdCAuNSBwaXhlbHMgdG8gc3VwcG9ydCBzdWJwaXhlbCBsYXlvdXRzXHJcbiAgICBheGlzLm1pbiA9IHJvdW5kUG9pbnQoYXhpcy5taW4pO1xyXG4gICAgYXhpcy5tYXggPSByb3VuZFBvaW50KGF4aXMubWF4KTtcclxufVxyXG5mdW5jdGlvbiByb3VuZEJveChib3gpIHtcclxuICAgIHJvdW5kQXhpcyhib3gueCk7XHJcbiAgICByb3VuZEF4aXMoYm94LnkpO1xyXG59XHJcbmZ1bmN0aW9uIHNob3VsZEFuaW1hdGVQb3NpdGlvbk9ubHkoYW5pbWF0aW9uVHlwZSwgc25hcHNob3QsIGxheW91dCkge1xyXG4gICAgcmV0dXJuIChhbmltYXRpb25UeXBlID09PSBcInBvc2l0aW9uXCIgfHxcclxuICAgICAgICAoYW5pbWF0aW9uVHlwZSA9PT0gXCJwcmVzZXJ2ZS1hc3BlY3RcIiAmJlxyXG4gICAgICAgICAgICAhaXNOZWFyKGFzcGVjdFJhdGlvKHNuYXBzaG90KSwgYXNwZWN0UmF0aW8obGF5b3V0KSwgMC4yKSkpO1xyXG59XHJcbmZ1bmN0aW9uIGNoZWNrTm9kZVdhc1Njcm9sbFJvb3Qobm9kZSkge1xyXG4gICAgcmV0dXJuIG5vZGUgIT09IG5vZGUucm9vdCAmJiBub2RlLnNjcm9sbD8ud2FzUm9vdDtcclxufVxyXG5cclxuZXhwb3J0IHsgY2xlYW5EaXJ0eU5vZGVzLCBjcmVhdGVQcm9qZWN0aW9uTm9kZSwgbWl4QXhpcywgbWl4QXhpc0RlbHRhLCBtaXhCb3gsIHByb3BhZ2F0ZURpcnR5Tm9kZXMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/state.mjs":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/node/state.mjs ***!
|
||
\**********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ globalProjectionState: function() { return /* binding */ globalProjectionState; }\n/* harmony export */ });\n/**\r\n * This should only ever be modified on the client otherwise it'll\r\n * persist through server requests. If we need instanced states we\r\n * could lazy-init via root.\r\n */\r\nconst globalProjectionState = {\r\n /**\r\n * Global flag as to whether the tree has animated since the last time\r\n * we resized the window\r\n */\r\n hasAnimatedSinceResize: true,\r\n /**\r\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\r\n * update will be given a `data-projection-id` attribute.\r\n */\r\n hasEverUpdated: false,\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL3N0YXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2lDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL3N0YXRlLm1qcz8yYjk4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUaGlzIHNob3VsZCBvbmx5IGV2ZXIgYmUgbW9kaWZpZWQgb24gdGhlIGNsaWVudCBvdGhlcndpc2UgaXQnbGxcclxuICogcGVyc2lzdCB0aHJvdWdoIHNlcnZlciByZXF1ZXN0cy4gSWYgd2UgbmVlZCBpbnN0YW5jZWQgc3RhdGVzIHdlXHJcbiAqIGNvdWxkIGxhenktaW5pdCB2aWEgcm9vdC5cclxuICovXHJcbmNvbnN0IGdsb2JhbFByb2plY3Rpb25TdGF0ZSA9IHtcclxuICAgIC8qKlxyXG4gICAgICogR2xvYmFsIGZsYWcgYXMgdG8gd2hldGhlciB0aGUgdHJlZSBoYXMgYW5pbWF0ZWQgc2luY2UgdGhlIGxhc3QgdGltZVxyXG4gICAgICogd2UgcmVzaXplZCB0aGUgd2luZG93XHJcbiAgICAgKi9cclxuICAgIGhhc0FuaW1hdGVkU2luY2VSZXNpemU6IHRydWUsXHJcbiAgICAvKipcclxuICAgICAqIFdlIHNldCB0aGlzIHRvIHRydWUgb25jZSwgb24gdGhlIGZpcnN0IHVwZGF0ZS4gQW55IG5vZGVzIGFkZGVkIHRvIHRoZSB0cmVlIGJleW9uZCB0aGF0XHJcbiAgICAgKiB1cGRhdGUgd2lsbCBiZSBnaXZlbiBhIGBkYXRhLXByb2plY3Rpb24taWRgIGF0dHJpYnV0ZS5cclxuICAgICAqL1xyXG4gICAgaGFzRXZlclVwZGF0ZWQ6IGZhbHNlLFxyXG59O1xyXG5cclxuZXhwb3J0IHsgZ2xvYmFsUHJvamVjdGlvblN0YXRlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/node/state.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/shared/stack.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/shared/stack.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NodeStack: function() { return /* binding */ NodeStack; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs\");\n\r\n\r\nclass NodeStack {\r\n constructor() {\r\n this.members = [];\r\n }\r\n add(node) {\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.addUniqueItem)(this.members, node);\r\n node.scheduleRender();\r\n }\r\n remove(node) {\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.members, node);\r\n if (node === this.prevLead) {\r\n this.prevLead = undefined;\r\n }\r\n if (node === this.lead) {\r\n const prevLead = this.members[this.members.length - 1];\r\n if (prevLead) {\r\n this.promote(prevLead);\r\n }\r\n }\r\n }\r\n relegate(node) {\r\n const indexOfNode = this.members.findIndex((member) => node === member);\r\n if (indexOfNode === 0)\r\n return false;\r\n /**\r\n * Find the next projection node that is present\r\n */\r\n let prevLead;\r\n for (let i = indexOfNode; i >= 0; i--) {\r\n const member = this.members[i];\r\n if (member.isPresent !== false) {\r\n prevLead = member;\r\n break;\r\n }\r\n }\r\n if (prevLead) {\r\n this.promote(prevLead);\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n promote(node, preserveFollowOpacity) {\r\n const prevLead = this.lead;\r\n if (node === prevLead)\r\n return;\r\n this.prevLead = prevLead;\r\n this.lead = node;\r\n node.show();\r\n if (prevLead) {\r\n prevLead.instance && prevLead.scheduleRender();\r\n node.scheduleRender();\r\n node.resumeFrom = prevLead;\r\n if (preserveFollowOpacity) {\r\n node.resumeFrom.preserveOpacity = true;\r\n }\r\n if (prevLead.snapshot) {\r\n node.snapshot = prevLead.snapshot;\r\n node.snapshot.latestValues =\r\n prevLead.animationValues || prevLead.latestValues;\r\n }\r\n if (node.root && node.root.isUpdating) {\r\n node.isLayoutDirty = true;\r\n }\r\n const { crossfade } = node.options;\r\n if (crossfade === false) {\r\n prevLead.hide();\r\n }\r\n /**\r\n * TODO:\r\n * - Test border radius when previous node was deleted\r\n * - boxShadow mixing\r\n * - Shared between element A in scrolled container and element B (scroll stays the same or changes)\r\n * - Shared between element A in transformed container and element B (transform stays the same or changes)\r\n * - Shared between element A in scrolled page and element B (scroll stays the same or changes)\r\n * ---\r\n * - Crossfade opacity of root nodes\r\n * - layoutId changes after animation\r\n * - layoutId changes mid animation\r\n */\r\n }\r\n }\r\n exitAnimationComplete() {\r\n this.members.forEach((node) => {\r\n const { options, resumingFrom } = node;\r\n options.onExitComplete && options.onExitComplete();\r\n if (resumingFrom) {\r\n resumingFrom.options.onExitComplete &&\r\n resumingFrom.options.onExitComplete();\r\n }\r\n });\r\n }\r\n scheduleRender() {\r\n this.members.forEach((node) => {\r\n node.instance && node.scheduleRender(false);\r\n });\r\n }\r\n /**\r\n * Clear any leads that have been removed this render to prevent them from being\r\n * used in future animations and to prevent memory leaks\r\n */\r\n removeLeadSnapshot() {\r\n if (this.lead && this.lead.snapshot) {\r\n this.lead.snapshot = undefined;\r\n }\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9zaGFyZWQvc3RhY2subWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlEO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsMkRBQWE7QUFDckI7QUFDQTtBQUNBO0FBQ0EsUUFBUSx3REFBVTtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsUUFBUTtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsWUFBWTtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix3QkFBd0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDcUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9wcm9qZWN0aW9uL3NoYXJlZC9zdGFjay5tanM/YWUyYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRVbmlxdWVJdGVtLCByZW1vdmVJdGVtIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuXHJcbmNsYXNzIE5vZGVTdGFjayB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLm1lbWJlcnMgPSBbXTtcclxuICAgIH1cclxuICAgIGFkZChub2RlKSB7XHJcbiAgICAgICAgYWRkVW5pcXVlSXRlbSh0aGlzLm1lbWJlcnMsIG5vZGUpO1xyXG4gICAgICAgIG5vZGUuc2NoZWR1bGVSZW5kZXIoKTtcclxuICAgIH1cclxuICAgIHJlbW92ZShub2RlKSB7XHJcbiAgICAgICAgcmVtb3ZlSXRlbSh0aGlzLm1lbWJlcnMsIG5vZGUpO1xyXG4gICAgICAgIGlmIChub2RlID09PSB0aGlzLnByZXZMZWFkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJldkxlYWQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChub2RlID09PSB0aGlzLmxlYWQpIHtcclxuICAgICAgICAgICAgY29uc3QgcHJldkxlYWQgPSB0aGlzLm1lbWJlcnNbdGhpcy5tZW1iZXJzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgICAgICBpZiAocHJldkxlYWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvbW90ZShwcmV2TGVhZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZWxlZ2F0ZShub2RlKSB7XHJcbiAgICAgICAgY29uc3QgaW5kZXhPZk5vZGUgPSB0aGlzLm1lbWJlcnMuZmluZEluZGV4KChtZW1iZXIpID0+IG5vZGUgPT09IG1lbWJlcik7XHJcbiAgICAgICAgaWYgKGluZGV4T2ZOb2RlID09PSAwKVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogRmluZCB0aGUgbmV4dCBwcm9qZWN0aW9uIG5vZGUgdGhhdCBpcyBwcmVzZW50XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgbGV0IHByZXZMZWFkO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBpbmRleE9mTm9kZTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICAgICAgY29uc3QgbWVtYmVyID0gdGhpcy5tZW1iZXJzW2ldO1xyXG4gICAgICAgICAgICBpZiAobWVtYmVyLmlzUHJlc2VudCAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIHByZXZMZWFkID0gbWVtYmVyO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHByZXZMZWFkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJvbW90ZShwcmV2TGVhZCk7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByb21vdGUobm9kZSwgcHJlc2VydmVGb2xsb3dPcGFjaXR5KSB7XHJcbiAgICAgICAgY29uc3QgcHJldkxlYWQgPSB0aGlzLmxlYWQ7XHJcbiAgICAgICAgaWYgKG5vZGUgPT09IHByZXZMZWFkKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wcmV2TGVhZCA9IHByZXZMZWFkO1xyXG4gICAgICAgIHRoaXMubGVhZCA9IG5vZGU7XHJcbiAgICAgICAgbm9kZS5zaG93KCk7XHJcbiAgICAgICAgaWYgKHByZXZMZWFkKSB7XHJcbiAgICAgICAgICAgIHByZXZMZWFkLmluc3RhbmNlICYmIHByZXZMZWFkLnNjaGVkdWxlUmVuZGVyKCk7XHJcbiAgICAgICAgICAgIG5vZGUuc2NoZWR1bGVSZW5kZXIoKTtcclxuICAgICAgICAgICAgbm9kZS5yZXN1bWVGcm9tID0gcHJldkxlYWQ7XHJcbiAgICAgICAgICAgIGlmIChwcmVzZXJ2ZUZvbGxvd09wYWNpdHkpIHtcclxuICAgICAgICAgICAgICAgIG5vZGUucmVzdW1lRnJvbS5wcmVzZXJ2ZU9wYWNpdHkgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChwcmV2TGVhZC5zbmFwc2hvdCkge1xyXG4gICAgICAgICAgICAgICAgbm9kZS5zbmFwc2hvdCA9IHByZXZMZWFkLnNuYXBzaG90O1xyXG4gICAgICAgICAgICAgICAgbm9kZS5zbmFwc2hvdC5sYXRlc3RWYWx1ZXMgPVxyXG4gICAgICAgICAgICAgICAgICAgIHByZXZMZWFkLmFuaW1hdGlvblZhbHVlcyB8fCBwcmV2TGVhZC5sYXRlc3RWYWx1ZXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKG5vZGUucm9vdCAmJiBub2RlLnJvb3QuaXNVcGRhdGluZykge1xyXG4gICAgICAgICAgICAgICAgbm9kZS5pc0xheW91dERpcnR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB7IGNyb3NzZmFkZSB9ID0gbm9kZS5vcHRpb25zO1xyXG4gICAgICAgICAgICBpZiAoY3Jvc3NmYWRlID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgcHJldkxlYWQuaGlkZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBUT0RPOlxyXG4gICAgICAgICAgICAgKiAgIC0gVGVzdCBib3JkZXIgcmFkaXVzIHdoZW4gcHJldmlvdXMgbm9kZSB3YXMgZGVsZXRlZFxyXG4gICAgICAgICAgICAgKiAgIC0gYm94U2hhZG93IG1peGluZ1xyXG4gICAgICAgICAgICAgKiAgIC0gU2hhcmVkIGJldHdlZW4gZWxlbWVudCBBIGluIHNjcm9sbGVkIGNvbnRhaW5lciBhbmQgZWxlbWVudCBCIChzY3JvbGwgc3RheXMgdGhlIHNhbWUgb3IgY2hhbmdlcylcclxuICAgICAgICAgICAgICogICAtIFNoYXJlZCBiZXR3ZWVuIGVsZW1lbnQgQSBpbiB0cmFuc2Zvcm1lZCBjb250YWluZXIgYW5kIGVsZW1lbnQgQiAodHJhbnNmb3JtIHN0YXlzIHRoZSBzYW1lIG9yIGNoYW5nZXMpXHJcbiAgICAgICAgICAgICAqICAgLSBTaGFyZWQgYmV0d2VlbiBlbGVtZW50IEEgaW4gc2Nyb2xsZWQgcGFnZSBhbmQgZWxlbWVudCBCIChzY3JvbGwgc3RheXMgdGhlIHNhbWUgb3IgY2hhbmdlcylcclxuICAgICAgICAgICAgICogLS0tXHJcbiAgICAgICAgICAgICAqICAgLSBDcm9zc2ZhZGUgb3BhY2l0eSBvZiByb290IG5vZGVzXHJcbiAgICAgICAgICAgICAqICAgLSBsYXlvdXRJZCBjaGFuZ2VzIGFmdGVyIGFuaW1hdGlvblxyXG4gICAgICAgICAgICAgKiAgIC0gbGF5b3V0SWQgY2hhbmdlcyBtaWQgYW5pbWF0aW9uXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGV4aXRBbmltYXRpb25Db21wbGV0ZSgpIHtcclxuICAgICAgICB0aGlzLm1lbWJlcnMuZm9yRWFjaCgobm9kZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IG9wdGlvbnMsIHJlc3VtaW5nRnJvbSB9ID0gbm9kZTtcclxuICAgICAgICAgICAgb3B0aW9ucy5vbkV4aXRDb21wbGV0ZSAmJiBvcHRpb25zLm9uRXhpdENvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bWluZ0Zyb20pIHtcclxuICAgICAgICAgICAgICAgIHJlc3VtaW5nRnJvbS5vcHRpb25zLm9uRXhpdENvbXBsZXRlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdW1pbmdGcm9tLm9wdGlvbnMub25FeGl0Q29tcGxldGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgc2NoZWR1bGVSZW5kZXIoKSB7XHJcbiAgICAgICAgdGhpcy5tZW1iZXJzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgICAgICAgbm9kZS5pbnN0YW5jZSAmJiBub2RlLnNjaGVkdWxlUmVuZGVyKGZhbHNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ2xlYXIgYW55IGxlYWRzIHRoYXQgaGF2ZSBiZWVuIHJlbW92ZWQgdGhpcyByZW5kZXIgdG8gcHJldmVudCB0aGVtIGZyb20gYmVpbmdcclxuICAgICAqIHVzZWQgaW4gZnV0dXJlIGFuaW1hdGlvbnMgYW5kIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZUxlYWRTbmFwc2hvdCgpIHtcclxuICAgICAgICBpZiAodGhpcy5sZWFkICYmIHRoaXMubGVhZC5zbmFwc2hvdCkge1xyXG4gICAgICAgICAgICB0aGlzLmxlYWQuc25hcHNob3QgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgeyBOb2RlU3RhY2sgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/shared/stack.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs ***!
|
||
\**************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ correctBorderRadius: function() { return /* binding */ correctBorderRadius; },\n/* harmony export */ pixelsToPercent: function() { return /* binding */ pixelsToPercent; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n\r\n\r\nfunction pixelsToPercent(pixels, axis) {\r\n if (axis.max === axis.min)\r\n return 0;\r\n return (pixels / (axis.max - axis.min)) * 100;\r\n}\r\n/**\r\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\r\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\r\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\r\n * borderRadius in both states. If we animate between the two in pixels that will trigger\r\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\r\n */\r\nconst correctBorderRadius = {\r\n correct: (latest, node) => {\r\n if (!node.target)\r\n return latest;\r\n /**\r\n * If latest is a string, if it's a percentage we can return immediately as it's\r\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\r\n */\r\n if (typeof latest === \"string\") {\r\n if (motion_dom__WEBPACK_IMPORTED_MODULE_0__.px.test(latest)) {\r\n latest = parseFloat(latest);\r\n }\r\n else {\r\n return latest;\r\n }\r\n }\r\n /**\r\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\r\n * pixel value as a percentage of each axis\r\n */\r\n const x = pixelsToPercent(latest, node.target.x);\r\n const y = pixelsToPercent(latest, node.target.y);\r\n return `${x}% ${y}%`;\r\n },\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtYm9yZGVyLXJhZGl1cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWdDO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDBDQUFFO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixFQUFFLElBQUksRUFBRTtBQUMxQixLQUFLO0FBQ0w7QUFDQTtBQUNnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWJvcmRlci1yYWRpdXMubWpzP2U4MTUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHggfSBmcm9tICdtb3Rpb24tZG9tJztcclxuXHJcbmZ1bmN0aW9uIHBpeGVsc1RvUGVyY2VudChwaXhlbHMsIGF4aXMpIHtcclxuICAgIGlmIChheGlzLm1heCA9PT0gYXhpcy5taW4pXHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICByZXR1cm4gKHBpeGVscyAvIChheGlzLm1heCAtIGF4aXMubWluKSkgKiAxMDA7XHJcbn1cclxuLyoqXHJcbiAqIFdlIGFsd2F5cyBjb3JyZWN0IGJvcmRlclJhZGl1cyBhcyBhIHBlcmNlbnRhZ2UgcmF0aGVyIHRoYW4gcGl4ZWxzIHRvIHJlZHVjZSBwYWludHMuXHJcbiAqIEZvciBleGFtcGxlLCBpZiB5b3UgYXJlIHByb2plY3RpbmcgYSBib3ggdGhhdCBpcyAxMDBweCB3aWRlIHdpdGggYSAxMHB4IGJvcmRlclJhZGl1c1xyXG4gKiBpbnRvIGEgYm94IHRoYXQgaXMgMjAwcHggd2lkZSB3aXRoIGEgMjBweCBib3JkZXJSYWRpdXMsIHRoYXQgaXMgYWN0dWFsbHkgYSAxMCVcclxuICogYm9yZGVyUmFkaXVzIGluIGJvdGggc3RhdGVzLiBJZiB3ZSBhbmltYXRlIGJldHdlZW4gdGhlIHR3byBpbiBwaXhlbHMgdGhhdCB3aWxsIHRyaWdnZXJcclxuICogYSBwYWludCBlYWNoIHRpbWUuIElmIHdlIGFuaW1hdGUgYmV0d2VlbiB0aGUgdHdvIGluIHBlcmNlbnRhZ2Ugd2UnbGwgYXZvaWQgYSBwYWludC5cclxuICovXHJcbmNvbnN0IGNvcnJlY3RCb3JkZXJSYWRpdXMgPSB7XHJcbiAgICBjb3JyZWN0OiAobGF0ZXN0LCBub2RlKSA9PiB7XHJcbiAgICAgICAgaWYgKCFub2RlLnRhcmdldClcclxuICAgICAgICAgICAgcmV0dXJuIGxhdGVzdDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiBsYXRlc3QgaXMgYSBzdHJpbmcsIGlmIGl0J3MgYSBwZXJjZW50YWdlIHdlIGNhbiByZXR1cm4gaW1tZWRpYXRlbHkgYXMgaXQnc1xyXG4gICAgICAgICAqIGdvaW5nIHRvIGJlIHN0cmV0Y2hlZCBhcHByb3ByaWF0ZWx5LiBPdGhlcndpc2UsIGlmIGl0J3MgYSBwaXhlbCwgY29udmVydCBpdCB0byBhIG51bWJlci5cclxuICAgICAgICAgKi9cclxuICAgICAgICBpZiAodHlwZW9mIGxhdGVzdCA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICBpZiAocHgudGVzdChsYXRlc3QpKSB7XHJcbiAgICAgICAgICAgICAgICBsYXRlc3QgPSBwYXJzZUZsb2F0KGxhdGVzdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbGF0ZXN0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElmIGxhdGVzdCBpcyBhIG51bWJlciwgaXQncyBhIHBpeGVsIHZhbHVlLiBXZSB1c2UgdGhlIGN1cnJlbnQgdmlld3BvcnRCb3ggdG8gY2FsY3VsYXRlIHRoYXRcclxuICAgICAgICAgKiBwaXhlbCB2YWx1ZSBhcyBhIHBlcmNlbnRhZ2Ugb2YgZWFjaCBheGlzXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY29uc3QgeCA9IHBpeGVsc1RvUGVyY2VudChsYXRlc3QsIG5vZGUudGFyZ2V0LngpO1xyXG4gICAgICAgIGNvbnN0IHkgPSBwaXhlbHNUb1BlcmNlbnQobGF0ZXN0LCBub2RlLnRhcmdldC55KTtcclxuICAgICAgICByZXR1cm4gYCR7eH0lICR7eX0lYDtcclxuICAgIH0sXHJcbn07XHJcblxyXG5leHBvcnQgeyBjb3JyZWN0Qm9yZGVyUmFkaXVzLCBwaXhlbHNUb1BlcmNlbnQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs ***!
|
||
\***********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ correctBoxShadow: function() { return /* binding */ correctBoxShadow; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\r\n\r\nconst correctBoxShadow = {\r\n correct: (latest, { treeScale, projectionDelta }) => {\r\n const original = latest;\r\n const shadow = motion_dom__WEBPACK_IMPORTED_MODULE_0__.complex.parse(latest);\r\n // TODO: Doesn't support multiple shadows\r\n if (shadow.length > 5)\r\n return original;\r\n const template = motion_dom__WEBPACK_IMPORTED_MODULE_0__.complex.createTransformer(latest);\r\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\r\n // Calculate the overall context scale\r\n const xScale = projectionDelta.x.scale * treeScale.x;\r\n const yScale = projectionDelta.y.scale * treeScale.y;\r\n shadow[0 + offset] /= xScale;\r\n shadow[1 + offset] /= yScale;\r\n /**\r\n * Ideally we'd correct x and y scales individually, but because blur and\r\n * spread apply to both we have to take a scale average and apply that instead.\r\n * We could potentially improve the outcome of this by incorporating the ratio between\r\n * the two scales.\r\n */\r\n const averageScale = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(xScale, yScale, 0.5);\r\n // Blur\r\n if (typeof shadow[2 + offset] === \"number\")\r\n shadow[2 + offset] /= averageScale;\r\n // Spread\r\n if (typeof shadow[3 + offset] === \"number\")\r\n shadow[3 + offset] /= averageScale;\r\n return template(shadow);\r\n },\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtYm94LXNoYWRvdy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWdEO0FBQ2hEO0FBQ0E7QUFDQSx3QkFBd0IsNEJBQTRCO0FBQ3BEO0FBQ0EsdUJBQXVCLCtDQUFPO0FBQzlCO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QiwrQ0FBTztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIscURBQVM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUM0QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWJveC1zaGFkb3cubWpzP2ZlMmEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGxleCwgbWl4TnVtYmVyIH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcblxyXG5jb25zdCBjb3JyZWN0Qm94U2hhZG93ID0ge1xyXG4gICAgY29ycmVjdDogKGxhdGVzdCwgeyB0cmVlU2NhbGUsIHByb2plY3Rpb25EZWx0YSB9KSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBsYXRlc3Q7XHJcbiAgICAgICAgY29uc3Qgc2hhZG93ID0gY29tcGxleC5wYXJzZShsYXRlc3QpO1xyXG4gICAgICAgIC8vIFRPRE86IERvZXNuJ3Qgc3VwcG9ydCBtdWx0aXBsZSBzaGFkb3dzXHJcbiAgICAgICAgaWYgKHNoYWRvdy5sZW5ndGggPiA1KVxyXG4gICAgICAgICAgICByZXR1cm4gb3JpZ2luYWw7XHJcbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSBjb21wbGV4LmNyZWF0ZVRyYW5zZm9ybWVyKGxhdGVzdCk7XHJcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdHlwZW9mIHNoYWRvd1swXSAhPT0gXCJudW1iZXJcIiA/IDEgOiAwO1xyXG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgb3ZlcmFsbCBjb250ZXh0IHNjYWxlXHJcbiAgICAgICAgY29uc3QgeFNjYWxlID0gcHJvamVjdGlvbkRlbHRhLnguc2NhbGUgKiB0cmVlU2NhbGUueDtcclxuICAgICAgICBjb25zdCB5U2NhbGUgPSBwcm9qZWN0aW9uRGVsdGEueS5zY2FsZSAqIHRyZWVTY2FsZS55O1xyXG4gICAgICAgIHNoYWRvd1swICsgb2Zmc2V0XSAvPSB4U2NhbGU7XHJcbiAgICAgICAgc2hhZG93WzEgKyBvZmZzZXRdIC89IHlTY2FsZTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZGVhbGx5IHdlJ2QgY29ycmVjdCB4IGFuZCB5IHNjYWxlcyBpbmRpdmlkdWFsbHksIGJ1dCBiZWNhdXNlIGJsdXIgYW5kXHJcbiAgICAgICAgICogc3ByZWFkIGFwcGx5IHRvIGJvdGggd2UgaGF2ZSB0byB0YWtlIGEgc2NhbGUgYXZlcmFnZSBhbmQgYXBwbHkgdGhhdCBpbnN0ZWFkLlxyXG4gICAgICAgICAqIFdlIGNvdWxkIHBvdGVudGlhbGx5IGltcHJvdmUgdGhlIG91dGNvbWUgb2YgdGhpcyBieSBpbmNvcnBvcmF0aW5nIHRoZSByYXRpbyBiZXR3ZWVuXHJcbiAgICAgICAgICogdGhlIHR3byBzY2FsZXMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY29uc3QgYXZlcmFnZVNjYWxlID0gbWl4TnVtYmVyKHhTY2FsZSwgeVNjYWxlLCAwLjUpO1xyXG4gICAgICAgIC8vIEJsdXJcclxuICAgICAgICBpZiAodHlwZW9mIHNoYWRvd1syICsgb2Zmc2V0XSA9PT0gXCJudW1iZXJcIilcclxuICAgICAgICAgICAgc2hhZG93WzIgKyBvZmZzZXRdIC89IGF2ZXJhZ2VTY2FsZTtcclxuICAgICAgICAvLyBTcHJlYWRcclxuICAgICAgICBpZiAodHlwZW9mIHNoYWRvd1szICsgb2Zmc2V0XSA9PT0gXCJudW1iZXJcIilcclxuICAgICAgICAgICAgc2hhZG93WzMgKyBvZmZzZXRdIC89IGF2ZXJhZ2VTY2FsZTtcclxuICAgICAgICByZXR1cm4gdGVtcGxhdGUoc2hhZG93KTtcclxuICAgIH0sXHJcbn07XHJcblxyXG5leHBvcnQgeyBjb3JyZWN0Qm94U2hhZG93IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs ***!
|
||
\***********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addScaleCorrector: function() { return /* binding */ addScaleCorrector; },\n/* harmony export */ scaleCorrectors: function() { return /* binding */ scaleCorrectors; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n\r\n\r\nconst scaleCorrectors = {};\r\nfunction addScaleCorrector(correctors) {\r\n for (const key in correctors) {\r\n scaleCorrectors[key] = correctors[key];\r\n if ((0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isCSSVariableName)(key)) {\r\n scaleCorrectors[key].isCSSVariable = true;\r\n }\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtY29ycmVjdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQStDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLDZEQUFpQjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQzhDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtY29ycmVjdGlvbi5tanM/OWQ4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0NTU1ZhcmlhYmxlTmFtZSB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5cclxuY29uc3Qgc2NhbGVDb3JyZWN0b3JzID0ge307XHJcbmZ1bmN0aW9uIGFkZFNjYWxlQ29ycmVjdG9yKGNvcnJlY3RvcnMpIHtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGNvcnJlY3RvcnMpIHtcclxuICAgICAgICBzY2FsZUNvcnJlY3RvcnNba2V5XSA9IGNvcnJlY3RvcnNba2V5XTtcclxuICAgICAgICBpZiAoaXNDU1NWYXJpYWJsZU5hbWUoa2V5KSkge1xyXG4gICAgICAgICAgICBzY2FsZUNvcnJlY3RvcnNba2V5XS5pc0NTU1ZhcmlhYmxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IGFkZFNjYWxlQ29ycmVjdG9yLCBzY2FsZUNvcnJlY3RvcnMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/styles/transform.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/styles/transform.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildProjectionTransform: function() { return /* binding */ buildProjectionTransform; }\n/* harmony export */ });\nfunction buildProjectionTransform(delta, treeScale, latestTransform) {\r\n let transform = \"\";\r\n /**\r\n * The translations we use to calculate are always relative to the viewport coordinate space.\r\n * But when we apply scales, we also scale the coordinate space of an element and its children.\r\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\r\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\r\n */\r\n const xTranslate = delta.x.translate / treeScale.x;\r\n const yTranslate = delta.y.translate / treeScale.y;\r\n const zTranslate = latestTransform?.z || 0;\r\n if (xTranslate || yTranslate || zTranslate) {\r\n transform = `translate3d(${xTranslate}px, ${yTranslate}px, ${zTranslate}px) `;\r\n }\r\n /**\r\n * Apply scale correction for the tree transform.\r\n * This will apply scale to the screen-orientated axes.\r\n */\r\n if (treeScale.x !== 1 || treeScale.y !== 1) {\r\n transform += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\r\n }\r\n if (latestTransform) {\r\n const { transformPerspective, rotate, rotateX, rotateY, skewX, skewY } = latestTransform;\r\n if (transformPerspective)\r\n transform = `perspective(${transformPerspective}px) ${transform}`;\r\n if (rotate)\r\n transform += `rotate(${rotate}deg) `;\r\n if (rotateX)\r\n transform += `rotateX(${rotateX}deg) `;\r\n if (rotateY)\r\n transform += `rotateY(${rotateY}deg) `;\r\n if (skewX)\r\n transform += `skewX(${skewX}deg) `;\r\n if (skewY)\r\n transform += `skewY(${skewY}deg) `;\r\n }\r\n /**\r\n * Apply scale to match the size of the element to the size we want it.\r\n * This will apply scale to the element-orientated axes.\r\n */\r\n const elementScaleX = delta.x.scale * treeScale.x;\r\n const elementScaleY = delta.y.scale * treeScale.y;\r\n if (elementScaleX !== 1 || elementScaleY !== 1) {\r\n transform += `scale(${elementScaleX}, ${elementScaleY})`;\r\n }\r\n return transform || \"none\";\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLFdBQVcsTUFBTSxXQUFXLE1BQU0sV0FBVztBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsZ0JBQWdCLElBQUksZ0JBQWdCO0FBQ2xFO0FBQ0E7QUFDQSxnQkFBZ0IsK0RBQStEO0FBQy9FO0FBQ0EsdUNBQXVDLHFCQUFxQixNQUFNLFVBQVU7QUFDNUU7QUFDQSxtQ0FBbUMsT0FBTztBQUMxQztBQUNBLG9DQUFvQyxRQUFRO0FBQzVDO0FBQ0Esb0NBQW9DLFFBQVE7QUFDNUM7QUFDQSxrQ0FBa0MsTUFBTTtBQUN4QztBQUNBLGtDQUFrQyxNQUFNO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsY0FBYyxJQUFJLGNBQWM7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDb0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9wcm9qZWN0aW9uL3N0eWxlcy90cmFuc2Zvcm0ubWpzP2Y3NjMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gYnVpbGRQcm9qZWN0aW9uVHJhbnNmb3JtKGRlbHRhLCB0cmVlU2NhbGUsIGxhdGVzdFRyYW5zZm9ybSkge1xyXG4gICAgbGV0IHRyYW5zZm9ybSA9IFwiXCI7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0cmFuc2xhdGlvbnMgd2UgdXNlIHRvIGNhbGN1bGF0ZSBhcmUgYWx3YXlzIHJlbGF0aXZlIHRvIHRoZSB2aWV3cG9ydCBjb29yZGluYXRlIHNwYWNlLlxyXG4gICAgICogQnV0IHdoZW4gd2UgYXBwbHkgc2NhbGVzLCB3ZSBhbHNvIHNjYWxlIHRoZSBjb29yZGluYXRlIHNwYWNlIG9mIGFuIGVsZW1lbnQgYW5kIGl0cyBjaGlsZHJlbi5cclxuICAgICAqIEZvciBpbnN0YW5jZSBpZiB3ZSBoYXZlIGEgdHJlZVNjYWxlICh0aGUgY3VsbWluYXRpb24gb2YgYWxsIHBhcmVudCBzY2FsZXMpIG9mIDAuNSBhbmQgd2UgbmVlZFxyXG4gICAgICogdG8gbW92ZSBhbiBlbGVtZW50IDEwMCBwaXhlbHMsIHdlIGFjdHVhbGx5IG5lZWQgdG8gbW92ZSBpdCAyMDAgaW4gd2l0aGluIHRoYXQgc2NhbGVkIHNwYWNlLlxyXG4gICAgICovXHJcbiAgICBjb25zdCB4VHJhbnNsYXRlID0gZGVsdGEueC50cmFuc2xhdGUgLyB0cmVlU2NhbGUueDtcclxuICAgIGNvbnN0IHlUcmFuc2xhdGUgPSBkZWx0YS55LnRyYW5zbGF0ZSAvIHRyZWVTY2FsZS55O1xyXG4gICAgY29uc3QgelRyYW5zbGF0ZSA9IGxhdGVzdFRyYW5zZm9ybT8ueiB8fCAwO1xyXG4gICAgaWYgKHhUcmFuc2xhdGUgfHwgeVRyYW5zbGF0ZSB8fCB6VHJhbnNsYXRlKSB7XHJcbiAgICAgICAgdHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7eFRyYW5zbGF0ZX1weCwgJHt5VHJhbnNsYXRlfXB4LCAke3pUcmFuc2xhdGV9cHgpIGA7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEFwcGx5IHNjYWxlIGNvcnJlY3Rpb24gZm9yIHRoZSB0cmVlIHRyYW5zZm9ybS5cclxuICAgICAqIFRoaXMgd2lsbCBhcHBseSBzY2FsZSB0byB0aGUgc2NyZWVuLW9yaWVudGF0ZWQgYXhlcy5cclxuICAgICAqL1xyXG4gICAgaWYgKHRyZWVTY2FsZS54ICE9PSAxIHx8IHRyZWVTY2FsZS55ICE9PSAxKSB7XHJcbiAgICAgICAgdHJhbnNmb3JtICs9IGBzY2FsZSgkezEgLyB0cmVlU2NhbGUueH0sICR7MSAvIHRyZWVTY2FsZS55fSkgYDtcclxuICAgIH1cclxuICAgIGlmIChsYXRlc3RUcmFuc2Zvcm0pIHtcclxuICAgICAgICBjb25zdCB7IHRyYW5zZm9ybVBlcnNwZWN0aXZlLCByb3RhdGUsIHJvdGF0ZVgsIHJvdGF0ZVksIHNrZXdYLCBza2V3WSB9ID0gbGF0ZXN0VHJhbnNmb3JtO1xyXG4gICAgICAgIGlmICh0cmFuc2Zvcm1QZXJzcGVjdGl2ZSlcclxuICAgICAgICAgICAgdHJhbnNmb3JtID0gYHBlcnNwZWN0aXZlKCR7dHJhbnNmb3JtUGVyc3BlY3RpdmV9cHgpICR7dHJhbnNmb3JtfWA7XHJcbiAgICAgICAgaWYgKHJvdGF0ZSlcclxuICAgICAgICAgICAgdHJhbnNmb3JtICs9IGByb3RhdGUoJHtyb3RhdGV9ZGVnKSBgO1xyXG4gICAgICAgIGlmIChyb3RhdGVYKVxyXG4gICAgICAgICAgICB0cmFuc2Zvcm0gKz0gYHJvdGF0ZVgoJHtyb3RhdGVYfWRlZykgYDtcclxuICAgICAgICBpZiAocm90YXRlWSlcclxuICAgICAgICAgICAgdHJhbnNmb3JtICs9IGByb3RhdGVZKCR7cm90YXRlWX1kZWcpIGA7XHJcbiAgICAgICAgaWYgKHNrZXdYKVxyXG4gICAgICAgICAgICB0cmFuc2Zvcm0gKz0gYHNrZXdYKCR7c2tld1h9ZGVnKSBgO1xyXG4gICAgICAgIGlmIChza2V3WSlcclxuICAgICAgICAgICAgdHJhbnNmb3JtICs9IGBza2V3WSgke3NrZXdZfWRlZykgYDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQXBwbHkgc2NhbGUgdG8gbWF0Y2ggdGhlIHNpemUgb2YgdGhlIGVsZW1lbnQgdG8gdGhlIHNpemUgd2Ugd2FudCBpdC5cclxuICAgICAqIFRoaXMgd2lsbCBhcHBseSBzY2FsZSB0byB0aGUgZWxlbWVudC1vcmllbnRhdGVkIGF4ZXMuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGVsZW1lbnRTY2FsZVggPSBkZWx0YS54LnNjYWxlICogdHJlZVNjYWxlLng7XHJcbiAgICBjb25zdCBlbGVtZW50U2NhbGVZID0gZGVsdGEueS5zY2FsZSAqIHRyZWVTY2FsZS55O1xyXG4gICAgaWYgKGVsZW1lbnRTY2FsZVggIT09IDEgfHwgZWxlbWVudFNjYWxlWSAhPT0gMSkge1xyXG4gICAgICAgIHRyYW5zZm9ybSArPSBgc2NhbGUoJHtlbGVtZW50U2NhbGVYfSwgJHtlbGVtZW50U2NhbGVZfSlgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRyYW5zZm9ybSB8fCBcIm5vbmVcIjtcclxufVxyXG5cclxuZXhwb3J0IHsgYnVpbGRQcm9qZWN0aW9uVHJhbnNmb3JtIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/styles/transform.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ eachAxis: function() { return /* binding */ eachAxis; }\n/* harmony export */ });\nfunction eachAxis(callback) {\r\n return [callback(\"x\"), callback(\"y\")];\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9lYWNoLWF4aXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3Byb2plY3Rpb24vdXRpbHMvZWFjaC1heGlzLm1qcz9iZTNhIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGVhY2hBeGlzKGNhbGxiYWNrKSB7XHJcbiAgICByZXR1cm4gW2NhbGxiYWNrKFwieFwiKSwgY2FsbGJhY2soXCJ5XCIpXTtcclxufVxyXG5cclxuZXhwb3J0IHsgZWFjaEF4aXMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ has2DTranslate: function() { return /* binding */ has2DTranslate; },\n/* harmony export */ hasScale: function() { return /* binding */ hasScale; },\n/* harmony export */ hasTransform: function() { return /* binding */ hasTransform; }\n/* harmony export */ });\nfunction isIdentityScale(scale) {\r\n return scale === undefined || scale === 1;\r\n}\r\nfunction hasScale({ scale, scaleX, scaleY }) {\r\n return (!isIdentityScale(scale) ||\r\n !isIdentityScale(scaleX) ||\r\n !isIdentityScale(scaleY));\r\n}\r\nfunction hasTransform(values) {\r\n return (hasScale(values) ||\r\n has2DTranslate(values) ||\r\n values.z ||\r\n values.rotate ||\r\n values.rotateX ||\r\n values.rotateY ||\r\n values.skewX ||\r\n values.skewY);\r\n}\r\nfunction has2DTranslate(values) {\r\n return is2DTranslate(values.x) || is2DTranslate(values.y);\r\n}\r\nfunction is2DTranslate(value) {\r\n return value && value !== \"0%\";\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9oYXMtdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsdUJBQXVCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNrRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3Byb2plY3Rpb24vdXRpbHMvaGFzLXRyYW5zZm9ybS5tanM/MDNjOCJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpc0lkZW50aXR5U2NhbGUoc2NhbGUpIHtcclxuICAgIHJldHVybiBzY2FsZSA9PT0gdW5kZWZpbmVkIHx8IHNjYWxlID09PSAxO1xyXG59XHJcbmZ1bmN0aW9uIGhhc1NjYWxlKHsgc2NhbGUsIHNjYWxlWCwgc2NhbGVZIH0pIHtcclxuICAgIHJldHVybiAoIWlzSWRlbnRpdHlTY2FsZShzY2FsZSkgfHxcclxuICAgICAgICAhaXNJZGVudGl0eVNjYWxlKHNjYWxlWCkgfHxcclxuICAgICAgICAhaXNJZGVudGl0eVNjYWxlKHNjYWxlWSkpO1xyXG59XHJcbmZ1bmN0aW9uIGhhc1RyYW5zZm9ybSh2YWx1ZXMpIHtcclxuICAgIHJldHVybiAoaGFzU2NhbGUodmFsdWVzKSB8fFxyXG4gICAgICAgIGhhczJEVHJhbnNsYXRlKHZhbHVlcykgfHxcclxuICAgICAgICB2YWx1ZXMueiB8fFxyXG4gICAgICAgIHZhbHVlcy5yb3RhdGUgfHxcclxuICAgICAgICB2YWx1ZXMucm90YXRlWCB8fFxyXG4gICAgICAgIHZhbHVlcy5yb3RhdGVZIHx8XHJcbiAgICAgICAgdmFsdWVzLnNrZXdYIHx8XHJcbiAgICAgICAgdmFsdWVzLnNrZXdZKTtcclxufVxyXG5mdW5jdGlvbiBoYXMyRFRyYW5zbGF0ZSh2YWx1ZXMpIHtcclxuICAgIHJldHVybiBpczJEVHJhbnNsYXRlKHZhbHVlcy54KSB8fCBpczJEVHJhbnNsYXRlKHZhbHVlcy55KTtcclxufVxyXG5mdW5jdGlvbiBpczJEVHJhbnNsYXRlKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUgIT09IFwiMCVcIjtcclxufVxyXG5cclxuZXhwb3J0IHsgaGFzMkRUcmFuc2xhdGUsIGhhc1NjYWxlLCBoYXNUcmFuc2Zvcm0gfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/utils/measure.mjs":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/projection/utils/measure.mjs ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ measurePageBox: function() { return /* binding */ measurePageBox; },\n/* harmony export */ measureViewportBox: function() { return /* binding */ measureViewportBox; }\n/* harmony export */ });\n/* harmony import */ var _geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry/conversion.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs\");\n/* harmony import */ var _geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry/delta-apply.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs\");\n\r\n\r\n\r\nfunction measureViewportBox(instance, transformPoint) {\r\n return (0,_geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__.convertBoundingBoxToBox)((0,_geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__.transformBoxPoints)(instance.getBoundingClientRect(), transformPoint));\r\n}\r\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\r\n const viewportBox = measureViewportBox(element, transformPagePoint);\r\n const { scroll } = rootProjectionNode;\r\n if (scroll) {\r\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_1__.translateAxis)(viewportBox.x, scroll.offset.x);\r\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_1__.translateAxis)(viewportBox.y, scroll.offset.y);\r\n }\r\n return viewportBox;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9tZWFzdXJlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXlGO0FBQzdCO0FBQzVEO0FBQ0E7QUFDQSxXQUFXLGlGQUF1QixDQUFDLDRFQUFrQjtBQUNyRDtBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckI7QUFDQSxRQUFRLHdFQUFhO0FBQ3JCLFFBQVEsd0VBQWE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9wcm9qZWN0aW9uL3V0aWxzL21lYXN1cmUubWpzP2VlMTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29udmVydEJvdW5kaW5nQm94VG9Cb3gsIHRyYW5zZm9ybUJveFBvaW50cyB9IGZyb20gJy4uL2dlb21ldHJ5L2NvbnZlcnNpb24ubWpzJztcclxuaW1wb3J0IHsgdHJhbnNsYXRlQXhpcyB9IGZyb20gJy4uL2dlb21ldHJ5L2RlbHRhLWFwcGx5Lm1qcyc7XHJcblxyXG5mdW5jdGlvbiBtZWFzdXJlVmlld3BvcnRCb3goaW5zdGFuY2UsIHRyYW5zZm9ybVBvaW50KSB7XHJcbiAgICByZXR1cm4gY29udmVydEJvdW5kaW5nQm94VG9Cb3godHJhbnNmb3JtQm94UG9pbnRzKGluc3RhbmNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLCB0cmFuc2Zvcm1Qb2ludCkpO1xyXG59XHJcbmZ1bmN0aW9uIG1lYXN1cmVQYWdlQm94KGVsZW1lbnQsIHJvb3RQcm9qZWN0aW9uTm9kZSwgdHJhbnNmb3JtUGFnZVBvaW50KSB7XHJcbiAgICBjb25zdCB2aWV3cG9ydEJveCA9IG1lYXN1cmVWaWV3cG9ydEJveChlbGVtZW50LCB0cmFuc2Zvcm1QYWdlUG9pbnQpO1xyXG4gICAgY29uc3QgeyBzY3JvbGwgfSA9IHJvb3RQcm9qZWN0aW9uTm9kZTtcclxuICAgIGlmIChzY3JvbGwpIHtcclxuICAgICAgICB0cmFuc2xhdGVBeGlzKHZpZXdwb3J0Qm94LngsIHNjcm9sbC5vZmZzZXQueCk7XHJcbiAgICAgICAgdHJhbnNsYXRlQXhpcyh2aWV3cG9ydEJveC55LCBzY3JvbGwub2Zmc2V0LnkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZpZXdwb3J0Qm94O1xyXG59XHJcblxyXG5leHBvcnQgeyBtZWFzdXJlUGFnZUJveCwgbWVhc3VyZVZpZXdwb3J0Qm94IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/utils/measure.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/VisualElement.mjs":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/VisualElement.mjs ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VisualElement: function() { return /* binding */ VisualElement; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/find.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\");\n/* harmony import */ var _motion_features_definitions_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../motion/features/definitions.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs\");\n/* harmony import */ var _projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../projection/geometry/models.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var _utils_reduced_motion_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/reduced-motion/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs\");\n/* harmony import */ var _utils_reduced_motion_state_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/reduced-motion/state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs\");\n/* harmony import */ var _store_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./store.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/store.mjs\");\n/* harmony import */ var _utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/is-controlling-variants.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs\");\n/* harmony import */ var _utils_motion_values_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/motion-values.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/motion-values.mjs\");\n/* harmony import */ var _utils_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./utils/resolve-variants.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst propEventHandlers = [\r\n \"AnimationStart\",\r\n \"AnimationComplete\",\r\n \"Update\",\r\n \"BeforeLayoutMeasure\",\r\n \"LayoutMeasure\",\r\n \"LayoutAnimationStart\",\r\n \"LayoutAnimationComplete\",\r\n];\r\n/**\r\n * A VisualElement is an imperative abstraction around UI elements such as\r\n * HTMLElement, SVGElement, Three.Object3D etc.\r\n */\r\nclass VisualElement {\r\n /**\r\n * This method takes React props and returns found MotionValues. For example, HTML\r\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\r\n *\r\n * This isn't an abstract method as it needs calling in the constructor, but it is\r\n * intended to be one.\r\n */\r\n scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) {\r\n return {};\r\n }\r\n constructor({ parent, props, presenceContext, reducedMotionConfig, blockInitialAnimation, visualState, }, options = {}) {\r\n /**\r\n * A reference to the current underlying Instance, e.g. a HTMLElement\r\n * or Three.Mesh etc.\r\n */\r\n this.current = null;\r\n /**\r\n * A set containing references to this VisualElement's children.\r\n */\r\n this.children = new Set();\r\n /**\r\n * Determine what role this visual element should take in the variant tree.\r\n */\r\n this.isVariantNode = false;\r\n this.isControllingVariants = false;\r\n /**\r\n * Decides whether this VisualElement should animate in reduced motion\r\n * mode.\r\n *\r\n * TODO: This is currently set on every individual VisualElement but feels\r\n * like it could be set globally.\r\n */\r\n this.shouldReduceMotion = null;\r\n /**\r\n * A map of all motion values attached to this visual element. Motion\r\n * values are source of truth for any given animated value. A motion\r\n * value might be provided externally by the component via props.\r\n */\r\n this.values = new Map();\r\n this.KeyframeResolver = motion_dom__WEBPACK_IMPORTED_MODULE_0__.KeyframeResolver;\r\n /**\r\n * Cleanup functions for active features (hover/tap/exit etc)\r\n */\r\n this.features = {};\r\n /**\r\n * A map of every subscription that binds the provided or generated\r\n * motion values onChange listeners to this visual element.\r\n */\r\n this.valueSubscriptions = new Map();\r\n /**\r\n * A reference to the previously-provided motion values as returned\r\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\r\n * if any motion values need to be removed after props are updated.\r\n */\r\n this.prevMotionValues = {};\r\n /**\r\n * An object containing a SubscriptionManager for each active event.\r\n */\r\n this.events = {};\r\n /**\r\n * An object containing an unsubscribe function for each prop event subscription.\r\n * For example, every \"Update\" event can have multiple subscribers via\r\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\r\n */\r\n this.propEventSubscriptions = {};\r\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\r\n this.render = () => {\r\n if (!this.current)\r\n return;\r\n this.triggerBuild();\r\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\r\n };\r\n this.renderScheduledAt = 0.0;\r\n this.scheduleRender = () => {\r\n const now = motion_dom__WEBPACK_IMPORTED_MODULE_1__.time.now();\r\n if (this.renderScheduledAt < now) {\r\n this.renderScheduledAt = now;\r\n motion_dom__WEBPACK_IMPORTED_MODULE_2__.frame.render(this.render, false, true);\r\n }\r\n };\r\n const { latestValues, renderState } = visualState;\r\n this.latestValues = latestValues;\r\n this.baseTarget = { ...latestValues };\r\n this.initialValues = props.initial ? { ...latestValues } : {};\r\n this.renderState = renderState;\r\n this.parent = parent;\r\n this.props = props;\r\n this.presenceContext = presenceContext;\r\n this.depth = parent ? parent.depth + 1 : 0;\r\n this.reducedMotionConfig = reducedMotionConfig;\r\n this.options = options;\r\n this.blockInitialAnimation = Boolean(blockInitialAnimation);\r\n this.isControllingVariants = (0,_utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_3__.isControllingVariants)(props);\r\n this.isVariantNode = (0,_utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_3__.isVariantNode)(props);\r\n if (this.isVariantNode) {\r\n this.variantChildren = new Set();\r\n }\r\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\r\n /**\r\n * Any motion values that are provided to the element when created\r\n * aren't yet bound to the element, as this would technically be impure.\r\n * However, we iterate through the motion values and set them to the\r\n * initial values for this component.\r\n *\r\n * TODO: This is impure and we should look at changing this to run on mount.\r\n * Doing so will break some tests but this isn't necessarily a breaking change,\r\n * more a reflection of the test.\r\n */\r\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this);\r\n for (const key in initialMotionValues) {\r\n const value = initialMotionValues[key];\r\n if (latestValues[key] !== undefined && (0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(value)) {\r\n value.set(latestValues[key]);\r\n }\r\n }\r\n }\r\n mount(instance) {\r\n this.current = instance;\r\n _store_mjs__WEBPACK_IMPORTED_MODULE_5__.visualElementStore.set(instance, this);\r\n if (this.projection && !this.projection.instance) {\r\n this.projection.mount(instance);\r\n }\r\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\r\n this.removeFromVariantTree = this.parent.addVariantChild(this);\r\n }\r\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\r\n if (!_utils_reduced_motion_state_mjs__WEBPACK_IMPORTED_MODULE_6__.hasReducedMotionListener.current) {\r\n (0,_utils_reduced_motion_index_mjs__WEBPACK_IMPORTED_MODULE_7__.initPrefersReducedMotion)();\r\n }\r\n this.shouldReduceMotion =\r\n this.reducedMotionConfig === \"never\"\r\n ? false\r\n : this.reducedMotionConfig === \"always\"\r\n ? true\r\n : _utils_reduced_motion_state_mjs__WEBPACK_IMPORTED_MODULE_6__.prefersReducedMotion.current;\r\n if (true) {\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_8__.warnOnce)(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\", \"reduced-motion-disabled\");\r\n }\r\n this.parent?.addChild(this);\r\n this.update(this.props, this.presenceContext);\r\n }\r\n unmount() {\r\n this.projection && this.projection.unmount();\r\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.cancelFrame)(this.notifyUpdate);\r\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.cancelFrame)(this.render);\r\n this.valueSubscriptions.forEach((remove) => remove());\r\n this.valueSubscriptions.clear();\r\n this.removeFromVariantTree && this.removeFromVariantTree();\r\n this.parent?.removeChild(this);\r\n for (const key in this.events) {\r\n this.events[key].clear();\r\n }\r\n for (const key in this.features) {\r\n const feature = this.features[key];\r\n if (feature) {\r\n feature.unmount();\r\n feature.isMounted = false;\r\n }\r\n }\r\n this.current = null;\r\n }\r\n addChild(child) {\r\n this.children.add(child);\r\n this.enteringChildren ?? (this.enteringChildren = new Set());\r\n this.enteringChildren.add(child);\r\n }\r\n removeChild(child) {\r\n this.children.delete(child);\r\n this.enteringChildren && this.enteringChildren.delete(child);\r\n }\r\n bindToMotionValue(key, value) {\r\n if (this.valueSubscriptions.has(key)) {\r\n this.valueSubscriptions.get(key)();\r\n }\r\n const valueIsTransform = motion_dom__WEBPACK_IMPORTED_MODULE_9__.transformProps.has(key);\r\n if (valueIsTransform && this.onBindTransform) {\r\n this.onBindTransform();\r\n }\r\n const removeOnChange = value.on(\"change\", (latestValue) => {\r\n this.latestValues[key] = latestValue;\r\n this.props.onUpdate && motion_dom__WEBPACK_IMPORTED_MODULE_2__.frame.preRender(this.notifyUpdate);\r\n if (valueIsTransform && this.projection) {\r\n this.projection.isTransformDirty = true;\r\n }\r\n this.scheduleRender();\r\n });\r\n let removeSyncCheck;\r\n if (window.MotionCheckAppearSync) {\r\n removeSyncCheck = window.MotionCheckAppearSync(this, key, value);\r\n }\r\n this.valueSubscriptions.set(key, () => {\r\n removeOnChange();\r\n if (removeSyncCheck)\r\n removeSyncCheck();\r\n if (value.owner)\r\n value.stop();\r\n });\r\n }\r\n sortNodePosition(other) {\r\n /**\r\n * If these nodes aren't even of the same type we can't compare their depth.\r\n */\r\n if (!this.current ||\r\n !this.sortInstanceNodePosition ||\r\n this.type !== other.type) {\r\n return 0;\r\n }\r\n return this.sortInstanceNodePosition(this.current, other.current);\r\n }\r\n updateFeatures() {\r\n let key = \"animation\";\r\n for (key in _motion_features_definitions_mjs__WEBPACK_IMPORTED_MODULE_10__.featureDefinitions) {\r\n const featureDefinition = _motion_features_definitions_mjs__WEBPACK_IMPORTED_MODULE_10__.featureDefinitions[key];\r\n if (!featureDefinition)\r\n continue;\r\n const { isEnabled, Feature: FeatureConstructor } = featureDefinition;\r\n /**\r\n * If this feature is enabled but not active, make a new instance.\r\n */\r\n if (!this.features[key] &&\r\n FeatureConstructor &&\r\n isEnabled(this.props)) {\r\n this.features[key] = new FeatureConstructor(this);\r\n }\r\n /**\r\n * If we have a feature, mount or update it.\r\n */\r\n if (this.features[key]) {\r\n const feature = this.features[key];\r\n if (feature.isMounted) {\r\n feature.update();\r\n }\r\n else {\r\n feature.mount();\r\n feature.isMounted = true;\r\n }\r\n }\r\n }\r\n }\r\n triggerBuild() {\r\n this.build(this.renderState, this.latestValues, this.props);\r\n }\r\n /**\r\n * Measure the current viewport box with or without transforms.\r\n * Only measures axis-aligned boxes, rotate and skew must be manually\r\n * removed with a re-render to work.\r\n */\r\n measureViewportBox() {\r\n return this.current\r\n ? this.measureInstanceViewportBox(this.current, this.props)\r\n : (0,_projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_11__.createBox)();\r\n }\r\n getStaticValue(key) {\r\n return this.latestValues[key];\r\n }\r\n setStaticValue(key, value) {\r\n this.latestValues[key] = value;\r\n }\r\n /**\r\n * Update the provided props. Ensure any newly-added motion values are\r\n * added to our map, old ones removed, and listeners updated.\r\n */\r\n update(props, presenceContext) {\r\n if (props.transformTemplate || this.props.transformTemplate) {\r\n this.scheduleRender();\r\n }\r\n this.prevProps = this.props;\r\n this.props = props;\r\n this.prevPresenceContext = this.presenceContext;\r\n this.presenceContext = presenceContext;\r\n /**\r\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\r\n */\r\n for (let i = 0; i < propEventHandlers.length; i++) {\r\n const key = propEventHandlers[i];\r\n if (this.propEventSubscriptions[key]) {\r\n this.propEventSubscriptions[key]();\r\n delete this.propEventSubscriptions[key];\r\n }\r\n const listenerName = (\"on\" + key);\r\n const listener = props[listenerName];\r\n if (listener) {\r\n this.propEventSubscriptions[key] = this.on(key, listener);\r\n }\r\n }\r\n this.prevMotionValues = (0,_utils_motion_values_mjs__WEBPACK_IMPORTED_MODULE_12__.updateMotionValuesFromProps)(this, this.scrapeMotionValuesFromProps(props, this.prevProps, this), this.prevMotionValues);\r\n if (this.handleChildMotionValue) {\r\n this.handleChildMotionValue();\r\n }\r\n }\r\n getProps() {\r\n return this.props;\r\n }\r\n /**\r\n * Returns the variant definition with a given name.\r\n */\r\n getVariant(name) {\r\n return this.props.variants ? this.props.variants[name] : undefined;\r\n }\r\n /**\r\n * Returns the defined default transition on this component.\r\n */\r\n getDefaultTransition() {\r\n return this.props.transition;\r\n }\r\n getTransformPagePoint() {\r\n return this.props.transformPagePoint;\r\n }\r\n getClosestVariantNode() {\r\n return this.isVariantNode\r\n ? this\r\n : this.parent\r\n ? this.parent.getClosestVariantNode()\r\n : undefined;\r\n }\r\n /**\r\n * Add a child visual element to our set of children.\r\n */\r\n addVariantChild(child) {\r\n const closestVariantNode = this.getClosestVariantNode();\r\n if (closestVariantNode) {\r\n closestVariantNode.variantChildren &&\r\n closestVariantNode.variantChildren.add(child);\r\n return () => closestVariantNode.variantChildren.delete(child);\r\n }\r\n }\r\n /**\r\n * Add a motion value and bind it to this visual element.\r\n */\r\n addValue(key, value) {\r\n // Remove existing value if it exists\r\n const existingValue = this.values.get(key);\r\n if (value !== existingValue) {\r\n if (existingValue)\r\n this.removeValue(key);\r\n this.bindToMotionValue(key, value);\r\n this.values.set(key, value);\r\n this.latestValues[key] = value.get();\r\n }\r\n }\r\n /**\r\n * Remove a motion value and unbind any active subscriptions.\r\n */\r\n removeValue(key) {\r\n this.values.delete(key);\r\n const unsubscribe = this.valueSubscriptions.get(key);\r\n if (unsubscribe) {\r\n unsubscribe();\r\n this.valueSubscriptions.delete(key);\r\n }\r\n delete this.latestValues[key];\r\n this.removeValueFromRenderState(key, this.renderState);\r\n }\r\n /**\r\n * Check whether we have a motion value for this key\r\n */\r\n hasValue(key) {\r\n return this.values.has(key);\r\n }\r\n getValue(key, defaultValue) {\r\n if (this.props.values && this.props.values[key]) {\r\n return this.props.values[key];\r\n }\r\n let value = this.values.get(key);\r\n if (value === undefined && defaultValue !== undefined) {\r\n value = (0,motion_dom__WEBPACK_IMPORTED_MODULE_13__.motionValue)(defaultValue === null ? undefined : defaultValue, { owner: this });\r\n this.addValue(key, value);\r\n }\r\n return value;\r\n }\r\n /**\r\n * If we're trying to animate to a previously unencountered value,\r\n * we need to check for it in our state and as a last resort read it\r\n * directly from the instance (which might have performance implications).\r\n */\r\n readValue(key, target) {\r\n let value = this.latestValues[key] !== undefined || !this.current\r\n ? this.latestValues[key]\r\n : this.getBaseTargetFromProps(this.props, key) ??\r\n this.readValueFromInstance(this.current, key, this.options);\r\n if (value !== undefined && value !== null) {\r\n if (typeof value === \"string\" &&\r\n ((0,motion_utils__WEBPACK_IMPORTED_MODULE_14__.isNumericalString)(value) || (0,motion_utils__WEBPACK_IMPORTED_MODULE_15__.isZeroValueString)(value))) {\r\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\r\n value = parseFloat(value);\r\n }\r\n else if (!(0,motion_dom__WEBPACK_IMPORTED_MODULE_16__.findValueType)(value) && motion_dom__WEBPACK_IMPORTED_MODULE_17__.complex.test(target)) {\r\n value = (0,motion_dom__WEBPACK_IMPORTED_MODULE_18__.getAnimatableNone)(key, target);\r\n }\r\n this.setBaseTarget(key, (0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(value) ? value.get() : value);\r\n }\r\n return (0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(value) ? value.get() : value;\r\n }\r\n /**\r\n * Set the base target to later animate back to. This is currently\r\n * only hydrated on creation and when we first read a value.\r\n */\r\n setBaseTarget(key, value) {\r\n this.baseTarget[key] = value;\r\n }\r\n /**\r\n * Find the base target for a value thats been removed from all animation\r\n * props.\r\n */\r\n getBaseTarget(key) {\r\n const { initial } = this.props;\r\n let valueFromInitial;\r\n if (typeof initial === \"string\" || typeof initial === \"object\") {\r\n const variant = (0,_utils_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_19__.resolveVariantFromProps)(this.props, initial, this.presenceContext?.custom);\r\n if (variant) {\r\n valueFromInitial = variant[key];\r\n }\r\n }\r\n /**\r\n * If this value still exists in the current initial variant, read that.\r\n */\r\n if (initial && valueFromInitial !== undefined) {\r\n return valueFromInitial;\r\n }\r\n /**\r\n * Alternatively, if this VisualElement config has defined a getBaseTarget\r\n * so we can read the value from an alternative source, try that.\r\n */\r\n const target = this.getBaseTargetFromProps(this.props, key);\r\n if (target !== undefined && !(0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(target))\r\n return target;\r\n /**\r\n * If the value was initially defined on initial, but it doesn't any more,\r\n * return undefined. Otherwise return the value as initially read from the DOM.\r\n */\r\n return this.initialValues[key] !== undefined &&\r\n valueFromInitial === undefined\r\n ? undefined\r\n : this.baseTarget[key];\r\n }\r\n on(eventName, callback) {\r\n if (!this.events[eventName]) {\r\n this.events[eventName] = new motion_utils__WEBPACK_IMPORTED_MODULE_20__.SubscriptionManager();\r\n }\r\n return this.events[eventName].add(callback);\r\n }\r\n notify(eventName, ...args) {\r\n if (this.events[eventName]) {\r\n this.events[eventName].notify(...args);\r\n }\r\n }\r\n scheduleRenderMicrotask() {\r\n motion_dom__WEBPACK_IMPORTED_MODULE_21__.microtask.render(this.render);\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL1Zpc3VhbEVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTBLO0FBQ3ZFO0FBQzNCO0FBQ1Y7QUFDZTtBQUNzQjtBQUNsRDtBQUMwQztBQUNuQjtBQUNEO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLDBGQUEwRixjQUFjO0FBQzFIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLHdEQUFnQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qiw0Q0FBSTtBQUM1QjtBQUNBO0FBQ0EsZ0JBQWdCLDZDQUFLO0FBQ3JCO0FBQ0E7QUFDQSxnQkFBZ0IsNEJBQTRCO0FBQzVDO0FBQ0EsNEJBQTRCO0FBQzVCLCtDQUErQyxrQkFBa0I7QUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyx5RkFBcUI7QUFDMUQsNkJBQTZCLGlGQUFhO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUFDekM7QUFDQSxvQ0FBb0MseURBQWE7QUFDakQ7QUFDQSxlQUFlLHlEQUFhO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFVBQVU7QUFDMUI7QUFDQTtBQUNBLDRCQUE0QixxRkFBdUI7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLHlEQUFhO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5Qyw4REFBbUI7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxrREFBUztBQUNqQjtBQUNBO0FBQ0E7QUFDeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvVmlzdWFsRWxlbWVudC5tanM/NzBiMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXlmcmFtZVJlc29sdmVyLCB0aW1lLCBmcmFtZSwgaXNNb3Rpb25WYWx1ZSwgY2FuY2VsRnJhbWUsIHRyYW5zZm9ybVByb3BzLCBtb3Rpb25WYWx1ZSwgZmluZFZhbHVlVHlwZSwgY29tcGxleCwgZ2V0QW5pbWF0YWJsZU5vbmUsIG1pY3JvdGFzayB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5pbXBvcnQgeyB3YXJuT25jZSwgaXNOdW1lcmljYWxTdHJpbmcsIGlzWmVyb1ZhbHVlU3RyaW5nLCBTdWJzY3JpcHRpb25NYW5hZ2VyIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgZmVhdHVyZURlZmluaXRpb25zIH0gZnJvbSAnLi4vbW90aW9uL2ZlYXR1cmVzL2RlZmluaXRpb25zLm1qcyc7XHJcbmltcG9ydCB7IGNyZWF0ZUJveCB9IGZyb20gJy4uL3Byb2plY3Rpb24vZ2VvbWV0cnkvbW9kZWxzLm1qcyc7XHJcbmltcG9ydCB7IGluaXRQcmVmZXJzUmVkdWNlZE1vdGlvbiB9IGZyb20gJy4uL3V0aWxzL3JlZHVjZWQtbW90aW9uL2luZGV4Lm1qcyc7XHJcbmltcG9ydCB7IGhhc1JlZHVjZWRNb3Rpb25MaXN0ZW5lciwgcHJlZmVyc1JlZHVjZWRNb3Rpb24gfSBmcm9tICcuLi91dGlscy9yZWR1Y2VkLW1vdGlvbi9zdGF0ZS5tanMnO1xyXG5pbXBvcnQgeyB2aXN1YWxFbGVtZW50U3RvcmUgfSBmcm9tICcuL3N0b3JlLm1qcyc7XHJcbmltcG9ydCB7IGlzQ29udHJvbGxpbmdWYXJpYW50cywgaXNWYXJpYW50Tm9kZSB9IGZyb20gJy4vdXRpbHMvaXMtY29udHJvbGxpbmctdmFyaWFudHMubWpzJztcclxuaW1wb3J0IHsgdXBkYXRlTW90aW9uVmFsdWVzRnJvbVByb3BzIH0gZnJvbSAnLi91dGlscy9tb3Rpb24tdmFsdWVzLm1qcyc7XHJcbmltcG9ydCB7IHJlc29sdmVWYXJpYW50RnJvbVByb3BzIH0gZnJvbSAnLi91dGlscy9yZXNvbHZlLXZhcmlhbnRzLm1qcyc7XHJcblxyXG5jb25zdCBwcm9wRXZlbnRIYW5kbGVycyA9IFtcclxuICAgIFwiQW5pbWF0aW9uU3RhcnRcIixcclxuICAgIFwiQW5pbWF0aW9uQ29tcGxldGVcIixcclxuICAgIFwiVXBkYXRlXCIsXHJcbiAgICBcIkJlZm9yZUxheW91dE1lYXN1cmVcIixcclxuICAgIFwiTGF5b3V0TWVhc3VyZVwiLFxyXG4gICAgXCJMYXlvdXRBbmltYXRpb25TdGFydFwiLFxyXG4gICAgXCJMYXlvdXRBbmltYXRpb25Db21wbGV0ZVwiLFxyXG5dO1xyXG4vKipcclxuICogQSBWaXN1YWxFbGVtZW50IGlzIGFuIGltcGVyYXRpdmUgYWJzdHJhY3Rpb24gYXJvdW5kIFVJIGVsZW1lbnRzIHN1Y2ggYXNcclxuICogSFRNTEVsZW1lbnQsIFNWR0VsZW1lbnQsIFRocmVlLk9iamVjdDNEIGV0Yy5cclxuICovXHJcbmNsYXNzIFZpc3VhbEVsZW1lbnQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCB0YWtlcyBSZWFjdCBwcm9wcyBhbmQgcmV0dXJucyBmb3VuZCBNb3Rpb25WYWx1ZXMuIEZvciBleGFtcGxlLCBIVE1MXHJcbiAgICAgKiBNb3Rpb25WYWx1ZXMgd2lsbCBiZSBmb3VuZCB3aXRoaW4gdGhlIHN0eWxlIHByb3AsIHdoZXJlYXMgZm9yIFRocmVlLmpzIHdpdGhpbiBhdHRyaWJ1dGUgYXJyYXlzLlxyXG4gICAgICpcclxuICAgICAqIFRoaXMgaXNuJ3QgYW4gYWJzdHJhY3QgbWV0aG9kIGFzIGl0IG5lZWRzIGNhbGxpbmcgaW4gdGhlIGNvbnN0cnVjdG9yLCBidXQgaXQgaXNcclxuICAgICAqIGludGVuZGVkIHRvIGJlIG9uZS5cclxuICAgICAqL1xyXG4gICAgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKF9wcm9wcywgX3ByZXZQcm9wcywgX3Zpc3VhbEVsZW1lbnQpIHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICB9XHJcbiAgICBjb25zdHJ1Y3Rvcih7IHBhcmVudCwgcHJvcHMsIHByZXNlbmNlQ29udGV4dCwgcmVkdWNlZE1vdGlvbkNvbmZpZywgYmxvY2tJbml0aWFsQW5pbWF0aW9uLCB2aXN1YWxTdGF0ZSwgfSwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgdW5kZXJseWluZyBJbnN0YW5jZSwgZS5nLiBhIEhUTUxFbGVtZW50XHJcbiAgICAgICAgICogb3IgVGhyZWUuTWVzaCBldGMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gbnVsbDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHNldCBjb250YWluaW5nIHJlZmVyZW5jZXMgdG8gdGhpcyBWaXN1YWxFbGVtZW50J3MgY2hpbGRyZW4uXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IG5ldyBTZXQoKTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBEZXRlcm1pbmUgd2hhdCByb2xlIHRoaXMgdmlzdWFsIGVsZW1lbnQgc2hvdWxkIHRha2UgaW4gdGhlIHZhcmlhbnQgdHJlZS5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlzVmFyaWFudE5vZGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzQ29udHJvbGxpbmdWYXJpYW50cyA9IGZhbHNlO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIERlY2lkZXMgd2hldGhlciB0aGlzIFZpc3VhbEVsZW1lbnQgc2hvdWxkIGFuaW1hdGUgaW4gcmVkdWNlZCBtb3Rpb25cclxuICAgICAgICAgKiBtb2RlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogVE9ETzogVGhpcyBpcyBjdXJyZW50bHkgc2V0IG9uIGV2ZXJ5IGluZGl2aWR1YWwgVmlzdWFsRWxlbWVudCBidXQgZmVlbHNcclxuICAgICAgICAgKiBsaWtlIGl0IGNvdWxkIGJlIHNldCBnbG9iYWxseS5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNob3VsZFJlZHVjZU1vdGlvbiA9IG51bGw7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBtYXAgb2YgYWxsIG1vdGlvbiB2YWx1ZXMgYXR0YWNoZWQgdG8gdGhpcyB2aXN1YWwgZWxlbWVudC4gTW90aW9uXHJcbiAgICAgICAgICogdmFsdWVzIGFyZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIGFueSBnaXZlbiBhbmltYXRlZCB2YWx1ZS4gQSBtb3Rpb25cclxuICAgICAgICAgKiB2YWx1ZSBtaWdodCBiZSBwcm92aWRlZCBleHRlcm5hbGx5IGJ5IHRoZSBjb21wb25lbnQgdmlhIHByb3BzLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudmFsdWVzID0gbmV3IE1hcCgpO1xyXG4gICAgICAgIHRoaXMuS2V5ZnJhbWVSZXNvbHZlciA9IEtleWZyYW1lUmVzb2x2ZXI7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQ2xlYW51cCBmdW5jdGlvbnMgZm9yIGFjdGl2ZSBmZWF0dXJlcyAoaG92ZXIvdGFwL2V4aXQgZXRjKVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZmVhdHVyZXMgPSB7fTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIG1hcCBvZiBldmVyeSBzdWJzY3JpcHRpb24gdGhhdCBiaW5kcyB0aGUgcHJvdmlkZWQgb3IgZ2VuZXJhdGVkXHJcbiAgICAgICAgICogbW90aW9uIHZhbHVlcyBvbkNoYW5nZSBsaXN0ZW5lcnMgdG8gdGhpcyB2aXN1YWwgZWxlbWVudC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucyA9IG5ldyBNYXAoKTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgcHJldmlvdXNseS1wcm92aWRlZCBtb3Rpb24gdmFsdWVzIGFzIHJldHVybmVkXHJcbiAgICAgICAgICogZnJvbSBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMuIFdlIHVzZSB0aGUga2V5cyBpbiBoZXJlIHRvIGRldGVybWluZVxyXG4gICAgICAgICAqIGlmIGFueSBtb3Rpb24gdmFsdWVzIG5lZWQgdG8gYmUgcmVtb3ZlZCBhZnRlciBwcm9wcyBhcmUgdXBkYXRlZC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnByZXZNb3Rpb25WYWx1ZXMgPSB7fTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBbiBvYmplY3QgY29udGFpbmluZyBhIFN1YnNjcmlwdGlvbk1hbmFnZXIgZm9yIGVhY2ggYWN0aXZlIGV2ZW50LlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZXZlbnRzID0ge307XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgYW4gdW5zdWJzY3JpYmUgZnVuY3Rpb24gZm9yIGVhY2ggcHJvcCBldmVudCBzdWJzY3JpcHRpb24uXHJcbiAgICAgICAgICogRm9yIGV4YW1wbGUsIGV2ZXJ5IFwiVXBkYXRlXCIgZXZlbnQgY2FuIGhhdmUgbXVsdGlwbGUgc3Vic2NyaWJlcnMgdmlhXHJcbiAgICAgICAgICogVmlzdWFsRWxlbWVudC5vbigpLCBidXQgb25seSBvbmUgb2YgdGhvc2UgY2FuIGJlIGRlZmluZWQgdmlhIHRoZSBvblVwZGF0ZSBwcm9wLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucHJvcEV2ZW50U3Vic2NyaXB0aW9ucyA9IHt9O1xyXG4gICAgICAgIHRoaXMubm90aWZ5VXBkYXRlID0gKCkgPT4gdGhpcy5ub3RpZnkoXCJVcGRhdGVcIiwgdGhpcy5sYXRlc3RWYWx1ZXMpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuY3VycmVudClcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyQnVpbGQoKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJJbnN0YW5jZSh0aGlzLmN1cnJlbnQsIHRoaXMucmVuZGVyU3RhdGUsIHRoaXMucHJvcHMuc3R5bGUsIHRoaXMucHJvamVjdGlvbik7XHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnJlbmRlclNjaGVkdWxlZEF0ID0gMC4wO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVSZW5kZXIgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5vdyA9IHRpbWUubm93KCk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlbmRlclNjaGVkdWxlZEF0IDwgbm93KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclNjaGVkdWxlZEF0ID0gbm93O1xyXG4gICAgICAgICAgICAgICAgZnJhbWUucmVuZGVyKHRoaXMucmVuZGVyLCBmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IHsgbGF0ZXN0VmFsdWVzLCByZW5kZXJTdGF0ZSB9ID0gdmlzdWFsU3RhdGU7XHJcbiAgICAgICAgdGhpcy5sYXRlc3RWYWx1ZXMgPSBsYXRlc3RWYWx1ZXM7XHJcbiAgICAgICAgdGhpcy5iYXNlVGFyZ2V0ID0geyAuLi5sYXRlc3RWYWx1ZXMgfTtcclxuICAgICAgICB0aGlzLmluaXRpYWxWYWx1ZXMgPSBwcm9wcy5pbml0aWFsID8geyAuLi5sYXRlc3RWYWx1ZXMgfSA6IHt9O1xyXG4gICAgICAgIHRoaXMucmVuZGVyU3RhdGUgPSByZW5kZXJTdGF0ZTtcclxuICAgICAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcclxuICAgICAgICB0aGlzLnByb3BzID0gcHJvcHM7XHJcbiAgICAgICAgdGhpcy5wcmVzZW5jZUNvbnRleHQgPSBwcmVzZW5jZUNvbnRleHQ7XHJcbiAgICAgICAgdGhpcy5kZXB0aCA9IHBhcmVudCA/IHBhcmVudC5kZXB0aCArIDEgOiAwO1xyXG4gICAgICAgIHRoaXMucmVkdWNlZE1vdGlvbkNvbmZpZyA9IHJlZHVjZWRNb3Rpb25Db25maWc7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcclxuICAgICAgICB0aGlzLmJsb2NrSW5pdGlhbEFuaW1hdGlvbiA9IEJvb2xlYW4oYmxvY2tJbml0aWFsQW5pbWF0aW9uKTtcclxuICAgICAgICB0aGlzLmlzQ29udHJvbGxpbmdWYXJpYW50cyA9IGlzQ29udHJvbGxpbmdWYXJpYW50cyhwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5pc1ZhcmlhbnROb2RlID0gaXNWYXJpYW50Tm9kZShwcm9wcyk7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNWYXJpYW50Tm9kZSkge1xyXG4gICAgICAgICAgICB0aGlzLnZhcmlhbnRDaGlsZHJlbiA9IG5ldyBTZXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tYW51YWxseUFuaW1hdGVPbk1vdW50ID0gQm9vbGVhbihwYXJlbnQgJiYgcGFyZW50LmN1cnJlbnQpO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFueSBtb3Rpb24gdmFsdWVzIHRoYXQgYXJlIHByb3ZpZGVkIHRvIHRoZSBlbGVtZW50IHdoZW4gY3JlYXRlZFxyXG4gICAgICAgICAqIGFyZW4ndCB5ZXQgYm91bmQgdG8gdGhlIGVsZW1lbnQsIGFzIHRoaXMgd291bGQgdGVjaG5pY2FsbHkgYmUgaW1wdXJlLlxyXG4gICAgICAgICAqIEhvd2V2ZXIsIHdlIGl0ZXJhdGUgdGhyb3VnaCB0aGUgbW90aW9uIHZhbHVlcyBhbmQgc2V0IHRoZW0gdG8gdGhlXHJcbiAgICAgICAgICogaW5pdGlhbCB2YWx1ZXMgZm9yIHRoaXMgY29tcG9uZW50LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogVE9ETzogVGhpcyBpcyBpbXB1cmUgYW5kIHdlIHNob3VsZCBsb29rIGF0IGNoYW5naW5nIHRoaXMgdG8gcnVuIG9uIG1vdW50LlxyXG4gICAgICAgICAqIERvaW5nIHNvIHdpbGwgYnJlYWsgc29tZSB0ZXN0cyBidXQgdGhpcyBpc24ndCBuZWNlc3NhcmlseSBhIGJyZWFraW5nIGNoYW5nZSxcclxuICAgICAgICAgKiBtb3JlIGEgcmVmbGVjdGlvbiBvZiB0aGUgdGVzdC5cclxuICAgICAgICAgKi9cclxuICAgICAgICBjb25zdCB7IHdpbGxDaGFuZ2UsIC4uLmluaXRpYWxNb3Rpb25WYWx1ZXMgfSA9IHRoaXMuc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHByb3BzLCB7fSwgdGhpcyk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdGlhbE1vdGlvblZhbHVlcykge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGluaXRpYWxNb3Rpb25WYWx1ZXNba2V5XTtcclxuICAgICAgICAgICAgaWYgKGxhdGVzdFZhbHVlc1trZXldICE9PSB1bmRlZmluZWQgJiYgaXNNb3Rpb25WYWx1ZSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlLnNldChsYXRlc3RWYWx1ZXNba2V5XSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBtb3VudChpbnN0YW5jZSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudCA9IGluc3RhbmNlO1xyXG4gICAgICAgIHZpc3VhbEVsZW1lbnRTdG9yZS5zZXQoaW5zdGFuY2UsIHRoaXMpO1xyXG4gICAgICAgIGlmICh0aGlzLnByb2plY3Rpb24gJiYgIXRoaXMucHJvamVjdGlvbi5pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb24ubW91bnQoaW5zdGFuY2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5wYXJlbnQgJiYgdGhpcy5pc1ZhcmlhbnROb2RlICYmICF0aGlzLmlzQ29udHJvbGxpbmdWYXJpYW50cykge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUZyb21WYXJpYW50VHJlZSA9IHRoaXMucGFyZW50LmFkZFZhcmlhbnRDaGlsZCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52YWx1ZXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4gdGhpcy5iaW5kVG9Nb3Rpb25WYWx1ZShrZXksIHZhbHVlKSk7XHJcbiAgICAgICAgaWYgKCFoYXNSZWR1Y2VkTW90aW9uTGlzdGVuZXIuY3VycmVudCkge1xyXG4gICAgICAgICAgICBpbml0UHJlZmVyc1JlZHVjZWRNb3Rpb24oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zaG91bGRSZWR1Y2VNb3Rpb24gPVxyXG4gICAgICAgICAgICB0aGlzLnJlZHVjZWRNb3Rpb25Db25maWcgPT09IFwibmV2ZXJcIlxyXG4gICAgICAgICAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgICAgICAgICAgOiB0aGlzLnJlZHVjZWRNb3Rpb25Db25maWcgPT09IFwiYWx3YXlzXCJcclxuICAgICAgICAgICAgICAgICAgICA/IHRydWVcclxuICAgICAgICAgICAgICAgICAgICA6IHByZWZlcnNSZWR1Y2VkTW90aW9uLmN1cnJlbnQ7XHJcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xyXG4gICAgICAgICAgICB3YXJuT25jZSh0aGlzLnNob3VsZFJlZHVjZU1vdGlvbiAhPT0gdHJ1ZSwgXCJZb3UgaGF2ZSBSZWR1Y2VkIE1vdGlvbiBlbmFibGVkIG9uIHlvdXIgZGV2aWNlLiBBbmltYXRpb25zIG1heSBub3QgYXBwZWFyIGFzIGV4cGVjdGVkLlwiLCBcInJlZHVjZWQtbW90aW9uLWRpc2FibGVkXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnBhcmVudD8uYWRkQ2hpbGQodGhpcyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGUodGhpcy5wcm9wcywgdGhpcy5wcmVzZW5jZUNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgdW5tb3VudCgpIHtcclxuICAgICAgICB0aGlzLnByb2plY3Rpb24gJiYgdGhpcy5wcm9qZWN0aW9uLnVubW91bnQoKTtcclxuICAgICAgICBjYW5jZWxGcmFtZSh0aGlzLm5vdGlmeVVwZGF0ZSk7XHJcbiAgICAgICAgY2FuY2VsRnJhbWUodGhpcy5yZW5kZXIpO1xyXG4gICAgICAgIHRoaXMudmFsdWVTdWJzY3JpcHRpb25zLmZvckVhY2goKHJlbW92ZSkgPT4gcmVtb3ZlKCkpO1xyXG4gICAgICAgIHRoaXMudmFsdWVTdWJzY3JpcHRpb25zLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVGcm9tVmFyaWFudFRyZWUgJiYgdGhpcy5yZW1vdmVGcm9tVmFyaWFudFRyZWUoKTtcclxuICAgICAgICB0aGlzLnBhcmVudD8ucmVtb3ZlQ2hpbGQodGhpcyk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5ldmVudHMpIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNba2V5XS5jbGVhcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmZlYXR1cmVzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmUgPSB0aGlzLmZlYXR1cmVzW2tleV07XHJcbiAgICAgICAgICAgIGlmIChmZWF0dXJlKSB7XHJcbiAgICAgICAgICAgICAgICBmZWF0dXJlLnVubW91bnQoKTtcclxuICAgICAgICAgICAgICAgIGZlYXR1cmUuaXNNb3VudGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gbnVsbDtcclxuICAgIH1cclxuICAgIGFkZENoaWxkKGNoaWxkKSB7XHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5hZGQoY2hpbGQpO1xyXG4gICAgICAgIHRoaXMuZW50ZXJpbmdDaGlsZHJlbiA/PyAodGhpcy5lbnRlcmluZ0NoaWxkcmVuID0gbmV3IFNldCgpKTtcclxuICAgICAgICB0aGlzLmVudGVyaW5nQ2hpbGRyZW4uYWRkKGNoaWxkKTtcclxuICAgIH1cclxuICAgIHJlbW92ZUNoaWxkKGNoaWxkKSB7XHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5kZWxldGUoY2hpbGQpO1xyXG4gICAgICAgIHRoaXMuZW50ZXJpbmdDaGlsZHJlbiAmJiB0aGlzLmVudGVyaW5nQ2hpbGRyZW4uZGVsZXRlKGNoaWxkKTtcclxuICAgIH1cclxuICAgIGJpbmRUb01vdGlvblZhbHVlKGtleSwgdmFsdWUpIHtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuaGFzKGtleSkpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuZ2V0KGtleSkoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdmFsdWVJc1RyYW5zZm9ybSA9IHRyYW5zZm9ybVByb3BzLmhhcyhrZXkpO1xyXG4gICAgICAgIGlmICh2YWx1ZUlzVHJhbnNmb3JtICYmIHRoaXMub25CaW5kVHJhbnNmb3JtKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25CaW5kVHJhbnNmb3JtKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHJlbW92ZU9uQ2hhbmdlID0gdmFsdWUub24oXCJjaGFuZ2VcIiwgKGxhdGVzdFZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubGF0ZXN0VmFsdWVzW2tleV0gPSBsYXRlc3RWYWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wcm9wcy5vblVwZGF0ZSAmJiBmcmFtZS5wcmVSZW5kZXIodGhpcy5ub3RpZnlVcGRhdGUpO1xyXG4gICAgICAgICAgICBpZiAodmFsdWVJc1RyYW5zZm9ybSAmJiB0aGlzLnByb2plY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvamVjdGlvbi5pc1RyYW5zZm9ybURpcnR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlUmVuZGVyKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbGV0IHJlbW92ZVN5bmNDaGVjaztcclxuICAgICAgICBpZiAod2luZG93Lk1vdGlvbkNoZWNrQXBwZWFyU3luYykge1xyXG4gICAgICAgICAgICByZW1vdmVTeW5jQ2hlY2sgPSB3aW5kb3cuTW90aW9uQ2hlY2tBcHBlYXJTeW5jKHRoaXMsIGtleSwgdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5zZXQoa2V5LCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJlbW92ZU9uQ2hhbmdlKCk7XHJcbiAgICAgICAgICAgIGlmIChyZW1vdmVTeW5jQ2hlY2spXHJcbiAgICAgICAgICAgICAgICByZW1vdmVTeW5jQ2hlY2soKTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlLm93bmVyKVxyXG4gICAgICAgICAgICAgICAgdmFsdWUuc3RvcCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgc29ydE5vZGVQb3NpdGlvbihvdGhlcikge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElmIHRoZXNlIG5vZGVzIGFyZW4ndCBldmVuIG9mIHRoZSBzYW1lIHR5cGUgd2UgY2FuJ3QgY29tcGFyZSB0aGVpciBkZXB0aC5cclxuICAgICAgICAgKi9cclxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudCB8fFxyXG4gICAgICAgICAgICAhdGhpcy5zb3J0SW5zdGFuY2VOb2RlUG9zaXRpb24gfHxcclxuICAgICAgICAgICAgdGhpcy50eXBlICE9PSBvdGhlci50eXBlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5zb3J0SW5zdGFuY2VOb2RlUG9zaXRpb24odGhpcy5jdXJyZW50LCBvdGhlci5jdXJyZW50KTtcclxuICAgIH1cclxuICAgIHVwZGF0ZUZlYXR1cmVzKCkge1xyXG4gICAgICAgIGxldCBrZXkgPSBcImFuaW1hdGlvblwiO1xyXG4gICAgICAgIGZvciAoa2V5IGluIGZlYXR1cmVEZWZpbml0aW9ucykge1xyXG4gICAgICAgICAgICBjb25zdCBmZWF0dXJlRGVmaW5pdGlvbiA9IGZlYXR1cmVEZWZpbml0aW9uc1trZXldO1xyXG4gICAgICAgICAgICBpZiAoIWZlYXR1cmVEZWZpbml0aW9uKVxyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgaXNFbmFibGVkLCBGZWF0dXJlOiBGZWF0dXJlQ29uc3RydWN0b3IgfSA9IGZlYXR1cmVEZWZpbml0aW9uO1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogSWYgdGhpcyBmZWF0dXJlIGlzIGVuYWJsZWQgYnV0IG5vdCBhY3RpdmUsIG1ha2UgYSBuZXcgaW5zdGFuY2UuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuZmVhdHVyZXNba2V5XSAmJlxyXG4gICAgICAgICAgICAgICAgRmVhdHVyZUNvbnN0cnVjdG9yICYmXHJcbiAgICAgICAgICAgICAgICBpc0VuYWJsZWQodGhpcy5wcm9wcykpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmVhdHVyZXNba2V5XSA9IG5ldyBGZWF0dXJlQ29uc3RydWN0b3IodGhpcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIElmIHdlIGhhdmUgYSBmZWF0dXJlLCBtb3VudCBvciB1cGRhdGUgaXQuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mZWF0dXJlc1trZXldKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmZWF0dXJlID0gdGhpcy5mZWF0dXJlc1trZXldO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZlYXR1cmUuaXNNb3VudGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmVhdHVyZS51cGRhdGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGZlYXR1cmUubW91bnQoKTtcclxuICAgICAgICAgICAgICAgICAgICBmZWF0dXJlLmlzTW91bnRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB0cmlnZ2VyQnVpbGQoKSB7XHJcbiAgICAgICAgdGhpcy5idWlsZCh0aGlzLnJlbmRlclN0YXRlLCB0aGlzLmxhdGVzdFZhbHVlcywgdGhpcy5wcm9wcyk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIE1lYXN1cmUgdGhlIGN1cnJlbnQgdmlld3BvcnQgYm94IHdpdGggb3Igd2l0aG91dCB0cmFuc2Zvcm1zLlxyXG4gICAgICogT25seSBtZWFzdXJlcyBheGlzLWFsaWduZWQgYm94ZXMsIHJvdGF0ZSBhbmQgc2tldyBtdXN0IGJlIG1hbnVhbGx5XHJcbiAgICAgKiByZW1vdmVkIHdpdGggYSByZS1yZW5kZXIgdG8gd29yay5cclxuICAgICAqL1xyXG4gICAgbWVhc3VyZVZpZXdwb3J0Qm94KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRcclxuICAgICAgICAgICAgPyB0aGlzLm1lYXN1cmVJbnN0YW5jZVZpZXdwb3J0Qm94KHRoaXMuY3VycmVudCwgdGhpcy5wcm9wcylcclxuICAgICAgICAgICAgOiBjcmVhdGVCb3goKTtcclxuICAgIH1cclxuICAgIGdldFN0YXRpY1ZhbHVlKGtleSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxhdGVzdFZhbHVlc1trZXldO1xyXG4gICAgfVxyXG4gICAgc2V0U3RhdGljVmFsdWUoa2V5LCB2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMubGF0ZXN0VmFsdWVzW2tleV0gPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlIHRoZSBwcm92aWRlZCBwcm9wcy4gRW5zdXJlIGFueSBuZXdseS1hZGRlZCBtb3Rpb24gdmFsdWVzIGFyZVxyXG4gICAgICogYWRkZWQgdG8gb3VyIG1hcCwgb2xkIG9uZXMgcmVtb3ZlZCwgYW5kIGxpc3RlbmVycyB1cGRhdGVkLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGUocHJvcHMsIHByZXNlbmNlQ29udGV4dCkge1xyXG4gICAgICAgIGlmIChwcm9wcy50cmFuc2Zvcm1UZW1wbGF0ZSB8fCB0aGlzLnByb3BzLnRyYW5zZm9ybVRlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVSZW5kZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5wcmV2UHJvcHMgPSB0aGlzLnByb3BzO1xyXG4gICAgICAgIHRoaXMucHJvcHMgPSBwcm9wcztcclxuICAgICAgICB0aGlzLnByZXZQcmVzZW5jZUNvbnRleHQgPSB0aGlzLnByZXNlbmNlQ29udGV4dDtcclxuICAgICAgICB0aGlzLnByZXNlbmNlQ29udGV4dCA9IHByZXNlbmNlQ29udGV4dDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBVcGRhdGUgcHJvcCBldmVudCBoYW5kbGVycyBpZSBvbkFuaW1hdGlvblN0YXJ0LCBvbkFuaW1hdGlvbkNvbXBsZXRlXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wRXZlbnRIYW5kbGVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBrZXkgPSBwcm9wRXZlbnRIYW5kbGVyc1tpXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMucHJvcEV2ZW50U3Vic2NyaXB0aW9uc1trZXldKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNba2V5XSgpO1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucHJvcEV2ZW50U3Vic2NyaXB0aW9uc1trZXldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVyTmFtZSA9IChcIm9uXCIgKyBrZXkpO1xyXG4gICAgICAgICAgICBjb25zdCBsaXN0ZW5lciA9IHByb3BzW2xpc3RlbmVyTmFtZV07XHJcbiAgICAgICAgICAgIGlmIChsaXN0ZW5lcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wRXZlbnRTdWJzY3JpcHRpb25zW2tleV0gPSB0aGlzLm9uKGtleSwgbGlzdGVuZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucHJldk1vdGlvblZhbHVlcyA9IHVwZGF0ZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyh0aGlzLCB0aGlzLnNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcywgdGhpcy5wcmV2UHJvcHMsIHRoaXMpLCB0aGlzLnByZXZNb3Rpb25WYWx1ZXMpO1xyXG4gICAgICAgIGlmICh0aGlzLmhhbmRsZUNoaWxkTW90aW9uVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGlsZE1vdGlvblZhbHVlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZ2V0UHJvcHMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIHZhcmlhbnQgZGVmaW5pdGlvbiB3aXRoIGEgZ2l2ZW4gbmFtZS5cclxuICAgICAqL1xyXG4gICAgZ2V0VmFyaWFudChuYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMudmFyaWFudHMgPyB0aGlzLnByb3BzLnZhcmlhbnRzW25hbWVdIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBkZWZpbmVkIGRlZmF1bHQgdHJhbnNpdGlvbiBvbiB0aGlzIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgZ2V0RGVmYXVsdFRyYW5zaXRpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMudHJhbnNpdGlvbjtcclxuICAgIH1cclxuICAgIGdldFRyYW5zZm9ybVBhZ2VQb2ludCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy50cmFuc2Zvcm1QYWdlUG9pbnQ7XHJcbiAgICB9XHJcbiAgICBnZXRDbG9zZXN0VmFyaWFudE5vZGUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYXJpYW50Tm9kZVxyXG4gICAgICAgICAgICA/IHRoaXNcclxuICAgICAgICAgICAgOiB0aGlzLnBhcmVudFxyXG4gICAgICAgICAgICAgICAgPyB0aGlzLnBhcmVudC5nZXRDbG9zZXN0VmFyaWFudE5vZGUoKVxyXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhIGNoaWxkIHZpc3VhbCBlbGVtZW50IHRvIG91ciBzZXQgb2YgY2hpbGRyZW4uXHJcbiAgICAgKi9cclxuICAgIGFkZFZhcmlhbnRDaGlsZChjaGlsZCkge1xyXG4gICAgICAgIGNvbnN0IGNsb3Nlc3RWYXJpYW50Tm9kZSA9IHRoaXMuZ2V0Q2xvc2VzdFZhcmlhbnROb2RlKCk7XHJcbiAgICAgICAgaWYgKGNsb3Nlc3RWYXJpYW50Tm9kZSkge1xyXG4gICAgICAgICAgICBjbG9zZXN0VmFyaWFudE5vZGUudmFyaWFudENoaWxkcmVuICYmXHJcbiAgICAgICAgICAgICAgICBjbG9zZXN0VmFyaWFudE5vZGUudmFyaWFudENoaWxkcmVuLmFkZChjaGlsZCk7XHJcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiBjbG9zZXN0VmFyaWFudE5vZGUudmFyaWFudENoaWxkcmVuLmRlbGV0ZShjaGlsZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGQgYSBtb3Rpb24gdmFsdWUgYW5kIGJpbmQgaXQgdG8gdGhpcyB2aXN1YWwgZWxlbWVudC5cclxuICAgICAqL1xyXG4gICAgYWRkVmFsdWUoa2V5LCB2YWx1ZSkge1xyXG4gICAgICAgIC8vIFJlbW92ZSBleGlzdGluZyB2YWx1ZSBpZiBpdCBleGlzdHNcclxuICAgICAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gdGhpcy52YWx1ZXMuZ2V0KGtleSk7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSBleGlzdGluZ1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIGlmIChleGlzdGluZ1ZhbHVlKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVWYWx1ZShrZXkpO1xyXG4gICAgICAgICAgICB0aGlzLmJpbmRUb01vdGlvblZhbHVlKGtleSwgdmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMubGF0ZXN0VmFsdWVzW2tleV0gPSB2YWx1ZS5nZXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZSBhIG1vdGlvbiB2YWx1ZSBhbmQgdW5iaW5kIGFueSBhY3RpdmUgc3Vic2NyaXB0aW9ucy5cclxuICAgICAqL1xyXG4gICAgcmVtb3ZlVmFsdWUoa2V5KSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZXMuZGVsZXRlKGtleSk7XHJcbiAgICAgICAgY29uc3QgdW5zdWJzY3JpYmUgPSB0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5nZXQoa2V5KTtcclxuICAgICAgICBpZiAodW5zdWJzY3JpYmUpIHtcclxuICAgICAgICAgICAgdW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuZGVsZXRlKGtleSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmxhdGVzdFZhbHVlc1trZXldO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlVmFsdWVGcm9tUmVuZGVyU3RhdGUoa2V5LCB0aGlzLnJlbmRlclN0YXRlKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgd2hldGhlciB3ZSBoYXZlIGEgbW90aW9uIHZhbHVlIGZvciB0aGlzIGtleVxyXG4gICAgICovXHJcbiAgICBoYXNWYWx1ZShrZXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZXMuaGFzKGtleSk7XHJcbiAgICB9XHJcbiAgICBnZXRWYWx1ZShrZXksIGRlZmF1bHRWYWx1ZSkge1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlcyAmJiB0aGlzLnByb3BzLnZhbHVlc1trZXldKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb3BzLnZhbHVlc1trZXldO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLnZhbHVlcy5nZXQoa2V5KTtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiBkZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IG1vdGlvblZhbHVlKGRlZmF1bHRWYWx1ZSA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IGRlZmF1bHRWYWx1ZSwgeyBvd25lcjogdGhpcyB9KTtcclxuICAgICAgICAgICAgdGhpcy5hZGRWYWx1ZShrZXksIHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB3ZSdyZSB0cnlpbmcgdG8gYW5pbWF0ZSB0byBhIHByZXZpb3VzbHkgdW5lbmNvdW50ZXJlZCB2YWx1ZSxcclxuICAgICAqIHdlIG5lZWQgdG8gY2hlY2sgZm9yIGl0IGluIG91ciBzdGF0ZSBhbmQgYXMgYSBsYXN0IHJlc29ydCByZWFkIGl0XHJcbiAgICAgKiBkaXJlY3RseSBmcm9tIHRoZSBpbnN0YW5jZSAod2hpY2ggbWlnaHQgaGF2ZSBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMpLlxyXG4gICAgICovXHJcbiAgICByZWFkVmFsdWUoa2V5LCB0YXJnZXQpIHtcclxuICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmxhdGVzdFZhbHVlc1trZXldICE9PSB1bmRlZmluZWQgfHwgIXRoaXMuY3VycmVudFxyXG4gICAgICAgICAgICA/IHRoaXMubGF0ZXN0VmFsdWVzW2tleV1cclxuICAgICAgICAgICAgOiB0aGlzLmdldEJhc2VUYXJnZXRGcm9tUHJvcHModGhpcy5wcm9wcywga2V5KSA/P1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWFkVmFsdWVGcm9tSW5zdGFuY2UodGhpcy5jdXJyZW50LCBrZXksIHRoaXMub3B0aW9ucyk7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJlxyXG4gICAgICAgICAgICAgICAgKGlzTnVtZXJpY2FsU3RyaW5nKHZhbHVlKSB8fCBpc1plcm9WYWx1ZVN0cmluZyh2YWx1ZSkpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgbnVtYmVyIHJlYWQgYXMgYSBzdHJpbmcsIGllIFwiMFwiIG9yIFwiMjAwXCIsIGNvbnZlcnQgaXQgdG8gYSBudW1iZXJcclxuICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoIWZpbmRWYWx1ZVR5cGUodmFsdWUpICYmIGNvbXBsZXgudGVzdCh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldEFuaW1hdGFibGVOb25lKGtleSwgdGFyZ2V0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNldEJhc2VUYXJnZXQoa2V5LCBpc01vdGlvblZhbHVlKHZhbHVlKSA/IHZhbHVlLmdldCgpIDogdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXNNb3Rpb25WYWx1ZSh2YWx1ZSkgPyB2YWx1ZS5nZXQoKSA6IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGJhc2UgdGFyZ2V0IHRvIGxhdGVyIGFuaW1hdGUgYmFjayB0by4gVGhpcyBpcyBjdXJyZW50bHlcclxuICAgICAqIG9ubHkgaHlkcmF0ZWQgb24gY3JlYXRpb24gYW5kIHdoZW4gd2UgZmlyc3QgcmVhZCBhIHZhbHVlLlxyXG4gICAgICovXHJcbiAgICBzZXRCYXNlVGFyZ2V0KGtleSwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLmJhc2VUYXJnZXRba2V5XSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBGaW5kIHRoZSBiYXNlIHRhcmdldCBmb3IgYSB2YWx1ZSB0aGF0cyBiZWVuIHJlbW92ZWQgZnJvbSBhbGwgYW5pbWF0aW9uXHJcbiAgICAgKiBwcm9wcy5cclxuICAgICAqL1xyXG4gICAgZ2V0QmFzZVRhcmdldChrZXkpIHtcclxuICAgICAgICBjb25zdCB7IGluaXRpYWwgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgbGV0IHZhbHVlRnJvbUluaXRpYWw7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBpbml0aWFsID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiBpbml0aWFsID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnQgPSByZXNvbHZlVmFyaWFudEZyb21Qcm9wcyh0aGlzLnByb3BzLCBpbml0aWFsLCB0aGlzLnByZXNlbmNlQ29udGV4dD8uY3VzdG9tKTtcclxuICAgICAgICAgICAgaWYgKHZhcmlhbnQpIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlRnJvbUluaXRpYWwgPSB2YXJpYW50W2tleV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSWYgdGhpcyB2YWx1ZSBzdGlsbCBleGlzdHMgaW4gdGhlIGN1cnJlbnQgaW5pdGlhbCB2YXJpYW50LCByZWFkIHRoYXQuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgaWYgKGluaXRpYWwgJiYgdmFsdWVGcm9tSW5pdGlhbCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZUZyb21Jbml0aWFsO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBbHRlcm5hdGl2ZWx5LCBpZiB0aGlzIFZpc3VhbEVsZW1lbnQgY29uZmlnIGhhcyBkZWZpbmVkIGEgZ2V0QmFzZVRhcmdldFxyXG4gICAgICAgICAqIHNvIHdlIGNhbiByZWFkIHRoZSB2YWx1ZSBmcm9tIGFuIGFsdGVybmF0aXZlIHNvdXJjZSwgdHJ5IHRoYXQuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5nZXRCYXNlVGFyZ2V0RnJvbVByb3BzKHRoaXMucHJvcHMsIGtleSk7XHJcbiAgICAgICAgaWYgKHRhcmdldCAhPT0gdW5kZWZpbmVkICYmICFpc01vdGlvblZhbHVlKHRhcmdldCkpXHJcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSWYgdGhlIHZhbHVlIHdhcyBpbml0aWFsbHkgZGVmaW5lZCBvbiBpbml0aWFsLCBidXQgaXQgZG9lc24ndCBhbnkgbW9yZSxcclxuICAgICAgICAgKiByZXR1cm4gdW5kZWZpbmVkLiBPdGhlcndpc2UgcmV0dXJuIHRoZSB2YWx1ZSBhcyBpbml0aWFsbHkgcmVhZCBmcm9tIHRoZSBET00uXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdGlhbFZhbHVlc1trZXldICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgdmFsdWVGcm9tSW5pdGlhbCA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgID8gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgIDogdGhpcy5iYXNlVGFyZ2V0W2tleV07XHJcbiAgICB9XHJcbiAgICBvbihldmVudE5hbWUsIGNhbGxiYWNrKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmV2ZW50c1tldmVudE5hbWVdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzW2V2ZW50TmFtZV0gPSBuZXcgU3Vic2NyaXB0aW9uTWFuYWdlcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5ldmVudHNbZXZlbnROYW1lXS5hZGQoY2FsbGJhY2spO1xyXG4gICAgfVxyXG4gICAgbm90aWZ5KGV2ZW50TmFtZSwgLi4uYXJncykge1xyXG4gICAgICAgIGlmICh0aGlzLmV2ZW50c1tldmVudE5hbWVdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzW2V2ZW50TmFtZV0ubm90aWZ5KC4uLmFyZ3MpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHNjaGVkdWxlUmVuZGVyTWljcm90YXNrKCkge1xyXG4gICAgICAgIG1pY3JvdGFzay5yZW5kZXIodGhpcy5yZW5kZXIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgeyBWaXN1YWxFbGVtZW50IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/VisualElement.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createMotionProxy: function() { return /* binding */ createMotionProxy; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs\");\n/* harmony import */ var _motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../motion/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/index.mjs\");\n\r\n\r\n\r\nfunction createMotionProxy(preloadedFeatures, createVisualElement) {\r\n if (typeof Proxy === \"undefined\") {\r\n return _motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionComponent;\r\n }\r\n /**\r\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\r\n * Rather than generating them anew every render.\r\n */\r\n const componentCache = new Map();\r\n const factory = (Component, options) => {\r\n return (0,_motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionComponent)(Component, options, preloadedFeatures, createVisualElement);\r\n };\r\n /**\r\n * Support for deprecated`motion(Component)` pattern\r\n */\r\n const deprecatedFactoryFunction = (Component, options) => {\r\n if (true) {\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warnOnce)(false, \"motion() is deprecated. Use motion.create() instead.\");\r\n }\r\n return factory(Component, options);\r\n };\r\n return new Proxy(deprecatedFactoryFunction, {\r\n /**\r\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\r\n * The prop name is passed through as `key` and we can use that to generate a `motion`\r\n * DOM component with that name.\r\n */\r\n get: (_target, key) => {\r\n if (key === \"create\")\r\n return factory;\r\n /**\r\n * If this element doesn't exist in the component cache, create it and cache.\r\n */\r\n if (!componentCache.has(key)) {\r\n componentCache.set(key, (0,_motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionComponent)(key, undefined, preloadedFeatures, createVisualElement));\r\n }\r\n return componentCache.get(key);\r\n },\r\n });\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvY3JlYXRlLXByb3h5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBd0M7QUFDdUI7QUFDL0Q7QUFDQTtBQUNBO0FBQ0EsZUFBZSxvRUFBcUI7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHdFQUFxQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxJQUFxQztBQUNqRCxZQUFZLHNEQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLHdFQUFxQjtBQUM3RDtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQzZCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvY3JlYXRlLXByb3h5Lm1qcz8zMWQ4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgY3JlYXRlTW90aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW90aW9uL2luZGV4Lm1qcyc7XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVNb3Rpb25Qcm94eShwcmVsb2FkZWRGZWF0dXJlcywgY3JlYXRlVmlzdWFsRWxlbWVudCkge1xyXG4gICAgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgIHJldHVybiBjcmVhdGVNb3Rpb25Db21wb25lbnQ7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEEgY2FjaGUgb2YgZ2VuZXJhdGVkIGBtb3Rpb25gIGNvbXBvbmVudHMsIGUuZyBgbW90aW9uLmRpdmAsIGBtb3Rpb24uaW5wdXRgIGV0Yy5cclxuICAgICAqIFJhdGhlciB0aGFuIGdlbmVyYXRpbmcgdGhlbSBhbmV3IGV2ZXJ5IHJlbmRlci5cclxuICAgICAqL1xyXG4gICAgY29uc3QgY29tcG9uZW50Q2FjaGUgPSBuZXcgTWFwKCk7XHJcbiAgICBjb25zdCBmYWN0b3J5ID0gKENvbXBvbmVudCwgb3B0aW9ucykgPT4ge1xyXG4gICAgICAgIHJldHVybiBjcmVhdGVNb3Rpb25Db21wb25lbnQoQ29tcG9uZW50LCBvcHRpb25zLCBwcmVsb2FkZWRGZWF0dXJlcywgY3JlYXRlVmlzdWFsRWxlbWVudCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdXBwb3J0IGZvciBkZXByZWNhdGVkYG1vdGlvbihDb21wb25lbnQpYCBwYXR0ZXJuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGRlcHJlY2F0ZWRGYWN0b3J5RnVuY3Rpb24gPSAoQ29tcG9uZW50LCBvcHRpb25zKSA9PiB7XHJcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xyXG4gICAgICAgICAgICB3YXJuT25jZShmYWxzZSwgXCJtb3Rpb24oKSBpcyBkZXByZWNhdGVkLiBVc2UgbW90aW9uLmNyZWF0ZSgpIGluc3RlYWQuXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFjdG9yeShDb21wb25lbnQsIG9wdGlvbnMpO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBuZXcgUHJveHkoZGVwcmVjYXRlZEZhY3RvcnlGdW5jdGlvbiwge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENhbGxlZCB3aGVuIGBtb3Rpb25gIGlzIHJlZmVyZW5jZWQgd2l0aCBhIHByb3A6IGBtb3Rpb24uZGl2YCwgYG1vdGlvbi5pbnB1dGAgZXRjLlxyXG4gICAgICAgICAqIFRoZSBwcm9wIG5hbWUgaXMgcGFzc2VkIHRocm91Z2ggYXMgYGtleWAgYW5kIHdlIGNhbiB1c2UgdGhhdCB0byBnZW5lcmF0ZSBhIGBtb3Rpb25gXHJcbiAgICAgICAgICogRE9NIGNvbXBvbmVudCB3aXRoIHRoYXQgbmFtZS5cclxuICAgICAgICAgKi9cclxuICAgICAgICBnZXQ6IChfdGFyZ2V0LCBrZXkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJjcmVhdGVcIilcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWN0b3J5O1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogSWYgdGhpcyBlbGVtZW50IGRvZXNuJ3QgZXhpc3QgaW4gdGhlIGNvbXBvbmVudCBjYWNoZSwgY3JlYXRlIGl0IGFuZCBjYWNoZS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmICghY29tcG9uZW50Q2FjaGUuaGFzKGtleSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudENhY2hlLnNldChrZXksIGNyZWF0ZU1vdGlvbkNvbXBvbmVudChrZXksIHVuZGVmaW5lZCwgcHJlbG9hZGVkRmVhdHVyZXMsIGNyZWF0ZVZpc3VhbEVsZW1lbnQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gY29tcG9uZW50Q2FjaGUuZ2V0KGtleSk7XHJcbiAgICAgICAgfSxcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgeyBjcmVhdGVNb3Rpb25Qcm94eSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs":
|
||
/*!****************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs ***!
|
||
\****************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ featureBundle: function() { return /* binding */ featureBundle; }\n/* harmony export */ });\n/* harmony import */ var _motion_features_animations_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../motion/features/animations.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animations.mjs\");\n/* harmony import */ var _motion_features_drag_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../motion/features/drag.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/drag.mjs\");\n/* harmony import */ var _motion_features_gestures_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../motion/features/gestures.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs\");\n/* harmony import */ var _motion_features_layout_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../motion/features/layout.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout.mjs\");\n\r\n\r\n\r\n\r\n\r\nconst featureBundle = {\r\n ..._motion_features_animations_mjs__WEBPACK_IMPORTED_MODULE_0__.animations,\r\n ..._motion_features_gestures_mjs__WEBPACK_IMPORTED_MODULE_1__.gestureAnimations,\r\n ..._motion_features_drag_mjs__WEBPACK_IMPORTED_MODULE_2__.drag,\r\n ..._motion_features_layout_mjs__WEBPACK_IMPORTED_MODULE_3__.layout,\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvbW90aW9uL2ZlYXR1cmUtYnVuZGxlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFxRTtBQUNaO0FBQ2lCO0FBQ2I7QUFDN0Q7QUFDQTtBQUNBLE9BQU8sdUVBQVU7QUFDakIsT0FBTyw0RUFBaUI7QUFDeEIsT0FBTywyREFBSTtBQUNYLE9BQU8sK0RBQU07QUFDYjtBQUNBO0FBQ3lCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvbW90aW9uL2ZlYXR1cmUtYnVuZGxlLm1qcz8zN2RjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9tb3Rpb24vZmVhdHVyZXMvYW5pbWF0aW9ucy5tanMnO1xyXG5pbXBvcnQgeyBkcmFnIH0gZnJvbSAnLi4vLi4vLi4vbW90aW9uL2ZlYXR1cmVzL2RyYWcubWpzJztcclxuaW1wb3J0IHsgZ2VzdHVyZUFuaW1hdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9tb3Rpb24vZmVhdHVyZXMvZ2VzdHVyZXMubWpzJztcclxuaW1wb3J0IHsgbGF5b3V0IH0gZnJvbSAnLi4vLi4vLi4vbW90aW9uL2ZlYXR1cmVzL2xheW91dC5tanMnO1xyXG5cclxuY29uc3QgZmVhdHVyZUJ1bmRsZSA9IHtcclxuICAgIC4uLmFuaW1hdGlvbnMsXHJcbiAgICAuLi5nZXN0dXJlQW5pbWF0aW9ucyxcclxuICAgIC4uLmRyYWcsXHJcbiAgICAuLi5sYXlvdXQsXHJcbn07XHJcblxyXG5leHBvcnQgeyBmZWF0dXJlQnVuZGxlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ motion: function() { return /* binding */ motion; }\n/* harmony export */ });\n/* harmony import */ var _dom_create_visual_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../dom/create-visual-element.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs\");\n/* harmony import */ var _create_proxy_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../create-proxy.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs\");\n/* harmony import */ var _feature_bundle_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./feature-bundle.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs\");\n\r\n\r\n\r\n\r\nconst motion = /*@__PURE__*/ (0,_create_proxy_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionProxy)(_feature_bundle_mjs__WEBPACK_IMPORTED_MODULE_1__.featureBundle, _dom_create_visual_element_mjs__WEBPACK_IMPORTED_MODULE_2__.createDomVisualElement);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvbW90aW9uL3Byb3h5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTZFO0FBQ3JCO0FBQ0g7QUFDckQ7QUFDQSw2QkFBNkIsb0VBQWlCLENBQUMsOERBQWEsRUFBRSxrRkFBc0I7QUFDcEY7QUFDa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvY29tcG9uZW50cy9tb3Rpb24vcHJveHkubWpzP2IyZDciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRG9tVmlzdWFsRWxlbWVudCB9IGZyb20gJy4uLy4uL2RvbS9jcmVhdGUtdmlzdWFsLWVsZW1lbnQubWpzJztcclxuaW1wb3J0IHsgY3JlYXRlTW90aW9uUHJveHkgfSBmcm9tICcuLi9jcmVhdGUtcHJveHkubWpzJztcclxuaW1wb3J0IHsgZmVhdHVyZUJ1bmRsZSB9IGZyb20gJy4vZmVhdHVyZS1idW5kbGUubWpzJztcclxuXHJcbmNvbnN0IG1vdGlvbiA9IC8qQF9fUFVSRV9fKi8gY3JlYXRlTW90aW9uUHJveHkoZmVhdHVyZUJ1bmRsZSwgY3JlYXRlRG9tVmlzdWFsRWxlbWVudCk7XHJcblxyXG5leHBvcnQgeyBtb3Rpb24gfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DOMVisualElement: function() { return /* binding */ DOMVisualElement; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var _VisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VisualElement.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/VisualElement.mjs\");\n\r\n\r\n\r\nclass DOMVisualElement extends _VisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__.VisualElement {\r\n constructor() {\r\n super(...arguments);\r\n this.KeyframeResolver = motion_dom__WEBPACK_IMPORTED_MODULE_1__.DOMKeyframesResolver;\r\n }\r\n sortInstanceNodePosition(a, b) {\r\n /**\r\n * compareDocumentPosition returns a bitmask, by using the bitwise &\r\n * we're returning true if 2 in that bitmask is set to true. 2 is set\r\n * to true if b preceeds a.\r\n */\r\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\r\n }\r\n getBaseTargetFromProps(props, key) {\r\n return props.style\r\n ? props.style[key]\r\n : undefined;\r\n }\r\n removeValueFromRenderState(key, { vars, style }) {\r\n delete vars[key];\r\n delete style[key];\r\n }\r\n handleChildMotionValue() {\r\n if (this.childSubscription) {\r\n this.childSubscription();\r\n delete this.childSubscription;\r\n }\r\n const { children } = this.props;\r\n if ((0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isMotionValue)(children)) {\r\n this.childSubscription = children.on(\"change\", (latest) => {\r\n if (this.current) {\r\n this.current.textContent = `${latest}`;\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9ET01WaXN1YWxFbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWlFO0FBQ1o7QUFDckQ7QUFDQSwrQkFBK0IsNkRBQWE7QUFDNUM7QUFDQTtBQUNBLGdDQUFnQyw0REFBb0I7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyxhQUFhO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsV0FBVztBQUMzQixZQUFZLHlEQUFhO0FBQ3pCO0FBQ0E7QUFDQSxrREFBa0QsT0FBTztBQUN6RDtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUM0QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9kb20vRE9NVmlzdWFsRWxlbWVudC5tanM/MzNmYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET01LZXlmcmFtZXNSZXNvbHZlciwgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5pbXBvcnQgeyBWaXN1YWxFbGVtZW50IH0gZnJvbSAnLi4vVmlzdWFsRWxlbWVudC5tanMnO1xyXG5cclxuY2xhc3MgRE9NVmlzdWFsRWxlbWVudCBleHRlbmRzIFZpc3VhbEVsZW1lbnQge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcclxuICAgICAgICB0aGlzLktleWZyYW1lUmVzb2x2ZXIgPSBET01LZXlmcmFtZXNSZXNvbHZlcjtcclxuICAgIH1cclxuICAgIHNvcnRJbnN0YW5jZU5vZGVQb3NpdGlvbihhLCBiKSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogY29tcGFyZURvY3VtZW50UG9zaXRpb24gcmV0dXJucyBhIGJpdG1hc2ssIGJ5IHVzaW5nIHRoZSBiaXR3aXNlICZcclxuICAgICAgICAgKiB3ZSdyZSByZXR1cm5pbmcgdHJ1ZSBpZiAyIGluIHRoYXQgYml0bWFzayBpcyBzZXQgdG8gdHJ1ZS4gMiBpcyBzZXRcclxuICAgICAgICAgKiB0byB0cnVlIGlmIGIgcHJlY2VlZHMgYS5cclxuICAgICAgICAgKi9cclxuICAgICAgICByZXR1cm4gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSAmIDIgPyAxIDogLTE7XHJcbiAgICB9XHJcbiAgICBnZXRCYXNlVGFyZ2V0RnJvbVByb3BzKHByb3BzLCBrZXkpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMuc3R5bGVcclxuICAgICAgICAgICAgPyBwcm9wcy5zdHlsZVtrZXldXHJcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgcmVtb3ZlVmFsdWVGcm9tUmVuZGVyU3RhdGUoa2V5LCB7IHZhcnMsIHN0eWxlIH0pIHtcclxuICAgICAgICBkZWxldGUgdmFyc1trZXldO1xyXG4gICAgICAgIGRlbGV0ZSBzdHlsZVtrZXldO1xyXG4gICAgfVxyXG4gICAgaGFuZGxlQ2hpbGRNb3Rpb25WYWx1ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5jaGlsZFN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLmNoaWxkU3Vic2NyaXB0aW9uKCk7XHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmNoaWxkU3Vic2NyaXB0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgIGlmIChpc01vdGlvblZhbHVlKGNoaWxkcmVuKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNoaWxkU3Vic2NyaXB0aW9uID0gY2hpbGRyZW4ub24oXCJjaGFuZ2VcIiwgKGxhdGVzdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudC50ZXh0Q29udGVudCA9IGAke2xhdGVzdH1gO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IERPTVZpc3VhbEVsZW1lbnQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs ***!
|
||
\*********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createDomVisualElement: function() { return /* binding */ createDomVisualElement; }\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 _html_HTMLVisualElement_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../html/HTMLVisualElement.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs\");\n/* harmony import */ var _svg_SVGVisualElement_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../svg/SVGVisualElement.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs\");\n/* harmony import */ var _utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/is-svg-component.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\");\n\r\n\r\n\r\n\r\n\r\nconst createDomVisualElement = (Component, options) => {\r\n return (0,_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__.isSVGComponent)(Component)\r\n ? new _svg_SVGVisualElement_mjs__WEBPACK_IMPORTED_MODULE_2__.SVGVisualElement(options)\r\n : new _html_HTMLVisualElement_mjs__WEBPACK_IMPORTED_MODULE_3__.HTMLVisualElement(options, {\r\n allowProjection: Component !== react__WEBPACK_IMPORTED_MODULE_0__.Fragment,\r\n });\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9jcmVhdGUtdmlzdWFsLWVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQWlDO0FBQ2lDO0FBQ0g7QUFDRDtBQUM5RDtBQUNBO0FBQ0EsV0FBVywyRUFBYztBQUN6QixjQUFjLHVFQUFnQjtBQUM5QixjQUFjLDBFQUFpQjtBQUMvQiwyQ0FBMkMsMkNBQVE7QUFDbkQsU0FBUztBQUNUO0FBQ0E7QUFDa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvZG9tL2NyZWF0ZS12aXN1YWwtZWxlbWVudC5tanM/YTAyYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGcmFnbWVudCB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgSFRNTFZpc3VhbEVsZW1lbnQgfSBmcm9tICcuLi9odG1sL0hUTUxWaXN1YWxFbGVtZW50Lm1qcyc7XHJcbmltcG9ydCB7IFNWR1Zpc3VhbEVsZW1lbnQgfSBmcm9tICcuLi9zdmcvU1ZHVmlzdWFsRWxlbWVudC5tanMnO1xyXG5pbXBvcnQgeyBpc1NWR0NvbXBvbmVudCB9IGZyb20gJy4vdXRpbHMvaXMtc3ZnLWNvbXBvbmVudC5tanMnO1xyXG5cclxuY29uc3QgY3JlYXRlRG9tVmlzdWFsRWxlbWVudCA9IChDb21wb25lbnQsIG9wdGlvbnMpID0+IHtcclxuICAgIHJldHVybiBpc1NWR0NvbXBvbmVudChDb21wb25lbnQpXHJcbiAgICAgICAgPyBuZXcgU1ZHVmlzdWFsRWxlbWVudChvcHRpb25zKVxyXG4gICAgICAgIDogbmV3IEhUTUxWaXN1YWxFbGVtZW50KG9wdGlvbnMsIHtcclxuICAgICAgICAgICAgYWxsb3dQcm9qZWN0aW9uOiBDb21wb25lbnQgIT09IEZyYWdtZW50LFxyXG4gICAgICAgIH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IHsgY3JlYXRlRG9tVmlzdWFsRWxlbWVudCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/attach-animation.mjs":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/scroll/attach-animation.mjs ***!
|
||
\***********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ attachToAnimation: function() { return /* binding */ attachToAnimation; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/scroll/observe.mjs\");\n/* harmony import */ var _utils_get_timeline_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/get-timeline.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/utils/get-timeline.mjs\");\n\r\n\r\n\r\nfunction attachToAnimation(animation, options) {\r\n const timeline = (0,_utils_get_timeline_mjs__WEBPACK_IMPORTED_MODULE_0__.getTimeline)(options);\r\n return animation.attachTimeline({\r\n timeline: options.target ? undefined : timeline,\r\n observe: (valueAnimation) => {\r\n valueAnimation.pause();\r\n return (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.observeTimeline)((progress) => {\r\n valueAnimation.time =\r\n valueAnimation.iterationDuration * progress;\r\n }, timeline);\r\n },\r\n });\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvYXR0YWNoLWFuaW1hdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTZDO0FBQ1U7QUFDdkQ7QUFDQTtBQUNBLHFCQUFxQixvRUFBVztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwyREFBZTtBQUNsQztBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUM2QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9kb20vc2Nyb2xsL2F0dGFjaC1hbmltYXRpb24ubWpzP2I3MzAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb2JzZXJ2ZVRpbWVsaW5lIH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcbmltcG9ydCB7IGdldFRpbWVsaW5lIH0gZnJvbSAnLi91dGlscy9nZXQtdGltZWxpbmUubWpzJztcclxuXHJcbmZ1bmN0aW9uIGF0dGFjaFRvQW5pbWF0aW9uKGFuaW1hdGlvbiwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgdGltZWxpbmUgPSBnZXRUaW1lbGluZShvcHRpb25zKTtcclxuICAgIHJldHVybiBhbmltYXRpb24uYXR0YWNoVGltZWxpbmUoe1xyXG4gICAgICAgIHRpbWVsaW5lOiBvcHRpb25zLnRhcmdldCA/IHVuZGVmaW5lZCA6IHRpbWVsaW5lLFxyXG4gICAgICAgIG9ic2VydmU6ICh2YWx1ZUFuaW1hdGlvbikgPT4ge1xyXG4gICAgICAgICAgICB2YWx1ZUFuaW1hdGlvbi5wYXVzZSgpO1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzZXJ2ZVRpbWVsaW5lKChwcm9ncmVzcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdmFsdWVBbmltYXRpb24udGltZSA9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVBbmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb24gKiBwcm9ncmVzcztcclxuICAgICAgICAgICAgfSwgdGltZWxpbmUpO1xyXG4gICAgICAgIH0sXHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IHsgYXR0YWNoVG9BbmltYXRpb24gfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/attach-animation.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/attach-function.mjs":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/scroll/attach-function.mjs ***!
|
||
\**********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ attachToFunction: function() { return /* binding */ attachToFunction; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/scroll/observe.mjs\");\n/* harmony import */ var _track_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./track.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs\");\n/* harmony import */ var _utils_get_timeline_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/get-timeline.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/utils/get-timeline.mjs\");\n\r\n\r\n\r\n\r\n/**\r\n * If the onScroll function has two arguments, it's expecting\r\n * more specific information about the scroll from scrollInfo.\r\n */\r\nfunction isOnScrollWithInfo(onScroll) {\r\n return onScroll.length === 2;\r\n}\r\nfunction attachToFunction(onScroll, options) {\r\n if (isOnScrollWithInfo(onScroll)) {\r\n return (0,_track_mjs__WEBPACK_IMPORTED_MODULE_0__.scrollInfo)((info) => {\r\n onScroll(info[options.axis].progress, info);\r\n }, options);\r\n }\r\n else {\r\n return (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.observeTimeline)(onScroll, (0,_utils_get_timeline_mjs__WEBPACK_IMPORTED_MODULE_2__.getTimeline)(options));\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvYXR0YWNoLWZ1bmN0aW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTZDO0FBQ0o7QUFDYztBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsc0RBQVU7QUFDekI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLGVBQWUsMkRBQWUsV0FBVyxvRUFBVztBQUNwRDtBQUNBO0FBQ0E7QUFDNEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvZG9tL3Njcm9sbC9hdHRhY2gtZnVuY3Rpb24ubWpzP2YwYWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb2JzZXJ2ZVRpbWVsaW5lIH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcbmltcG9ydCB7IHNjcm9sbEluZm8gfSBmcm9tICcuL3RyYWNrLm1qcyc7XHJcbmltcG9ydCB7IGdldFRpbWVsaW5lIH0gZnJvbSAnLi91dGlscy9nZXQtdGltZWxpbmUubWpzJztcclxuXHJcbi8qKlxyXG4gKiBJZiB0aGUgb25TY3JvbGwgZnVuY3Rpb24gaGFzIHR3byBhcmd1bWVudHMsIGl0J3MgZXhwZWN0aW5nXHJcbiAqIG1vcmUgc3BlY2lmaWMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcm9sbCBmcm9tIHNjcm9sbEluZm8uXHJcbiAqL1xyXG5mdW5jdGlvbiBpc09uU2Nyb2xsV2l0aEluZm8ob25TY3JvbGwpIHtcclxuICAgIHJldHVybiBvblNjcm9sbC5sZW5ndGggPT09IDI7XHJcbn1cclxuZnVuY3Rpb24gYXR0YWNoVG9GdW5jdGlvbihvblNjcm9sbCwgb3B0aW9ucykge1xyXG4gICAgaWYgKGlzT25TY3JvbGxXaXRoSW5mbyhvblNjcm9sbCkpIHtcclxuICAgICAgICByZXR1cm4gc2Nyb2xsSW5mbygoaW5mbykgPT4ge1xyXG4gICAgICAgICAgICBvblNjcm9sbChpbmZvW29wdGlvbnMuYXhpc10ucHJvZ3Jlc3MsIGluZm8pO1xyXG4gICAgICAgIH0sIG9wdGlvbnMpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG9ic2VydmVUaW1lbGluZShvblNjcm9sbCwgZ2V0VGltZWxpbmUob3B0aW9ucykpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgeyBhdHRhY2hUb0Z1bmN0aW9uIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/attach-function.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/index.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/scroll/index.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ scroll: function() { return /* binding */ scroll; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _attach_animation_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./attach-animation.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/attach-animation.mjs\");\n/* harmony import */ var _attach_function_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./attach-function.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/attach-function.mjs\");\n\r\n\r\n\r\n\r\nfunction scroll(onScroll, { axis = \"y\", container = document.scrollingElement, ...options } = {}) {\r\n if (!container)\r\n return motion_utils__WEBPACK_IMPORTED_MODULE_0__.noop;\r\n const optionsWithDefaults = { axis, container, ...options };\r\n return typeof onScroll === \"function\"\r\n ? (0,_attach_function_mjs__WEBPACK_IMPORTED_MODULE_1__.attachToFunction)(onScroll, optionsWithDefaults)\r\n : (0,_attach_animation_mjs__WEBPACK_IMPORTED_MODULE_2__.attachToAnimation)(onScroll, optionsWithDefaults);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBb0M7QUFDdUI7QUFDRjtBQUN6RDtBQUNBLDRCQUE0QixnRUFBZ0UsSUFBSTtBQUNoRztBQUNBLGVBQWUsOENBQUk7QUFDbkIsa0NBQWtDO0FBQ2xDO0FBQ0EsVUFBVSxzRUFBZ0I7QUFDMUIsVUFBVSx3RUFBaUI7QUFDM0I7QUFDQTtBQUNrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9kb20vc2Nyb2xsL2luZGV4Lm1qcz81NWU4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vb3AgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBhdHRhY2hUb0FuaW1hdGlvbiB9IGZyb20gJy4vYXR0YWNoLWFuaW1hdGlvbi5tanMnO1xyXG5pbXBvcnQgeyBhdHRhY2hUb0Z1bmN0aW9uIH0gZnJvbSAnLi9hdHRhY2gtZnVuY3Rpb24ubWpzJztcclxuXHJcbmZ1bmN0aW9uIHNjcm9sbChvblNjcm9sbCwgeyBheGlzID0gXCJ5XCIsIGNvbnRhaW5lciA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQsIC4uLm9wdGlvbnMgfSA9IHt9KSB7XHJcbiAgICBpZiAoIWNvbnRhaW5lcilcclxuICAgICAgICByZXR1cm4gbm9vcDtcclxuICAgIGNvbnN0IG9wdGlvbnNXaXRoRGVmYXVsdHMgPSB7IGF4aXMsIGNvbnRhaW5lciwgLi4ub3B0aW9ucyB9O1xyXG4gICAgcmV0dXJuIHR5cGVvZiBvblNjcm9sbCA9PT0gXCJmdW5jdGlvblwiXHJcbiAgICAgICAgPyBhdHRhY2hUb0Z1bmN0aW9uKG9uU2Nyb2xsLCBvcHRpb25zV2l0aERlZmF1bHRzKVxyXG4gICAgICAgIDogYXR0YWNoVG9BbmltYXRpb24ob25TY3JvbGwsIG9wdGlvbnNXaXRoRGVmYXVsdHMpO1xyXG59XHJcblxyXG5leHBvcnQgeyBzY3JvbGwgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createScrollInfo: function() { return /* binding */ createScrollInfo; },\n/* harmony export */ updateScrollInfo: function() { return /* binding */ updateScrollInfo; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs\");\n\r\n\r\n/**\r\n * A time in milliseconds, beyond which we consider the scroll velocity to be 0.\r\n */\r\nconst maxElapsed = 50;\r\nconst createAxisInfo = () => ({\r\n current: 0,\r\n offset: [],\r\n progress: 0,\r\n scrollLength: 0,\r\n targetOffset: 0,\r\n targetLength: 0,\r\n containerLength: 0,\r\n velocity: 0,\r\n});\r\nconst createScrollInfo = () => ({\r\n time: 0,\r\n x: createAxisInfo(),\r\n y: createAxisInfo(),\r\n});\r\nconst keys = {\r\n x: {\r\n length: \"Width\",\r\n position: \"Left\",\r\n },\r\n y: {\r\n length: \"Height\",\r\n position: \"Top\",\r\n },\r\n};\r\nfunction updateAxisInfo(element, axisName, info, time) {\r\n const axis = info[axisName];\r\n const { length, position } = keys[axisName];\r\n const prev = axis.current;\r\n const prevTime = info.time;\r\n axis.current = element[`scroll${position}`];\r\n axis.scrollLength = element[`scroll${length}`] - element[`client${length}`];\r\n axis.offset.length = 0;\r\n axis.offset[0] = 0;\r\n axis.offset[1] = axis.scrollLength;\r\n axis.progress = (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.progress)(0, axis.scrollLength, axis.current);\r\n const elapsed = time - prevTime;\r\n axis.velocity =\r\n elapsed > maxElapsed\r\n ? 0\r\n : (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.velocityPerSecond)(axis.current - prev, elapsed);\r\n}\r\nfunction updateScrollInfo(element, info, time) {\r\n updateAxisInfo(element, \"x\", info, time);\r\n updateAxisInfo(element, \"y\", info, time);\r\n info.time = time;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvaW5mby5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUEyRDtBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxZQUFZLG1CQUFtQjtBQUMvQjtBQUNBO0FBQ0Esb0NBQW9DLFNBQVM7QUFDN0MseUNBQXlDLE9BQU8sc0JBQXNCLE9BQU87QUFDN0U7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHNEQUFRO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYywrREFBaUI7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvZG9tL3Njcm9sbC9pbmZvLm1qcz8wOTQ4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb2dyZXNzLCB2ZWxvY2l0eVBlclNlY29uZCB9IGZyb20gJ21vdGlvbi11dGlscyc7XHJcblxyXG4vKipcclxuICogQSB0aW1lIGluIG1pbGxpc2Vjb25kcywgYmV5b25kIHdoaWNoIHdlIGNvbnNpZGVyIHRoZSBzY3JvbGwgdmVsb2NpdHkgdG8gYmUgMC5cclxuICovXHJcbmNvbnN0IG1heEVsYXBzZWQgPSA1MDtcclxuY29uc3QgY3JlYXRlQXhpc0luZm8gPSAoKSA9PiAoe1xyXG4gICAgY3VycmVudDogMCxcclxuICAgIG9mZnNldDogW10sXHJcbiAgICBwcm9ncmVzczogMCxcclxuICAgIHNjcm9sbExlbmd0aDogMCxcclxuICAgIHRhcmdldE9mZnNldDogMCxcclxuICAgIHRhcmdldExlbmd0aDogMCxcclxuICAgIGNvbnRhaW5lckxlbmd0aDogMCxcclxuICAgIHZlbG9jaXR5OiAwLFxyXG59KTtcclxuY29uc3QgY3JlYXRlU2Nyb2xsSW5mbyA9ICgpID0+ICh7XHJcbiAgICB0aW1lOiAwLFxyXG4gICAgeDogY3JlYXRlQXhpc0luZm8oKSxcclxuICAgIHk6IGNyZWF0ZUF4aXNJbmZvKCksXHJcbn0pO1xyXG5jb25zdCBrZXlzID0ge1xyXG4gICAgeDoge1xyXG4gICAgICAgIGxlbmd0aDogXCJXaWR0aFwiLFxyXG4gICAgICAgIHBvc2l0aW9uOiBcIkxlZnRcIixcclxuICAgIH0sXHJcbiAgICB5OiB7XHJcbiAgICAgICAgbGVuZ3RoOiBcIkhlaWdodFwiLFxyXG4gICAgICAgIHBvc2l0aW9uOiBcIlRvcFwiLFxyXG4gICAgfSxcclxufTtcclxuZnVuY3Rpb24gdXBkYXRlQXhpc0luZm8oZWxlbWVudCwgYXhpc05hbWUsIGluZm8sIHRpbWUpIHtcclxuICAgIGNvbnN0IGF4aXMgPSBpbmZvW2F4aXNOYW1lXTtcclxuICAgIGNvbnN0IHsgbGVuZ3RoLCBwb3NpdGlvbiB9ID0ga2V5c1theGlzTmFtZV07XHJcbiAgICBjb25zdCBwcmV2ID0gYXhpcy5jdXJyZW50O1xyXG4gICAgY29uc3QgcHJldlRpbWUgPSBpbmZvLnRpbWU7XHJcbiAgICBheGlzLmN1cnJlbnQgPSBlbGVtZW50W2BzY3JvbGwke3Bvc2l0aW9ufWBdO1xyXG4gICAgYXhpcy5zY3JvbGxMZW5ndGggPSBlbGVtZW50W2BzY3JvbGwke2xlbmd0aH1gXSAtIGVsZW1lbnRbYGNsaWVudCR7bGVuZ3RofWBdO1xyXG4gICAgYXhpcy5vZmZzZXQubGVuZ3RoID0gMDtcclxuICAgIGF4aXMub2Zmc2V0WzBdID0gMDtcclxuICAgIGF4aXMub2Zmc2V0WzFdID0gYXhpcy5zY3JvbGxMZW5ndGg7XHJcbiAgICBheGlzLnByb2dyZXNzID0gcHJvZ3Jlc3MoMCwgYXhpcy5zY3JvbGxMZW5ndGgsIGF4aXMuY3VycmVudCk7XHJcbiAgICBjb25zdCBlbGFwc2VkID0gdGltZSAtIHByZXZUaW1lO1xyXG4gICAgYXhpcy52ZWxvY2l0eSA9XHJcbiAgICAgICAgZWxhcHNlZCA+IG1heEVsYXBzZWRcclxuICAgICAgICAgICAgPyAwXHJcbiAgICAgICAgICAgIDogdmVsb2NpdHlQZXJTZWNvbmQoYXhpcy5jdXJyZW50IC0gcHJldiwgZWxhcHNlZCk7XHJcbn1cclxuZnVuY3Rpb24gdXBkYXRlU2Nyb2xsSW5mbyhlbGVtZW50LCBpbmZvLCB0aW1lKSB7XHJcbiAgICB1cGRhdGVBeGlzSW5mbyhlbGVtZW50LCBcInhcIiwgaW5mbywgdGltZSk7XHJcbiAgICB1cGRhdGVBeGlzSW5mbyhlbGVtZW50LCBcInlcIiwgaW5mbywgdGltZSk7XHJcbiAgICBpbmZvLnRpbWUgPSB0aW1lO1xyXG59XHJcblxyXG5leHBvcnQgeyBjcmVhdGVTY3JvbGxJbmZvLCB1cGRhdGVTY3JvbGxJbmZvIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ namedEdges: function() { return /* binding */ namedEdges; },\n/* harmony export */ resolveEdge: function() { return /* binding */ resolveEdge; }\n/* harmony export */ });\nconst namedEdges = {\r\n start: 0,\r\n center: 0.5,\r\n end: 1,\r\n};\r\nfunction resolveEdge(edge, length, inset = 0) {\r\n let delta = 0;\r\n /**\r\n * If we have this edge defined as a preset, replace the definition\r\n * with the numerical value.\r\n */\r\n if (edge in namedEdges) {\r\n edge = namedEdges[edge];\r\n }\r\n /**\r\n * Handle unit values\r\n */\r\n if (typeof edge === \"string\") {\r\n const asNumber = parseFloat(edge);\r\n if (edge.endsWith(\"px\")) {\r\n delta = asNumber;\r\n }\r\n else if (edge.endsWith(\"%\")) {\r\n edge = asNumber / 100;\r\n }\r\n else if (edge.endsWith(\"vw\")) {\r\n delta = (asNumber / 100) * document.documentElement.clientWidth;\r\n }\r\n else if (edge.endsWith(\"vh\")) {\r\n delta = (asNumber / 100) * document.documentElement.clientHeight;\r\n }\r\n else {\r\n edge = asNumber;\r\n }\r\n }\r\n /**\r\n * If the edge is defined as a number, handle as a progress value.\r\n */\r\n if (typeof edge === \"number\") {\r\n delta = length * edge;\r\n }\r\n return inset + delta;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvb2Zmc2V0cy9lZGdlLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvZG9tL3Njcm9sbC9vZmZzZXRzL2VkZ2UubWpzPzgxNDEiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbmFtZWRFZGdlcyA9IHtcclxuICAgIHN0YXJ0OiAwLFxyXG4gICAgY2VudGVyOiAwLjUsXHJcbiAgICBlbmQ6IDEsXHJcbn07XHJcbmZ1bmN0aW9uIHJlc29sdmVFZGdlKGVkZ2UsIGxlbmd0aCwgaW5zZXQgPSAwKSB7XHJcbiAgICBsZXQgZGVsdGEgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB3ZSBoYXZlIHRoaXMgZWRnZSBkZWZpbmVkIGFzIGEgcHJlc2V0LCByZXBsYWNlIHRoZSBkZWZpbml0aW9uXHJcbiAgICAgKiB3aXRoIHRoZSBudW1lcmljYWwgdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIGlmIChlZGdlIGluIG5hbWVkRWRnZXMpIHtcclxuICAgICAgICBlZGdlID0gbmFtZWRFZGdlc1tlZGdlXTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlIHVuaXQgdmFsdWVzXHJcbiAgICAgKi9cclxuICAgIGlmICh0eXBlb2YgZWRnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IGFzTnVtYmVyID0gcGFyc2VGbG9hdChlZGdlKTtcclxuICAgICAgICBpZiAoZWRnZS5lbmRzV2l0aChcInB4XCIpKSB7XHJcbiAgICAgICAgICAgIGRlbHRhID0gYXNOdW1iZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGVkZ2UuZW5kc1dpdGgoXCIlXCIpKSB7XHJcbiAgICAgICAgICAgIGVkZ2UgPSBhc051bWJlciAvIDEwMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZWRnZS5lbmRzV2l0aChcInZ3XCIpKSB7XHJcbiAgICAgICAgICAgIGRlbHRhID0gKGFzTnVtYmVyIC8gMTAwKSAqIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZWRnZS5lbmRzV2l0aChcInZoXCIpKSB7XHJcbiAgICAgICAgICAgIGRlbHRhID0gKGFzTnVtYmVyIC8gMTAwKSAqIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBlZGdlID0gYXNOdW1iZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB0aGUgZWRnZSBpcyBkZWZpbmVkIGFzIGEgbnVtYmVyLCBoYW5kbGUgYXMgYSBwcm9ncmVzcyB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgaWYgKHR5cGVvZiBlZGdlID09PSBcIm51bWJlclwiKSB7XHJcbiAgICAgICAgZGVsdGEgPSBsZW5ndGggKiBlZGdlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGluc2V0ICsgZGVsdGE7XHJcbn1cclxuXHJcbmV4cG9ydCB7IG5hbWVkRWRnZXMsIHJlc29sdmVFZGdlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs":
|
||
/*!********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs ***!
|
||
\********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveOffsets: function() { return /* binding */ resolveOffsets; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/interpolate.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _inset_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./inset.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs\");\n/* harmony import */ var _offset_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./offset.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs\");\n/* harmony import */ var _presets_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./presets.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\nconst point = { x: 0, y: 0 };\r\nfunction getTargetSize(target) {\r\n return \"getBBox\" in target && target.tagName !== \"svg\"\r\n ? target.getBBox()\r\n : { width: target.clientWidth, height: target.clientHeight };\r\n}\r\nfunction resolveOffsets(container, info, options) {\r\n const { offset: offsetDefinition = _presets_mjs__WEBPACK_IMPORTED_MODULE_0__.ScrollOffset.All } = options;\r\n const { target = container, axis = \"y\" } = options;\r\n const lengthLabel = axis === \"y\" ? \"height\" : \"width\";\r\n const inset = target !== container ? (0,_inset_mjs__WEBPACK_IMPORTED_MODULE_1__.calcInset)(target, container) : point;\r\n /**\r\n * Measure the target and container. If they're the same thing then we\r\n * use the container's scrollWidth/Height as the target, from there\r\n * all other calculations can remain the same.\r\n */\r\n const targetSize = target === container\r\n ? { width: container.scrollWidth, height: container.scrollHeight }\r\n : getTargetSize(target);\r\n const containerSize = {\r\n width: container.clientWidth,\r\n height: container.clientHeight,\r\n };\r\n /**\r\n * Reset the length of the resolved offset array rather than creating a new one.\r\n * TODO: More reusable data structures for targetSize/containerSize would also be good.\r\n */\r\n info[axis].offset.length = 0;\r\n /**\r\n * Populate the offset array by resolving the user's offset definition into\r\n * a list of pixel scroll offets.\r\n */\r\n let hasChanged = !info[axis].interpolate;\r\n const numOffsets = offsetDefinition.length;\r\n for (let i = 0; i < numOffsets; i++) {\r\n const offset = (0,_offset_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveOffset)(offsetDefinition[i], containerSize[lengthLabel], targetSize[lengthLabel], inset[axis]);\r\n if (!hasChanged && offset !== info[axis].interpolatorOffsets[i]) {\r\n hasChanged = true;\r\n }\r\n info[axis].offset[i] = offset;\r\n }\r\n /**\r\n * If the pixel scroll offsets have changed, create a new interpolator function\r\n * to map scroll value into a progress.\r\n */\r\n if (hasChanged) {\r\n info[axis].interpolate = (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.interpolate)(info[axis].offset, (0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.defaultOffset)(offsetDefinition), { clamp: false });\r\n info[axis].interpolatorOffsets = [...info[axis].offset];\r\n }\r\n info[axis].progress = (0,motion_utils__WEBPACK_IMPORTED_MODULE_5__.clamp)(0, 1, info[axis].interpolate(info[axis].current));\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvb2Zmc2V0cy9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUF3RDtBQUNuQjtBQUNHO0FBQ0s7QUFDQTtBQUM3QztBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBLFlBQVksMkJBQTJCLHNEQUFZLE9BQU87QUFDMUQsWUFBWSxpQ0FBaUM7QUFDN0M7QUFDQSx5Q0FBeUMscURBQVM7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGdCQUFnQjtBQUNwQyx1QkFBdUIsMERBQWE7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsdURBQVcsb0JBQW9CLHlEQUFhLHNCQUFzQixjQUFjO0FBQ2pIO0FBQ0E7QUFDQSwwQkFBMEIsbURBQUs7QUFDL0I7QUFDQTtBQUMwQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9kb20vc2Nyb2xsL29mZnNldHMvaW5kZXgubWpzP2MwZDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW50ZXJwb2xhdGUsIGRlZmF1bHRPZmZzZXQgfSBmcm9tICdtb3Rpb24tZG9tJztcclxuaW1wb3J0IHsgY2xhbXAgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBjYWxjSW5zZXQgfSBmcm9tICcuL2luc2V0Lm1qcyc7XHJcbmltcG9ydCB7IHJlc29sdmVPZmZzZXQgfSBmcm9tICcuL29mZnNldC5tanMnO1xyXG5pbXBvcnQgeyBTY3JvbGxPZmZzZXQgfSBmcm9tICcuL3ByZXNldHMubWpzJztcclxuXHJcbmNvbnN0IHBvaW50ID0geyB4OiAwLCB5OiAwIH07XHJcbmZ1bmN0aW9uIGdldFRhcmdldFNpemUodGFyZ2V0KSB7XHJcbiAgICByZXR1cm4gXCJnZXRCQm94XCIgaW4gdGFyZ2V0ICYmIHRhcmdldC50YWdOYW1lICE9PSBcInN2Z1wiXHJcbiAgICAgICAgPyB0YXJnZXQuZ2V0QkJveCgpXHJcbiAgICAgICAgOiB7IHdpZHRoOiB0YXJnZXQuY2xpZW50V2lkdGgsIGhlaWdodDogdGFyZ2V0LmNsaWVudEhlaWdodCB9O1xyXG59XHJcbmZ1bmN0aW9uIHJlc29sdmVPZmZzZXRzKGNvbnRhaW5lciwgaW5mbywgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvZmZzZXQ6IG9mZnNldERlZmluaXRpb24gPSBTY3JvbGxPZmZzZXQuQWxsIH0gPSBvcHRpb25zO1xyXG4gICAgY29uc3QgeyB0YXJnZXQgPSBjb250YWluZXIsIGF4aXMgPSBcInlcIiB9ID0gb3B0aW9ucztcclxuICAgIGNvbnN0IGxlbmd0aExhYmVsID0gYXhpcyA9PT0gXCJ5XCIgPyBcImhlaWdodFwiIDogXCJ3aWR0aFwiO1xyXG4gICAgY29uc3QgaW5zZXQgPSB0YXJnZXQgIT09IGNvbnRhaW5lciA/IGNhbGNJbnNldCh0YXJnZXQsIGNvbnRhaW5lcikgOiBwb2ludDtcclxuICAgIC8qKlxyXG4gICAgICogTWVhc3VyZSB0aGUgdGFyZ2V0IGFuZCBjb250YWluZXIuIElmIHRoZXkncmUgdGhlIHNhbWUgdGhpbmcgdGhlbiB3ZVxyXG4gICAgICogdXNlIHRoZSBjb250YWluZXIncyBzY3JvbGxXaWR0aC9IZWlnaHQgYXMgdGhlIHRhcmdldCwgZnJvbSB0aGVyZVxyXG4gICAgICogYWxsIG90aGVyIGNhbGN1bGF0aW9ucyBjYW4gcmVtYWluIHRoZSBzYW1lLlxyXG4gICAgICovXHJcbiAgICBjb25zdCB0YXJnZXRTaXplID0gdGFyZ2V0ID09PSBjb250YWluZXJcclxuICAgICAgICA/IHsgd2lkdGg6IGNvbnRhaW5lci5zY3JvbGxXaWR0aCwgaGVpZ2h0OiBjb250YWluZXIuc2Nyb2xsSGVpZ2h0IH1cclxuICAgICAgICA6IGdldFRhcmdldFNpemUodGFyZ2V0KTtcclxuICAgIGNvbnN0IGNvbnRhaW5lclNpemUgPSB7XHJcbiAgICAgICAgd2lkdGg6IGNvbnRhaW5lci5jbGllbnRXaWR0aCxcclxuICAgICAgICBoZWlnaHQ6IGNvbnRhaW5lci5jbGllbnRIZWlnaHQsXHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNldCB0aGUgbGVuZ3RoIG9mIHRoZSByZXNvbHZlZCBvZmZzZXQgYXJyYXkgcmF0aGVyIHRoYW4gY3JlYXRpbmcgYSBuZXcgb25lLlxyXG4gICAgICogVE9ETzogTW9yZSByZXVzYWJsZSBkYXRhIHN0cnVjdHVyZXMgZm9yIHRhcmdldFNpemUvY29udGFpbmVyU2l6ZSB3b3VsZCBhbHNvIGJlIGdvb2QuXHJcbiAgICAgKi9cclxuICAgIGluZm9bYXhpc10ub2Zmc2V0Lmxlbmd0aCA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIFBvcHVsYXRlIHRoZSBvZmZzZXQgYXJyYXkgYnkgcmVzb2x2aW5nIHRoZSB1c2VyJ3Mgb2Zmc2V0IGRlZmluaXRpb24gaW50b1xyXG4gICAgICogYSBsaXN0IG9mIHBpeGVsIHNjcm9sbCBvZmZldHMuXHJcbiAgICAgKi9cclxuICAgIGxldCBoYXNDaGFuZ2VkID0gIWluZm9bYXhpc10uaW50ZXJwb2xhdGU7XHJcbiAgICBjb25zdCBudW1PZmZzZXRzID0gb2Zmc2V0RGVmaW5pdGlvbi5sZW5ndGg7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bU9mZnNldHM7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHJlc29sdmVPZmZzZXQob2Zmc2V0RGVmaW5pdGlvbltpXSwgY29udGFpbmVyU2l6ZVtsZW5ndGhMYWJlbF0sIHRhcmdldFNpemVbbGVuZ3RoTGFiZWxdLCBpbnNldFtheGlzXSk7XHJcbiAgICAgICAgaWYgKCFoYXNDaGFuZ2VkICYmIG9mZnNldCAhPT0gaW5mb1theGlzXS5pbnRlcnBvbGF0b3JPZmZzZXRzW2ldKSB7XHJcbiAgICAgICAgICAgIGhhc0NoYW5nZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpbmZvW2F4aXNdLm9mZnNldFtpXSA9IG9mZnNldDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogSWYgdGhlIHBpeGVsIHNjcm9sbCBvZmZzZXRzIGhhdmUgY2hhbmdlZCwgY3JlYXRlIGEgbmV3IGludGVycG9sYXRvciBmdW5jdGlvblxyXG4gICAgICogdG8gbWFwIHNjcm9sbCB2YWx1ZSBpbnRvIGEgcHJvZ3Jlc3MuXHJcbiAgICAgKi9cclxuICAgIGlmIChoYXNDaGFuZ2VkKSB7XHJcbiAgICAgICAgaW5mb1theGlzXS5pbnRlcnBvbGF0ZSA9IGludGVycG9sYXRlKGluZm9bYXhpc10ub2Zmc2V0LCBkZWZhdWx0T2Zmc2V0KG9mZnNldERlZmluaXRpb24pLCB7IGNsYW1wOiBmYWxzZSB9KTtcclxuICAgICAgICBpbmZvW2F4aXNdLmludGVycG9sYXRvck9mZnNldHMgPSBbLi4uaW5mb1theGlzXS5vZmZzZXRdO1xyXG4gICAgfVxyXG4gICAgaW5mb1theGlzXS5wcm9ncmVzcyA9IGNsYW1wKDAsIDEsIGluZm9bYXhpc10uaW50ZXJwb2xhdGUoaW5mb1theGlzXS5jdXJyZW50KSk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IHJlc29sdmVPZmZzZXRzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs":
|
||
/*!********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs ***!
|
||
\********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcInset: function() { return /* binding */ calcInset; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs\");\n\r\n\r\nfunction calcInset(element, container) {\r\n const inset = { x: 0, y: 0 };\r\n let current = element;\r\n while (current && current !== container) {\r\n if ((0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(current)) {\r\n inset.x += current.offsetLeft;\r\n inset.y += current.offsetTop;\r\n current = current.offsetParent;\r\n }\r\n else if (current.tagName === \"svg\") {\r\n /**\r\n * This isn't an ideal approach to measuring the offset of <svg /> tags.\r\n * It would be preferable, given they behave like HTMLElements in most ways\r\n * to use offsetLeft/Top. But these don't exist on <svg />. Likewise we\r\n * can't use .getBBox() like most SVG elements as these provide the offset\r\n * relative to the SVG itself, which for <svg /> is usually 0x0.\r\n */\r\n const svgBoundingBox = current.getBoundingClientRect();\r\n current = current.parentElement;\r\n const parentBoundingBox = current.getBoundingClientRect();\r\n inset.x += svgBoundingBox.left - parentBoundingBox.left;\r\n inset.y += svgBoundingBox.top - parentBoundingBox.top;\r\n }\r\n else if (current instanceof SVGGraphicsElement) {\r\n const { x, y } = current.getBBox();\r\n inset.x += x;\r\n inset.y += y;\r\n let svg = null;\r\n let parent = current.parentNode;\r\n while (!svg) {\r\n if (parent.tagName === \"svg\") {\r\n svg = parent;\r\n }\r\n parent = current.parentNode;\r\n }\r\n current = svg;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n return inset;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvb2Zmc2V0cy9pbnNldC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBMkM7QUFDM0M7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0EsWUFBWSx5REFBYTtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixPQUFPO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3FCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvb2Zmc2V0cy9pbnNldC5tanM/NGY4NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0hUTUxFbGVtZW50IH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcblxyXG5mdW5jdGlvbiBjYWxjSW5zZXQoZWxlbWVudCwgY29udGFpbmVyKSB7XHJcbiAgICBjb25zdCBpbnNldCA9IHsgeDogMCwgeTogMCB9O1xyXG4gICAgbGV0IGN1cnJlbnQgPSBlbGVtZW50O1xyXG4gICAgd2hpbGUgKGN1cnJlbnQgJiYgY3VycmVudCAhPT0gY29udGFpbmVyKSB7XHJcbiAgICAgICAgaWYgKGlzSFRNTEVsZW1lbnQoY3VycmVudCkpIHtcclxuICAgICAgICAgICAgaW5zZXQueCArPSBjdXJyZW50Lm9mZnNldExlZnQ7XHJcbiAgICAgICAgICAgIGluc2V0LnkgKz0gY3VycmVudC5vZmZzZXRUb3A7XHJcbiAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm9mZnNldFBhcmVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY3VycmVudC50YWdOYW1lID09PSBcInN2Z1wiKSB7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBUaGlzIGlzbid0IGFuIGlkZWFsIGFwcHJvYWNoIHRvIG1lYXN1cmluZyB0aGUgb2Zmc2V0IG9mIDxzdmcgLz4gdGFncy5cclxuICAgICAgICAgICAgICogSXQgd291bGQgYmUgcHJlZmVyYWJsZSwgZ2l2ZW4gdGhleSBiZWhhdmUgbGlrZSBIVE1MRWxlbWVudHMgaW4gbW9zdCB3YXlzXHJcbiAgICAgICAgICAgICAqIHRvIHVzZSBvZmZzZXRMZWZ0L1RvcC4gQnV0IHRoZXNlIGRvbid0IGV4aXN0IG9uIDxzdmcgLz4uIExpa2V3aXNlIHdlXHJcbiAgICAgICAgICAgICAqIGNhbid0IHVzZSAuZ2V0QkJveCgpIGxpa2UgbW9zdCBTVkcgZWxlbWVudHMgYXMgdGhlc2UgcHJvdmlkZSB0aGUgb2Zmc2V0XHJcbiAgICAgICAgICAgICAqIHJlbGF0aXZlIHRvIHRoZSBTVkcgaXRzZWxmLCB3aGljaCBmb3IgPHN2ZyAvPiBpcyB1c3VhbGx5IDB4MC5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGNvbnN0IHN2Z0JvdW5kaW5nQm94ID0gY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50RWxlbWVudDtcclxuICAgICAgICAgICAgY29uc3QgcGFyZW50Qm91bmRpbmdCb3ggPSBjdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICBpbnNldC54ICs9IHN2Z0JvdW5kaW5nQm94LmxlZnQgLSBwYXJlbnRCb3VuZGluZ0JveC5sZWZ0O1xyXG4gICAgICAgICAgICBpbnNldC55ICs9IHN2Z0JvdW5kaW5nQm94LnRvcCAtIHBhcmVudEJvdW5kaW5nQm94LnRvcDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY3VycmVudCBpbnN0YW5jZW9mIFNWR0dyYXBoaWNzRWxlbWVudCkge1xyXG4gICAgICAgICAgICBjb25zdCB7IHgsIHkgfSA9IGN1cnJlbnQuZ2V0QkJveCgpO1xyXG4gICAgICAgICAgICBpbnNldC54ICs9IHg7XHJcbiAgICAgICAgICAgIGluc2V0LnkgKz0geTtcclxuICAgICAgICAgICAgbGV0IHN2ZyA9IG51bGw7XHJcbiAgICAgICAgICAgIGxldCBwYXJlbnQgPSBjdXJyZW50LnBhcmVudE5vZGU7XHJcbiAgICAgICAgICAgIHdoaWxlICghc3ZnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50LnRhZ05hbWUgPT09IFwic3ZnXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdmcgPSBwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBwYXJlbnQgPSBjdXJyZW50LnBhcmVudE5vZGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY3VycmVudCA9IHN2ZztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBpbnNldDtcclxufVxyXG5cclxuZXhwb3J0IHsgY2FsY0luc2V0IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs ***!
|
||
\*********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveOffset: function() { return /* binding */ resolveOffset; }\n/* harmony export */ });\n/* harmony import */ var _edge_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./edge.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs\");\n\r\n\r\nconst defaultOffset = [0, 0];\r\nfunction resolveOffset(offset, containerLength, targetLength, targetInset) {\r\n let offsetDefinition = Array.isArray(offset) ? offset : defaultOffset;\r\n let targetPoint = 0;\r\n let containerPoint = 0;\r\n if (typeof offset === \"number\") {\r\n /**\r\n * If we're provided offset: [0, 0.5, 1] then each number x should become\r\n * [x, x], so we default to the behaviour of mapping 0 => 0 of both target\r\n * and container etc.\r\n */\r\n offsetDefinition = [offset, offset];\r\n }\r\n else if (typeof offset === \"string\") {\r\n offset = offset.trim();\r\n if (offset.includes(\" \")) {\r\n offsetDefinition = offset.split(\" \");\r\n }\r\n else {\r\n /**\r\n * If we're provided a definition like \"100px\" then we want to apply\r\n * that only to the top of the target point, leaving the container at 0.\r\n * Whereas a named offset like \"end\" should be applied to both.\r\n */\r\n offsetDefinition = [offset, _edge_mjs__WEBPACK_IMPORTED_MODULE_0__.namedEdges[offset] ? offset : `0`];\r\n }\r\n }\r\n targetPoint = (0,_edge_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveEdge)(offsetDefinition[0], targetLength, targetInset);\r\n containerPoint = (0,_edge_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveEdge)(offsetDefinition[1], containerLength);\r\n return targetPoint - containerPoint;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvb2Zmc2V0cy9vZmZzZXQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXFEO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLGlEQUFVO0FBQ2xEO0FBQ0E7QUFDQSxrQkFBa0Isc0RBQVc7QUFDN0IscUJBQXFCLHNEQUFXO0FBQ2hDO0FBQ0E7QUFDQTtBQUN5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9kb20vc2Nyb2xsL29mZnNldHMvb2Zmc2V0Lm1qcz84ZTJiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmVFZGdlLCBuYW1lZEVkZ2VzIH0gZnJvbSAnLi9lZGdlLm1qcyc7XHJcblxyXG5jb25zdCBkZWZhdWx0T2Zmc2V0ID0gWzAsIDBdO1xyXG5mdW5jdGlvbiByZXNvbHZlT2Zmc2V0KG9mZnNldCwgY29udGFpbmVyTGVuZ3RoLCB0YXJnZXRMZW5ndGgsIHRhcmdldEluc2V0KSB7XHJcbiAgICBsZXQgb2Zmc2V0RGVmaW5pdGlvbiA9IEFycmF5LmlzQXJyYXkob2Zmc2V0KSA/IG9mZnNldCA6IGRlZmF1bHRPZmZzZXQ7XHJcbiAgICBsZXQgdGFyZ2V0UG9pbnQgPSAwO1xyXG4gICAgbGV0IGNvbnRhaW5lclBvaW50ID0gMDtcclxuICAgIGlmICh0eXBlb2Ygb2Zmc2V0ID09PSBcIm51bWJlclwiKSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSWYgd2UncmUgcHJvdmlkZWQgb2Zmc2V0OiBbMCwgMC41LCAxXSB0aGVuIGVhY2ggbnVtYmVyIHggc2hvdWxkIGJlY29tZVxyXG4gICAgICAgICAqIFt4LCB4XSwgc28gd2UgZGVmYXVsdCB0byB0aGUgYmVoYXZpb3VyIG9mIG1hcHBpbmcgMCA9PiAwIG9mIGJvdGggdGFyZ2V0XHJcbiAgICAgICAgICogYW5kIGNvbnRhaW5lciBldGMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgb2Zmc2V0RGVmaW5pdGlvbiA9IFtvZmZzZXQsIG9mZnNldF07XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlb2Ygb2Zmc2V0ID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0LnRyaW0oKTtcclxuICAgICAgICBpZiAob2Zmc2V0LmluY2x1ZGVzKFwiIFwiKSkge1xyXG4gICAgICAgICAgICBvZmZzZXREZWZpbml0aW9uID0gb2Zmc2V0LnNwbGl0KFwiIFwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB3ZSdyZSBwcm92aWRlZCBhIGRlZmluaXRpb24gbGlrZSBcIjEwMHB4XCIgdGhlbiB3ZSB3YW50IHRvIGFwcGx5XHJcbiAgICAgICAgICAgICAqIHRoYXQgb25seSB0byB0aGUgdG9wIG9mIHRoZSB0YXJnZXQgcG9pbnQsIGxlYXZpbmcgdGhlIGNvbnRhaW5lciBhdCAwLlxyXG4gICAgICAgICAgICAgKiBXaGVyZWFzIGEgbmFtZWQgb2Zmc2V0IGxpa2UgXCJlbmRcIiBzaG91bGQgYmUgYXBwbGllZCB0byBib3RoLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgb2Zmc2V0RGVmaW5pdGlvbiA9IFtvZmZzZXQsIG5hbWVkRWRnZXNbb2Zmc2V0XSA/IG9mZnNldCA6IGAwYF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGFyZ2V0UG9pbnQgPSByZXNvbHZlRWRnZShvZmZzZXREZWZpbml0aW9uWzBdLCB0YXJnZXRMZW5ndGgsIHRhcmdldEluc2V0KTtcclxuICAgIGNvbnRhaW5lclBvaW50ID0gcmVzb2x2ZUVkZ2Uob2Zmc2V0RGVmaW5pdGlvblsxXSwgY29udGFpbmVyTGVuZ3RoKTtcclxuICAgIHJldHVybiB0YXJnZXRQb2ludCAtIGNvbnRhaW5lclBvaW50O1xyXG59XHJcblxyXG5leHBvcnQgeyByZXNvbHZlT2Zmc2V0IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs ***!
|
||
\**********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ScrollOffset: function() { return /* binding */ ScrollOffset; }\n/* harmony export */ });\nconst ScrollOffset = {\r\n Enter: [\r\n [0, 1],\r\n [1, 1],\r\n ],\r\n Exit: [\r\n [0, 0],\r\n [1, 0],\r\n ],\r\n Any: [\r\n [1, 0],\r\n [0, 1],\r\n ],\r\n All: [\r\n [0, 0],\r\n [1, 1],\r\n ],\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvb2Zmc2V0cy9wcmVzZXRzLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDd0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvZG9tL3Njcm9sbC9vZmZzZXRzL3ByZXNldHMubWpzPzM1Y2IiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgU2Nyb2xsT2Zmc2V0ID0ge1xyXG4gICAgRW50ZXI6IFtcclxuICAgICAgICBbMCwgMV0sXHJcbiAgICAgICAgWzEsIDFdLFxyXG4gICAgXSxcclxuICAgIEV4aXQ6IFtcclxuICAgICAgICBbMCwgMF0sXHJcbiAgICAgICAgWzEsIDBdLFxyXG4gICAgXSxcclxuICAgIEFueTogW1xyXG4gICAgICAgIFsxLCAwXSxcclxuICAgICAgICBbMCwgMV0sXHJcbiAgICBdLFxyXG4gICAgQWxsOiBbXHJcbiAgICAgICAgWzAsIDBdLFxyXG4gICAgICAgIFsxLCAxXSxcclxuICAgIF0sXHJcbn07XHJcblxyXG5leHBvcnQgeyBTY3JvbGxPZmZzZXQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs":
|
||
/*!************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs ***!
|
||
\************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createOnScrollHandler: function() { return /* binding */ createOnScrollHandler; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs\");\n/* harmony import */ var _info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs\");\n/* harmony import */ var _offsets_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./offsets/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs\");\n\r\n\r\n\r\n\r\nfunction measure(container, target = container, info) {\r\n /**\r\n * Find inset of target within scrollable container\r\n */\r\n info.x.targetOffset = 0;\r\n info.y.targetOffset = 0;\r\n if (target !== container) {\r\n let node = target;\r\n while (node && node !== container) {\r\n info.x.targetOffset += node.offsetLeft;\r\n info.y.targetOffset += node.offsetTop;\r\n node = node.offsetParent;\r\n }\r\n }\r\n info.x.targetLength =\r\n target === container ? target.scrollWidth : target.clientWidth;\r\n info.y.targetLength =\r\n target === container ? target.scrollHeight : target.clientHeight;\r\n info.x.containerLength = container.clientWidth;\r\n info.y.containerLength = container.clientHeight;\r\n /**\r\n * In development mode ensure scroll containers aren't position: static as this makes\r\n * it difficult to measure their relative positions.\r\n */\r\n if (true) {\r\n if (container && target && target !== container) {\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.warnOnce)(getComputedStyle(container).position !== \"static\", \"Please ensure that the container has a non-static position, like 'relative', 'fixed', or 'absolute' to ensure scroll offset is calculated correctly.\");\r\n }\r\n }\r\n}\r\nfunction createOnScrollHandler(element, onScroll, info, options = {}) {\r\n return {\r\n measure: (time) => {\r\n measure(element, options.target, info);\r\n (0,_info_mjs__WEBPACK_IMPORTED_MODULE_1__.updateScrollInfo)(element, info, time);\r\n if (options.offset || options.target) {\r\n (0,_offsets_index_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveOffsets)(element, info, options);\r\n }\r\n },\r\n notify: () => onScroll(info),\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvb24tc2Nyb2xsLWhhbmRsZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBd0M7QUFDTTtBQUNPO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBLFlBQVksc0RBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0Esb0VBQW9FO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBLFlBQVksMkRBQWdCO0FBQzVCO0FBQ0EsZ0JBQWdCLGtFQUFjO0FBQzlCO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ2lDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvb24tc2Nyb2xsLWhhbmRsZXIubWpzP2I3MTQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyB1cGRhdGVTY3JvbGxJbmZvIH0gZnJvbSAnLi9pbmZvLm1qcyc7XHJcbmltcG9ydCB7IHJlc29sdmVPZmZzZXRzIH0gZnJvbSAnLi9vZmZzZXRzL2luZGV4Lm1qcyc7XHJcblxyXG5mdW5jdGlvbiBtZWFzdXJlKGNvbnRhaW5lciwgdGFyZ2V0ID0gY29udGFpbmVyLCBpbmZvKSB7XHJcbiAgICAvKipcclxuICAgICAqIEZpbmQgaW5zZXQgb2YgdGFyZ2V0IHdpdGhpbiBzY3JvbGxhYmxlIGNvbnRhaW5lclxyXG4gICAgICovXHJcbiAgICBpbmZvLngudGFyZ2V0T2Zmc2V0ID0gMDtcclxuICAgIGluZm8ueS50YXJnZXRPZmZzZXQgPSAwO1xyXG4gICAgaWYgKHRhcmdldCAhPT0gY29udGFpbmVyKSB7XHJcbiAgICAgICAgbGV0IG5vZGUgPSB0YXJnZXQ7XHJcbiAgICAgICAgd2hpbGUgKG5vZGUgJiYgbm9kZSAhPT0gY29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIGluZm8ueC50YXJnZXRPZmZzZXQgKz0gbm9kZS5vZmZzZXRMZWZ0O1xyXG4gICAgICAgICAgICBpbmZvLnkudGFyZ2V0T2Zmc2V0ICs9IG5vZGUub2Zmc2V0VG9wO1xyXG4gICAgICAgICAgICBub2RlID0gbm9kZS5vZmZzZXRQYXJlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaW5mby54LnRhcmdldExlbmd0aCA9XHJcbiAgICAgICAgdGFyZ2V0ID09PSBjb250YWluZXIgPyB0YXJnZXQuc2Nyb2xsV2lkdGggOiB0YXJnZXQuY2xpZW50V2lkdGg7XHJcbiAgICBpbmZvLnkudGFyZ2V0TGVuZ3RoID1cclxuICAgICAgICB0YXJnZXQgPT09IGNvbnRhaW5lciA/IHRhcmdldC5zY3JvbGxIZWlnaHQgOiB0YXJnZXQuY2xpZW50SGVpZ2h0O1xyXG4gICAgaW5mby54LmNvbnRhaW5lckxlbmd0aCA9IGNvbnRhaW5lci5jbGllbnRXaWR0aDtcclxuICAgIGluZm8ueS5jb250YWluZXJMZW5ndGggPSBjb250YWluZXIuY2xpZW50SGVpZ2h0O1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbiBkZXZlbG9wbWVudCBtb2RlIGVuc3VyZSBzY3JvbGwgY29udGFpbmVycyBhcmVuJ3QgcG9zaXRpb246IHN0YXRpYyBhcyB0aGlzIG1ha2VzXHJcbiAgICAgKiBpdCBkaWZmaWN1bHQgdG8gbWVhc3VyZSB0aGVpciByZWxhdGl2ZSBwb3NpdGlvbnMuXHJcbiAgICAgKi9cclxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcclxuICAgICAgICBpZiAoY29udGFpbmVyICYmIHRhcmdldCAmJiB0YXJnZXQgIT09IGNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICB3YXJuT25jZShnZXRDb21wdXRlZFN0eWxlKGNvbnRhaW5lcikucG9zaXRpb24gIT09IFwic3RhdGljXCIsIFwiUGxlYXNlIGVuc3VyZSB0aGF0IHRoZSBjb250YWluZXIgaGFzIGEgbm9uLXN0YXRpYyBwb3NpdGlvbiwgbGlrZSAncmVsYXRpdmUnLCAnZml4ZWQnLCBvciAnYWJzb2x1dGUnIHRvIGVuc3VyZSBzY3JvbGwgb2Zmc2V0IGlzIGNhbGN1bGF0ZWQgY29ycmVjdGx5LlwiKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gY3JlYXRlT25TY3JvbGxIYW5kbGVyKGVsZW1lbnQsIG9uU2Nyb2xsLCBpbmZvLCBvcHRpb25zID0ge30pIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbWVhc3VyZTogKHRpbWUpID0+IHtcclxuICAgICAgICAgICAgbWVhc3VyZShlbGVtZW50LCBvcHRpb25zLnRhcmdldCwgaW5mbyk7XHJcbiAgICAgICAgICAgIHVwZGF0ZVNjcm9sbEluZm8oZWxlbWVudCwgaW5mbywgdGltZSk7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zLm9mZnNldCB8fCBvcHRpb25zLnRhcmdldCkge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZU9mZnNldHMoZWxlbWVudCwgaW5mbywgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG5vdGlmeTogKCkgPT4gb25TY3JvbGwoaW5mbyksXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgeyBjcmVhdGVPblNjcm9sbEhhbmRsZXIgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ scrollInfo: function() { return /* binding */ scrollInfo; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/index.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs\");\n/* harmony import */ var _on_scroll_handler_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./on-scroll-handler.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs\");\n\r\n\r\n\r\n\r\n\r\nconst scrollListeners = new WeakMap();\r\nconst resizeListeners = new WeakMap();\r\nconst onScrollHandlers = new WeakMap();\r\nconst getEventTarget = (element) => element === document.scrollingElement ? window : element;\r\nfunction scrollInfo(onScroll, { container = document.scrollingElement, ...options } = {}) {\r\n if (!container)\r\n return motion_utils__WEBPACK_IMPORTED_MODULE_0__.noop;\r\n let containerHandlers = onScrollHandlers.get(container);\r\n /**\r\n * Get the onScroll handlers for this container.\r\n * If one isn't found, create a new one.\r\n */\r\n if (!containerHandlers) {\r\n containerHandlers = new Set();\r\n onScrollHandlers.set(container, containerHandlers);\r\n }\r\n /**\r\n * Create a new onScroll handler for the provided callback.\r\n */\r\n const info = (0,_info_mjs__WEBPACK_IMPORTED_MODULE_1__.createScrollInfo)();\r\n const containerHandler = (0,_on_scroll_handler_mjs__WEBPACK_IMPORTED_MODULE_2__.createOnScrollHandler)(container, onScroll, info, options);\r\n containerHandlers.add(containerHandler);\r\n /**\r\n * Check if there's a scroll event listener for this container.\r\n * If not, create one.\r\n */\r\n if (!scrollListeners.has(container)) {\r\n const measureAll = () => {\r\n for (const handler of containerHandlers) {\r\n handler.measure(motion_dom__WEBPACK_IMPORTED_MODULE_3__.frameData.timestamp);\r\n }\r\n motion_dom__WEBPACK_IMPORTED_MODULE_3__.frame.preUpdate(notifyAll);\r\n };\r\n const notifyAll = () => {\r\n for (const handler of containerHandlers) {\r\n handler.notify();\r\n }\r\n };\r\n const listener = () => motion_dom__WEBPACK_IMPORTED_MODULE_3__.frame.read(measureAll);\r\n scrollListeners.set(container, listener);\r\n const target = getEventTarget(container);\r\n window.addEventListener(\"resize\", listener, { passive: true });\r\n if (container !== document.documentElement) {\r\n resizeListeners.set(container, (0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.resize)(container, listener));\r\n }\r\n target.addEventListener(\"scroll\", listener, { passive: true });\r\n listener();\r\n }\r\n const listener = scrollListeners.get(container);\r\n motion_dom__WEBPACK_IMPORTED_MODULE_3__.frame.read(listener, false, true);\r\n return () => {\r\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.cancelFrame)(listener);\r\n /**\r\n * Check if we even have any handlers for this container.\r\n */\r\n const currentHandlers = onScrollHandlers.get(container);\r\n if (!currentHandlers)\r\n return;\r\n currentHandlers.delete(containerHandler);\r\n if (currentHandlers.size)\r\n return;\r\n /**\r\n * If no more handlers, remove the scroll listener too.\r\n */\r\n const scrollListener = scrollListeners.get(container);\r\n scrollListeners.delete(container);\r\n if (scrollListener) {\r\n getEventTarget(container).removeEventListener(\"scroll\", scrollListener);\r\n resizeListeners.get(container)?.();\r\n window.removeEventListener(\"resize\", scrollListener);\r\n }\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvdHJhY2subWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFtRTtBQUMvQjtBQUNVO0FBQ2tCO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0Msb0RBQW9ELElBQUk7QUFDeEY7QUFDQSxlQUFlLDhDQUFJO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiwyREFBZ0I7QUFDakMsNkJBQTZCLDZFQUFxQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLGlEQUFTO0FBQ3pDO0FBQ0EsWUFBWSw2Q0FBSztBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsNkNBQUs7QUFDcEM7QUFDQTtBQUNBLHNEQUFzRCxlQUFlO0FBQ3JFO0FBQ0EsMkNBQTJDLGtEQUFNO0FBQ2pEO0FBQ0Esc0RBQXNELGVBQWU7QUFDckU7QUFDQTtBQUNBO0FBQ0EsSUFBSSw2Q0FBSztBQUNUO0FBQ0EsUUFBUSx1REFBVztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9kb20vc2Nyb2xsL3RyYWNrLm1qcz9iMmFkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc2l6ZSwgZnJhbWUsIGNhbmNlbEZyYW1lLCBmcmFtZURhdGEgfSBmcm9tICdtb3Rpb24tZG9tJztcclxuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XHJcbmltcG9ydCB7IGNyZWF0ZVNjcm9sbEluZm8gfSBmcm9tICcuL2luZm8ubWpzJztcclxuaW1wb3J0IHsgY3JlYXRlT25TY3JvbGxIYW5kbGVyIH0gZnJvbSAnLi9vbi1zY3JvbGwtaGFuZGxlci5tanMnO1xyXG5cclxuY29uc3Qgc2Nyb2xsTGlzdGVuZXJzID0gbmV3IFdlYWtNYXAoKTtcclxuY29uc3QgcmVzaXplTGlzdGVuZXJzID0gbmV3IFdlYWtNYXAoKTtcclxuY29uc3Qgb25TY3JvbGxIYW5kbGVycyA9IG5ldyBXZWFrTWFwKCk7XHJcbmNvbnN0IGdldEV2ZW50VGFyZ2V0ID0gKGVsZW1lbnQpID0+IGVsZW1lbnQgPT09IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQgPyB3aW5kb3cgOiBlbGVtZW50O1xyXG5mdW5jdGlvbiBzY3JvbGxJbmZvKG9uU2Nyb2xsLCB7IGNvbnRhaW5lciA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQsIC4uLm9wdGlvbnMgfSA9IHt9KSB7XHJcbiAgICBpZiAoIWNvbnRhaW5lcilcclxuICAgICAgICByZXR1cm4gbm9vcDtcclxuICAgIGxldCBjb250YWluZXJIYW5kbGVycyA9IG9uU2Nyb2xsSGFuZGxlcnMuZ2V0KGNvbnRhaW5lcik7XHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgb25TY3JvbGwgaGFuZGxlcnMgZm9yIHRoaXMgY29udGFpbmVyLlxyXG4gICAgICogSWYgb25lIGlzbid0IGZvdW5kLCBjcmVhdGUgYSBuZXcgb25lLlxyXG4gICAgICovXHJcbiAgICBpZiAoIWNvbnRhaW5lckhhbmRsZXJzKSB7XHJcbiAgICAgICAgY29udGFpbmVySGFuZGxlcnMgPSBuZXcgU2V0KCk7XHJcbiAgICAgICAgb25TY3JvbGxIYW5kbGVycy5zZXQoY29udGFpbmVyLCBjb250YWluZXJIYW5kbGVycyk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZSBhIG5ldyBvblNjcm9sbCBoYW5kbGVyIGZvciB0aGUgcHJvdmlkZWQgY2FsbGJhY2suXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGluZm8gPSBjcmVhdGVTY3JvbGxJbmZvKCk7XHJcbiAgICBjb25zdCBjb250YWluZXJIYW5kbGVyID0gY3JlYXRlT25TY3JvbGxIYW5kbGVyKGNvbnRhaW5lciwgb25TY3JvbGwsIGluZm8sIG9wdGlvbnMpO1xyXG4gICAgY29udGFpbmVySGFuZGxlcnMuYWRkKGNvbnRhaW5lckhhbmRsZXIpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGVyZSdzIGEgc2Nyb2xsIGV2ZW50IGxpc3RlbmVyIGZvciB0aGlzIGNvbnRhaW5lci5cclxuICAgICAqIElmIG5vdCwgY3JlYXRlIG9uZS5cclxuICAgICAqL1xyXG4gICAgaWYgKCFzY3JvbGxMaXN0ZW5lcnMuaGFzKGNvbnRhaW5lcikpIHtcclxuICAgICAgICBjb25zdCBtZWFzdXJlQWxsID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgY29udGFpbmVySGFuZGxlcnMpIHtcclxuICAgICAgICAgICAgICAgIGhhbmRsZXIubWVhc3VyZShmcmFtZURhdGEudGltZXN0YW1wKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmcmFtZS5wcmVVcGRhdGUobm90aWZ5QWxsKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IG5vdGlmeUFsbCA9ICgpID0+IHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIGNvbnRhaW5lckhhbmRsZXJzKSB7XHJcbiAgICAgICAgICAgICAgICBoYW5kbGVyLm5vdGlmeSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBsaXN0ZW5lciA9ICgpID0+IGZyYW1lLnJlYWQobWVhc3VyZUFsbCk7XHJcbiAgICAgICAgc2Nyb2xsTGlzdGVuZXJzLnNldChjb250YWluZXIsIGxpc3RlbmVyKTtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSBnZXRFdmVudFRhcmdldChjb250YWluZXIpO1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGxpc3RlbmVyLCB7IHBhc3NpdmU6IHRydWUgfSk7XHJcbiAgICAgICAgaWYgKGNvbnRhaW5lciAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJlc2l6ZUxpc3RlbmVycy5zZXQoY29udGFpbmVyLCByZXNpemUoY29udGFpbmVyLCBsaXN0ZW5lcikpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBsaXN0ZW5lciwgeyBwYXNzaXZlOiB0cnVlIH0pO1xyXG4gICAgICAgIGxpc3RlbmVyKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBsaXN0ZW5lciA9IHNjcm9sbExpc3RlbmVycy5nZXQoY29udGFpbmVyKTtcclxuICAgIGZyYW1lLnJlYWQobGlzdGVuZXIsIGZhbHNlLCB0cnVlKTtcclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgY2FuY2VsRnJhbWUobGlzdGVuZXIpO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENoZWNrIGlmIHdlIGV2ZW4gaGF2ZSBhbnkgaGFuZGxlcnMgZm9yIHRoaXMgY29udGFpbmVyLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRIYW5kbGVycyA9IG9uU2Nyb2xsSGFuZGxlcnMuZ2V0KGNvbnRhaW5lcik7XHJcbiAgICAgICAgaWYgKCFjdXJyZW50SGFuZGxlcnMpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBjdXJyZW50SGFuZGxlcnMuZGVsZXRlKGNvbnRhaW5lckhhbmRsZXIpO1xyXG4gICAgICAgIGlmIChjdXJyZW50SGFuZGxlcnMuc2l6ZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElmIG5vIG1vcmUgaGFuZGxlcnMsIHJlbW92ZSB0aGUgc2Nyb2xsIGxpc3RlbmVyIHRvby5cclxuICAgICAgICAgKi9cclxuICAgICAgICBjb25zdCBzY3JvbGxMaXN0ZW5lciA9IHNjcm9sbExpc3RlbmVycy5nZXQoY29udGFpbmVyKTtcclxuICAgICAgICBzY3JvbGxMaXN0ZW5lcnMuZGVsZXRlKGNvbnRhaW5lcik7XHJcbiAgICAgICAgaWYgKHNjcm9sbExpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgIGdldEV2ZW50VGFyZ2V0KGNvbnRhaW5lcikucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBzY3JvbGxMaXN0ZW5lcik7XHJcbiAgICAgICAgICAgIHJlc2l6ZUxpc3RlbmVycy5nZXQoY29udGFpbmVyKT8uKCk7XHJcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHNjcm9sbExpc3RlbmVyKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgeyBzY3JvbGxJbmZvIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/utils/get-timeline.mjs":
|
||
/*!*************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/scroll/utils/get-timeline.mjs ***!
|
||
\*************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getTimeline: function() { return /* binding */ getTimeline; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs\");\n/* harmony import */ var _track_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../track.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs\");\n\r\n\r\n\r\nconst timelineCache = new Map();\r\nfunction scrollTimelineFallback(options) {\r\n const currentTime = { value: 0 };\r\n const cancel = (0,_track_mjs__WEBPACK_IMPORTED_MODULE_0__.scrollInfo)((info) => {\r\n currentTime.value = info[options.axis].progress * 100;\r\n }, options);\r\n return { currentTime, cancel };\r\n}\r\nfunction getTimeline({ source, container, ...options }) {\r\n const { axis } = options;\r\n if (source)\r\n container = source;\r\n const containerCache = timelineCache.get(container) ?? new Map();\r\n timelineCache.set(container, containerCache);\r\n const targetKey = options.target ?? \"self\";\r\n const targetCache = containerCache.get(targetKey) ?? {};\r\n const axisKey = axis + (options.offset ?? []).join(\",\");\r\n if (!targetCache[axisKey]) {\r\n targetCache[axisKey] =\r\n !options.target && (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.supportsScrollTimeline)()\r\n ? new ScrollTimeline({ source: container, axis })\r\n : scrollTimelineFallback({ container, ...options });\r\n }\r\n return targetCache[axisKey];\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvdXRpbHMvZ2V0LXRpbWVsaW5lLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBb0Q7QUFDVjtBQUMxQztBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUIsbUJBQW1CLHNEQUFVO0FBQzdCO0FBQ0EsS0FBSztBQUNMLGFBQWE7QUFDYjtBQUNBLHVCQUF1QiwrQkFBK0I7QUFDdEQsWUFBWSxPQUFPO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixrRUFBc0I7QUFDckQsdUNBQXVDLHlCQUF5QjtBQUNoRSwyQ0FBMkMsdUJBQXVCO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ3VCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9zY3JvbGwvdXRpbHMvZ2V0LXRpbWVsaW5lLm1qcz8zOGI1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN1cHBvcnRzU2Nyb2xsVGltZWxpbmUgfSBmcm9tICdtb3Rpb24tZG9tJztcclxuaW1wb3J0IHsgc2Nyb2xsSW5mbyB9IGZyb20gJy4uL3RyYWNrLm1qcyc7XHJcblxyXG5jb25zdCB0aW1lbGluZUNhY2hlID0gbmV3IE1hcCgpO1xyXG5mdW5jdGlvbiBzY3JvbGxUaW1lbGluZUZhbGxiYWNrKG9wdGlvbnMpIHtcclxuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0geyB2YWx1ZTogMCB9O1xyXG4gICAgY29uc3QgY2FuY2VsID0gc2Nyb2xsSW5mbygoaW5mbykgPT4ge1xyXG4gICAgICAgIGN1cnJlbnRUaW1lLnZhbHVlID0gaW5mb1tvcHRpb25zLmF4aXNdLnByb2dyZXNzICogMTAwO1xyXG4gICAgfSwgb3B0aW9ucyk7XHJcbiAgICByZXR1cm4geyBjdXJyZW50VGltZSwgY2FuY2VsIH07XHJcbn1cclxuZnVuY3Rpb24gZ2V0VGltZWxpbmUoeyBzb3VyY2UsIGNvbnRhaW5lciwgLi4ub3B0aW9ucyB9KSB7XHJcbiAgICBjb25zdCB7IGF4aXMgfSA9IG9wdGlvbnM7XHJcbiAgICBpZiAoc291cmNlKVxyXG4gICAgICAgIGNvbnRhaW5lciA9IHNvdXJjZTtcclxuICAgIGNvbnN0IGNvbnRhaW5lckNhY2hlID0gdGltZWxpbmVDYWNoZS5nZXQoY29udGFpbmVyKSA/PyBuZXcgTWFwKCk7XHJcbiAgICB0aW1lbGluZUNhY2hlLnNldChjb250YWluZXIsIGNvbnRhaW5lckNhY2hlKTtcclxuICAgIGNvbnN0IHRhcmdldEtleSA9IG9wdGlvbnMudGFyZ2V0ID8/IFwic2VsZlwiO1xyXG4gICAgY29uc3QgdGFyZ2V0Q2FjaGUgPSBjb250YWluZXJDYWNoZS5nZXQodGFyZ2V0S2V5KSA/PyB7fTtcclxuICAgIGNvbnN0IGF4aXNLZXkgPSBheGlzICsgKG9wdGlvbnMub2Zmc2V0ID8/IFtdKS5qb2luKFwiLFwiKTtcclxuICAgIGlmICghdGFyZ2V0Q2FjaGVbYXhpc0tleV0pIHtcclxuICAgICAgICB0YXJnZXRDYWNoZVtheGlzS2V5XSA9XHJcbiAgICAgICAgICAgICFvcHRpb25zLnRhcmdldCAmJiBzdXBwb3J0c1Njcm9sbFRpbWVsaW5lKClcclxuICAgICAgICAgICAgICAgID8gbmV3IFNjcm9sbFRpbWVsaW5lKHsgc291cmNlOiBjb250YWluZXIsIGF4aXMgfSlcclxuICAgICAgICAgICAgICAgIDogc2Nyb2xsVGltZWxpbmVGYWxsYmFjayh7IGNvbnRhaW5lciwgLi4ub3B0aW9ucyB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB0YXJnZXRDYWNoZVtheGlzS2V5XTtcclxufVxyXG5cclxuZXhwb3J0IHsgZ2V0VGltZWxpbmUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/utils/get-timeline.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/use-render.mjs ***!
|
||
\**********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useRender: function() { return /* binding */ useRender; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\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 _html_use_props_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../html/use-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs\");\n/* harmony import */ var _svg_use_props_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../svg/use-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs\");\n/* harmony import */ var _utils_filter_props_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/filter-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs\");\n/* harmony import */ var _utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/is-svg-component.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction useRender(Component, props, ref, { latestValues, }, isStatic, forwardMotionProps = false) {\r\n const useVisualProps = (0,_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__.isSVGComponent)(Component)\r\n ? _svg_use_props_mjs__WEBPACK_IMPORTED_MODULE_2__.useSVGProps\r\n : _html_use_props_mjs__WEBPACK_IMPORTED_MODULE_3__.useHTMLProps;\r\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\r\n const filteredProps = (0,_utils_filter_props_mjs__WEBPACK_IMPORTED_MODULE_4__.filterProps)(props, typeof Component === \"string\", forwardMotionProps);\r\n const elementProps = Component !== react__WEBPACK_IMPORTED_MODULE_0__.Fragment ? { ...filteredProps, ...visualProps, ref } : {};\r\n /**\r\n * If component has been handed a motion value as its child,\r\n * memoise its initial value and render that. Subsequent updates\r\n * will be handled by the onChange handler\r\n */\r\n const { children } = props;\r\n const renderedChildren = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ((0,motion_dom__WEBPACK_IMPORTED_MODULE_5__.isMotionValue)(children) ? children.get() : children), [children]);\r\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Component, {\r\n ...elementProps,\r\n children: renderedChildren,\r\n });\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS91c2UtcmVuZGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDMkM7QUFDYztBQUNKO0FBQ0Y7QUFDSTtBQUNPO0FBQzlEO0FBQ0EsNENBQTRDLGVBQWU7QUFDM0QsMkJBQTJCLDJFQUFjO0FBQ3pDLFVBQVUsMkRBQVc7QUFDckIsVUFBVSw2REFBWTtBQUN0QjtBQUNBLDBCQUEwQixvRUFBVztBQUNyQyx1Q0FBdUMsMkNBQVEsS0FBSyx3Q0FBd0M7QUFDNUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksV0FBVztBQUN2Qiw2QkFBNkIsOENBQU8sUUFBUSx5REFBYTtBQUN6RCxXQUFXLG9EQUFhO0FBQ3hCO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9kb20vdXNlLXJlbmRlci5tanM/NTQ5MCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5pbXBvcnQgeyBGcmFnbWVudCwgdXNlTWVtbywgY3JlYXRlRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgdXNlSFRNTFByb3BzIH0gZnJvbSAnLi4vaHRtbC91c2UtcHJvcHMubWpzJztcclxuaW1wb3J0IHsgdXNlU1ZHUHJvcHMgfSBmcm9tICcuLi9zdmcvdXNlLXByb3BzLm1qcyc7XHJcbmltcG9ydCB7IGZpbHRlclByb3BzIH0gZnJvbSAnLi91dGlscy9maWx0ZXItcHJvcHMubWpzJztcclxuaW1wb3J0IHsgaXNTVkdDb21wb25lbnQgfSBmcm9tICcuL3V0aWxzL2lzLXN2Zy1jb21wb25lbnQubWpzJztcclxuXHJcbmZ1bmN0aW9uIHVzZVJlbmRlcihDb21wb25lbnQsIHByb3BzLCByZWYsIHsgbGF0ZXN0VmFsdWVzLCB9LCBpc1N0YXRpYywgZm9yd2FyZE1vdGlvblByb3BzID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHVzZVZpc3VhbFByb3BzID0gaXNTVkdDb21wb25lbnQoQ29tcG9uZW50KVxyXG4gICAgICAgID8gdXNlU1ZHUHJvcHNcclxuICAgICAgICA6IHVzZUhUTUxQcm9wcztcclxuICAgIGNvbnN0IHZpc3VhbFByb3BzID0gdXNlVmlzdWFsUHJvcHMocHJvcHMsIGxhdGVzdFZhbHVlcywgaXNTdGF0aWMsIENvbXBvbmVudCk7XHJcbiAgICBjb25zdCBmaWx0ZXJlZFByb3BzID0gZmlsdGVyUHJvcHMocHJvcHMsIHR5cGVvZiBDb21wb25lbnQgPT09IFwic3RyaW5nXCIsIGZvcndhcmRNb3Rpb25Qcm9wcyk7XHJcbiAgICBjb25zdCBlbGVtZW50UHJvcHMgPSBDb21wb25lbnQgIT09IEZyYWdtZW50ID8geyAuLi5maWx0ZXJlZFByb3BzLCAuLi52aXN1YWxQcm9wcywgcmVmIH0gOiB7fTtcclxuICAgIC8qKlxyXG4gICAgICogSWYgY29tcG9uZW50IGhhcyBiZWVuIGhhbmRlZCBhIG1vdGlvbiB2YWx1ZSBhcyBpdHMgY2hpbGQsXHJcbiAgICAgKiBtZW1vaXNlIGl0cyBpbml0aWFsIHZhbHVlIGFuZCByZW5kZXIgdGhhdC4gU3Vic2VxdWVudCB1cGRhdGVzXHJcbiAgICAgKiB3aWxsIGJlIGhhbmRsZWQgYnkgdGhlIG9uQ2hhbmdlIGhhbmRsZXJcclxuICAgICAqL1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCByZW5kZXJlZENoaWxkcmVuID0gdXNlTWVtbygoKSA9PiAoaXNNb3Rpb25WYWx1ZShjaGlsZHJlbikgPyBjaGlsZHJlbi5nZXQoKSA6IGNoaWxkcmVuKSwgW2NoaWxkcmVuXSk7XHJcbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudChDb21wb25lbnQsIHtcclxuICAgICAgICAuLi5lbGVtZW50UHJvcHMsXHJcbiAgICAgICAgY2hpbGRyZW46IHJlbmRlcmVkQ2hpbGRyZW4sXHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IHsgdXNlUmVuZGVyIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ camelToDash: function() { return /* binding */ camelToDash; }\n/* harmony export */ });\n/**\r\n * Convert camelCase to dash-case properties.\r\n */\r\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, \"$1-$2\").toLowerCase();\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS91dGlscy9jYW1lbC10by1kYXNoLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUN1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9kb20vdXRpbHMvY2FtZWwtdG8tZGFzaC5tanM/YjQ3ZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ29udmVydCBjYW1lbENhc2UgdG8gZGFzaC1jYXNlIHByb3BlcnRpZXMuXHJcbiAqL1xyXG5jb25zdCBjYW1lbFRvRGFzaCA9IChzdHIpID0+IHN0ci5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9ndSwgXCIkMS0kMlwiKS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuZXhwb3J0IHsgY2FtZWxUb0Rhc2ggfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs ***!
|
||
\******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ filterProps: function() { return /* binding */ filterProps; },\n/* harmony export */ loadExternalIsValidProp: function() { return /* binding */ loadExternalIsValidProp; }\n/* harmony export */ });\n/* harmony import */ var _motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../motion/utils/valid-prop.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs\");\n\r\n\r\nlet shouldForward = (key) => !(0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key);\r\nfunction loadExternalIsValidProp(isValidProp) {\r\n if (typeof isValidProp !== \"function\")\r\n return;\r\n // Explicitly filter our events\r\n shouldForward = (key) => key.startsWith(\"on\") ? !(0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key) : isValidProp(key);\r\n}\r\n/**\r\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\r\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\r\n * of these should be passed to the underlying DOM node.\r\n *\r\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\r\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\r\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\r\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\r\n *\r\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\r\n * actually required.\r\n */\r\ntry {\r\n /**\r\n * We attempt to import this package but require won't be defined in esm environments, in that case\r\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\r\n * in favour of explicit injection.\r\n */\r\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\r\n}\r\ncatch {\r\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\r\n}\r\nfunction filterProps(props, isDom, forwardMotionProps) {\r\n const filteredProps = {};\r\n for (const key in props) {\r\n /**\r\n * values is considered a valid prop by Emotion, so if it's present\r\n * this will be rendered out to the DOM unless explicitly filtered.\r\n *\r\n * We check the type as it could be used with the `feColorMatrix`\r\n * element, which we support.\r\n */\r\n if (key === \"values\" && typeof props.values === \"object\")\r\n continue;\r\n if (shouldForward(key) ||\r\n (forwardMotionProps === true && (0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key)) ||\r\n (!isDom && !(0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key)) ||\r\n // If trying to use native HTML drag events, forward drag listeners\r\n (props[\"draggable\"] &&\r\n key.startsWith(\"onDrag\"))) {\r\n filteredProps[key] =\r\n props[key];\r\n }\r\n }\r\n return filteredProps;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS91dGlscy9maWx0ZXItcHJvcHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF5RTtBQUN6RTtBQUNBLDhCQUE4QiwrRUFBaUI7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsK0VBQWlCO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsK0VBQWlCO0FBQzdELHdCQUF3QiwrRUFBaUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZ0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvZG9tL3V0aWxzL2ZpbHRlci1wcm9wcy5tanM/NWYxZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1ZhbGlkTW90aW9uUHJvcCB9IGZyb20gJy4uLy4uLy4uL21vdGlvbi91dGlscy92YWxpZC1wcm9wLm1qcyc7XHJcblxyXG5sZXQgc2hvdWxkRm9yd2FyZCA9IChrZXkpID0+ICFpc1ZhbGlkTW90aW9uUHJvcChrZXkpO1xyXG5mdW5jdGlvbiBsb2FkRXh0ZXJuYWxJc1ZhbGlkUHJvcChpc1ZhbGlkUHJvcCkge1xyXG4gICAgaWYgKHR5cGVvZiBpc1ZhbGlkUHJvcCAhPT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIHJldHVybjtcclxuICAgIC8vIEV4cGxpY2l0bHkgZmlsdGVyIG91ciBldmVudHNcclxuICAgIHNob3VsZEZvcndhcmQgPSAoa2V5KSA9PiBrZXkuc3RhcnRzV2l0aChcIm9uXCIpID8gIWlzVmFsaWRNb3Rpb25Qcm9wKGtleSkgOiBpc1ZhbGlkUHJvcChrZXkpO1xyXG59XHJcbi8qKlxyXG4gKiBFbW90aW9uIGFuZCBTdHlsZWQgQ29tcG9uZW50cyBib3RoIGFsbG93IHVzZXJzIHRvIHBhc3MgdGhyb3VnaCBhcmJpdHJhcnkgcHJvcHMgdG8gdGhlaXIgY29tcG9uZW50c1xyXG4gKiB0byBkeW5hbWljYWxseSBnZW5lcmF0ZSBDU1MuIFRoZXkgYm90aCB1c2UgdGhlIGBAZW1vdGlvbi9pcy1wcm9wLXZhbGlkYCBwYWNrYWdlIHRvIGRldGVybWluZSB3aGljaFxyXG4gKiBvZiB0aGVzZSBzaG91bGQgYmUgcGFzc2VkIHRvIHRoZSB1bmRlcmx5aW5nIERPTSBub2RlLlxyXG4gKlxyXG4gKiBIb3dldmVyLCB3aGVuIHN0eWxpbmcgYSBNb3Rpb24gY29tcG9uZW50IGBzdHlsZWQobW90aW9uLmRpdilgLCBib3RoIHBhY2thZ2VzIHBhc3MgdGhyb3VnaCAqYWxsKiBwcm9wc1xyXG4gKiBhcyBpdCdzIHNlZW4gYXMgYW4gYXJiaXRyYXJ5IGNvbXBvbmVudCByYXRoZXIgdGhhbiBhIERPTSBub2RlLiBNb3Rpb24gb25seSBhbGxvd3MgYXJiaXRyYXJ5IHByb3BzXHJcbiAqIHBhc3NlZCB0aHJvdWdoIHRoZSBgY3VzdG9tYCBwcm9wIHNvIGl0IGRvZXNuJ3QgKm5lZWQqIHRoZSBwYXlsb2FkIG9yIGNvbXB1dGF0aW9uYWwgb3ZlcmhlYWQgb2ZcclxuICogYEBlbW90aW9uL2lzLXByb3AtdmFsaWRgLCBob3dldmVyIHRvIGZpeCB0aGlzIHByb2JsZW0gd2UgbmVlZCB0byB1c2UgaXQuXHJcbiAqXHJcbiAqIEJ5IG1ha2luZyBpdCBhbiBvcHRpb25hbERlcGVuZGVuY3kgd2UgY2FuIG9mZmVyIHRoaXMgZnVuY3Rpb25hbGl0eSBvbmx5IGluIHRoZSBzaXR1YXRpb25zIHdoZXJlIGl0J3NcclxuICogYWN0dWFsbHkgcmVxdWlyZWQuXHJcbiAqL1xyXG50cnkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBXZSBhdHRlbXB0IHRvIGltcG9ydCB0aGlzIHBhY2thZ2UgYnV0IHJlcXVpcmUgd29uJ3QgYmUgZGVmaW5lZCBpbiBlc20gZW52aXJvbm1lbnRzLCBpbiB0aGF0IGNhc2VcclxuICAgICAqIGlzUHJvcFZhbGlkIHdpbGwgaGF2ZSB0byBiZSBwcm92aWRlZCB2aWEgYE1vdGlvbkNvbnRleHRgLiBJbiBhIDYuMC4wIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHJlbW92ZWRcclxuICAgICAqIGluIGZhdm91ciBvZiBleHBsaWNpdCBpbmplY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIGxvYWRFeHRlcm5hbElzVmFsaWRQcm9wKHJlcXVpcmUoXCJAZW1vdGlvbi9pcy1wcm9wLXZhbGlkXCIpLmRlZmF1bHQpO1xyXG59XHJcbmNhdGNoIHtcclxuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gYWN0dWFsbHkgZG8gYW55dGhpbmcgaGVyZSAtIHRoZSBmYWxsYmFjayBpcyB0aGUgZXhpc3RpbmcgYGlzUHJvcFZhbGlkYC5cclxufVxyXG5mdW5jdGlvbiBmaWx0ZXJQcm9wcyhwcm9wcywgaXNEb20sIGZvcndhcmRNb3Rpb25Qcm9wcykge1xyXG4gICAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IHt9O1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcHJvcHMpIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiB2YWx1ZXMgaXMgY29uc2lkZXJlZCBhIHZhbGlkIHByb3AgYnkgRW1vdGlvbiwgc28gaWYgaXQncyBwcmVzZW50XHJcbiAgICAgICAgICogdGhpcyB3aWxsIGJlIHJlbmRlcmVkIG91dCB0byB0aGUgRE9NIHVubGVzcyBleHBsaWNpdGx5IGZpbHRlcmVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogV2UgY2hlY2sgdGhlIHR5cGUgYXMgaXQgY291bGQgYmUgdXNlZCB3aXRoIHRoZSBgZmVDb2xvck1hdHJpeGBcclxuICAgICAgICAgKiBlbGVtZW50LCB3aGljaCB3ZSBzdXBwb3J0LlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGlmIChrZXkgPT09IFwidmFsdWVzXCIgJiYgdHlwZW9mIHByb3BzLnZhbHVlcyA9PT0gXCJvYmplY3RcIilcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgaWYgKHNob3VsZEZvcndhcmQoa2V5KSB8fFxyXG4gICAgICAgICAgICAoZm9yd2FyZE1vdGlvblByb3BzID09PSB0cnVlICYmIGlzVmFsaWRNb3Rpb25Qcm9wKGtleSkpIHx8XHJcbiAgICAgICAgICAgICghaXNEb20gJiYgIWlzVmFsaWRNb3Rpb25Qcm9wKGtleSkpIHx8XHJcbiAgICAgICAgICAgIC8vIElmIHRyeWluZyB0byB1c2UgbmF0aXZlIEhUTUwgZHJhZyBldmVudHMsIGZvcndhcmQgZHJhZyBsaXN0ZW5lcnNcclxuICAgICAgICAgICAgKHByb3BzW1wiZHJhZ2dhYmxlXCJdICYmXHJcbiAgICAgICAgICAgICAgICBrZXkuc3RhcnRzV2l0aChcIm9uRHJhZ1wiKSkpIHtcclxuICAgICAgICAgICAgZmlsdGVyZWRQcm9wc1trZXldID1cclxuICAgICAgICAgICAgICAgIHByb3BzW2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbHRlcmVkUHJvcHM7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGZpbHRlclByb3BzLCBsb2FkRXh0ZXJuYWxJc1ZhbGlkUHJvcCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs ***!
|
||
\**********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isSVGComponent: function() { return /* binding */ isSVGComponent; }\n/* harmony export */ });\n/* harmony import */ var _svg_lowercase_elements_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../svg/lowercase-elements.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs\");\n\r\n\r\nfunction isSVGComponent(Component) {\r\n if (\r\n /**\r\n * If it's not a string, it's a custom React component. Currently we only support\r\n * HTML custom React components.\r\n */\r\n typeof Component !== \"string\" ||\r\n /**\r\n * If it contains a dash, the element is a custom HTML webcomponent.\r\n */\r\n Component.includes(\"-\")) {\r\n return false;\r\n }\r\n else if (\r\n /**\r\n * If it's in our list of lowercase SVG tags, it's an SVG component\r\n */\r\n _svg_lowercase_elements_mjs__WEBPACK_IMPORTED_MODULE_0__.lowercaseSVGElements.indexOf(Component) > -1 ||\r\n /**\r\n * If it contains a capital letter, it's an SVG component\r\n */\r\n /[A-Z]/u.test(Component)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS91dGlscy9pcy1zdmctY29tcG9uZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF3RTtBQUN4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLDZFQUFvQjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDMEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvZG9tL3V0aWxzL2lzLXN2Zy1jb21wb25lbnQubWpzP2IyZTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG93ZXJjYXNlU1ZHRWxlbWVudHMgfSBmcm9tICcuLi8uLi9zdmcvbG93ZXJjYXNlLWVsZW1lbnRzLm1qcyc7XHJcblxyXG5mdW5jdGlvbiBpc1NWR0NvbXBvbmVudChDb21wb25lbnQpIHtcclxuICAgIGlmIChcclxuICAgIC8qKlxyXG4gICAgICogSWYgaXQncyBub3QgYSBzdHJpbmcsIGl0J3MgYSBjdXN0b20gUmVhY3QgY29tcG9uZW50LiBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0XHJcbiAgICAgKiBIVE1MIGN1c3RvbSBSZWFjdCBjb21wb25lbnRzLlxyXG4gICAgICovXHJcbiAgICB0eXBlb2YgQ29tcG9uZW50ICE9PSBcInN0cmluZ1wiIHx8XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSWYgaXQgY29udGFpbnMgYSBkYXNoLCB0aGUgZWxlbWVudCBpcyBhIGN1c3RvbSBIVE1MIHdlYmNvbXBvbmVudC5cclxuICAgICAgICAgKi9cclxuICAgICAgICBDb21wb25lbnQuaW5jbHVkZXMoXCItXCIpKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoXHJcbiAgICAvKipcclxuICAgICAqIElmIGl0J3MgaW4gb3VyIGxpc3Qgb2YgbG93ZXJjYXNlIFNWRyB0YWdzLCBpdCdzIGFuIFNWRyBjb21wb25lbnRcclxuICAgICAqL1xyXG4gICAgbG93ZXJjYXNlU1ZHRWxlbWVudHMuaW5kZXhPZihDb21wb25lbnQpID4gLTEgfHxcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiBpdCBjb250YWlucyBhIGNhcGl0YWwgbGV0dGVyLCBpdCdzIGFuIFNWRyBjb21wb25lbnRcclxuICAgICAgICAgKi9cclxuICAgICAgICAvW0EtWl0vdS50ZXN0KENvbXBvbmVudCkpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuZXhwb3J0IHsgaXNTVkdDb21wb25lbnQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs ***!
|
||
\******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HTMLVisualElement: function() { return /* binding */ HTMLVisualElement; },\n/* harmony export */ getComputedStyle: function() { return /* binding */ getComputedStyle; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _projection_utils_measure_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../projection/utils/measure.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/utils/measure.mjs\");\n/* harmony import */ var _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom/DOMVisualElement.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs\");\n/* harmony import */ var _utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/build-styles.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs\");\n/* harmony import */ var _utils_render_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/render.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/render.mjs\");\n/* harmony import */ var _utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/scrape-motion-values.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction getComputedStyle(element) {\r\n return window.getComputedStyle(element);\r\n}\r\nclass HTMLVisualElement extends _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__.DOMVisualElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = \"html\";\r\n this.renderInstance = _utils_render_mjs__WEBPACK_IMPORTED_MODULE_1__.renderHTML;\r\n }\r\n readValueFromInstance(instance, key) {\r\n if (motion_dom__WEBPACK_IMPORTED_MODULE_2__.transformProps.has(key)) {\r\n return this.projection?.isProjecting\r\n ? (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.defaultTransformValue)(key)\r\n : (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.readTransformValue)(instance, key);\r\n }\r\n else {\r\n const computedStyle = getComputedStyle(instance);\r\n const value = ((0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.isCSSVariableName)(key)\r\n ? computedStyle.getPropertyValue(key)\r\n : computedStyle[key]) || 0;\r\n return typeof value === \"string\" ? value.trim() : value;\r\n }\r\n }\r\n measureInstanceViewportBox(instance, { transformPagePoint }) {\r\n return (0,_projection_utils_measure_mjs__WEBPACK_IMPORTED_MODULE_5__.measureViewportBox)(instance, transformPagePoint);\r\n }\r\n build(renderState, latestValues, props) {\r\n (0,_utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_6__.buildHTMLStyles)(renderState, latestValues, props.transformTemplate);\r\n }\r\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\r\n return (0,_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_7__.scrapeMotionValuesFromProps)(props, prevProps, visualElement);\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvSFRNTFZpc3VhbEVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBMEc7QUFDbEM7QUFDVDtBQUNKO0FBQ1g7QUFDK0I7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsdUVBQWdCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qix5REFBVTtBQUN4QztBQUNBO0FBQ0EsWUFBWSxzREFBYztBQUMxQjtBQUNBLGtCQUFrQixpRUFBcUI7QUFDdkMsa0JBQWtCLDhEQUFrQjtBQUNwQztBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsNkRBQWlCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMsb0JBQW9CO0FBQy9ELGVBQWUsaUZBQWtCO0FBQ2pDO0FBQ0E7QUFDQSxRQUFRLHdFQUFlO0FBQ3ZCO0FBQ0E7QUFDQSxlQUFlLDRGQUEyQjtBQUMxQztBQUNBO0FBQ0E7QUFDK0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvaHRtbC9IVE1MVmlzdWFsRWxlbWVudC5tanM/NWE1YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wcywgZGVmYXVsdFRyYW5zZm9ybVZhbHVlLCByZWFkVHJhbnNmb3JtVmFsdWUsIGlzQ1NTVmFyaWFibGVOYW1lIH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcbmltcG9ydCB7IG1lYXN1cmVWaWV3cG9ydEJveCB9IGZyb20gJy4uLy4uL3Byb2plY3Rpb24vdXRpbHMvbWVhc3VyZS5tanMnO1xyXG5pbXBvcnQgeyBET01WaXN1YWxFbGVtZW50IH0gZnJvbSAnLi4vZG9tL0RPTVZpc3VhbEVsZW1lbnQubWpzJztcclxuaW1wb3J0IHsgYnVpbGRIVE1MU3R5bGVzIH0gZnJvbSAnLi91dGlscy9idWlsZC1zdHlsZXMubWpzJztcclxuaW1wb3J0IHsgcmVuZGVySFRNTCB9IGZyb20gJy4vdXRpbHMvcmVuZGVyLm1qcyc7XHJcbmltcG9ydCB7IHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyB9IGZyb20gJy4vdXRpbHMvc2NyYXBlLW1vdGlvbi12YWx1ZXMubWpzJztcclxuXHJcbmZ1bmN0aW9uIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xyXG59XHJcbmNsYXNzIEhUTUxWaXN1YWxFbGVtZW50IGV4dGVuZHMgRE9NVmlzdWFsRWxlbWVudCB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xyXG4gICAgICAgIHRoaXMudHlwZSA9IFwiaHRtbFwiO1xyXG4gICAgICAgIHRoaXMucmVuZGVySW5zdGFuY2UgPSByZW5kZXJIVE1MO1xyXG4gICAgfVxyXG4gICAgcmVhZFZhbHVlRnJvbUluc3RhbmNlKGluc3RhbmNlLCBrZXkpIHtcclxuICAgICAgICBpZiAodHJhbnNmb3JtUHJvcHMuaGFzKGtleSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvamVjdGlvbj8uaXNQcm9qZWN0aW5nXHJcbiAgICAgICAgICAgICAgICA/IGRlZmF1bHRUcmFuc2Zvcm1WYWx1ZShrZXkpXHJcbiAgICAgICAgICAgICAgICA6IHJlYWRUcmFuc2Zvcm1WYWx1ZShpbnN0YW5jZSwga2V5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGluc3RhbmNlKTtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAoaXNDU1NWYXJpYWJsZU5hbWUoa2V5KVxyXG4gICAgICAgICAgICAgICAgPyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoa2V5KVxyXG4gICAgICAgICAgICAgICAgOiBjb21wdXRlZFN0eWxlW2tleV0pIHx8IDA7XHJcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyB2YWx1ZS50cmltKCkgOiB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBtZWFzdXJlSW5zdGFuY2VWaWV3cG9ydEJveChpbnN0YW5jZSwgeyB0cmFuc2Zvcm1QYWdlUG9pbnQgfSkge1xyXG4gICAgICAgIHJldHVybiBtZWFzdXJlVmlld3BvcnRCb3goaW5zdGFuY2UsIHRyYW5zZm9ybVBhZ2VQb2ludCk7XHJcbiAgICB9XHJcbiAgICBidWlsZChyZW5kZXJTdGF0ZSwgbGF0ZXN0VmFsdWVzLCBwcm9wcykge1xyXG4gICAgICAgIGJ1aWxkSFRNTFN0eWxlcyhyZW5kZXJTdGF0ZSwgbGF0ZXN0VmFsdWVzLCBwcm9wcy50cmFuc2Zvcm1UZW1wbGF0ZSk7XHJcbiAgICB9XHJcbiAgICBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMocHJvcHMsIHByZXZQcm9wcywgdmlzdWFsRWxlbWVudCkge1xyXG4gICAgICAgIHJldHVybiBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMocHJvcHMsIHByZXZQcm9wcywgdmlzdWFsRWxlbWVudCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IEhUTUxWaXN1YWxFbGVtZW50LCBnZXRDb21wdXRlZFN0eWxlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs ***!
|
||
\**********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useHTMLVisualState: function() { return /* binding */ useHTMLVisualState; }\n/* harmony export */ });\n/* harmony import */ var _motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../motion/utils/use-visual-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\");\n/* harmony import */ var _utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/scrape-motion-values.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\nconst useHTMLVisualState = /*@__PURE__*/ (0,_motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__.makeUseVisualState)({\r\n scrapeMotionValuesFromProps: _utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_1__.scrapeMotionValuesFromProps,\r\n createRenderState: _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__.createHtmlRenderState,\r\n});\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXNlLWh0bWwtdmlzdWFsLXN0YXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDNkU7QUFDTDtBQUNPO0FBQy9FO0FBQ0EseUNBQXlDLHNGQUFrQjtBQUMzRCwrQkFBK0I7QUFDL0IsdUJBQXVCLGlGQUFxQjtBQUM1QyxDQUFDO0FBQ0Q7QUFDOEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvaHRtbC91c2UtaHRtbC12aXN1YWwtc3RhdGUubWpzPzdlZjIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcbmltcG9ydCB7IG1ha2VVc2VWaXN1YWxTdGF0ZSB9IGZyb20gJy4uLy4uL21vdGlvbi91dGlscy91c2UtdmlzdWFsLXN0YXRlLm1qcyc7XHJcbmltcG9ydCB7IGNyZWF0ZUh0bWxSZW5kZXJTdGF0ZSB9IGZyb20gJy4vdXRpbHMvY3JlYXRlLXJlbmRlci1zdGF0ZS5tanMnO1xyXG5pbXBvcnQgeyBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgfSBmcm9tICcuL3V0aWxzL3NjcmFwZS1tb3Rpb24tdmFsdWVzLm1qcyc7XHJcblxyXG5jb25zdCB1c2VIVE1MVmlzdWFsU3RhdGUgPSAvKkBfX1BVUkVfXyovIG1ha2VVc2VWaXN1YWxTdGF0ZSh7XHJcbiAgICBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMsXHJcbiAgICBjcmVhdGVSZW5kZXJTdGF0ZTogY3JlYXRlSHRtbFJlbmRlclN0YXRlLFxyXG59KTtcclxuXHJcbmV4cG9ydCB7IHVzZUhUTUxWaXN1YWxTdGF0ZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/html/use-props.mjs ***!
|
||
\**********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ copyRawValuesOnly: function() { return /* binding */ copyRawValuesOnly; },\n/* harmony export */ useHTMLProps: function() { return /* binding */ useHTMLProps; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\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 _motion_utils_is_forced_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../motion/utils/is-forced-motion-value.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs\");\n/* harmony import */ var _utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/build-styles.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction copyRawValuesOnly(target, source, props) {\r\n for (const key in source) {\r\n if (!(0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.isMotionValue)(source[key]) && !(0,_motion_utils_is_forced_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__.isForcedMotionValue)(key, props)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n}\r\nfunction useInitialMotionValues({ transformTemplate }, visualState) {\r\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\r\n const state = (0,_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_3__.createHtmlRenderState)();\r\n (0,_utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_4__.buildHTMLStyles)(state, visualState, transformTemplate);\r\n return Object.assign({}, state.vars, state.style);\r\n }, [visualState]);\r\n}\r\nfunction useStyle(props, visualState) {\r\n const styleProp = props.style || {};\r\n const style = {};\r\n /**\r\n * Copy non-Motion Values straight into style\r\n */\r\n copyRawValuesOnly(style, styleProp, props);\r\n Object.assign(style, useInitialMotionValues(props, visualState));\r\n return style;\r\n}\r\nfunction useHTMLProps(props, visualState) {\r\n // The `any` isn't ideal but it is the type of createElement props argument\r\n const htmlProps = {};\r\n const style = useStyle(props, visualState);\r\n if (props.drag && props.dragListener !== false) {\r\n // Disable the ghost element when a user drags\r\n htmlProps.draggable = false;\r\n // Disable text selection\r\n style.userSelect =\r\n style.WebkitUserSelect =\r\n style.WebkitTouchCallout =\r\n \"none\";\r\n // Disable scrolling on the draggable direction\r\n style.touchAction =\r\n props.drag === true\r\n ? \"none\"\r\n : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\r\n }\r\n if (props.tabIndex === undefined &&\r\n (props.onTap || props.onTapStart || props.whileTap)) {\r\n htmlProps.tabIndex = 0;\r\n }\r\n htmlProps.style = style;\r\n return htmlProps;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXNlLXByb3BzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDMkM7QUFDWDtBQUNvRDtBQUN6QjtBQUNhO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBLGFBQWEseURBQWEsa0JBQWtCLDZGQUFtQjtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxtQkFBbUI7QUFDckQsV0FBVyw4Q0FBTztBQUNsQixzQkFBc0IscUZBQXFCO0FBQzNDLFFBQVEsd0VBQWU7QUFDdkIsK0JBQStCO0FBQy9CLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsK0JBQStCO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUMyQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9odG1sL3VzZS1wcm9wcy5tanM/MmRlYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBpc0ZvcmNlZE1vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vbW90aW9uL3V0aWxzL2lzLWZvcmNlZC1tb3Rpb24tdmFsdWUubWpzJztcclxuaW1wb3J0IHsgYnVpbGRIVE1MU3R5bGVzIH0gZnJvbSAnLi91dGlscy9idWlsZC1zdHlsZXMubWpzJztcclxuaW1wb3J0IHsgY3JlYXRlSHRtbFJlbmRlclN0YXRlIH0gZnJvbSAnLi91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlLm1qcyc7XHJcblxyXG5mdW5jdGlvbiBjb3B5UmF3VmFsdWVzT25seSh0YXJnZXQsIHNvdXJjZSwgcHJvcHMpIHtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZSkge1xyXG4gICAgICAgIGlmICghaXNNb3Rpb25WYWx1ZShzb3VyY2Vba2V5XSkgJiYgIWlzRm9yY2VkTW90aW9uVmFsdWUoa2V5LCBwcm9wcykpIHtcclxuICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gdXNlSW5pdGlhbE1vdGlvblZhbHVlcyh7IHRyYW5zZm9ybVRlbXBsYXRlIH0sIHZpc3VhbFN0YXRlKSB7XHJcbiAgICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBjcmVhdGVIdG1sUmVuZGVyU3RhdGUoKTtcclxuICAgICAgICBidWlsZEhUTUxTdHlsZXMoc3RhdGUsIHZpc3VhbFN0YXRlLCB0cmFuc2Zvcm1UZW1wbGF0ZSk7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnZhcnMsIHN0YXRlLnN0eWxlKTtcclxuICAgIH0sIFt2aXN1YWxTdGF0ZV0pO1xyXG59XHJcbmZ1bmN0aW9uIHVzZVN0eWxlKHByb3BzLCB2aXN1YWxTdGF0ZSkge1xyXG4gICAgY29uc3Qgc3R5bGVQcm9wID0gcHJvcHMuc3R5bGUgfHwge307XHJcbiAgICBjb25zdCBzdHlsZSA9IHt9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb3B5IG5vbi1Nb3Rpb24gVmFsdWVzIHN0cmFpZ2h0IGludG8gc3R5bGVcclxuICAgICAqL1xyXG4gICAgY29weVJhd1ZhbHVlc09ubHkoc3R5bGUsIHN0eWxlUHJvcCwgcHJvcHMpO1xyXG4gICAgT2JqZWN0LmFzc2lnbihzdHlsZSwgdXNlSW5pdGlhbE1vdGlvblZhbHVlcyhwcm9wcywgdmlzdWFsU3RhdGUpKTtcclxuICAgIHJldHVybiBzdHlsZTtcclxufVxyXG5mdW5jdGlvbiB1c2VIVE1MUHJvcHMocHJvcHMsIHZpc3VhbFN0YXRlKSB7XHJcbiAgICAvLyBUaGUgYGFueWAgaXNuJ3QgaWRlYWwgYnV0IGl0IGlzIHRoZSB0eXBlIG9mIGNyZWF0ZUVsZW1lbnQgcHJvcHMgYXJndW1lbnRcclxuICAgIGNvbnN0IGh0bWxQcm9wcyA9IHt9O1xyXG4gICAgY29uc3Qgc3R5bGUgPSB1c2VTdHlsZShwcm9wcywgdmlzdWFsU3RhdGUpO1xyXG4gICAgaWYgKHByb3BzLmRyYWcgJiYgcHJvcHMuZHJhZ0xpc3RlbmVyICE9PSBmYWxzZSkge1xyXG4gICAgICAgIC8vIERpc2FibGUgdGhlIGdob3N0IGVsZW1lbnQgd2hlbiBhIHVzZXIgZHJhZ3NcclxuICAgICAgICBodG1sUHJvcHMuZHJhZ2dhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgLy8gRGlzYWJsZSB0ZXh0IHNlbGVjdGlvblxyXG4gICAgICAgIHN0eWxlLnVzZXJTZWxlY3QgPVxyXG4gICAgICAgICAgICBzdHlsZS5XZWJraXRVc2VyU2VsZWN0ID1cclxuICAgICAgICAgICAgICAgIHN0eWxlLldlYmtpdFRvdWNoQ2FsbG91dCA9XHJcbiAgICAgICAgICAgICAgICAgICAgXCJub25lXCI7XHJcbiAgICAgICAgLy8gRGlzYWJsZSBzY3JvbGxpbmcgb24gdGhlIGRyYWdnYWJsZSBkaXJlY3Rpb25cclxuICAgICAgICBzdHlsZS50b3VjaEFjdGlvbiA9XHJcbiAgICAgICAgICAgIHByb3BzLmRyYWcgPT09IHRydWVcclxuICAgICAgICAgICAgICAgID8gXCJub25lXCJcclxuICAgICAgICAgICAgICAgIDogYHBhbi0ke3Byb3BzLmRyYWcgPT09IFwieFwiID8gXCJ5XCIgOiBcInhcIn1gO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLnRhYkluZGV4ID09PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAocHJvcHMub25UYXAgfHwgcHJvcHMub25UYXBTdGFydCB8fCBwcm9wcy53aGlsZVRhcCkpIHtcclxuICAgICAgICBodG1sUHJvcHMudGFiSW5kZXggPSAwO1xyXG4gICAgfVxyXG4gICAgaHRtbFByb3BzLnN0eWxlID0gc3R5bGU7XHJcbiAgICByZXR1cm4gaHRtbFByb3BzO1xyXG59XHJcblxyXG5leHBvcnQgeyBjb3B5UmF3VmFsdWVzT25seSwgdXNlSFRNTFByb3BzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildHTMLStyles: function() { return /* binding */ buildHTMLStyles; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\");\n/* harmony import */ var _build_transform_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./build-transform.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs\");\n\r\n\r\n\r\nfunction buildHTMLStyles(state, latestValues, transformTemplate) {\r\n const { style, vars, transformOrigin } = state;\r\n // Track whether we encounter any transform or transformOrigin values.\r\n let hasTransform = false;\r\n let hasTransformOrigin = false;\r\n /**\r\n * Loop over all our latest animated values and decide whether to handle them\r\n * as a style or CSS variable.\r\n *\r\n * Transforms and transform origins are kept separately for further processing.\r\n */\r\n for (const key in latestValues) {\r\n const value = latestValues[key];\r\n if (motion_dom__WEBPACK_IMPORTED_MODULE_0__.transformProps.has(key)) {\r\n // If this is a transform, flag to enable further transform processing\r\n hasTransform = true;\r\n continue;\r\n }\r\n else if ((0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.isCSSVariableName)(key)) {\r\n vars[key] = value;\r\n continue;\r\n }\r\n else {\r\n // Convert the value to its default value type, ie 0 -> \"0px\"\r\n const valueAsType = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.getValueAsType)(value, motion_dom__WEBPACK_IMPORTED_MODULE_3__.numberValueTypes[key]);\r\n if (key.startsWith(\"origin\")) {\r\n // If this is a transform origin, flag and enable further transform-origin processing\r\n hasTransformOrigin = true;\r\n transformOrigin[key] =\r\n valueAsType;\r\n }\r\n else {\r\n style[key] = valueAsType;\r\n }\r\n }\r\n }\r\n if (!latestValues.transform) {\r\n if (hasTransform || transformTemplate) {\r\n style.transform = (0,_build_transform_mjs__WEBPACK_IMPORTED_MODULE_4__.buildTransform)(latestValues, state.transform, transformTemplate);\r\n }\r\n else if (style.transform) {\r\n /**\r\n * If we have previously created a transform but currently don't have any,\r\n * reset transform style to none.\r\n */\r\n style.transform = \"none\";\r\n }\r\n }\r\n /**\r\n * Build a transformOrigin style. Uses the same defaults as the browser for\r\n * undefined origins.\r\n */\r\n if (hasTransformOrigin) {\r\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\r\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvYnVpbGQtc3R5bGVzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBaUc7QUFDMUM7QUFDdkQ7QUFDQTtBQUNBLFlBQVksK0JBQStCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHNEQUFjO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLDZEQUFpQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLDBEQUFjLFFBQVEsd0RBQWdCO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLG9FQUFjO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsaURBQWlEO0FBQ2pFLG1DQUFtQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVE7QUFDakU7QUFDQTtBQUNBO0FBQzJCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvYnVpbGQtc3R5bGVzLm1qcz84ZWI4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyYW5zZm9ybVByb3BzLCBpc0NTU1ZhcmlhYmxlTmFtZSwgZ2V0VmFsdWVBc1R5cGUsIG51bWJlclZhbHVlVHlwZXMgfSBmcm9tICdtb3Rpb24tZG9tJztcclxuaW1wb3J0IHsgYnVpbGRUcmFuc2Zvcm0gfSBmcm9tICcuL2J1aWxkLXRyYW5zZm9ybS5tanMnO1xyXG5cclxuZnVuY3Rpb24gYnVpbGRIVE1MU3R5bGVzKHN0YXRlLCBsYXRlc3RWYWx1ZXMsIHRyYW5zZm9ybVRlbXBsYXRlKSB7XHJcbiAgICBjb25zdCB7IHN0eWxlLCB2YXJzLCB0cmFuc2Zvcm1PcmlnaW4gfSA9IHN0YXRlO1xyXG4gICAgLy8gVHJhY2sgd2hldGhlciB3ZSBlbmNvdW50ZXIgYW55IHRyYW5zZm9ybSBvciB0cmFuc2Zvcm1PcmlnaW4gdmFsdWVzLlxyXG4gICAgbGV0IGhhc1RyYW5zZm9ybSA9IGZhbHNlO1xyXG4gICAgbGV0IGhhc1RyYW5zZm9ybU9yaWdpbiA9IGZhbHNlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMb29wIG92ZXIgYWxsIG91ciBsYXRlc3QgYW5pbWF0ZWQgdmFsdWVzIGFuZCBkZWNpZGUgd2hldGhlciB0byBoYW5kbGUgdGhlbVxyXG4gICAgICogYXMgYSBzdHlsZSBvciBDU1MgdmFyaWFibGUuXHJcbiAgICAgKlxyXG4gICAgICogVHJhbnNmb3JtcyBhbmQgdHJhbnNmb3JtIG9yaWdpbnMgYXJlIGtlcHQgc2VwYXJhdGVseSBmb3IgZnVydGhlciBwcm9jZXNzaW5nLlxyXG4gICAgICovXHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBsYXRlc3RWYWx1ZXMpIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGxhdGVzdFZhbHVlc1trZXldO1xyXG4gICAgICAgIGlmICh0cmFuc2Zvcm1Qcm9wcy5oYXMoa2V5KSkge1xyXG4gICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgdHJhbnNmb3JtLCBmbGFnIHRvIGVuYWJsZSBmdXJ0aGVyIHRyYW5zZm9ybSBwcm9jZXNzaW5nXHJcbiAgICAgICAgICAgIGhhc1RyYW5zZm9ybSA9IHRydWU7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpc0NTU1ZhcmlhYmxlTmFtZShrZXkpKSB7XHJcbiAgICAgICAgICAgIHZhcnNba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIHZhbHVlIHRvIGl0cyBkZWZhdWx0IHZhbHVlIHR5cGUsIGllIDAgLT4gXCIwcHhcIlxyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFzVHlwZSA9IGdldFZhbHVlQXNUeXBlKHZhbHVlLCBudW1iZXJWYWx1ZVR5cGVzW2tleV0pO1xyXG4gICAgICAgICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoXCJvcmlnaW5cIikpIHtcclxuICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSB0cmFuc2Zvcm0gb3JpZ2luLCBmbGFnIGFuZCBlbmFibGUgZnVydGhlciB0cmFuc2Zvcm0tb3JpZ2luIHByb2Nlc3NpbmdcclxuICAgICAgICAgICAgICAgIGhhc1RyYW5zZm9ybU9yaWdpbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW5ba2V5XSA9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVBc1R5cGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBzdHlsZVtrZXldID0gdmFsdWVBc1R5cGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIWxhdGVzdFZhbHVlcy50cmFuc2Zvcm0pIHtcclxuICAgICAgICBpZiAoaGFzVHJhbnNmb3JtIHx8IHRyYW5zZm9ybVRlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgIHN0eWxlLnRyYW5zZm9ybSA9IGJ1aWxkVHJhbnNmb3JtKGxhdGVzdFZhbHVlcywgc3RhdGUudHJhbnNmb3JtLCB0cmFuc2Zvcm1UZW1wbGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHN0eWxlLnRyYW5zZm9ybSkge1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBwcmV2aW91c2x5IGNyZWF0ZWQgYSB0cmFuc2Zvcm0gYnV0IGN1cnJlbnRseSBkb24ndCBoYXZlIGFueSxcclxuICAgICAgICAgICAgICogcmVzZXQgdHJhbnNmb3JtIHN0eWxlIHRvIG5vbmUuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBzdHlsZS50cmFuc2Zvcm0gPSBcIm5vbmVcIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEJ1aWxkIGEgdHJhbnNmb3JtT3JpZ2luIHN0eWxlLiBVc2VzIHRoZSBzYW1lIGRlZmF1bHRzIGFzIHRoZSBicm93c2VyIGZvclxyXG4gICAgICogdW5kZWZpbmVkIG9yaWdpbnMuXHJcbiAgICAgKi9cclxuICAgIGlmIChoYXNUcmFuc2Zvcm1PcmlnaW4pIHtcclxuICAgICAgICBjb25zdCB7IG9yaWdpblggPSBcIjUwJVwiLCBvcmlnaW5ZID0gXCI1MCVcIiwgb3JpZ2luWiA9IDAsIH0gPSB0cmFuc2Zvcm1PcmlnaW47XHJcbiAgICAgICAgc3R5bGUudHJhbnNmb3JtT3JpZ2luID0gYCR7b3JpZ2luWH0gJHtvcmlnaW5ZfSAke29yaWdpblp9YDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHsgYnVpbGRIVE1MU3R5bGVzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs ***!
|
||
\**********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildTransform: function() { return /* binding */ buildTransform; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\");\n\r\n\r\nconst translateAlias = {\r\n x: \"translateX\",\r\n y: \"translateY\",\r\n z: \"translateZ\",\r\n transformPerspective: \"perspective\",\r\n};\r\nconst numTransforms = motion_dom__WEBPACK_IMPORTED_MODULE_0__.transformPropOrder.length;\r\n/**\r\n * Build a CSS transform style from individual x/y/scale etc properties.\r\n *\r\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\r\n * providing a transformTemplate function.\r\n */\r\nfunction buildTransform(latestValues, transform, transformTemplate) {\r\n // The transform string we're going to build into.\r\n let transformString = \"\";\r\n let transformIsDefault = true;\r\n /**\r\n * Loop over all possible transforms in order, adding the ones that\r\n * are present to the transform string.\r\n */\r\n for (let i = 0; i < numTransforms; i++) {\r\n const key = motion_dom__WEBPACK_IMPORTED_MODULE_0__.transformPropOrder[i];\r\n const value = latestValues[key];\r\n if (value === undefined)\r\n continue;\r\n let valueIsDefault = true;\r\n if (typeof value === \"number\") {\r\n valueIsDefault = value === (key.startsWith(\"scale\") ? 1 : 0);\r\n }\r\n else {\r\n valueIsDefault = parseFloat(value) === 0;\r\n }\r\n if (!valueIsDefault || transformTemplate) {\r\n const valueAsType = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.getValueAsType)(value, motion_dom__WEBPACK_IMPORTED_MODULE_2__.numberValueTypes[key]);\r\n if (!valueIsDefault) {\r\n transformIsDefault = false;\r\n const transformName = translateAlias[key] || key;\r\n transformString += `${transformName}(${valueAsType}) `;\r\n }\r\n if (transformTemplate) {\r\n transform[key] = valueAsType;\r\n }\r\n }\r\n }\r\n transformString = transformString.trim();\r\n // If we have a custom `transform` template, pass our transform values and\r\n // generated transformString to that before returning\r\n if (transformTemplate) {\r\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\r\n }\r\n else if (transformIsDefault) {\r\n transformString = \"none\";\r\n }\r\n return transformString;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvYnVpbGQtdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWtGO0FBQ2xGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDBEQUFrQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLG1CQUFtQjtBQUN2QyxvQkFBb0IsMERBQWtCO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsMERBQWMsUUFBUSx3REFBZ0I7QUFDdEU7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLGNBQWMsR0FBRyxZQUFZO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUMwQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9odG1sL3V0aWxzL2J1aWxkLXRyYW5zZm9ybS5tanM/MTZiMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wT3JkZXIsIGdldFZhbHVlQXNUeXBlLCBudW1iZXJWYWx1ZVR5cGVzIH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcblxyXG5jb25zdCB0cmFuc2xhdGVBbGlhcyA9IHtcclxuICAgIHg6IFwidHJhbnNsYXRlWFwiLFxyXG4gICAgeTogXCJ0cmFuc2xhdGVZXCIsXHJcbiAgICB6OiBcInRyYW5zbGF0ZVpcIixcclxuICAgIHRyYW5zZm9ybVBlcnNwZWN0aXZlOiBcInBlcnNwZWN0aXZlXCIsXHJcbn07XHJcbmNvbnN0IG51bVRyYW5zZm9ybXMgPSB0cmFuc2Zvcm1Qcm9wT3JkZXIubGVuZ3RoO1xyXG4vKipcclxuICogQnVpbGQgYSBDU1MgdHJhbnNmb3JtIHN0eWxlIGZyb20gaW5kaXZpZHVhbCB4L3kvc2NhbGUgZXRjIHByb3BlcnRpZXMuXHJcbiAqXHJcbiAqIFRoaXMgb3V0cHV0cyB3aXRoIGEgZGVmYXVsdCBvcmRlciBvZiB0cmFuc2Zvcm1zL3NjYWxlcy9yb3RhdGlvbnMsIHRoaXMgY2FuIGJlIGN1c3RvbWlzZWQgYnlcclxuICogcHJvdmlkaW5nIGEgdHJhbnNmb3JtVGVtcGxhdGUgZnVuY3Rpb24uXHJcbiAqL1xyXG5mdW5jdGlvbiBidWlsZFRyYW5zZm9ybShsYXRlc3RWYWx1ZXMsIHRyYW5zZm9ybSwgdHJhbnNmb3JtVGVtcGxhdGUpIHtcclxuICAgIC8vIFRoZSB0cmFuc2Zvcm0gc3RyaW5nIHdlJ3JlIGdvaW5nIHRvIGJ1aWxkIGludG8uXHJcbiAgICBsZXQgdHJhbnNmb3JtU3RyaW5nID0gXCJcIjtcclxuICAgIGxldCB0cmFuc2Zvcm1Jc0RlZmF1bHQgPSB0cnVlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMb29wIG92ZXIgYWxsIHBvc3NpYmxlIHRyYW5zZm9ybXMgaW4gb3JkZXIsIGFkZGluZyB0aGUgb25lcyB0aGF0XHJcbiAgICAgKiBhcmUgcHJlc2VudCB0byB0aGUgdHJhbnNmb3JtIHN0cmluZy5cclxuICAgICAqL1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1UcmFuc2Zvcm1zOyBpKyspIHtcclxuICAgICAgICBjb25zdCBrZXkgPSB0cmFuc2Zvcm1Qcm9wT3JkZXJbaV07XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBsYXRlc3RWYWx1ZXNba2V5XTtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgbGV0IHZhbHVlSXNEZWZhdWx0ID0gdHJ1ZTtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XHJcbiAgICAgICAgICAgIHZhbHVlSXNEZWZhdWx0ID0gdmFsdWUgPT09IChrZXkuc3RhcnRzV2l0aChcInNjYWxlXCIpID8gMSA6IDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdmFsdWVJc0RlZmF1bHQgPSBwYXJzZUZsb2F0KHZhbHVlKSA9PT0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF2YWx1ZUlzRGVmYXVsdCB8fCB0cmFuc2Zvcm1UZW1wbGF0ZSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFzVHlwZSA9IGdldFZhbHVlQXNUeXBlKHZhbHVlLCBudW1iZXJWYWx1ZVR5cGVzW2tleV0pO1xyXG4gICAgICAgICAgICBpZiAoIXZhbHVlSXNEZWZhdWx0KSB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1Jc0RlZmF1bHQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybU5hbWUgPSB0cmFuc2xhdGVBbGlhc1trZXldIHx8IGtleTtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybVN0cmluZyArPSBgJHt0cmFuc2Zvcm1OYW1lfSgke3ZhbHVlQXNUeXBlfSkgYDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodHJhbnNmb3JtVGVtcGxhdGUpIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybVtrZXldID0gdmFsdWVBc1R5cGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB0cmFuc2Zvcm1TdHJpbmcgPSB0cmFuc2Zvcm1TdHJpbmcudHJpbSgpO1xyXG4gICAgLy8gSWYgd2UgaGF2ZSBhIGN1c3RvbSBgdHJhbnNmb3JtYCB0ZW1wbGF0ZSwgcGFzcyBvdXIgdHJhbnNmb3JtIHZhbHVlcyBhbmRcclxuICAgIC8vIGdlbmVyYXRlZCB0cmFuc2Zvcm1TdHJpbmcgdG8gdGhhdCBiZWZvcmUgcmV0dXJuaW5nXHJcbiAgICBpZiAodHJhbnNmb3JtVGVtcGxhdGUpIHtcclxuICAgICAgICB0cmFuc2Zvcm1TdHJpbmcgPSB0cmFuc2Zvcm1UZW1wbGF0ZSh0cmFuc2Zvcm0sIHRyYW5zZm9ybUlzRGVmYXVsdCA/IFwiXCIgOiB0cmFuc2Zvcm1TdHJpbmcpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHJhbnNmb3JtSXNEZWZhdWx0KSB7XHJcbiAgICAgICAgdHJhbnNmb3JtU3RyaW5nID0gXCJub25lXCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJhbnNmb3JtU3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgeyBidWlsZFRyYW5zZm9ybSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs ***!
|
||
\**************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createHtmlRenderState: function() { return /* binding */ createHtmlRenderState; }\n/* harmony export */ });\nconst createHtmlRenderState = () => ({\r\n style: {},\r\n transform: {},\r\n transformOrigin: {},\r\n vars: {},\r\n});\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvY3JlYXRlLXJlbmRlci1zdGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0EsYUFBYTtBQUNiLGlCQUFpQjtBQUNqQix1QkFBdUI7QUFDdkIsWUFBWTtBQUNaLENBQUM7QUFDRDtBQUNpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9odG1sL3V0aWxzL2NyZWF0ZS1yZW5kZXItc3RhdGUubWpzP2VhNjIiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY3JlYXRlSHRtbFJlbmRlclN0YXRlID0gKCkgPT4gKHtcclxuICAgIHN0eWxlOiB7fSxcclxuICAgIHRyYW5zZm9ybToge30sXHJcbiAgICB0cmFuc2Zvcm1PcmlnaW46IHt9LFxyXG4gICAgdmFyczoge30sXHJcbn0pO1xyXG5cclxuZXhwb3J0IHsgY3JlYXRlSHRtbFJlbmRlclN0YXRlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/render.mjs":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/html/utils/render.mjs ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ renderHTML: function() { return /* binding */ renderHTML; }\n/* harmony export */ });\nfunction renderHTML(element, { style, vars }, styleProp, projection) {\r\n const elementStyle = element.style;\r\n let key;\r\n for (key in style) {\r\n // CSSStyleDeclaration has [index: number]: string; in the types, so we use that as key type.\r\n elementStyle[key] = style[key];\r\n }\r\n // Write projection styles directly to element style\r\n projection?.applyProjectionStyles(elementStyle, styleProp);\r\n for (key in vars) {\r\n // Loop over any CSS variables and assign those.\r\n // They can only be assigned using `setProperty`.\r\n elementStyle.setProperty(key, vars[key]);\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvcmVuZGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsK0JBQStCLGFBQWE7QUFDNUM7QUFDQTtBQUNBO0FBQ0EsNERBQTREO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDc0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvaHRtbC91dGlscy9yZW5kZXIubWpzPzljYzkiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gcmVuZGVySFRNTChlbGVtZW50LCB7IHN0eWxlLCB2YXJzIH0sIHN0eWxlUHJvcCwgcHJvamVjdGlvbikge1xyXG4gICAgY29uc3QgZWxlbWVudFN0eWxlID0gZWxlbWVudC5zdHlsZTtcclxuICAgIGxldCBrZXk7XHJcbiAgICBmb3IgKGtleSBpbiBzdHlsZSkge1xyXG4gICAgICAgIC8vIENTU1N0eWxlRGVjbGFyYXRpb24gaGFzIFtpbmRleDogbnVtYmVyXTogc3RyaW5nOyBpbiB0aGUgdHlwZXMsIHNvIHdlIHVzZSB0aGF0IGFzIGtleSB0eXBlLlxyXG4gICAgICAgIGVsZW1lbnRTdHlsZVtrZXldID0gc3R5bGVba2V5XTtcclxuICAgIH1cclxuICAgIC8vIFdyaXRlIHByb2plY3Rpb24gc3R5bGVzIGRpcmVjdGx5IHRvIGVsZW1lbnQgc3R5bGVcclxuICAgIHByb2plY3Rpb24/LmFwcGx5UHJvamVjdGlvblN0eWxlcyhlbGVtZW50U3R5bGUsIHN0eWxlUHJvcCk7XHJcbiAgICBmb3IgKGtleSBpbiB2YXJzKSB7XHJcbiAgICAgICAgLy8gTG9vcCBvdmVyIGFueSBDU1MgdmFyaWFibGVzIGFuZCBhc3NpZ24gdGhvc2UuXHJcbiAgICAgICAgLy8gVGhleSBjYW4gb25seSBiZSBhc3NpZ25lZCB1c2luZyBgc2V0UHJvcGVydHlgLlxyXG4gICAgICAgIGVsZW1lbnRTdHlsZS5zZXRQcm9wZXJ0eShrZXksIHZhcnNba2V5XSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IHJlbmRlckhUTUwgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/render.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs":
|
||
/*!***************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs ***!
|
||
\***************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ scrapeMotionValuesFromProps: function() { return /* binding */ scrapeMotionValuesFromProps; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var _motion_utils_is_forced_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../motion/utils/is-forced-motion-value.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs\");\n\r\n\r\n\r\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\r\n const { style } = props;\r\n const newValues = {};\r\n for (const key in style) {\r\n if ((0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(style[key]) ||\r\n (prevProps.style &&\r\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(prevProps.style[key])) ||\r\n (0,_motion_utils_is_forced_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__.isForcedMotionValue)(key, props) ||\r\n visualElement?.getValue(key)?.liveStyle !== undefined) {\r\n newValues[key] = style[key];\r\n }\r\n }\r\n return newValues;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvc2NyYXBlLW1vdGlvbi12YWx1ZXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUEyQztBQUM0QztBQUN2RjtBQUNBO0FBQ0EsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQSxZQUFZLHlEQUFhO0FBQ3pCO0FBQ0EsZ0JBQWdCLHlEQUFhO0FBQzdCLFlBQVksNkZBQW1CO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3VDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvc2NyYXBlLW1vdGlvbi12YWx1ZXMubWpzP2UyYjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5pbXBvcnQgeyBpc0ZvcmNlZE1vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vbW90aW9uL3V0aWxzL2lzLWZvcmNlZC1tb3Rpb24tdmFsdWUubWpzJztcclxuXHJcbmZ1bmN0aW9uIHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcywgcHJldlByb3BzLCB2aXN1YWxFbGVtZW50KSB7XHJcbiAgICBjb25zdCB7IHN0eWxlIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IHt9O1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gc3R5bGUpIHtcclxuICAgICAgICBpZiAoaXNNb3Rpb25WYWx1ZShzdHlsZVtrZXldKSB8fFxyXG4gICAgICAgICAgICAocHJldlByb3BzLnN0eWxlICYmXHJcbiAgICAgICAgICAgICAgICBpc01vdGlvblZhbHVlKHByZXZQcm9wcy5zdHlsZVtrZXldKSkgfHxcclxuICAgICAgICAgICAgaXNGb3JjZWRNb3Rpb25WYWx1ZShrZXksIHByb3BzKSB8fFxyXG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50Py5nZXRWYWx1ZShrZXkpPy5saXZlU3R5bGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZXNba2V5XSA9IHN0eWxlW2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld1ZhbHVlcztcclxufVxyXG5cclxuZXhwb3J0IHsgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/store.mjs":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/store.mjs ***!
|
||
\*************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ visualElementStore: function() { return /* binding */ visualElementStore; }\n/* harmony export */ });\nconst visualElementStore = new WeakMap();\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N0b3JlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUM4QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdG9yZS5tanM/ZjVmYyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB2aXN1YWxFbGVtZW50U3RvcmUgPSBuZXcgV2Vha01hcCgpO1xyXG5cclxuZXhwb3J0IHsgdmlzdWFsRWxlbWVudFN0b3JlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/store.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SVGVisualElement: function() { return /* binding */ SVGVisualElement; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs\");\n/* harmony import */ var _projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../projection/geometry/models.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom/DOMVisualElement.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs\");\n/* harmony import */ var _dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom/utils/camel-to-dash.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs\");\n/* harmony import */ var _utils_build_attrs_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/build-attrs.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs\");\n/* harmony import */ var _utils_camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/camel-case-attrs.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs\");\n/* harmony import */ var _utils_is_svg_tag_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/is-svg-tag.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs\");\n/* harmony import */ var _utils_render_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/render.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/render.mjs\");\n/* harmony import */ var _utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/scrape-motion-values.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass SVGVisualElement extends _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__.DOMVisualElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = \"svg\";\r\n this.isSVGTag = false;\r\n this.measureInstanceViewportBox = _projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_1__.createBox;\r\n }\r\n getBaseTargetFromProps(props, key) {\r\n return props[key];\r\n }\r\n readValueFromInstance(instance, key) {\r\n if (motion_dom__WEBPACK_IMPORTED_MODULE_2__.transformProps.has(key)) {\r\n const defaultType = (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.getDefaultValueType)(key);\r\n return defaultType ? defaultType.default || 0 : 0;\r\n }\r\n key = !_utils_camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_4__.camelCaseAttributes.has(key) ? (0,_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_5__.camelToDash)(key) : key;\r\n return instance.getAttribute(key);\r\n }\r\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\r\n return (0,_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_6__.scrapeMotionValuesFromProps)(props, prevProps, visualElement);\r\n }\r\n build(renderState, latestValues, props) {\r\n (0,_utils_build_attrs_mjs__WEBPACK_IMPORTED_MODULE_7__.buildSVGAttrs)(renderState, latestValues, this.isSVGTag, props.transformTemplate, props.style);\r\n }\r\n renderInstance(instance, renderState, styleProp, projection) {\r\n (0,_utils_render_mjs__WEBPACK_IMPORTED_MODULE_8__.renderSVG)(instance, renderState, styleProp, projection);\r\n }\r\n mount(instance) {\r\n this.isSVGTag = (0,_utils_is_svg_tag_mjs__WEBPACK_IMPORTED_MODULE_9__.isSVGTag)(instance.tagName);\r\n super.mount(instance);\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy9TVkdWaXN1YWxFbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFpRTtBQUNBO0FBQ0Y7QUFDRjtBQUNMO0FBQ1c7QUFDakI7QUFDSDtBQUNnQztBQUMvRTtBQUNBLCtCQUErQix1RUFBZ0I7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsc0VBQVM7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksc0RBQWM7QUFDMUIsZ0NBQWdDLCtEQUFtQjtBQUNuRDtBQUNBO0FBQ0EsZUFBZSw0RUFBbUIsWUFBWSx5RUFBVztBQUN6RDtBQUNBO0FBQ0E7QUFDQSxlQUFlLDRGQUEyQjtBQUMxQztBQUNBO0FBQ0EsUUFBUSxxRUFBYTtBQUNyQjtBQUNBO0FBQ0EsUUFBUSw0REFBUztBQUNqQjtBQUNBO0FBQ0Esd0JBQXdCLCtEQUFRO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQzRCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy9TVkdWaXN1YWxFbGVtZW50Lm1qcz85ZTEyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyYW5zZm9ybVByb3BzLCBnZXREZWZhdWx0VmFsdWVUeXBlIH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcbmltcG9ydCB7IGNyZWF0ZUJveCB9IGZyb20gJy4uLy4uL3Byb2plY3Rpb24vZ2VvbWV0cnkvbW9kZWxzLm1qcyc7XHJcbmltcG9ydCB7IERPTVZpc3VhbEVsZW1lbnQgfSBmcm9tICcuLi9kb20vRE9NVmlzdWFsRWxlbWVudC5tanMnO1xyXG5pbXBvcnQgeyBjYW1lbFRvRGFzaCB9IGZyb20gJy4uL2RvbS91dGlscy9jYW1lbC10by1kYXNoLm1qcyc7XHJcbmltcG9ydCB7IGJ1aWxkU1ZHQXR0cnMgfSBmcm9tICcuL3V0aWxzL2J1aWxkLWF0dHJzLm1qcyc7XHJcbmltcG9ydCB7IGNhbWVsQ2FzZUF0dHJpYnV0ZXMgfSBmcm9tICcuL3V0aWxzL2NhbWVsLWNhc2UtYXR0cnMubWpzJztcclxuaW1wb3J0IHsgaXNTVkdUYWcgfSBmcm9tICcuL3V0aWxzL2lzLXN2Zy10YWcubWpzJztcclxuaW1wb3J0IHsgcmVuZGVyU1ZHIH0gZnJvbSAnLi91dGlscy9yZW5kZXIubWpzJztcclxuaW1wb3J0IHsgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzIH0gZnJvbSAnLi91dGlscy9zY3JhcGUtbW90aW9uLXZhbHVlcy5tanMnO1xyXG5cclxuY2xhc3MgU1ZHVmlzdWFsRWxlbWVudCBleHRlbmRzIERPTVZpc3VhbEVsZW1lbnQge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBcInN2Z1wiO1xyXG4gICAgICAgIHRoaXMuaXNTVkdUYWcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1lYXN1cmVJbnN0YW5jZVZpZXdwb3J0Qm94ID0gY3JlYXRlQm94O1xyXG4gICAgfVxyXG4gICAgZ2V0QmFzZVRhcmdldEZyb21Qcm9wcyhwcm9wcywga2V5KSB7XHJcbiAgICAgICAgcmV0dXJuIHByb3BzW2tleV07XHJcbiAgICB9XHJcbiAgICByZWFkVmFsdWVGcm9tSW5zdGFuY2UoaW5zdGFuY2UsIGtleSkge1xyXG4gICAgICAgIGlmICh0cmFuc2Zvcm1Qcm9wcy5oYXMoa2V5KSkge1xyXG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0VHlwZSA9IGdldERlZmF1bHRWYWx1ZVR5cGUoa2V5KTtcclxuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRUeXBlID8gZGVmYXVsdFR5cGUuZGVmYXVsdCB8fCAwIDogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAga2V5ID0gIWNhbWVsQ2FzZUF0dHJpYnV0ZXMuaGFzKGtleSkgPyBjYW1lbFRvRGFzaChrZXkpIDoga2V5O1xyXG4gICAgICAgIHJldHVybiBpbnN0YW5jZS5nZXRBdHRyaWJ1dGUoa2V5KTtcclxuICAgIH1cclxuICAgIHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcywgcHJldlByb3BzLCB2aXN1YWxFbGVtZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcywgcHJldlByb3BzLCB2aXN1YWxFbGVtZW50KTtcclxuICAgIH1cclxuICAgIGJ1aWxkKHJlbmRlclN0YXRlLCBsYXRlc3RWYWx1ZXMsIHByb3BzKSB7XHJcbiAgICAgICAgYnVpbGRTVkdBdHRycyhyZW5kZXJTdGF0ZSwgbGF0ZXN0VmFsdWVzLCB0aGlzLmlzU1ZHVGFnLCBwcm9wcy50cmFuc2Zvcm1UZW1wbGF0ZSwgcHJvcHMuc3R5bGUpO1xyXG4gICAgfVxyXG4gICAgcmVuZGVySW5zdGFuY2UoaW5zdGFuY2UsIHJlbmRlclN0YXRlLCBzdHlsZVByb3AsIHByb2plY3Rpb24pIHtcclxuICAgICAgICByZW5kZXJTVkcoaW5zdGFuY2UsIHJlbmRlclN0YXRlLCBzdHlsZVByb3AsIHByb2plY3Rpb24pO1xyXG4gICAgfVxyXG4gICAgbW91bnQoaW5zdGFuY2UpIHtcclxuICAgICAgICB0aGlzLmlzU1ZHVGFnID0gaXNTVkdUYWcoaW5zdGFuY2UudGFnTmFtZSk7XHJcbiAgICAgICAgc3VwZXIubW91bnQoaW5zdGFuY2UpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgeyBTVkdWaXN1YWxFbGVtZW50IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs ***!
|
||
\******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ lowercaseSVGElements: function() { return /* binding */ lowercaseSVGElements; }\n/* harmony export */ });\n/**\r\n * We keep these listed separately as we use the lowercase tag names as part\r\n * of the runtime bundle to detect SVG components\r\n */\r\nconst lowercaseSVGElements = [\r\n \"animate\",\r\n \"circle\",\r\n \"defs\",\r\n \"desc\",\r\n \"ellipse\",\r\n \"g\",\r\n \"image\",\r\n \"line\",\r\n \"filter\",\r\n \"marker\",\r\n \"mask\",\r\n \"metadata\",\r\n \"path\",\r\n \"pattern\",\r\n \"polygon\",\r\n \"polyline\",\r\n \"rect\",\r\n \"stop\",\r\n \"switch\",\r\n \"symbol\",\r\n \"svg\",\r\n \"text\",\r\n \"tspan\",\r\n \"use\",\r\n \"view\",\r\n];\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy9sb3dlcmNhc2UtZWxlbWVudHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2dDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy9sb3dlcmNhc2UtZWxlbWVudHMubWpzP2UzM2MiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFdlIGtlZXAgdGhlc2UgbGlzdGVkIHNlcGFyYXRlbHkgYXMgd2UgdXNlIHRoZSBsb3dlcmNhc2UgdGFnIG5hbWVzIGFzIHBhcnRcclxuICogb2YgdGhlIHJ1bnRpbWUgYnVuZGxlIHRvIGRldGVjdCBTVkcgY29tcG9uZW50c1xyXG4gKi9cclxuY29uc3QgbG93ZXJjYXNlU1ZHRWxlbWVudHMgPSBbXHJcbiAgICBcImFuaW1hdGVcIixcclxuICAgIFwiY2lyY2xlXCIsXHJcbiAgICBcImRlZnNcIixcclxuICAgIFwiZGVzY1wiLFxyXG4gICAgXCJlbGxpcHNlXCIsXHJcbiAgICBcImdcIixcclxuICAgIFwiaW1hZ2VcIixcclxuICAgIFwibGluZVwiLFxyXG4gICAgXCJmaWx0ZXJcIixcclxuICAgIFwibWFya2VyXCIsXHJcbiAgICBcIm1hc2tcIixcclxuICAgIFwibWV0YWRhdGFcIixcclxuICAgIFwicGF0aFwiLFxyXG4gICAgXCJwYXR0ZXJuXCIsXHJcbiAgICBcInBvbHlnb25cIixcclxuICAgIFwicG9seWxpbmVcIixcclxuICAgIFwicmVjdFwiLFxyXG4gICAgXCJzdG9wXCIsXHJcbiAgICBcInN3aXRjaFwiLFxyXG4gICAgXCJzeW1ib2xcIixcclxuICAgIFwic3ZnXCIsXHJcbiAgICBcInRleHRcIixcclxuICAgIFwidHNwYW5cIixcclxuICAgIFwidXNlXCIsXHJcbiAgICBcInZpZXdcIixcclxuXTtcclxuXHJcbmV4cG9ydCB7IGxvd2VyY2FzZVNWR0VsZW1lbnRzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/svg/use-props.mjs ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSVGProps: function() { return /* binding */ useSVGProps; }\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 _html_use_props_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../html/use-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs\");\n/* harmony import */ var _utils_build_attrs_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/build-attrs.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs\");\n/* harmony import */ var _utils_is_svg_tag_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/is-svg-tag.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction useSVGProps(props, visualState, _isStatic, Component) {\r\n const visualProps = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\r\n const state = (0,_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_1__.createSvgRenderState)();\r\n (0,_utils_build_attrs_mjs__WEBPACK_IMPORTED_MODULE_2__.buildSVGAttrs)(state, visualState, (0,_utils_is_svg_tag_mjs__WEBPACK_IMPORTED_MODULE_3__.isSVGTag)(Component), props.transformTemplate, props.style);\r\n return {\r\n ...state.attrs,\r\n style: { ...state.style },\r\n };\r\n }, [visualState]);\r\n if (props.style) {\r\n const rawStyles = {};\r\n (0,_html_use_props_mjs__WEBPACK_IMPORTED_MODULE_4__.copyRawValuesOnly)(rawStyles, props.style, props);\r\n visualProps.style = { ...rawStyles, ...visualProps.style };\r\n }\r\n return visualProps;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91c2UtcHJvcHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ2dDO0FBQzBCO0FBQ0Y7QUFDZTtBQUNyQjtBQUNsRDtBQUNBO0FBQ0Esd0JBQXdCLDhDQUFPO0FBQy9CLHNCQUFzQixvRkFBb0I7QUFDMUMsUUFBUSxxRUFBYSxxQkFBcUIsK0RBQVE7QUFDbEQ7QUFDQTtBQUNBLHFCQUFxQixnQkFBZ0I7QUFDckM7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFFBQVEsc0VBQWlCO0FBQ3pCLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUN1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvdXNlLXByb3BzLm1qcz83MGI5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjb3B5UmF3VmFsdWVzT25seSB9IGZyb20gJy4uL2h0bWwvdXNlLXByb3BzLm1qcyc7XHJcbmltcG9ydCB7IGJ1aWxkU1ZHQXR0cnMgfSBmcm9tICcuL3V0aWxzL2J1aWxkLWF0dHJzLm1qcyc7XHJcbmltcG9ydCB7IGNyZWF0ZVN2Z1JlbmRlclN0YXRlIH0gZnJvbSAnLi91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlLm1qcyc7XHJcbmltcG9ydCB7IGlzU1ZHVGFnIH0gZnJvbSAnLi91dGlscy9pcy1zdmctdGFnLm1qcyc7XHJcblxyXG5mdW5jdGlvbiB1c2VTVkdQcm9wcyhwcm9wcywgdmlzdWFsU3RhdGUsIF9pc1N0YXRpYywgQ29tcG9uZW50KSB7XHJcbiAgICBjb25zdCB2aXN1YWxQcm9wcyA9IHVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0YXRlID0gY3JlYXRlU3ZnUmVuZGVyU3RhdGUoKTtcclxuICAgICAgICBidWlsZFNWR0F0dHJzKHN0YXRlLCB2aXN1YWxTdGF0ZSwgaXNTVkdUYWcoQ29tcG9uZW50KSwgcHJvcHMudHJhbnNmb3JtVGVtcGxhdGUsIHByb3BzLnN0eWxlKTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5zdGF0ZS5hdHRycyxcclxuICAgICAgICAgICAgc3R5bGU6IHsgLi4uc3RhdGUuc3R5bGUgfSxcclxuICAgICAgICB9O1xyXG4gICAgfSwgW3Zpc3VhbFN0YXRlXSk7XHJcbiAgICBpZiAocHJvcHMuc3R5bGUpIHtcclxuICAgICAgICBjb25zdCByYXdTdHlsZXMgPSB7fTtcclxuICAgICAgICBjb3B5UmF3VmFsdWVzT25seShyYXdTdHlsZXMsIHByb3BzLnN0eWxlLCBwcm9wcyk7XHJcbiAgICAgICAgdmlzdWFsUHJvcHMuc3R5bGUgPSB7IC4uLnJhd1N0eWxlcywgLi4udmlzdWFsUHJvcHMuc3R5bGUgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB2aXN1YWxQcm9wcztcclxufVxyXG5cclxuZXhwb3J0IHsgdXNlU1ZHUHJvcHMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs":
|
||
/*!********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs ***!
|
||
\********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSVGVisualState: function() { return /* binding */ useSVGVisualState; }\n/* harmony export */ });\n/* harmony import */ var _motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../motion/utils/use-visual-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs\");\n/* harmony import */ var _utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/scrape-motion-values.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\nconst useSVGVisualState = /*@__PURE__*/ (0,_motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__.makeUseVisualState)({\r\n scrapeMotionValuesFromProps: _utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_1__.scrapeMotionValuesFromProps,\r\n createRenderState: _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__.createSvgRenderState,\r\n});\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91c2Utc3ZnLXZpc3VhbC1zdGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQzZFO0FBQ047QUFDUTtBQUMvRTtBQUNBLHdDQUF3QyxzRkFBa0I7QUFDMUQsaUNBQWlDLHdGQUEyQjtBQUM1RCx1QkFBdUIsZ0ZBQW9CO0FBQzNDLENBQUM7QUFDRDtBQUM2QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvdXNlLXN2Zy12aXN1YWwtc3RhdGUubWpzPzg3NDQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcbmltcG9ydCB7IG1ha2VVc2VWaXN1YWxTdGF0ZSB9IGZyb20gJy4uLy4uL21vdGlvbi91dGlscy91c2UtdmlzdWFsLXN0YXRlLm1qcyc7XHJcbmltcG9ydCB7IGNyZWF0ZVN2Z1JlbmRlclN0YXRlIH0gZnJvbSAnLi91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlLm1qcyc7XHJcbmltcG9ydCB7IHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyB9IGZyb20gJy4vdXRpbHMvc2NyYXBlLW1vdGlvbi12YWx1ZXMubWpzJztcclxuXHJcbmNvbnN0IHVzZVNWR1Zpc3VhbFN0YXRlID0gLypAX19QVVJFX18qLyBtYWtlVXNlVmlzdWFsU3RhdGUoe1xyXG4gICAgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzOiBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMsXHJcbiAgICBjcmVhdGVSZW5kZXJTdGF0ZTogY3JlYXRlU3ZnUmVuZGVyU3RhdGUsXHJcbn0pO1xyXG5cclxuZXhwb3J0IHsgdXNlU1ZHVmlzdWFsU3RhdGUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs ***!
|
||
\*****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildSVGAttrs: function() { return /* binding */ buildSVGAttrs; }\n/* harmony export */ });\n/* harmony import */ var _html_utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/build-styles.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs\");\n/* harmony import */ var _path_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/path.mjs\");\n\r\n\r\n\r\n/**\r\n * Build SVG visual attributes, like cx and style.transform\r\n */\r\nfunction buildSVGAttrs(state, { attrX, attrY, attrScale, pathLength, pathSpacing = 1, pathOffset = 0, \r\n// This is object creation, which we try to avoid per-frame.\r\n...latest }, isSVGTag, transformTemplate, styleProp) {\r\n (0,_html_utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_0__.buildHTMLStyles)(state, latest, transformTemplate);\r\n /**\r\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\r\n * as normal HTML tags.\r\n */\r\n if (isSVGTag) {\r\n if (state.style.viewBox) {\r\n state.attrs.viewBox = state.style.viewBox;\r\n }\r\n return;\r\n }\r\n state.attrs = state.style;\r\n state.style = {};\r\n const { attrs, style } = state;\r\n /**\r\n * However, we apply transforms as CSS transforms.\r\n * So if we detect a transform, transformOrigin we take it from attrs and copy it into style.\r\n */\r\n if (attrs.transform) {\r\n style.transform = attrs.transform;\r\n delete attrs.transform;\r\n }\r\n if (style.transform || attrs.transformOrigin) {\r\n style.transformOrigin = attrs.transformOrigin ?? \"50% 50%\";\r\n delete attrs.transformOrigin;\r\n }\r\n if (style.transform) {\r\n /**\r\n * SVG's element transform-origin uses its own median as a reference.\r\n * Therefore, transformBox becomes a fill-box\r\n */\r\n style.transformBox = styleProp?.transformBox ?? \"fill-box\";\r\n delete attrs.transformBox;\r\n }\r\n // Render attrX/attrY/attrScale as attributes\r\n if (attrX !== undefined)\r\n attrs.x = attrX;\r\n if (attrY !== undefined)\r\n attrs.y = attrY;\r\n if (attrScale !== undefined)\r\n attrs.scale = attrScale;\r\n // Build SVG path if one has been defined\r\n if (pathLength !== undefined) {\r\n (0,_path_mjs__WEBPACK_IMPORTED_MODULE_1__.buildSVGPath)(attrs, pathLength, pathSpacing, pathOffset, false);\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9idWlsZC1hdHRycy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9FO0FBQzFCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDO0FBQ2hDO0FBQ0EsV0FBVztBQUNYLElBQUksNkVBQWU7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxlQUFlO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHVEQUFZO0FBQ3BCO0FBQ0E7QUFDQTtBQUN5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvYnVpbGQtYXR0cnMubWpzPzc4OWYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYnVpbGRIVE1MU3R5bGVzIH0gZnJvbSAnLi4vLi4vaHRtbC91dGlscy9idWlsZC1zdHlsZXMubWpzJztcclxuaW1wb3J0IHsgYnVpbGRTVkdQYXRoIH0gZnJvbSAnLi9wYXRoLm1qcyc7XHJcblxyXG4vKipcclxuICogQnVpbGQgU1ZHIHZpc3VhbCBhdHRyaWJ1dGVzLCBsaWtlIGN4IGFuZCBzdHlsZS50cmFuc2Zvcm1cclxuICovXHJcbmZ1bmN0aW9uIGJ1aWxkU1ZHQXR0cnMoc3RhdGUsIHsgYXR0clgsIGF0dHJZLCBhdHRyU2NhbGUsIHBhdGhMZW5ndGgsIHBhdGhTcGFjaW5nID0gMSwgcGF0aE9mZnNldCA9IDAsIFxyXG4vLyBUaGlzIGlzIG9iamVjdCBjcmVhdGlvbiwgd2hpY2ggd2UgdHJ5IHRvIGF2b2lkIHBlci1mcmFtZS5cclxuLi4ubGF0ZXN0IH0sIGlzU1ZHVGFnLCB0cmFuc2Zvcm1UZW1wbGF0ZSwgc3R5bGVQcm9wKSB7XHJcbiAgICBidWlsZEhUTUxTdHlsZXMoc3RhdGUsIGxhdGVzdCwgdHJhbnNmb3JtVGVtcGxhdGUpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBGb3Igc3ZnIHRhZ3Mgd2UganVzdCB3YW50IHRvIG1ha2Ugc3VyZSB2aWV3Qm94IGlzIGFuaW1hdGFibGUgYW5kIHRyZWF0IGFsbCB0aGUgc3R5bGVzXHJcbiAgICAgKiBhcyBub3JtYWwgSFRNTCB0YWdzLlxyXG4gICAgICovXHJcbiAgICBpZiAoaXNTVkdUYWcpIHtcclxuICAgICAgICBpZiAoc3RhdGUuc3R5bGUudmlld0JveCkge1xyXG4gICAgICAgICAgICBzdGF0ZS5hdHRycy52aWV3Qm94ID0gc3RhdGUuc3R5bGUudmlld0JveDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgc3RhdGUuYXR0cnMgPSBzdGF0ZS5zdHlsZTtcclxuICAgIHN0YXRlLnN0eWxlID0ge307XHJcbiAgICBjb25zdCB7IGF0dHJzLCBzdHlsZSB9ID0gc3RhdGU7XHJcbiAgICAvKipcclxuICAgICAqIEhvd2V2ZXIsIHdlIGFwcGx5IHRyYW5zZm9ybXMgYXMgQ1NTIHRyYW5zZm9ybXMuXHJcbiAgICAgKiBTbyBpZiB3ZSBkZXRlY3QgYSB0cmFuc2Zvcm0sIHRyYW5zZm9ybU9yaWdpbiB3ZSB0YWtlIGl0IGZyb20gYXR0cnMgYW5kIGNvcHkgaXQgaW50byBzdHlsZS5cclxuICAgICAqL1xyXG4gICAgaWYgKGF0dHJzLnRyYW5zZm9ybSkge1xyXG4gICAgICAgIHN0eWxlLnRyYW5zZm9ybSA9IGF0dHJzLnRyYW5zZm9ybTtcclxuICAgICAgICBkZWxldGUgYXR0cnMudHJhbnNmb3JtO1xyXG4gICAgfVxyXG4gICAgaWYgKHN0eWxlLnRyYW5zZm9ybSB8fCBhdHRycy50cmFuc2Zvcm1PcmlnaW4pIHtcclxuICAgICAgICBzdHlsZS50cmFuc2Zvcm1PcmlnaW4gPSBhdHRycy50cmFuc2Zvcm1PcmlnaW4gPz8gXCI1MCUgNTAlXCI7XHJcbiAgICAgICAgZGVsZXRlIGF0dHJzLnRyYW5zZm9ybU9yaWdpbjtcclxuICAgIH1cclxuICAgIGlmIChzdHlsZS50cmFuc2Zvcm0pIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBTVkcncyBlbGVtZW50IHRyYW5zZm9ybS1vcmlnaW4gdXNlcyBpdHMgb3duIG1lZGlhbiBhcyBhIHJlZmVyZW5jZS5cclxuICAgICAgICAgKiBUaGVyZWZvcmUsIHRyYW5zZm9ybUJveCBiZWNvbWVzIGEgZmlsbC1ib3hcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdHlsZS50cmFuc2Zvcm1Cb3ggPSBzdHlsZVByb3A/LnRyYW5zZm9ybUJveCA/PyBcImZpbGwtYm94XCI7XHJcbiAgICAgICAgZGVsZXRlIGF0dHJzLnRyYW5zZm9ybUJveDtcclxuICAgIH1cclxuICAgIC8vIFJlbmRlciBhdHRyWC9hdHRyWS9hdHRyU2NhbGUgYXMgYXR0cmlidXRlc1xyXG4gICAgaWYgKGF0dHJYICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgYXR0cnMueCA9IGF0dHJYO1xyXG4gICAgaWYgKGF0dHJZICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgYXR0cnMueSA9IGF0dHJZO1xyXG4gICAgaWYgKGF0dHJTY2FsZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIGF0dHJzLnNjYWxlID0gYXR0clNjYWxlO1xyXG4gICAgLy8gQnVpbGQgU1ZHIHBhdGggaWYgb25lIGhhcyBiZWVuIGRlZmluZWRcclxuICAgIGlmIChwYXRoTGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBidWlsZFNWR1BhdGgoYXR0cnMsIHBhdGhMZW5ndGgsIHBhdGhTcGFjaW5nLCBwYXRoT2Zmc2V0LCBmYWxzZSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IGJ1aWxkU1ZHQXR0cnMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs ***!
|
||
\**********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ camelCaseAttributes: function() { return /* binding */ camelCaseAttributes; }\n/* harmony export */ });\n/**\r\n * A set of attribute names that are always read/written as camel case.\r\n */\r\nconst camelCaseAttributes = new Set([\r\n \"baseFrequency\",\r\n \"diffuseConstant\",\r\n \"kernelMatrix\",\r\n \"kernelUnitLength\",\r\n \"keySplines\",\r\n \"keyTimes\",\r\n \"limitingConeAngle\",\r\n \"markerHeight\",\r\n \"markerWidth\",\r\n \"numOctaves\",\r\n \"targetX\",\r\n \"targetY\",\r\n \"surfaceScale\",\r\n \"specularConstant\",\r\n \"specularExponent\",\r\n \"stdDeviation\",\r\n \"tableValues\",\r\n \"viewBox\",\r\n \"gradientTransform\",\r\n \"pathLength\",\r\n \"startOffset\",\r\n \"textLength\",\r\n \"lengthAdjust\",\r\n]);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9jYW1lbC1jYXNlLWF0dHJzLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUMrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvY2FtZWwtY2FzZS1hdHRycy5tanM/NDZjYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQSBzZXQgb2YgYXR0cmlidXRlIG5hbWVzIHRoYXQgYXJlIGFsd2F5cyByZWFkL3dyaXR0ZW4gYXMgY2FtZWwgY2FzZS5cclxuICovXHJcbmNvbnN0IGNhbWVsQ2FzZUF0dHJpYnV0ZXMgPSBuZXcgU2V0KFtcclxuICAgIFwiYmFzZUZyZXF1ZW5jeVwiLFxyXG4gICAgXCJkaWZmdXNlQ29uc3RhbnRcIixcclxuICAgIFwia2VybmVsTWF0cml4XCIsXHJcbiAgICBcImtlcm5lbFVuaXRMZW5ndGhcIixcclxuICAgIFwia2V5U3BsaW5lc1wiLFxyXG4gICAgXCJrZXlUaW1lc1wiLFxyXG4gICAgXCJsaW1pdGluZ0NvbmVBbmdsZVwiLFxyXG4gICAgXCJtYXJrZXJIZWlnaHRcIixcclxuICAgIFwibWFya2VyV2lkdGhcIixcclxuICAgIFwibnVtT2N0YXZlc1wiLFxyXG4gICAgXCJ0YXJnZXRYXCIsXHJcbiAgICBcInRhcmdldFlcIixcclxuICAgIFwic3VyZmFjZVNjYWxlXCIsXHJcbiAgICBcInNwZWN1bGFyQ29uc3RhbnRcIixcclxuICAgIFwic3BlY3VsYXJFeHBvbmVudFwiLFxyXG4gICAgXCJzdGREZXZpYXRpb25cIixcclxuICAgIFwidGFibGVWYWx1ZXNcIixcclxuICAgIFwidmlld0JveFwiLFxyXG4gICAgXCJncmFkaWVudFRyYW5zZm9ybVwiLFxyXG4gICAgXCJwYXRoTGVuZ3RoXCIsXHJcbiAgICBcInN0YXJ0T2Zmc2V0XCIsXHJcbiAgICBcInRleHRMZW5ndGhcIixcclxuICAgIFwibGVuZ3RoQWRqdXN0XCIsXHJcbl0pO1xyXG5cclxuZXhwb3J0IHsgY2FtZWxDYXNlQXR0cmlidXRlcyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs":
|
||
/*!*************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs ***!
|
||
\*************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createSvgRenderState: function() { return /* binding */ createSvgRenderState; }\n/* harmony export */ });\n/* harmony import */ var _html_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\");\n\r\n\r\nconst createSvgRenderState = () => ({\r\n ...(0,_html_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_0__.createHtmlRenderState)(),\r\n attrs: {},\r\n});\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFpRjtBQUNqRjtBQUNBO0FBQ0EsT0FBTywwRkFBcUI7QUFDNUIsYUFBYTtBQUNiLENBQUM7QUFDRDtBQUNnQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvY3JlYXRlLXJlbmRlci1zdGF0ZS5tanM/ZWZmYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVIdG1sUmVuZGVyU3RhdGUgfSBmcm9tICcuLi8uLi9odG1sL3V0aWxzL2NyZWF0ZS1yZW5kZXItc3RhdGUubWpzJztcclxuXHJcbmNvbnN0IGNyZWF0ZVN2Z1JlbmRlclN0YXRlID0gKCkgPT4gKHtcclxuICAgIC4uLmNyZWF0ZUh0bWxSZW5kZXJTdGF0ZSgpLFxyXG4gICAgYXR0cnM6IHt9LFxyXG59KTtcclxuXHJcbmV4cG9ydCB7IGNyZWF0ZVN2Z1JlbmRlclN0YXRlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isSVGTag: function() { return /* binding */ isSVGTag; }\n/* harmony export */ });\nconst isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9pcy1zdmctdGFnLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvaXMtc3ZnLXRhZy5tanM/YTc5NCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc1NWR1RhZyA9ICh0YWcpID0+IHR5cGVvZiB0YWcgPT09IFwic3RyaW5nXCIgJiYgdGFnLnRvTG93ZXJDYXNlKCkgPT09IFwic3ZnXCI7XHJcblxyXG5leHBvcnQgeyBpc1NWR1RhZyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/path.mjs":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/svg/utils/path.mjs ***!
|
||
\**********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildSVGPath: function() { return /* binding */ buildSVGPath; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n\r\n\r\nconst dashKeys = {\r\n offset: \"stroke-dashoffset\",\r\n array: \"stroke-dasharray\",\r\n};\r\nconst camelKeys = {\r\n offset: \"strokeDashoffset\",\r\n array: \"strokeDasharray\",\r\n};\r\n/**\r\n * Build SVG path properties. Uses the path's measured length to convert\r\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\r\n * and stroke-dasharray attributes.\r\n *\r\n * This function is mutative to reduce per-frame GC.\r\n */\r\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\r\n // Normalise path length by setting SVG attribute pathLength to 1\r\n attrs.pathLength = 1;\r\n // We use dash case when setting attributes directly to the DOM node and camel case\r\n // when defining props on a React component.\r\n const keys = useDashCase ? dashKeys : camelKeys;\r\n // Build the dash offset\r\n attrs[keys.offset] = motion_dom__WEBPACK_IMPORTED_MODULE_0__.px.transform(-offset);\r\n // Build the dash array\r\n const pathLength = motion_dom__WEBPACK_IMPORTED_MODULE_0__.px.transform(length);\r\n const pathSpacing = motion_dom__WEBPACK_IMPORTED_MODULE_0__.px.transform(spacing);\r\n attrs[keys.array] = `${pathLength} ${pathSpacing}`;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9wYXRoLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLDBDQUFFO0FBQzNCO0FBQ0EsdUJBQXVCLDBDQUFFO0FBQ3pCLHdCQUF3QiwwQ0FBRTtBQUMxQiwyQkFBMkIsWUFBWSxFQUFFLFlBQVk7QUFDckQ7QUFDQTtBQUN3QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvcGF0aC5tanM/ZDhkOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBweCB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5cclxuY29uc3QgZGFzaEtleXMgPSB7XHJcbiAgICBvZmZzZXQ6IFwic3Ryb2tlLWRhc2hvZmZzZXRcIixcclxuICAgIGFycmF5OiBcInN0cm9rZS1kYXNoYXJyYXlcIixcclxufTtcclxuY29uc3QgY2FtZWxLZXlzID0ge1xyXG4gICAgb2Zmc2V0OiBcInN0cm9rZURhc2hvZmZzZXRcIixcclxuICAgIGFycmF5OiBcInN0cm9rZURhc2hhcnJheVwiLFxyXG59O1xyXG4vKipcclxuICogQnVpbGQgU1ZHIHBhdGggcHJvcGVydGllcy4gVXNlcyB0aGUgcGF0aCdzIG1lYXN1cmVkIGxlbmd0aCB0byBjb252ZXJ0XHJcbiAqIG91ciBjdXN0b20gcGF0aExlbmd0aCwgcGF0aFNwYWNpbmcgYW5kIHBhdGhPZmZzZXQgaW50byBzdHJva2UtZGFzaG9mZnNldFxyXG4gKiBhbmQgc3Ryb2tlLWRhc2hhcnJheSBhdHRyaWJ1dGVzLlxyXG4gKlxyXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIG11dGF0aXZlIHRvIHJlZHVjZSBwZXItZnJhbWUgR0MuXHJcbiAqL1xyXG5mdW5jdGlvbiBidWlsZFNWR1BhdGgoYXR0cnMsIGxlbmd0aCwgc3BhY2luZyA9IDEsIG9mZnNldCA9IDAsIHVzZURhc2hDYXNlID0gdHJ1ZSkge1xyXG4gICAgLy8gTm9ybWFsaXNlIHBhdGggbGVuZ3RoIGJ5IHNldHRpbmcgU1ZHIGF0dHJpYnV0ZSBwYXRoTGVuZ3RoIHRvIDFcclxuICAgIGF0dHJzLnBhdGhMZW5ndGggPSAxO1xyXG4gICAgLy8gV2UgdXNlIGRhc2ggY2FzZSB3aGVuIHNldHRpbmcgYXR0cmlidXRlcyBkaXJlY3RseSB0byB0aGUgRE9NIG5vZGUgYW5kIGNhbWVsIGNhc2VcclxuICAgIC8vIHdoZW4gZGVmaW5pbmcgcHJvcHMgb24gYSBSZWFjdCBjb21wb25lbnQuXHJcbiAgICBjb25zdCBrZXlzID0gdXNlRGFzaENhc2UgPyBkYXNoS2V5cyA6IGNhbWVsS2V5cztcclxuICAgIC8vIEJ1aWxkIHRoZSBkYXNoIG9mZnNldFxyXG4gICAgYXR0cnNba2V5cy5vZmZzZXRdID0gcHgudHJhbnNmb3JtKC1vZmZzZXQpO1xyXG4gICAgLy8gQnVpbGQgdGhlIGRhc2ggYXJyYXlcclxuICAgIGNvbnN0IHBhdGhMZW5ndGggPSBweC50cmFuc2Zvcm0obGVuZ3RoKTtcclxuICAgIGNvbnN0IHBhdGhTcGFjaW5nID0gcHgudHJhbnNmb3JtKHNwYWNpbmcpO1xyXG4gICAgYXR0cnNba2V5cy5hcnJheV0gPSBgJHtwYXRoTGVuZ3RofSAke3BhdGhTcGFjaW5nfWA7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGJ1aWxkU1ZHUGF0aCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/path.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/render.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/svg/utils/render.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ renderSVG: function() { return /* binding */ renderSVG; }\n/* harmony export */ });\n/* harmony import */ var _dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../dom/utils/camel-to-dash.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs\");\n/* harmony import */ var _html_utils_render_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/render.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/render.mjs\");\n/* harmony import */ var _camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./camel-case-attrs.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs\");\n\r\n\r\n\r\n\r\nfunction renderSVG(element, renderState, _styleProp, projection) {\r\n (0,_html_utils_render_mjs__WEBPACK_IMPORTED_MODULE_0__.renderHTML)(element, renderState, undefined, projection);\r\n for (const key in renderState.attrs) {\r\n element.setAttribute(!_camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_1__.camelCaseAttributes.has(key) ? (0,_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_2__.camelToDash)(key) : key, renderState.attrs[key]);\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9yZW5kZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBZ0U7QUFDUDtBQUNJO0FBQzdEO0FBQ0E7QUFDQSxJQUFJLGtFQUFVO0FBQ2Q7QUFDQSw4QkFBOEIsc0VBQW1CLFlBQVkseUVBQVc7QUFDeEU7QUFDQTtBQUNBO0FBQ3FCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9yZW5kZXIubWpzPzg3NzgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FtZWxUb0Rhc2ggfSBmcm9tICcuLi8uLi9kb20vdXRpbHMvY2FtZWwtdG8tZGFzaC5tanMnO1xyXG5pbXBvcnQgeyByZW5kZXJIVE1MIH0gZnJvbSAnLi4vLi4vaHRtbC91dGlscy9yZW5kZXIubWpzJztcclxuaW1wb3J0IHsgY2FtZWxDYXNlQXR0cmlidXRlcyB9IGZyb20gJy4vY2FtZWwtY2FzZS1hdHRycy5tanMnO1xyXG5cclxuZnVuY3Rpb24gcmVuZGVyU1ZHKGVsZW1lbnQsIHJlbmRlclN0YXRlLCBfc3R5bGVQcm9wLCBwcm9qZWN0aW9uKSB7XHJcbiAgICByZW5kZXJIVE1MKGVsZW1lbnQsIHJlbmRlclN0YXRlLCB1bmRlZmluZWQsIHByb2plY3Rpb24pO1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcmVuZGVyU3RhdGUuYXR0cnMpIHtcclxuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSghY2FtZWxDYXNlQXR0cmlidXRlcy5oYXMoa2V5KSA/IGNhbWVsVG9EYXNoKGtleSkgOiBrZXksIHJlbmRlclN0YXRlLmF0dHJzW2tleV0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgeyByZW5kZXJTVkcgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/render.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs ***!
|
||
\**************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ scrapeMotionValuesFromProps: function() { return /* binding */ scrapeMotionValuesFromProps; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _html_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/scrape-motion-values.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs\");\n\r\n\r\n\r\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\r\n const newValues = (0,_html_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_0__.scrapeMotionValuesFromProps)(props, prevProps, visualElement);\r\n for (const key in props) {\r\n if ((0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.isMotionValue)(props[key]) ||\r\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.isMotionValue)(prevProps[key])) {\r\n const targetKey = motion_dom__WEBPACK_IMPORTED_MODULE_2__.transformPropOrder.indexOf(key) !== -1\r\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\r\n : key;\r\n newValues[targetKey] = props[key];\r\n }\r\n }\r\n return newValues;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9zY3JhcGUtbW90aW9uLXZhbHVlcy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUErRDtBQUMwRDtBQUN6SDtBQUNBO0FBQ0Esc0JBQXNCLGlHQUE2QjtBQUNuRDtBQUNBLFlBQVkseURBQWE7QUFDekIsWUFBWSx5REFBYTtBQUN6Qiw4QkFBOEIsMERBQWtCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDdUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvc3ZnL3V0aWxzL3NjcmFwZS1tb3Rpb24tdmFsdWVzLm1qcz9hYmUxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTW90aW9uVmFsdWUsIHRyYW5zZm9ybVByb3BPcmRlciB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5pbXBvcnQgeyBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgYXMgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzJDEgfSBmcm9tICcuLi8uLi9odG1sL3V0aWxzL3NjcmFwZS1tb3Rpb24tdmFsdWVzLm1qcyc7XHJcblxyXG5mdW5jdGlvbiBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMocHJvcHMsIHByZXZQcm9wcywgdmlzdWFsRWxlbWVudCkge1xyXG4gICAgY29uc3QgbmV3VmFsdWVzID0gc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzJDEocHJvcHMsIHByZXZQcm9wcywgdmlzdWFsRWxlbWVudCk7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBwcm9wcykge1xyXG4gICAgICAgIGlmIChpc01vdGlvblZhbHVlKHByb3BzW2tleV0pIHx8XHJcbiAgICAgICAgICAgIGlzTW90aW9uVmFsdWUocHJldlByb3BzW2tleV0pKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldEtleSA9IHRyYW5zZm9ybVByb3BPcmRlci5pbmRleE9mKGtleSkgIT09IC0xXHJcbiAgICAgICAgICAgICAgICA/IFwiYXR0clwiICsga2V5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsga2V5LnN1YnN0cmluZygxKVxyXG4gICAgICAgICAgICAgICAgOiBrZXk7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlc1t0YXJnZXRLZXldID0gcHJvcHNba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3VmFsdWVzO1xyXG59XHJcblxyXG5leHBvcnQgeyBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/animation-state.mjs":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/utils/animation-state.mjs ***!
|
||
\*****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkVariantsDidChange: function() { return /* binding */ checkVariantsDidChange; },\n/* harmony export */ createAnimationState: function() { return /* binding */ createAnimationState; }\n/* harmony export */ });\n/* harmony import */ var _animation_interfaces_visual_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../animation/interfaces/visual-element.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs\");\n/* harmony import */ var _animation_utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../animation/utils/calc-child-stagger.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/calc-child-stagger.mjs\");\n/* harmony import */ var _animation_utils_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../animation/utils/is-animation-controls.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs\");\n/* harmony import */ var _animation_utils_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../animation/utils/is-keyframes-target.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs\");\n/* harmony import */ var _utils_shallow_compare_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/shallow-compare.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/shallow-compare.mjs\");\n/* harmony import */ var _get_variant_context_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./get-variant-context.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/get-variant-context.mjs\");\n/* harmony import */ var _is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./is-variant-label.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs\");\n/* harmony import */ var _resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resolve-dynamic-variants.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./variant-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/variant-props.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst reversePriorityOrder = [..._variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantPriorityOrder].reverse();\r\nconst numAnimationTypes = _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantPriorityOrder.length;\r\nfunction animateList(visualElement) {\r\n return (animations) => Promise.all(animations.map(({ animation, options }) => (0,_animation_interfaces_visual_element_mjs__WEBPACK_IMPORTED_MODULE_1__.animateVisualElement)(visualElement, animation, options)));\r\n}\r\nfunction createAnimationState(visualElement) {\r\n let animate = animateList(visualElement);\r\n let state = createState();\r\n let isInitialRender = true;\r\n /**\r\n * This function will be used to reduce the animation definitions for\r\n * each active animation type into an object of resolved values for it.\r\n */\r\n const buildResolvedTypeValues = (type) => (acc, definition) => {\r\n const resolved = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(visualElement, definition, type === \"exit\"\r\n ? visualElement.presenceContext?.custom\r\n : undefined);\r\n if (resolved) {\r\n const { transition, transitionEnd, ...target } = resolved;\r\n acc = { ...acc, ...target, ...transitionEnd };\r\n }\r\n return acc;\r\n };\r\n /**\r\n * This just allows us to inject mocked animation functions\r\n * @internal\r\n */\r\n function setAnimateFunction(makeAnimator) {\r\n animate = makeAnimator(visualElement);\r\n }\r\n /**\r\n * When we receive new props, we need to:\r\n * 1. Create a list of protected keys for each type. This is a directory of\r\n * value keys that are currently being \"handled\" by types of a higher priority\r\n * so that whenever an animation is played of a given type, these values are\r\n * protected from being animated.\r\n * 2. Determine if an animation type needs animating.\r\n * 3. Determine if any values have been removed from a type and figure out\r\n * what to animate those to.\r\n */\r\n function animateChanges(changedActiveType) {\r\n const { props } = visualElement;\r\n const context = (0,_get_variant_context_mjs__WEBPACK_IMPORTED_MODULE_3__.getVariantContext)(visualElement.parent) || {};\r\n /**\r\n * A list of animations that we'll build into as we iterate through the animation\r\n * types. This will get executed at the end of the function.\r\n */\r\n const animations = [];\r\n /**\r\n * Keep track of which values have been removed. Then, as we hit lower priority\r\n * animation types, we can check if they contain removed values and animate to that.\r\n */\r\n const removedKeys = new Set();\r\n /**\r\n * A dictionary of all encountered keys. This is an object to let us build into and\r\n * copy it without iteration. Each time we hit an animation type we set its protected\r\n * keys - the keys its not allowed to animate - to the latest version of this object.\r\n */\r\n let encounteredKeys = {};\r\n /**\r\n * If a variant has been removed at a given index, and this component is controlling\r\n * variant animations, we want to ensure lower-priority variants are forced to animate.\r\n */\r\n let removedVariantIndex = Infinity;\r\n /**\r\n * Iterate through all animation types in reverse priority order. For each, we want to\r\n * detect which values it's handling and whether or not they've changed (and therefore\r\n * need to be animated). If any values have been removed, we want to detect those in\r\n * lower priority props and flag for animation.\r\n */\r\n for (let i = 0; i < numAnimationTypes; i++) {\r\n const type = reversePriorityOrder[i];\r\n const typeState = state[type];\r\n const prop = props[type] !== undefined\r\n ? props[type]\r\n : context[type];\r\n const propIsVariant = (0,_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_4__.isVariantLabel)(prop);\r\n /**\r\n * If this type has *just* changed isActive status, set activeDelta\r\n * to that status. Otherwise set to null.\r\n */\r\n const activeDelta = type === changedActiveType ? typeState.isActive : null;\r\n if (activeDelta === false)\r\n removedVariantIndex = i;\r\n /**\r\n * If this prop is an inherited variant, rather than been set directly on the\r\n * component itself, we want to make sure we allow the parent to trigger animations.\r\n *\r\n * TODO: Can probably change this to a !isControllingVariants check\r\n */\r\n let isInherited = prop === context[type] &&\r\n prop !== props[type] &&\r\n propIsVariant;\r\n if (isInherited &&\r\n isInitialRender &&\r\n visualElement.manuallyAnimateOnMount) {\r\n isInherited = false;\r\n }\r\n /**\r\n * Set all encountered keys so far as the protected keys for this type. This will\r\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\r\n */\r\n typeState.protectedKeys = { ...encounteredKeys };\r\n // Check if we can skip analysing this prop early\r\n if (\r\n // If it isn't active and hasn't *just* been set as inactive\r\n (!typeState.isActive && activeDelta === null) ||\r\n // If we didn't and don't have any defined prop for this animation type\r\n (!prop && !typeState.prevProp) ||\r\n // Or if the prop doesn't define an animation\r\n (0,_animation_utils_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_5__.isAnimationControls)(prop) ||\r\n typeof prop === \"boolean\") {\r\n continue;\r\n }\r\n /**\r\n * As we go look through the values defined on this type, if we detect\r\n * a changed value or a value that was removed in a higher priority, we set\r\n * this to true and add this prop to the animation list.\r\n */\r\n const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\r\n let shouldAnimateType = variantDidChange ||\r\n // If we're making this variant active, we want to always make it active\r\n (type === changedActiveType &&\r\n typeState.isActive &&\r\n !isInherited &&\r\n propIsVariant) ||\r\n // If we removed a higher-priority variant (i is in reverse order)\r\n (i > removedVariantIndex && propIsVariant);\r\n let handledRemovedValues = false;\r\n /**\r\n * As animations can be set as variant lists, variants or target objects, we\r\n * coerce everything to an array if it isn't one already\r\n */\r\n const definitionList = Array.isArray(prop) ? prop : [prop];\r\n /**\r\n * Build an object of all the resolved values. We'll use this in the subsequent\r\n * animateChanges calls to determine whether a value has changed.\r\n */\r\n let resolvedValues = definitionList.reduce(buildResolvedTypeValues(type), {});\r\n if (activeDelta === false)\r\n resolvedValues = {};\r\n /**\r\n * Now we need to loop through all the keys in the prev prop and this prop,\r\n * and decide:\r\n * 1. If the value has changed, and needs animating\r\n * 2. If it has been removed, and needs adding to the removedKeys set\r\n * 3. If it has been removed in a higher priority type and needs animating\r\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\r\n * needs adding to the type's protectedKeys list.\r\n */\r\n const { prevResolvedValues = {} } = typeState;\r\n const allKeys = {\r\n ...prevResolvedValues,\r\n ...resolvedValues,\r\n };\r\n const markToAnimate = (key) => {\r\n shouldAnimateType = true;\r\n if (removedKeys.has(key)) {\r\n handledRemovedValues = true;\r\n removedKeys.delete(key);\r\n }\r\n typeState.needsAnimating[key] = true;\r\n const motionValue = visualElement.getValue(key);\r\n if (motionValue)\r\n motionValue.liveStyle = false;\r\n };\r\n for (const key in allKeys) {\r\n const next = resolvedValues[key];\r\n const prev = prevResolvedValues[key];\r\n // If we've already handled this we can just skip ahead\r\n if (encounteredKeys.hasOwnProperty(key))\r\n continue;\r\n /**\r\n * If the value has changed, we probably want to animate it.\r\n */\r\n let valueHasChanged = false;\r\n if ((0,_animation_utils_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_6__.isKeyframesTarget)(next) && (0,_animation_utils_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_6__.isKeyframesTarget)(prev)) {\r\n valueHasChanged = !(0,_utils_shallow_compare_mjs__WEBPACK_IMPORTED_MODULE_7__.shallowCompare)(next, prev);\r\n }\r\n else {\r\n valueHasChanged = next !== prev;\r\n }\r\n if (valueHasChanged) {\r\n if (next !== undefined && next !== null) {\r\n // If next is defined and doesn't equal prev, it needs animating\r\n markToAnimate(key);\r\n }\r\n else {\r\n // If it's undefined, it's been removed.\r\n removedKeys.add(key);\r\n }\r\n }\r\n else if (next !== undefined && removedKeys.has(key)) {\r\n /**\r\n * If next hasn't changed and it isn't undefined, we want to check if it's\r\n * been removed by a higher priority\r\n */\r\n markToAnimate(key);\r\n }\r\n else {\r\n /**\r\n * If it hasn't changed, we add it to the list of protected values\r\n * to ensure it doesn't get animated.\r\n */\r\n typeState.protectedKeys[key] = true;\r\n }\r\n }\r\n /**\r\n * Update the typeState so next time animateChanges is called we can compare the\r\n * latest prop and resolvedValues to these.\r\n */\r\n typeState.prevProp = prop;\r\n typeState.prevResolvedValues = resolvedValues;\r\n if (typeState.isActive) {\r\n encounteredKeys = { ...encounteredKeys, ...resolvedValues };\r\n }\r\n if (isInitialRender && visualElement.blockInitialAnimation) {\r\n shouldAnimateType = false;\r\n }\r\n /**\r\n * If this is an inherited prop we want to skip this animation\r\n * unless the inherited variants haven't changed on this render.\r\n */\r\n const willAnimateViaParent = isInherited && variantDidChange;\r\n const needsAnimating = !willAnimateViaParent || handledRemovedValues;\r\n if (shouldAnimateType && needsAnimating) {\r\n animations.push(...definitionList.map((animation) => {\r\n const options = { type };\r\n /**\r\n * If we're performing the initial animation, but we're not\r\n * rendering at the same time as the variant-controlling parent,\r\n * we want to use the parent's transition to calculate the stagger.\r\n */\r\n if (typeof animation === \"string\" &&\r\n isInitialRender &&\r\n !willAnimateViaParent &&\r\n visualElement.manuallyAnimateOnMount &&\r\n visualElement.parent) {\r\n const { parent } = visualElement;\r\n const parentVariant = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(parent, animation);\r\n if (parent.enteringChildren && parentVariant) {\r\n const { delayChildren } = parentVariant.transition || {};\r\n options.delay = (0,_animation_utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_8__.calcChildStagger)(parent.enteringChildren, visualElement, delayChildren);\r\n }\r\n }\r\n return {\r\n animation: animation,\r\n options,\r\n };\r\n }));\r\n }\r\n }\r\n /**\r\n * If there are some removed value that haven't been dealt with,\r\n * we need to create a new animation that falls back either to the value\r\n * defined in the style prop, or the last read value.\r\n */\r\n if (removedKeys.size) {\r\n const fallbackAnimation = {};\r\n /**\r\n * If the initial prop contains a transition we can use that, otherwise\r\n * allow the animation function to use the visual element's default.\r\n */\r\n if (typeof props.initial !== \"boolean\") {\r\n const initialTransition = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(visualElement, Array.isArray(props.initial)\r\n ? props.initial[0]\r\n : props.initial);\r\n if (initialTransition && initialTransition.transition) {\r\n fallbackAnimation.transition = initialTransition.transition;\r\n }\r\n }\r\n removedKeys.forEach((key) => {\r\n const fallbackTarget = visualElement.getBaseTarget(key);\r\n const motionValue = visualElement.getValue(key);\r\n if (motionValue)\r\n motionValue.liveStyle = true;\r\n // @ts-expect-error - @mattgperry to figure if we should do something here\r\n fallbackAnimation[key] = fallbackTarget ?? null;\r\n });\r\n animations.push({ animation: fallbackAnimation });\r\n }\r\n let shouldAnimate = Boolean(animations.length);\r\n if (isInitialRender &&\r\n (props.initial === false || props.initial === props.animate) &&\r\n !visualElement.manuallyAnimateOnMount) {\r\n shouldAnimate = false;\r\n }\r\n isInitialRender = false;\r\n return shouldAnimate ? animate(animations) : Promise.resolve();\r\n }\r\n /**\r\n * Change whether a certain animation type is active.\r\n */\r\n function setActive(type, isActive) {\r\n // If the active state hasn't changed, we can safely do nothing here\r\n if (state[type].isActive === isActive)\r\n return Promise.resolve();\r\n // Propagate active change to children\r\n visualElement.variantChildren?.forEach((child) => child.animationState?.setActive(type, isActive));\r\n state[type].isActive = isActive;\r\n const animations = animateChanges(type);\r\n for (const key in state) {\r\n state[key].protectedKeys = {};\r\n }\r\n return animations;\r\n }\r\n return {\r\n animateChanges,\r\n setActive,\r\n setAnimateFunction,\r\n getState: () => state,\r\n reset: () => {\r\n state = createState();\r\n /**\r\n * Temporarily disabling resetting this flag as it prevents components\r\n * with initial={false} from animating after being remounted, for instance\r\n * as the child of an Activity component.\r\n */\r\n // isInitialRender = true\r\n },\r\n };\r\n}\r\nfunction checkVariantsDidChange(prev, next) {\r\n if (typeof next === \"string\") {\r\n return next !== prev;\r\n }\r\n else if (Array.isArray(next)) {\r\n return !(0,_utils_shallow_compare_mjs__WEBPACK_IMPORTED_MODULE_7__.shallowCompare)(next, prev);\r\n }\r\n return false;\r\n}\r\nfunction createTypeState(isActive = false) {\r\n return {\r\n isActive,\r\n protectedKeys: {},\r\n needsAnimating: {},\r\n prevResolvedValues: {},\r\n };\r\n}\r\nfunction createState() {\r\n return {\r\n animate: createTypeState(true),\r\n whileInView: createTypeState(),\r\n whileHover: createTypeState(),\r\n whileTap: createTypeState(),\r\n whileDrag: createTypeState(),\r\n whileFocus: createTypeState(),\r\n exit: createTypeState(),\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2FuaW1hdGlvbi1zdGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBcUY7QUFDTDtBQUNNO0FBQ0o7QUFDakI7QUFDSDtBQUNOO0FBQ1E7QUFDTDtBQUMzRDtBQUNBLGlDQUFpQyxvRUFBb0I7QUFDckQsMEJBQTBCLG9FQUFvQjtBQUM5QztBQUNBLHlEQUF5RCxvQkFBb0IsS0FBSyw4RkFBb0I7QUFDdEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsNkVBQWM7QUFDdkM7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHVDQUF1QztBQUMzRCxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFFBQVE7QUFDeEIsd0JBQXdCLDJFQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsdUJBQXVCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MscUVBQWM7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsK0ZBQW1CO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdGQUF3RjtBQUN4RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDBCQUEwQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwyRkFBaUIsVUFBVSwyRkFBaUI7QUFDaEUsdUNBQXVDLDBFQUFjO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsU0FBUztBQUN6Qyw4Q0FBOEMsNkVBQWM7QUFDNUQ7QUFDQSxvQ0FBb0MsZ0JBQWdCO0FBQ3BELDRDQUE0Qyx5RkFBZ0I7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsNkVBQWM7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsOEJBQThCLDhCQUE4QjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLE9BQU87QUFDcEM7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDBFQUFjO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QiwwQkFBMEI7QUFDMUIsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDd0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvdXRpbHMvYW5pbWF0aW9uLXN0YXRlLm1qcz80MDhhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGVWaXN1YWxFbGVtZW50IH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9uL2ludGVyZmFjZXMvdmlzdWFsLWVsZW1lbnQubWpzJztcclxuaW1wb3J0IHsgY2FsY0NoaWxkU3RhZ2dlciB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi91dGlscy9jYWxjLWNoaWxkLXN0YWdnZXIubWpzJztcclxuaW1wb3J0IHsgaXNBbmltYXRpb25Db250cm9scyB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi91dGlscy9pcy1hbmltYXRpb24tY29udHJvbHMubWpzJztcclxuaW1wb3J0IHsgaXNLZXlmcmFtZXNUYXJnZXQgfSBmcm9tICcuLi8uLi9hbmltYXRpb24vdXRpbHMvaXMta2V5ZnJhbWVzLXRhcmdldC5tanMnO1xyXG5pbXBvcnQgeyBzaGFsbG93Q29tcGFyZSB9IGZyb20gJy4uLy4uL3V0aWxzL3NoYWxsb3ctY29tcGFyZS5tanMnO1xyXG5pbXBvcnQgeyBnZXRWYXJpYW50Q29udGV4dCB9IGZyb20gJy4vZ2V0LXZhcmlhbnQtY29udGV4dC5tanMnO1xyXG5pbXBvcnQgeyBpc1ZhcmlhbnRMYWJlbCB9IGZyb20gJy4vaXMtdmFyaWFudC1sYWJlbC5tanMnO1xyXG5pbXBvcnQgeyByZXNvbHZlVmFyaWFudCB9IGZyb20gJy4vcmVzb2x2ZS1keW5hbWljLXZhcmlhbnRzLm1qcyc7XHJcbmltcG9ydCB7IHZhcmlhbnRQcmlvcml0eU9yZGVyIH0gZnJvbSAnLi92YXJpYW50LXByb3BzLm1qcyc7XHJcblxyXG5jb25zdCByZXZlcnNlUHJpb3JpdHlPcmRlciA9IFsuLi52YXJpYW50UHJpb3JpdHlPcmRlcl0ucmV2ZXJzZSgpO1xyXG5jb25zdCBudW1BbmltYXRpb25UeXBlcyA9IHZhcmlhbnRQcmlvcml0eU9yZGVyLmxlbmd0aDtcclxuZnVuY3Rpb24gYW5pbWF0ZUxpc3QodmlzdWFsRWxlbWVudCkge1xyXG4gICAgcmV0dXJuIChhbmltYXRpb25zKSA9PiBQcm9taXNlLmFsbChhbmltYXRpb25zLm1hcCgoeyBhbmltYXRpb24sIG9wdGlvbnMgfSkgPT4gYW5pbWF0ZVZpc3VhbEVsZW1lbnQodmlzdWFsRWxlbWVudCwgYW5pbWF0aW9uLCBvcHRpb25zKSkpO1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZUFuaW1hdGlvblN0YXRlKHZpc3VhbEVsZW1lbnQpIHtcclxuICAgIGxldCBhbmltYXRlID0gYW5pbWF0ZUxpc3QodmlzdWFsRWxlbWVudCk7XHJcbiAgICBsZXQgc3RhdGUgPSBjcmVhdGVTdGF0ZSgpO1xyXG4gICAgbGV0IGlzSW5pdGlhbFJlbmRlciA9IHRydWU7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB1c2VkIHRvIHJlZHVjZSB0aGUgYW5pbWF0aW9uIGRlZmluaXRpb25zIGZvclxyXG4gICAgICogZWFjaCBhY3RpdmUgYW5pbWF0aW9uIHR5cGUgaW50byBhbiBvYmplY3Qgb2YgcmVzb2x2ZWQgdmFsdWVzIGZvciBpdC5cclxuICAgICAqL1xyXG4gICAgY29uc3QgYnVpbGRSZXNvbHZlZFR5cGVWYWx1ZXMgPSAodHlwZSkgPT4gKGFjYywgZGVmaW5pdGlvbikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVZhcmlhbnQodmlzdWFsRWxlbWVudCwgZGVmaW5pdGlvbiwgdHlwZSA9PT0gXCJleGl0XCJcclxuICAgICAgICAgICAgPyB2aXN1YWxFbGVtZW50LnByZXNlbmNlQ29udGV4dD8uY3VzdG9tXHJcbiAgICAgICAgICAgIDogdW5kZWZpbmVkKTtcclxuICAgICAgICBpZiAocmVzb2x2ZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgeyB0cmFuc2l0aW9uLCB0cmFuc2l0aW9uRW5kLCAuLi50YXJnZXQgfSA9IHJlc29sdmVkO1xyXG4gICAgICAgICAgICBhY2MgPSB7IC4uLmFjYywgLi4udGFyZ2V0LCAuLi50cmFuc2l0aW9uRW5kIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGp1c3QgYWxsb3dzIHVzIHRvIGluamVjdCBtb2NrZWQgYW5pbWF0aW9uIGZ1bmN0aW9uc1xyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIHNldEFuaW1hdGVGdW5jdGlvbihtYWtlQW5pbWF0b3IpIHtcclxuICAgICAgICBhbmltYXRlID0gbWFrZUFuaW1hdG9yKHZpc3VhbEVsZW1lbnQpO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBXaGVuIHdlIHJlY2VpdmUgbmV3IHByb3BzLCB3ZSBuZWVkIHRvOlxyXG4gICAgICogMS4gQ3JlYXRlIGEgbGlzdCBvZiBwcm90ZWN0ZWQga2V5cyBmb3IgZWFjaCB0eXBlLiBUaGlzIGlzIGEgZGlyZWN0b3J5IG9mXHJcbiAgICAgKiAgICB2YWx1ZSBrZXlzIHRoYXQgYXJlIGN1cnJlbnRseSBiZWluZyBcImhhbmRsZWRcIiBieSB0eXBlcyBvZiBhIGhpZ2hlciBwcmlvcml0eVxyXG4gICAgICogICAgc28gdGhhdCB3aGVuZXZlciBhbiBhbmltYXRpb24gaXMgcGxheWVkIG9mIGEgZ2l2ZW4gdHlwZSwgdGhlc2UgdmFsdWVzIGFyZVxyXG4gICAgICogICAgcHJvdGVjdGVkIGZyb20gYmVpbmcgYW5pbWF0ZWQuXHJcbiAgICAgKiAyLiBEZXRlcm1pbmUgaWYgYW4gYW5pbWF0aW9uIHR5cGUgbmVlZHMgYW5pbWF0aW5nLlxyXG4gICAgICogMy4gRGV0ZXJtaW5lIGlmIGFueSB2YWx1ZXMgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSBhIHR5cGUgYW5kIGZpZ3VyZSBvdXRcclxuICAgICAqICAgIHdoYXQgdG8gYW5pbWF0ZSB0aG9zZSB0by5cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gYW5pbWF0ZUNoYW5nZXMoY2hhbmdlZEFjdGl2ZVR5cGUpIHtcclxuICAgICAgICBjb25zdCB7IHByb3BzIH0gPSB2aXN1YWxFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSBnZXRWYXJpYW50Q29udGV4dCh2aXN1YWxFbGVtZW50LnBhcmVudCkgfHwge307XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBsaXN0IG9mIGFuaW1hdGlvbnMgdGhhdCB3ZSdsbCBidWlsZCBpbnRvIGFzIHdlIGl0ZXJhdGUgdGhyb3VnaCB0aGUgYW5pbWF0aW9uXHJcbiAgICAgICAgICogdHlwZXMuIFRoaXMgd2lsbCBnZXQgZXhlY3V0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24uXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY29uc3QgYW5pbWF0aW9ucyA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEtlZXAgdHJhY2sgb2Ygd2hpY2ggdmFsdWVzIGhhdmUgYmVlbiByZW1vdmVkLiBUaGVuLCBhcyB3ZSBoaXQgbG93ZXIgcHJpb3JpdHlcclxuICAgICAgICAgKiBhbmltYXRpb24gdHlwZXMsIHdlIGNhbiBjaGVjayBpZiB0aGV5IGNvbnRhaW4gcmVtb3ZlZCB2YWx1ZXMgYW5kIGFuaW1hdGUgdG8gdGhhdC5cclxuICAgICAgICAgKi9cclxuICAgICAgICBjb25zdCByZW1vdmVkS2V5cyA9IG5ldyBTZXQoKTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIGRpY3Rpb25hcnkgb2YgYWxsIGVuY291bnRlcmVkIGtleXMuIFRoaXMgaXMgYW4gb2JqZWN0IHRvIGxldCB1cyBidWlsZCBpbnRvIGFuZFxyXG4gICAgICAgICAqIGNvcHkgaXQgd2l0aG91dCBpdGVyYXRpb24uIEVhY2ggdGltZSB3ZSBoaXQgYW4gYW5pbWF0aW9uIHR5cGUgd2Ugc2V0IGl0cyBwcm90ZWN0ZWRcclxuICAgICAgICAgKiBrZXlzIC0gdGhlIGtleXMgaXRzIG5vdCBhbGxvd2VkIHRvIGFuaW1hdGUgLSB0byB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBvYmplY3QuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgbGV0IGVuY291bnRlcmVkS2V5cyA9IHt9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElmIGEgdmFyaWFudCBoYXMgYmVlbiByZW1vdmVkIGF0IGEgZ2l2ZW4gaW5kZXgsIGFuZCB0aGlzIGNvbXBvbmVudCBpcyBjb250cm9sbGluZ1xyXG4gICAgICAgICAqIHZhcmlhbnQgYW5pbWF0aW9ucywgd2Ugd2FudCB0byBlbnN1cmUgbG93ZXItcHJpb3JpdHkgdmFyaWFudHMgYXJlIGZvcmNlZCB0byBhbmltYXRlLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGxldCByZW1vdmVkVmFyaWFudEluZGV4ID0gSW5maW5pdHk7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSXRlcmF0ZSB0aHJvdWdoIGFsbCBhbmltYXRpb24gdHlwZXMgaW4gcmV2ZXJzZSBwcmlvcml0eSBvcmRlci4gRm9yIGVhY2gsIHdlIHdhbnQgdG9cclxuICAgICAgICAgKiBkZXRlY3Qgd2hpY2ggdmFsdWVzIGl0J3MgaGFuZGxpbmcgYW5kIHdoZXRoZXIgb3Igbm90IHRoZXkndmUgY2hhbmdlZCAoYW5kIHRoZXJlZm9yZVxyXG4gICAgICAgICAqIG5lZWQgdG8gYmUgYW5pbWF0ZWQpLiBJZiBhbnkgdmFsdWVzIGhhdmUgYmVlbiByZW1vdmVkLCB3ZSB3YW50IHRvIGRldGVjdCB0aG9zZSBpblxyXG4gICAgICAgICAqIGxvd2VyIHByaW9yaXR5IHByb3BzIGFuZCBmbGFnIGZvciBhbmltYXRpb24uXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1BbmltYXRpb25UeXBlczsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSByZXZlcnNlUHJpb3JpdHlPcmRlcltpXTtcclxuICAgICAgICAgICAgY29uc3QgdHlwZVN0YXRlID0gc3RhdGVbdHlwZV07XHJcbiAgICAgICAgICAgIGNvbnN0IHByb3AgPSBwcm9wc1t0eXBlXSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICAgICA/IHByb3BzW3R5cGVdXHJcbiAgICAgICAgICAgICAgICA6IGNvbnRleHRbdHlwZV07XHJcbiAgICAgICAgICAgIGNvbnN0IHByb3BJc1ZhcmlhbnQgPSBpc1ZhcmlhbnRMYWJlbChwcm9wKTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIElmIHRoaXMgdHlwZSBoYXMgKmp1c3QqIGNoYW5nZWQgaXNBY3RpdmUgc3RhdHVzLCBzZXQgYWN0aXZlRGVsdGFcclxuICAgICAgICAgICAgICogdG8gdGhhdCBzdGF0dXMuIE90aGVyd2lzZSBzZXQgdG8gbnVsbC5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZURlbHRhID0gdHlwZSA9PT0gY2hhbmdlZEFjdGl2ZVR5cGUgPyB0eXBlU3RhdGUuaXNBY3RpdmUgOiBudWxsO1xyXG4gICAgICAgICAgICBpZiAoYWN0aXZlRGVsdGEgPT09IGZhbHNlKVxyXG4gICAgICAgICAgICAgICAgcmVtb3ZlZFZhcmlhbnRJbmRleCA9IGk7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB0aGlzIHByb3AgaXMgYW4gaW5oZXJpdGVkIHZhcmlhbnQsIHJhdGhlciB0aGFuIGJlZW4gc2V0IGRpcmVjdGx5IG9uIHRoZVxyXG4gICAgICAgICAgICAgKiBjb21wb25lbnQgaXRzZWxmLCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB3ZSBhbGxvdyB0aGUgcGFyZW50IHRvIHRyaWdnZXIgYW5pbWF0aW9ucy5cclxuICAgICAgICAgICAgICpcclxuICAgICAgICAgICAgICogVE9ETzogQ2FuIHByb2JhYmx5IGNoYW5nZSB0aGlzIHRvIGEgIWlzQ29udHJvbGxpbmdWYXJpYW50cyBjaGVja1xyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgbGV0IGlzSW5oZXJpdGVkID0gcHJvcCA9PT0gY29udGV4dFt0eXBlXSAmJlxyXG4gICAgICAgICAgICAgICAgcHJvcCAhPT0gcHJvcHNbdHlwZV0gJiZcclxuICAgICAgICAgICAgICAgIHByb3BJc1ZhcmlhbnQ7XHJcbiAgICAgICAgICAgIGlmIChpc0luaGVyaXRlZCAmJlxyXG4gICAgICAgICAgICAgICAgaXNJbml0aWFsUmVuZGVyICYmXHJcbiAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50Lm1hbnVhbGx5QW5pbWF0ZU9uTW91bnQpIHtcclxuICAgICAgICAgICAgICAgIGlzSW5oZXJpdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFNldCBhbGwgZW5jb3VudGVyZWQga2V5cyBzbyBmYXIgYXMgdGhlIHByb3RlY3RlZCBrZXlzIGZvciB0aGlzIHR5cGUuIFRoaXMgd2lsbFxyXG4gICAgICAgICAgICAgKiBiZSBhbnkga2V5IHRoYXQgaGFzIGJlZW4gYW5pbWF0ZWQgb3Igb3RoZXJ3aXNlIGhhbmRsZWQgYnkgYWN0aXZlLCBoaWdoZXItcHJpb3J0aXkgdHlwZXMuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICB0eXBlU3RhdGUucHJvdGVjdGVkS2V5cyA9IHsgLi4uZW5jb3VudGVyZWRLZXlzIH07XHJcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHdlIGNhbiBza2lwIGFuYWx5c2luZyB0aGlzIHByb3AgZWFybHlcclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAvLyBJZiBpdCBpc24ndCBhY3RpdmUgYW5kIGhhc24ndCAqanVzdCogYmVlbiBzZXQgYXMgaW5hY3RpdmVcclxuICAgICAgICAgICAgKCF0eXBlU3RhdGUuaXNBY3RpdmUgJiYgYWN0aXZlRGVsdGEgPT09IG51bGwpIHx8XHJcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSBkaWRuJ3QgYW5kIGRvbid0IGhhdmUgYW55IGRlZmluZWQgcHJvcCBmb3IgdGhpcyBhbmltYXRpb24gdHlwZVxyXG4gICAgICAgICAgICAgICAgKCFwcm9wICYmICF0eXBlU3RhdGUucHJldlByb3ApIHx8XHJcbiAgICAgICAgICAgICAgICAvLyBPciBpZiB0aGUgcHJvcCBkb2Vzbid0IGRlZmluZSBhbiBhbmltYXRpb25cclxuICAgICAgICAgICAgICAgIGlzQW5pbWF0aW9uQ29udHJvbHMocHJvcCkgfHxcclxuICAgICAgICAgICAgICAgIHR5cGVvZiBwcm9wID09PSBcImJvb2xlYW5cIikge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEFzIHdlIGdvIGxvb2sgdGhyb3VnaCB0aGUgdmFsdWVzIGRlZmluZWQgb24gdGhpcyB0eXBlLCBpZiB3ZSBkZXRlY3RcclxuICAgICAgICAgICAgICogYSBjaGFuZ2VkIHZhbHVlIG9yIGEgdmFsdWUgdGhhdCB3YXMgcmVtb3ZlZCBpbiBhIGhpZ2hlciBwcmlvcml0eSwgd2Ugc2V0XHJcbiAgICAgICAgICAgICAqIHRoaXMgdG8gdHJ1ZSBhbmQgYWRkIHRoaXMgcHJvcCB0byB0aGUgYW5pbWF0aW9uIGxpc3QuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBjb25zdCB2YXJpYW50RGlkQ2hhbmdlID0gY2hlY2tWYXJpYW50c0RpZENoYW5nZSh0eXBlU3RhdGUucHJldlByb3AsIHByb3ApO1xyXG4gICAgICAgICAgICBsZXQgc2hvdWxkQW5pbWF0ZVR5cGUgPSB2YXJpYW50RGlkQ2hhbmdlIHx8XHJcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBtYWtpbmcgdGhpcyB2YXJpYW50IGFjdGl2ZSwgd2Ugd2FudCB0byBhbHdheXMgbWFrZSBpdCBhY3RpdmVcclxuICAgICAgICAgICAgICAgICh0eXBlID09PSBjaGFuZ2VkQWN0aXZlVHlwZSAmJlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGVTdGF0ZS5pc0FjdGl2ZSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICFpc0luaGVyaXRlZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJc1ZhcmlhbnQpIHx8XHJcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZW1vdmVkIGEgaGlnaGVyLXByaW9yaXR5IHZhcmlhbnQgKGkgaXMgaW4gcmV2ZXJzZSBvcmRlcilcclxuICAgICAgICAgICAgICAgIChpID4gcmVtb3ZlZFZhcmlhbnRJbmRleCAmJiBwcm9wSXNWYXJpYW50KTtcclxuICAgICAgICAgICAgbGV0IGhhbmRsZWRSZW1vdmVkVmFsdWVzID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBBcyBhbmltYXRpb25zIGNhbiBiZSBzZXQgYXMgdmFyaWFudCBsaXN0cywgdmFyaWFudHMgb3IgdGFyZ2V0IG9iamVjdHMsIHdlXHJcbiAgICAgICAgICAgICAqIGNvZXJjZSBldmVyeXRoaW5nIHRvIGFuIGFycmF5IGlmIGl0IGlzbid0IG9uZSBhbHJlYWR5XHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBjb25zdCBkZWZpbml0aW9uTGlzdCA9IEFycmF5LmlzQXJyYXkocHJvcCkgPyBwcm9wIDogW3Byb3BdO1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogQnVpbGQgYW4gb2JqZWN0IG9mIGFsbCB0aGUgcmVzb2x2ZWQgdmFsdWVzLiBXZSdsbCB1c2UgdGhpcyBpbiB0aGUgc3Vic2VxdWVudFxyXG4gICAgICAgICAgICAgKiBhbmltYXRlQ2hhbmdlcyBjYWxscyB0byBkZXRlcm1pbmUgd2hldGhlciBhIHZhbHVlIGhhcyBjaGFuZ2VkLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgbGV0IHJlc29sdmVkVmFsdWVzID0gZGVmaW5pdGlvbkxpc3QucmVkdWNlKGJ1aWxkUmVzb2x2ZWRUeXBlVmFsdWVzKHR5cGUpLCB7fSk7XHJcbiAgICAgICAgICAgIGlmIChhY3RpdmVEZWx0YSA9PT0gZmFsc2UpXHJcbiAgICAgICAgICAgICAgICByZXNvbHZlZFZhbHVlcyA9IHt9O1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogTm93IHdlIG5lZWQgdG8gbG9vcCB0aHJvdWdoIGFsbCB0aGUga2V5cyBpbiB0aGUgcHJldiBwcm9wIGFuZCB0aGlzIHByb3AsXHJcbiAgICAgICAgICAgICAqIGFuZCBkZWNpZGU6XHJcbiAgICAgICAgICAgICAqIDEuIElmIHRoZSB2YWx1ZSBoYXMgY2hhbmdlZCwgYW5kIG5lZWRzIGFuaW1hdGluZ1xyXG4gICAgICAgICAgICAgKiAyLiBJZiBpdCBoYXMgYmVlbiByZW1vdmVkLCBhbmQgbmVlZHMgYWRkaW5nIHRvIHRoZSByZW1vdmVkS2V5cyBzZXRcclxuICAgICAgICAgICAgICogMy4gSWYgaXQgaGFzIGJlZW4gcmVtb3ZlZCBpbiBhIGhpZ2hlciBwcmlvcml0eSB0eXBlIGFuZCBuZWVkcyBhbmltYXRpbmdcclxuICAgICAgICAgICAgICogNC4gSWYgaXQgaGFzbid0IGJlZW4gcmVtb3ZlZCBpbiBhIGhpZ2hlciBwcmlvcml0eSBidXQgaGFzbid0IGNoYW5nZWQsIGFuZFxyXG4gICAgICAgICAgICAgKiAgICBuZWVkcyBhZGRpbmcgdG8gdGhlIHR5cGUncyBwcm90ZWN0ZWRLZXlzIGxpc3QuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBjb25zdCB7IHByZXZSZXNvbHZlZFZhbHVlcyA9IHt9IH0gPSB0eXBlU3RhdGU7XHJcbiAgICAgICAgICAgIGNvbnN0IGFsbEtleXMgPSB7XHJcbiAgICAgICAgICAgICAgICAuLi5wcmV2UmVzb2x2ZWRWYWx1ZXMsXHJcbiAgICAgICAgICAgICAgICAuLi5yZXNvbHZlZFZhbHVlcyxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgY29uc3QgbWFya1RvQW5pbWF0ZSA9IChrZXkpID0+IHtcclxuICAgICAgICAgICAgICAgIHNob3VsZEFuaW1hdGVUeXBlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGlmIChyZW1vdmVkS2V5cy5oYXMoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZWRSZW1vdmVkVmFsdWVzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICByZW1vdmVkS2V5cy5kZWxldGUoa2V5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHR5cGVTdGF0ZS5uZWVkc0FuaW1hdGluZ1trZXldID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1vdGlvblZhbHVlID0gdmlzdWFsRWxlbWVudC5nZXRWYWx1ZShrZXkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG1vdGlvblZhbHVlKVxyXG4gICAgICAgICAgICAgICAgICAgIG1vdGlvblZhbHVlLmxpdmVTdHlsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBhbGxLZXlzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0ID0gcmVzb2x2ZWRWYWx1ZXNba2V5XTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHByZXYgPSBwcmV2UmVzb2x2ZWRWYWx1ZXNba2V5XTtcclxuICAgICAgICAgICAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgaGFuZGxlZCB0aGlzIHdlIGNhbiBqdXN0IHNraXAgYWhlYWRcclxuICAgICAgICAgICAgICAgIGlmIChlbmNvdW50ZXJlZEtleXMuaGFzT3duUHJvcGVydHkoa2V5KSlcclxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICogSWYgdGhlIHZhbHVlIGhhcyBjaGFuZ2VkLCB3ZSBwcm9iYWJseSB3YW50IHRvIGFuaW1hdGUgaXQuXHJcbiAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgICAgIGxldCB2YWx1ZUhhc0NoYW5nZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGlmIChpc0tleWZyYW1lc1RhcmdldChuZXh0KSAmJiBpc0tleWZyYW1lc1RhcmdldChwcmV2KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlSGFzQ2hhbmdlZCA9ICFzaGFsbG93Q29tcGFyZShuZXh0LCBwcmV2KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlSGFzQ2hhbmdlZCA9IG5leHQgIT09IHByZXY7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWVIYXNDaGFuZ2VkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgIT09IHVuZGVmaW5lZCAmJiBuZXh0ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIG5leHQgaXMgZGVmaW5lZCBhbmQgZG9lc24ndCBlcXVhbCBwcmV2LCBpdCBuZWVkcyBhbmltYXRpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFya1RvQW5pbWF0ZShrZXkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgaXQncyB1bmRlZmluZWQsIGl0J3MgYmVlbiByZW1vdmVkLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVkS2V5cy5hZGQoa2V5KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChuZXh0ICE9PSB1bmRlZmluZWQgJiYgcmVtb3ZlZEtleXMuaGFzKGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICAgICAgICAgKiBJZiBuZXh0IGhhc24ndCBjaGFuZ2VkIGFuZCBpdCBpc24ndCB1bmRlZmluZWQsIHdlIHdhbnQgdG8gY2hlY2sgaWYgaXQnc1xyXG4gICAgICAgICAgICAgICAgICAgICAqIGJlZW4gcmVtb3ZlZCBieSBhIGhpZ2hlciBwcmlvcml0eVxyXG4gICAgICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmtUb0FuaW1hdGUoa2V5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICAgICAqIElmIGl0IGhhc24ndCBjaGFuZ2VkLCB3ZSBhZGQgaXQgdG8gdGhlIGxpc3Qgb2YgcHJvdGVjdGVkIHZhbHVlc1xyXG4gICAgICAgICAgICAgICAgICAgICAqIHRvIGVuc3VyZSBpdCBkb2Vzbid0IGdldCBhbmltYXRlZC5cclxuICAgICAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgICAgICAgICB0eXBlU3RhdGUucHJvdGVjdGVkS2V5c1trZXldID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogVXBkYXRlIHRoZSB0eXBlU3RhdGUgc28gbmV4dCB0aW1lIGFuaW1hdGVDaGFuZ2VzIGlzIGNhbGxlZCB3ZSBjYW4gY29tcGFyZSB0aGVcclxuICAgICAgICAgICAgICogbGF0ZXN0IHByb3AgYW5kIHJlc29sdmVkVmFsdWVzIHRvIHRoZXNlLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgdHlwZVN0YXRlLnByZXZQcm9wID0gcHJvcDtcclxuICAgICAgICAgICAgdHlwZVN0YXRlLnByZXZSZXNvbHZlZFZhbHVlcyA9IHJlc29sdmVkVmFsdWVzO1xyXG4gICAgICAgICAgICBpZiAodHlwZVN0YXRlLmlzQWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICBlbmNvdW50ZXJlZEtleXMgPSB7IC4uLmVuY291bnRlcmVkS2V5cywgLi4ucmVzb2x2ZWRWYWx1ZXMgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaXNJbml0aWFsUmVuZGVyICYmIHZpc3VhbEVsZW1lbnQuYmxvY2tJbml0aWFsQW5pbWF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBzaG91bGRBbmltYXRlVHlwZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB0aGlzIGlzIGFuIGluaGVyaXRlZCBwcm9wIHdlIHdhbnQgdG8gc2tpcCB0aGlzIGFuaW1hdGlvblxyXG4gICAgICAgICAgICAgKiB1bmxlc3MgdGhlIGluaGVyaXRlZCB2YXJpYW50cyBoYXZlbid0IGNoYW5nZWQgb24gdGhpcyByZW5kZXIuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBjb25zdCB3aWxsQW5pbWF0ZVZpYVBhcmVudCA9IGlzSW5oZXJpdGVkICYmIHZhcmlhbnREaWRDaGFuZ2U7XHJcbiAgICAgICAgICAgIGNvbnN0IG5lZWRzQW5pbWF0aW5nID0gIXdpbGxBbmltYXRlVmlhUGFyZW50IHx8IGhhbmRsZWRSZW1vdmVkVmFsdWVzO1xyXG4gICAgICAgICAgICBpZiAoc2hvdWxkQW5pbWF0ZVR5cGUgJiYgbmVlZHNBbmltYXRpbmcpIHtcclxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbnMucHVzaCguLi5kZWZpbml0aW9uTGlzdC5tYXAoKGFuaW1hdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7IHR5cGUgfTtcclxuICAgICAgICAgICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICAgICAgICAgKiBJZiB3ZSdyZSBwZXJmb3JtaW5nIHRoZSBpbml0aWFsIGFuaW1hdGlvbiwgYnV0IHdlJ3JlIG5vdFxyXG4gICAgICAgICAgICAgICAgICAgICAqIHJlbmRlcmluZyBhdCB0aGUgc2FtZSB0aW1lIGFzIHRoZSB2YXJpYW50LWNvbnRyb2xsaW5nIHBhcmVudCxcclxuICAgICAgICAgICAgICAgICAgICAgKiB3ZSB3YW50IHRvIHVzZSB0aGUgcGFyZW50J3MgdHJhbnNpdGlvbiB0byBjYWxjdWxhdGUgdGhlIHN0YWdnZXIuXHJcbiAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhbmltYXRpb24gPT09IFwic3RyaW5nXCIgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNJbml0aWFsUmVuZGVyICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICF3aWxsQW5pbWF0ZVZpYVBhcmVudCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50Lm1hbnVhbGx5QW5pbWF0ZU9uTW91bnQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5wYXJlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBwYXJlbnQgfSA9IHZpc3VhbEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFZhcmlhbnQgPSByZXNvbHZlVmFyaWFudChwYXJlbnQsIGFuaW1hdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnQuZW50ZXJpbmdDaGlsZHJlbiAmJiBwYXJlbnRWYXJpYW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRlbGF5Q2hpbGRyZW4gfSA9IHBhcmVudFZhcmlhbnQudHJhbnNpdGlvbiB8fCB7fTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZGVsYXkgPSBjYWxjQ2hpbGRTdGFnZ2VyKHBhcmVudC5lbnRlcmluZ0NoaWxkcmVuLCB2aXN1YWxFbGVtZW50LCBkZWxheUNoaWxkcmVuKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyxcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElmIHRoZXJlIGFyZSBzb21lIHJlbW92ZWQgdmFsdWUgdGhhdCBoYXZlbid0IGJlZW4gZGVhbHQgd2l0aCxcclxuICAgICAgICAgKiB3ZSBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBhbmltYXRpb24gdGhhdCBmYWxscyBiYWNrIGVpdGhlciB0byB0aGUgdmFsdWVcclxuICAgICAgICAgKiBkZWZpbmVkIGluIHRoZSBzdHlsZSBwcm9wLCBvciB0aGUgbGFzdCByZWFkIHZhbHVlLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGlmIChyZW1vdmVkS2V5cy5zaXplKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrQW5pbWF0aW9uID0ge307XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB0aGUgaW5pdGlhbCBwcm9wIGNvbnRhaW5zIGEgdHJhbnNpdGlvbiB3ZSBjYW4gdXNlIHRoYXQsIG90aGVyd2lzZVxyXG4gICAgICAgICAgICAgKiBhbGxvdyB0aGUgYW5pbWF0aW9uIGZ1bmN0aW9uIHRvIHVzZSB0aGUgdmlzdWFsIGVsZW1lbnQncyBkZWZhdWx0LlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wcy5pbml0aWFsICE9PSBcImJvb2xlYW5cIikge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaW5pdGlhbFRyYW5zaXRpb24gPSByZXNvbHZlVmFyaWFudCh2aXN1YWxFbGVtZW50LCBBcnJheS5pc0FycmF5KHByb3BzLmluaXRpYWwpXHJcbiAgICAgICAgICAgICAgICAgICAgPyBwcm9wcy5pbml0aWFsWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgOiBwcm9wcy5pbml0aWFsKTtcclxuICAgICAgICAgICAgICAgIGlmIChpbml0aWFsVHJhbnNpdGlvbiAmJiBpbml0aWFsVHJhbnNpdGlvbi50cmFuc2l0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tBbmltYXRpb24udHJhbnNpdGlvbiA9IGluaXRpYWxUcmFuc2l0aW9uLnRyYW5zaXRpb247XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVtb3ZlZEtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmYWxsYmFja1RhcmdldCA9IHZpc3VhbEVsZW1lbnQuZ2V0QmFzZVRhcmdldChrZXkpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbW90aW9uVmFsdWUgPSB2aXN1YWxFbGVtZW50LmdldFZhbHVlKGtleSk7XHJcbiAgICAgICAgICAgICAgICBpZiAobW90aW9uVmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAgbW90aW9uVmFsdWUubGl2ZVN0eWxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBAbWF0dGdwZXJyeSB0byBmaWd1cmUgaWYgd2Ugc2hvdWxkIGRvIHNvbWV0aGluZyBoZXJlXHJcbiAgICAgICAgICAgICAgICBmYWxsYmFja0FuaW1hdGlvbltrZXldID0gZmFsbGJhY2tUYXJnZXQgPz8gbnVsbDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbnMucHVzaCh7IGFuaW1hdGlvbjogZmFsbGJhY2tBbmltYXRpb24gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzaG91bGRBbmltYXRlID0gQm9vbGVhbihhbmltYXRpb25zLmxlbmd0aCk7XHJcbiAgICAgICAgaWYgKGlzSW5pdGlhbFJlbmRlciAmJlxyXG4gICAgICAgICAgICAocHJvcHMuaW5pdGlhbCA9PT0gZmFsc2UgfHwgcHJvcHMuaW5pdGlhbCA9PT0gcHJvcHMuYW5pbWF0ZSkgJiZcclxuICAgICAgICAgICAgIXZpc3VhbEVsZW1lbnQubWFudWFsbHlBbmltYXRlT25Nb3VudCkge1xyXG4gICAgICAgICAgICBzaG91bGRBbmltYXRlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlzSW5pdGlhbFJlbmRlciA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBzaG91bGRBbmltYXRlID8gYW5pbWF0ZShhbmltYXRpb25zKSA6IFByb21pc2UucmVzb2x2ZSgpO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGFuZ2Ugd2hldGhlciBhIGNlcnRhaW4gYW5pbWF0aW9uIHR5cGUgaXMgYWN0aXZlLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBzZXRBY3RpdmUodHlwZSwgaXNBY3RpdmUpIHtcclxuICAgICAgICAvLyBJZiB0aGUgYWN0aXZlIHN0YXRlIGhhc24ndCBjaGFuZ2VkLCB3ZSBjYW4gc2FmZWx5IGRvIG5vdGhpbmcgaGVyZVxyXG4gICAgICAgIGlmIChzdGF0ZVt0eXBlXS5pc0FjdGl2ZSA9PT0gaXNBY3RpdmUpXHJcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICAvLyBQcm9wYWdhdGUgYWN0aXZlIGNoYW5nZSB0byBjaGlsZHJlblxyXG4gICAgICAgIHZpc3VhbEVsZW1lbnQudmFyaWFudENoaWxkcmVuPy5mb3JFYWNoKChjaGlsZCkgPT4gY2hpbGQuYW5pbWF0aW9uU3RhdGU/LnNldEFjdGl2ZSh0eXBlLCBpc0FjdGl2ZSkpO1xyXG4gICAgICAgIHN0YXRlW3R5cGVdLmlzQWN0aXZlID0gaXNBY3RpdmU7XHJcbiAgICAgICAgY29uc3QgYW5pbWF0aW9ucyA9IGFuaW1hdGVDaGFuZ2VzKHR5cGUpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHN0YXRlKSB7XHJcbiAgICAgICAgICAgIHN0YXRlW2tleV0ucHJvdGVjdGVkS2V5cyA9IHt9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYW5pbWF0aW9ucztcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgYW5pbWF0ZUNoYW5nZXMsXHJcbiAgICAgICAgc2V0QWN0aXZlLFxyXG4gICAgICAgIHNldEFuaW1hdGVGdW5jdGlvbixcclxuICAgICAgICBnZXRTdGF0ZTogKCkgPT4gc3RhdGUsXHJcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcclxuICAgICAgICAgICAgc3RhdGUgPSBjcmVhdGVTdGF0ZSgpO1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogVGVtcG9yYXJpbHkgZGlzYWJsaW5nIHJlc2V0dGluZyB0aGlzIGZsYWcgYXMgaXQgcHJldmVudHMgY29tcG9uZW50c1xyXG4gICAgICAgICAgICAgKiB3aXRoIGluaXRpYWw9e2ZhbHNlfSBmcm9tIGFuaW1hdGluZyBhZnRlciBiZWluZyByZW1vdW50ZWQsIGZvciBpbnN0YW5jZVxyXG4gICAgICAgICAgICAgKiBhcyB0aGUgY2hpbGQgb2YgYW4gQWN0aXZpdHkgY29tcG9uZW50LlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgLy8gaXNJbml0aWFsUmVuZGVyID0gdHJ1ZVxyXG4gICAgICAgIH0sXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGNoZWNrVmFyaWFudHNEaWRDaGFuZ2UocHJldiwgbmV4dCkge1xyXG4gICAgaWYgKHR5cGVvZiBuZXh0ID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgcmV0dXJuIG5leHQgIT09IHByZXY7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KG5leHQpKSB7XHJcbiAgICAgICAgcmV0dXJuICFzaGFsbG93Q29tcGFyZShuZXh0LCBwcmV2KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVUeXBlU3RhdGUoaXNBY3RpdmUgPSBmYWxzZSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBpc0FjdGl2ZSxcclxuICAgICAgICBwcm90ZWN0ZWRLZXlzOiB7fSxcclxuICAgICAgICBuZWVkc0FuaW1hdGluZzoge30sXHJcbiAgICAgICAgcHJldlJlc29sdmVkVmFsdWVzOiB7fSxcclxuICAgIH07XHJcbn1cclxuZnVuY3Rpb24gY3JlYXRlU3RhdGUoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGFuaW1hdGU6IGNyZWF0ZVR5cGVTdGF0ZSh0cnVlKSxcclxuICAgICAgICB3aGlsZUluVmlldzogY3JlYXRlVHlwZVN0YXRlKCksXHJcbiAgICAgICAgd2hpbGVIb3ZlcjogY3JlYXRlVHlwZVN0YXRlKCksXHJcbiAgICAgICAgd2hpbGVUYXA6IGNyZWF0ZVR5cGVTdGF0ZSgpLFxyXG4gICAgICAgIHdoaWxlRHJhZzogY3JlYXRlVHlwZVN0YXRlKCksXHJcbiAgICAgICAgd2hpbGVGb2N1czogY3JlYXRlVHlwZVN0YXRlKCksXHJcbiAgICAgICAgZXhpdDogY3JlYXRlVHlwZVN0YXRlKCksXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgeyBjaGVja1ZhcmlhbnRzRGlkQ2hhbmdlLCBjcmVhdGVBbmltYXRpb25TdGF0ZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/animation-state.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs ***!
|
||
\******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ compareByDepth: function() { return /* binding */ compareByDepth; }\n/* harmony export */ });\nconst compareByDepth = (a, b) => a.depth - b.depth;\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2NvbXBhcmUtYnktZGVwdGgubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQzBCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2NvbXBhcmUtYnktZGVwdGgubWpzP2U2MzkiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29tcGFyZUJ5RGVwdGggPSAoYSwgYikgPT4gYS5kZXB0aCAtIGIuZGVwdGg7XHJcblxyXG5leHBvcnQgeyBjb21wYXJlQnlEZXB0aCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FlatTree: function() { return /* binding */ FlatTree; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs\");\n/* harmony import */ var _compare_by_depth_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compare-by-depth.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs\");\n\r\n\r\n\r\nclass FlatTree {\r\n constructor() {\r\n this.children = [];\r\n this.isDirty = false;\r\n }\r\n add(child) {\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.addUniqueItem)(this.children, child);\r\n this.isDirty = true;\r\n }\r\n remove(child) {\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.children, child);\r\n this.isDirty = true;\r\n }\r\n forEach(callback) {\r\n this.isDirty && this.children.sort(_compare_by_depth_mjs__WEBPACK_IMPORTED_MODULE_1__.compareByDepth);\r\n this.isDirty = false;\r\n this.children.forEach(callback);\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2ZsYXQtdHJlZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXlEO0FBQ0Q7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDJEQUFhO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLFFBQVEsd0RBQVU7QUFDbEI7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLGlFQUFjO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvdXRpbHMvZmxhdC10cmVlLm1qcz80OGNkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFVuaXF1ZUl0ZW0sIHJlbW92ZUl0ZW0gfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBjb21wYXJlQnlEZXB0aCB9IGZyb20gJy4vY29tcGFyZS1ieS1kZXB0aC5tanMnO1xyXG5cclxuY2xhc3MgRmxhdFRyZWUge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IFtdO1xyXG4gICAgICAgIHRoaXMuaXNEaXJ0eSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgYWRkKGNoaWxkKSB7XHJcbiAgICAgICAgYWRkVW5pcXVlSXRlbSh0aGlzLmNoaWxkcmVuLCBjaGlsZCk7XHJcbiAgICAgICAgdGhpcy5pc0RpcnR5ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJlbW92ZShjaGlsZCkge1xyXG4gICAgICAgIHJlbW92ZUl0ZW0odGhpcy5jaGlsZHJlbiwgY2hpbGQpO1xyXG4gICAgICAgIHRoaXMuaXNEaXJ0eSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBmb3JFYWNoKGNhbGxiYWNrKSB7XHJcbiAgICAgICAgdGhpcy5pc0RpcnR5ICYmIHRoaXMuY2hpbGRyZW4uc29ydChjb21wYXJlQnlEZXB0aCk7XHJcbiAgICAgICAgdGhpcy5pc0RpcnR5ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKGNhbGxiYWNrKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHsgRmxhdFRyZWUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/get-variant-context.mjs":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/utils/get-variant-context.mjs ***!
|
||
\*********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getVariantContext: function() { return /* binding */ getVariantContext; }\n/* harmony export */ });\n/* harmony import */ var _is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-variant-label.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs\");\n/* harmony import */ var _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./variant-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/variant-props.mjs\");\n\r\n\r\n\r\nconst numVariantProps = _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantProps.length;\r\nfunction getVariantContext(visualElement) {\r\n if (!visualElement)\r\n return undefined;\r\n if (!visualElement.isControllingVariants) {\r\n const context = visualElement.parent\r\n ? getVariantContext(visualElement.parent) || {}\r\n : {};\r\n if (visualElement.props.initial !== undefined) {\r\n context.initial = visualElement.props.initial;\r\n }\r\n return context;\r\n }\r\n const context = {};\r\n for (let i = 0; i < numVariantProps; i++) {\r\n const name = _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantProps[i];\r\n const prop = visualElement.props[name];\r\n if ((0,_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_1__.isVariantLabel)(prop) || prop === false) {\r\n context[name] = prop;\r\n }\r\n }\r\n return context;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2dldC12YXJpYW50LWNvbnRleHQubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3RDtBQUNMO0FBQ25EO0FBQ0Esd0JBQXdCLDREQUFZO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHFCQUFxQjtBQUN6QyxxQkFBcUIsNERBQVk7QUFDakM7QUFDQSxZQUFZLHFFQUFjO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUM2QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci91dGlscy9nZXQtdmFyaWFudC1jb250ZXh0Lm1qcz81MjFjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzVmFyaWFudExhYmVsIH0gZnJvbSAnLi9pcy12YXJpYW50LWxhYmVsLm1qcyc7XHJcbmltcG9ydCB7IHZhcmlhbnRQcm9wcyB9IGZyb20gJy4vdmFyaWFudC1wcm9wcy5tanMnO1xyXG5cclxuY29uc3QgbnVtVmFyaWFudFByb3BzID0gdmFyaWFudFByb3BzLmxlbmd0aDtcclxuZnVuY3Rpb24gZ2V0VmFyaWFudENvbnRleHQodmlzdWFsRWxlbWVudCkge1xyXG4gICAgaWYgKCF2aXN1YWxFbGVtZW50KVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoIXZpc3VhbEVsZW1lbnQuaXNDb250cm9sbGluZ1ZhcmlhbnRzKSB7XHJcbiAgICAgICAgY29uc3QgY29udGV4dCA9IHZpc3VhbEVsZW1lbnQucGFyZW50XHJcbiAgICAgICAgICAgID8gZ2V0VmFyaWFudENvbnRleHQodmlzdWFsRWxlbWVudC5wYXJlbnQpIHx8IHt9XHJcbiAgICAgICAgICAgIDoge307XHJcbiAgICAgICAgaWYgKHZpc3VhbEVsZW1lbnQucHJvcHMuaW5pdGlhbCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuaW5pdGlhbCA9IHZpc3VhbEVsZW1lbnQucHJvcHMuaW5pdGlhbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNvbnRleHQ7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb250ZXh0ID0ge307XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVZhcmlhbnRQcm9wczsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IHZhcmlhbnRQcm9wc1tpXTtcclxuICAgICAgICBjb25zdCBwcm9wID0gdmlzdWFsRWxlbWVudC5wcm9wc1tuYW1lXTtcclxuICAgICAgICBpZiAoaXNWYXJpYW50TGFiZWwocHJvcCkgfHwgcHJvcCA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgY29udGV4dFtuYW1lXSA9IHByb3A7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbnRleHQ7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGdldFZhcmlhbnRDb250ZXh0IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/get-variant-context.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs":
|
||
/*!*************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs ***!
|
||
\*************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isControllingVariants: function() { return /* binding */ isControllingVariants; },\n/* harmony export */ isVariantNode: function() { return /* binding */ isVariantNode; }\n/* harmony export */ });\n/* harmony import */ var _animation_utils_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../animation/utils/is-animation-controls.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs\");\n/* harmony import */ var _is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./is-variant-label.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs\");\n/* harmony import */ var _variant_props_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./variant-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/variant-props.mjs\");\n\r\n\r\n\r\n\r\nfunction isControllingVariants(props) {\r\n return ((0,_animation_utils_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_0__.isAnimationControls)(props.animate) ||\r\n _variant_props_mjs__WEBPACK_IMPORTED_MODULE_1__.variantProps.some((name) => (0,_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_2__.isVariantLabel)(props[name])));\r\n}\r\nfunction isVariantNode(props) {\r\n return Boolean(isControllingVariants(props) || props.variants);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLWNvbnRyb2xsaW5nLXZhcmlhbnRzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFzRjtBQUM5QjtBQUNMO0FBQ25EO0FBQ0E7QUFDQSxZQUFZLCtGQUFtQjtBQUMvQixRQUFRLDREQUFZLGdCQUFnQixxRUFBYztBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2dEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLWNvbnRyb2xsaW5nLXZhcmlhbnRzLm1qcz85ODMyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQW5pbWF0aW9uQ29udHJvbHMgfSBmcm9tICcuLi8uLi9hbmltYXRpb24vdXRpbHMvaXMtYW5pbWF0aW9uLWNvbnRyb2xzLm1qcyc7XHJcbmltcG9ydCB7IGlzVmFyaWFudExhYmVsIH0gZnJvbSAnLi9pcy12YXJpYW50LWxhYmVsLm1qcyc7XHJcbmltcG9ydCB7IHZhcmlhbnRQcm9wcyB9IGZyb20gJy4vdmFyaWFudC1wcm9wcy5tanMnO1xyXG5cclxuZnVuY3Rpb24gaXNDb250cm9sbGluZ1ZhcmlhbnRzKHByb3BzKSB7XHJcbiAgICByZXR1cm4gKGlzQW5pbWF0aW9uQ29udHJvbHMocHJvcHMuYW5pbWF0ZSkgfHxcclxuICAgICAgICB2YXJpYW50UHJvcHMuc29tZSgobmFtZSkgPT4gaXNWYXJpYW50TGFiZWwocHJvcHNbbmFtZV0pKSk7XHJcbn1cclxuZnVuY3Rpb24gaXNWYXJpYW50Tm9kZShwcm9wcykge1xyXG4gICAgcmV0dXJuIEJvb2xlYW4oaXNDb250cm9sbGluZ1ZhcmlhbnRzKHByb3BzKSB8fCBwcm9wcy52YXJpYW50cyk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGlzQ29udHJvbGxpbmdWYXJpYW50cywgaXNWYXJpYW50Tm9kZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs ***!
|
||
\******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isVariantLabel: function() { return /* binding */ isVariantLabel; }\n/* harmony export */ });\n/**\r\n * Decides if the supplied variable is variant label\r\n */\r\nfunction isVariantLabel(v) {\r\n return typeof v === \"string\" || Array.isArray(v);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLXZhcmlhbnQtbGFiZWwubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUMwQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci91dGlscy9pcy12YXJpYW50LWxhYmVsLm1qcz80NDFlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBEZWNpZGVzIGlmIHRoZSBzdXBwbGllZCB2YXJpYWJsZSBpcyB2YXJpYW50IGxhYmVsXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1ZhcmlhbnRMYWJlbCh2KSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHYgPT09IFwic3RyaW5nXCIgfHwgQXJyYXkuaXNBcnJheSh2KTtcclxufVxyXG5cclxuZXhwb3J0IHsgaXNWYXJpYW50TGFiZWwgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/motion-values.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/utils/motion-values.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ updateMotionValuesFromProps: function() { return /* binding */ updateMotionValuesFromProps; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n\r\n\r\nfunction updateMotionValuesFromProps(element, next, prev) {\r\n for (const key in next) {\r\n const nextValue = next[key];\r\n const prevValue = prev[key];\r\n if ((0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(nextValue)) {\r\n /**\r\n * If this is a motion value found in props or style, we want to add it\r\n * to our visual element's motion value map.\r\n */\r\n element.addValue(key, nextValue);\r\n }\r\n else if ((0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(prevValue)) {\r\n /**\r\n * If we're swapping from a motion value to a static value,\r\n * create a new motion value from that\r\n */\r\n element.addValue(key, (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.motionValue)(nextValue, { owner: element }));\r\n }\r\n else if (prevValue !== nextValue) {\r\n /**\r\n * If this is a flat value that has changed, update the motion value\r\n * or create one if it doesn't exist. We only want to do this if we're\r\n * not handling the value with our animation state.\r\n */\r\n if (element.hasValue(key)) {\r\n const existingValue = element.getValue(key);\r\n if (existingValue.liveStyle === true) {\r\n existingValue.jump(nextValue);\r\n }\r\n else if (!existingValue.hasAnimated) {\r\n existingValue.set(nextValue);\r\n }\r\n }\r\n else {\r\n const latestValue = element.getStaticValue(key);\r\n element.addValue(key, (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.motionValue)(latestValue !== undefined ? latestValue : nextValue, { owner: element }));\r\n }\r\n }\r\n }\r\n // Handle removed values\r\n for (const key in prev) {\r\n if (next[key] === undefined)\r\n element.removeValue(key);\r\n }\r\n return next;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL21vdGlvbi12YWx1ZXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3RDtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx5REFBYTtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIseURBQWE7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsdURBQVcsY0FBYyxnQkFBZ0I7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLHVEQUFXLHdEQUF3RCxnQkFBZ0I7QUFDekg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUN1QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci91dGlscy9tb3Rpb24tdmFsdWVzLm1qcz9jNzU0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTW90aW9uVmFsdWUsIG1vdGlvblZhbHVlIH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcblxyXG5mdW5jdGlvbiB1cGRhdGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMoZWxlbWVudCwgbmV4dCwgcHJldikge1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gbmV4dCkge1xyXG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IG5leHRba2V5XTtcclxuICAgICAgICBjb25zdCBwcmV2VmFsdWUgPSBwcmV2W2tleV07XHJcbiAgICAgICAgaWYgKGlzTW90aW9uVmFsdWUobmV4dFZhbHVlKSkge1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogSWYgdGhpcyBpcyBhIG1vdGlvbiB2YWx1ZSBmb3VuZCBpbiBwcm9wcyBvciBzdHlsZSwgd2Ugd2FudCB0byBhZGQgaXRcclxuICAgICAgICAgICAgICogdG8gb3VyIHZpc3VhbCBlbGVtZW50J3MgbW90aW9uIHZhbHVlIG1hcC5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGVsZW1lbnQuYWRkVmFsdWUoa2V5LCBuZXh0VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpc01vdGlvblZhbHVlKHByZXZWYWx1ZSkpIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIElmIHdlJ3JlIHN3YXBwaW5nIGZyb20gYSBtb3Rpb24gdmFsdWUgdG8gYSBzdGF0aWMgdmFsdWUsXHJcbiAgICAgICAgICAgICAqIGNyZWF0ZSBhIG5ldyBtb3Rpb24gdmFsdWUgZnJvbSB0aGF0XHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBlbGVtZW50LmFkZFZhbHVlKGtleSwgbW90aW9uVmFsdWUobmV4dFZhbHVlLCB7IG93bmVyOiBlbGVtZW50IH0pKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocHJldlZhbHVlICE9PSBuZXh0VmFsdWUpIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIElmIHRoaXMgaXMgYSBmbGF0IHZhbHVlIHRoYXQgaGFzIGNoYW5nZWQsIHVwZGF0ZSB0aGUgbW90aW9uIHZhbHVlXHJcbiAgICAgICAgICAgICAqIG9yIGNyZWF0ZSBvbmUgaWYgaXQgZG9lc24ndCBleGlzdC4gV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgaWYgd2UncmVcclxuICAgICAgICAgICAgICogbm90IGhhbmRsaW5nIHRoZSB2YWx1ZSB3aXRoIG91ciBhbmltYXRpb24gc3RhdGUuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5oYXNWYWx1ZShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gZWxlbWVudC5nZXRWYWx1ZShrZXkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nVmFsdWUubGl2ZVN0eWxlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdWYWx1ZS5qdW1wKG5leHRWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICghZXhpc3RpbmdWYWx1ZS5oYXNBbmltYXRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nVmFsdWUuc2V0KG5leHRWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsYXRlc3RWYWx1ZSA9IGVsZW1lbnQuZ2V0U3RhdGljVmFsdWUoa2V5KTtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuYWRkVmFsdWUoa2V5LCBtb3Rpb25WYWx1ZShsYXRlc3RWYWx1ZSAhPT0gdW5kZWZpbmVkID8gbGF0ZXN0VmFsdWUgOiBuZXh0VmFsdWUsIHsgb3duZXI6IGVsZW1lbnQgfSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gSGFuZGxlIHJlbW92ZWQgdmFsdWVzXHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBwcmV2KSB7XHJcbiAgICAgICAgaWYgKG5leHRba2V5XSA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICBlbGVtZW50LnJlbW92ZVZhbHVlKGtleSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV4dDtcclxufVxyXG5cclxuZXhwb3J0IHsgdXBkYXRlTW90aW9uVmFsdWVzRnJvbVByb3BzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/motion-values.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs ***!
|
||
\**************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveVariant: function() { return /* binding */ resolveVariant; }\n/* harmony export */ });\n/* harmony import */ var _resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./resolve-variants.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs\");\n\r\n\r\nfunction resolveVariant(visualElement, definition, custom) {\r\n const props = visualElement.getProps();\r\n return (0,_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveVariantFromProps)(props, definition, custom !== undefined ? custom : props.custom, visualElement);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3Jlc29sdmUtZHluYW1pYy12YXJpYW50cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUU7QUFDakU7QUFDQTtBQUNBO0FBQ0EsV0FBVyw4RUFBdUI7QUFDbEM7QUFDQTtBQUMwQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci91dGlscy9yZXNvbHZlLWR5bmFtaWMtdmFyaWFudHMubWpzPzE2MmQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZVZhcmlhbnRGcm9tUHJvcHMgfSBmcm9tICcuL3Jlc29sdmUtdmFyaWFudHMubWpzJztcclxuXHJcbmZ1bmN0aW9uIHJlc29sdmVWYXJpYW50KHZpc3VhbEVsZW1lbnQsIGRlZmluaXRpb24sIGN1c3RvbSkge1xyXG4gICAgY29uc3QgcHJvcHMgPSB2aXN1YWxFbGVtZW50LmdldFByb3BzKCk7XHJcbiAgICByZXR1cm4gcmVzb2x2ZVZhcmlhbnRGcm9tUHJvcHMocHJvcHMsIGRlZmluaXRpb24sIGN1c3RvbSAhPT0gdW5kZWZpbmVkID8gY3VzdG9tIDogcHJvcHMuY3VzdG9tLCB2aXN1YWxFbGVtZW50KTtcclxufVxyXG5cclxuZXhwb3J0IHsgcmVzb2x2ZVZhcmlhbnQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs ***!
|
||
\******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveVariantFromProps: function() { return /* binding */ resolveVariantFromProps; }\n/* harmony export */ });\nfunction getValueState(visualElement) {\r\n const state = [{}, {}];\r\n visualElement?.values.forEach((value, key) => {\r\n state[0][key] = value.get();\r\n state[1][key] = value.getVelocity();\r\n });\r\n return state;\r\n}\r\nfunction resolveVariantFromProps(props, definition, custom, visualElement) {\r\n /**\r\n * If the variant definition is a function, resolve.\r\n */\r\n if (typeof definition === \"function\") {\r\n const [current, velocity] = getValueState(visualElement);\r\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\r\n }\r\n /**\r\n * If the variant definition is a variant label, or\r\n * the function returned a variant label, resolve.\r\n */\r\n if (typeof definition === \"string\") {\r\n definition = props.variants && props.variants[definition];\r\n }\r\n /**\r\n * At this point we've resolved both functions and variant labels,\r\n * but the resolved variant label might itself have been a function.\r\n * If so, resolve. This can only have returned a valid target object.\r\n */\r\n if (typeof definition === \"function\") {\r\n const [current, velocity] = getValueState(visualElement);\r\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\r\n }\r\n return definition;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3Jlc29sdmUtdmFyaWFudHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLHFCQUFxQixJQUFJO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ21DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3Jlc29sdmUtdmFyaWFudHMubWpzPzJkMGUiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gZ2V0VmFsdWVTdGF0ZSh2aXN1YWxFbGVtZW50KSB7XHJcbiAgICBjb25zdCBzdGF0ZSA9IFt7fSwge31dO1xyXG4gICAgdmlzdWFsRWxlbWVudD8udmFsdWVzLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcclxuICAgICAgICBzdGF0ZVswXVtrZXldID0gdmFsdWUuZ2V0KCk7XHJcbiAgICAgICAgc3RhdGVbMV1ba2V5XSA9IHZhbHVlLmdldFZlbG9jaXR5KCk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBzdGF0ZTtcclxufVxyXG5mdW5jdGlvbiByZXNvbHZlVmFyaWFudEZyb21Qcm9wcyhwcm9wcywgZGVmaW5pdGlvbiwgY3VzdG9tLCB2aXN1YWxFbGVtZW50KSB7XHJcbiAgICAvKipcclxuICAgICAqIElmIHRoZSB2YXJpYW50IGRlZmluaXRpb24gaXMgYSBmdW5jdGlvbiwgcmVzb2x2ZS5cclxuICAgICAqL1xyXG4gICAgaWYgKHR5cGVvZiBkZWZpbml0aW9uID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICBjb25zdCBbY3VycmVudCwgdmVsb2NpdHldID0gZ2V0VmFsdWVTdGF0ZSh2aXN1YWxFbGVtZW50KTtcclxuICAgICAgICBkZWZpbml0aW9uID0gZGVmaW5pdGlvbihjdXN0b20gIT09IHVuZGVmaW5lZCA/IGN1c3RvbSA6IHByb3BzLmN1c3RvbSwgY3VycmVudCwgdmVsb2NpdHkpO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB0aGUgdmFyaWFudCBkZWZpbml0aW9uIGlzIGEgdmFyaWFudCBsYWJlbCwgb3JcclxuICAgICAqIHRoZSBmdW5jdGlvbiByZXR1cm5lZCBhIHZhcmlhbnQgbGFiZWwsIHJlc29sdmUuXHJcbiAgICAgKi9cclxuICAgIGlmICh0eXBlb2YgZGVmaW5pdGlvbiA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGRlZmluaXRpb24gPSBwcm9wcy52YXJpYW50cyAmJiBwcm9wcy52YXJpYW50c1tkZWZpbml0aW9uXTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQXQgdGhpcyBwb2ludCB3ZSd2ZSByZXNvbHZlZCBib3RoIGZ1bmN0aW9ucyBhbmQgdmFyaWFudCBsYWJlbHMsXHJcbiAgICAgKiBidXQgdGhlIHJlc29sdmVkIHZhcmlhbnQgbGFiZWwgbWlnaHQgaXRzZWxmIGhhdmUgYmVlbiBhIGZ1bmN0aW9uLlxyXG4gICAgICogSWYgc28sIHJlc29sdmUuIFRoaXMgY2FuIG9ubHkgaGF2ZSByZXR1cm5lZCBhIHZhbGlkIHRhcmdldCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGlmICh0eXBlb2YgZGVmaW5pdGlvbiA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgY29uc3QgW2N1cnJlbnQsIHZlbG9jaXR5XSA9IGdldFZhbHVlU3RhdGUodmlzdWFsRWxlbWVudCk7XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9IGRlZmluaXRpb24oY3VzdG9tICE9PSB1bmRlZmluZWQgPyBjdXN0b20gOiBwcm9wcy5jdXN0b20sIGN1cnJlbnQsIHZlbG9jaXR5KTtcclxuICAgIH1cclxuICAgIHJldHVybiBkZWZpbml0aW9uO1xyXG59XHJcblxyXG5leHBvcnQgeyByZXNvbHZlVmFyaWFudEZyb21Qcm9wcyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/setters.mjs":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/utils/setters.mjs ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setTarget: function() { return /* binding */ setTarget; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _animation_utils_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../animation/utils/is-keyframes-target.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs\");\n/* harmony import */ var _resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resolve-dynamic-variants.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n\r\n\r\n\r\n\r\n/**\r\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\r\n * it doesn't exist.\r\n */\r\nfunction setMotionValue(visualElement, key, value) {\r\n if (visualElement.hasValue(key)) {\r\n visualElement.getValue(key).set(value);\r\n }\r\n else {\r\n visualElement.addValue(key, (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.motionValue)(value));\r\n }\r\n}\r\nfunction resolveFinalValueInKeyframes(v) {\r\n // TODO maybe throw if v.length - 1 is placeholder token?\r\n return (0,_animation_utils_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_1__.isKeyframesTarget)(v) ? v[v.length - 1] || 0 : v;\r\n}\r\nfunction setTarget(visualElement, definition) {\r\n const resolved = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(visualElement, definition);\r\n let { transitionEnd = {}, transition = {}, ...target } = resolved || {};\r\n target = { ...target, ...transitionEnd };\r\n for (const key in target) {\r\n const value = resolveFinalValueInKeyframes(target[key]);\r\n setMotionValue(visualElement, key, value);\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3NldHRlcnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBeUM7QUFDeUM7QUFDbEI7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsdURBQVc7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLDJGQUFpQjtBQUM1QjtBQUNBO0FBQ0EscUJBQXFCLDZFQUFjO0FBQ25DLFVBQVUsa0JBQWtCLGlCQUFpQixjQUFjO0FBQzNELGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDcUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvdXRpbHMvc2V0dGVycy5tanM/MGFiNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb3Rpb25WYWx1ZSB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5pbXBvcnQgeyBpc0tleWZyYW1lc1RhcmdldCB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi91dGlscy9pcy1rZXlmcmFtZXMtdGFyZ2V0Lm1qcyc7XHJcbmltcG9ydCB7IHJlc29sdmVWYXJpYW50IH0gZnJvbSAnLi9yZXNvbHZlLWR5bmFtaWMtdmFyaWFudHMubWpzJztcclxuXHJcbi8qKlxyXG4gKiBTZXQgVmlzdWFsRWxlbWVudCdzIE1vdGlvblZhbHVlLCBjcmVhdGluZyBhIG5ldyBNb3Rpb25WYWx1ZSBmb3IgaXQgaWZcclxuICogaXQgZG9lc24ndCBleGlzdC5cclxuICovXHJcbmZ1bmN0aW9uIHNldE1vdGlvblZhbHVlKHZpc3VhbEVsZW1lbnQsIGtleSwgdmFsdWUpIHtcclxuICAgIGlmICh2aXN1YWxFbGVtZW50Lmhhc1ZhbHVlKGtleSkpIHtcclxuICAgICAgICB2aXN1YWxFbGVtZW50LmdldFZhbHVlKGtleSkuc2V0KHZhbHVlKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZpc3VhbEVsZW1lbnQuYWRkVmFsdWUoa2V5LCBtb3Rpb25WYWx1ZSh2YWx1ZSkpO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIHJlc29sdmVGaW5hbFZhbHVlSW5LZXlmcmFtZXModikge1xyXG4gICAgLy8gVE9ETyBtYXliZSB0aHJvdyBpZiB2Lmxlbmd0aCAtIDEgaXMgcGxhY2Vob2xkZXIgdG9rZW4/XHJcbiAgICByZXR1cm4gaXNLZXlmcmFtZXNUYXJnZXQodikgPyB2W3YubGVuZ3RoIC0gMV0gfHwgMCA6IHY7XHJcbn1cclxuZnVuY3Rpb24gc2V0VGFyZ2V0KHZpc3VhbEVsZW1lbnQsIGRlZmluaXRpb24pIHtcclxuICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVZhcmlhbnQodmlzdWFsRWxlbWVudCwgZGVmaW5pdGlvbik7XHJcbiAgICBsZXQgeyB0cmFuc2l0aW9uRW5kID0ge30sIHRyYW5zaXRpb24gPSB7fSwgLi4udGFyZ2V0IH0gPSByZXNvbHZlZCB8fCB7fTtcclxuICAgIHRhcmdldCA9IHsgLi4udGFyZ2V0LCAuLi50cmFuc2l0aW9uRW5kIH07XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0YXJnZXQpIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc29sdmVGaW5hbFZhbHVlSW5LZXlmcmFtZXModGFyZ2V0W2tleV0pO1xyXG4gICAgICAgIHNldE1vdGlvblZhbHVlKHZpc3VhbEVsZW1lbnQsIGtleSwgdmFsdWUpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgeyBzZXRUYXJnZXQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/setters.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/variant-props.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/render/utils/variant-props.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ variantPriorityOrder: function() { return /* binding */ variantPriorityOrder; },\n/* harmony export */ variantProps: function() { return /* binding */ variantProps; }\n/* harmony export */ });\nconst variantPriorityOrder = [\r\n \"animate\",\r\n \"whileInView\",\r\n \"whileFocus\",\r\n \"whileHover\",\r\n \"whileTap\",\r\n \"whileDrag\",\r\n \"exit\",\r\n];\r\nconst variantProps = [\"initial\", ...variantPriorityOrder];\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3ZhcmlhbnQtcHJvcHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUM4QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci91dGlscy92YXJpYW50LXByb3BzLm1qcz8xNGRiIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHZhcmlhbnRQcmlvcml0eU9yZGVyID0gW1xyXG4gICAgXCJhbmltYXRlXCIsXHJcbiAgICBcIndoaWxlSW5WaWV3XCIsXHJcbiAgICBcIndoaWxlRm9jdXNcIixcclxuICAgIFwid2hpbGVIb3ZlclwiLFxyXG4gICAgXCJ3aGlsZVRhcFwiLFxyXG4gICAgXCJ3aGlsZURyYWdcIixcclxuICAgIFwiZXhpdFwiLFxyXG5dO1xyXG5jb25zdCB2YXJpYW50UHJvcHMgPSBbXCJpbml0aWFsXCIsIC4uLnZhcmlhbnRQcmlvcml0eU9yZGVyXTtcclxuXHJcbmV4cG9ydCB7IHZhcmlhbnRQcmlvcml0eU9yZGVyLCB2YXJpYW50UHJvcHMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/utils/variant-props.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/delay.mjs":
|
||
/*!************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/utils/delay.mjs ***!
|
||
\************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ delay: function() { return /* binding */ delay; },\n/* harmony export */ delayInSeconds: function() { return /* binding */ delayInSeconds; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n\r\n\r\n\r\n/**\r\n * Timeout defined in ms\r\n */\r\nfunction delay(callback, timeout) {\r\n const start = motion_dom__WEBPACK_IMPORTED_MODULE_0__.time.now();\r\n const checkElapsed = ({ timestamp }) => {\r\n const elapsed = timestamp - start;\r\n if (elapsed >= timeout) {\r\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(checkElapsed);\r\n callback(elapsed - timeout);\r\n }\r\n };\r\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frame.setup(checkElapsed, true);\r\n return () => (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(checkElapsed);\r\n}\r\nfunction delayInSeconds(callback, timeout) {\r\n return delay(callback, (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.secondsToMilliseconds)(timeout));\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvZGVsYXkubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXNEO0FBQ0Q7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiw0Q0FBSTtBQUN0Qiw0QkFBNEIsV0FBVztBQUN2QztBQUNBO0FBQ0EsWUFBWSx1REFBVztBQUN2QjtBQUNBO0FBQ0E7QUFDQSxJQUFJLDZDQUFLO0FBQ1QsaUJBQWlCLHVEQUFXO0FBQzVCO0FBQ0E7QUFDQSwyQkFBMkIsbUVBQXFCO0FBQ2hEO0FBQ0E7QUFDaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy91dGlscy9kZWxheS5tanM/NTQwNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0aW1lLCBmcmFtZSwgY2FuY2VsRnJhbWUgfSBmcm9tICdtb3Rpb24tZG9tJztcclxuaW1wb3J0IHsgc2Vjb25kc1RvTWlsbGlzZWNvbmRzIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBUaW1lb3V0IGRlZmluZWQgaW4gbXNcclxuICovXHJcbmZ1bmN0aW9uIGRlbGF5KGNhbGxiYWNrLCB0aW1lb3V0KSB7XHJcbiAgICBjb25zdCBzdGFydCA9IHRpbWUubm93KCk7XHJcbiAgICBjb25zdCBjaGVja0VsYXBzZWQgPSAoeyB0aW1lc3RhbXAgfSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGVsYXBzZWQgPSB0aW1lc3RhbXAgLSBzdGFydDtcclxuICAgICAgICBpZiAoZWxhcHNlZCA+PSB0aW1lb3V0KSB7XHJcbiAgICAgICAgICAgIGNhbmNlbEZyYW1lKGNoZWNrRWxhcHNlZCk7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKGVsYXBzZWQgLSB0aW1lb3V0KTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgZnJhbWUuc2V0dXAoY2hlY2tFbGFwc2VkLCB0cnVlKTtcclxuICAgIHJldHVybiAoKSA9PiBjYW5jZWxGcmFtZShjaGVja0VsYXBzZWQpO1xyXG59XHJcbmZ1bmN0aW9uIGRlbGF5SW5TZWNvbmRzKGNhbGxiYWNrLCB0aW1lb3V0KSB7XHJcbiAgICByZXR1cm4gZGVsYXkoY2FsbGJhY2ssIHNlY29uZHNUb01pbGxpc2Vjb25kcyh0aW1lb3V0KSk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGRlbGF5LCBkZWxheUluU2Vjb25kcyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/delay.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/distance.mjs":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/utils/distance.mjs ***!
|
||
\***************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ distance: function() { return /* binding */ distance; },\n/* harmony export */ distance2D: function() { return /* binding */ distance2D; }\n/* harmony export */ });\nconst distance = (a, b) => Math.abs(a - b);\r\nfunction distance2D(a, b) {\r\n // Multi-dimensional\r\n const xDelta = distance(a.x, b.x);\r\n const yDelta = distance(a.y, b.y);\r\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvZGlzdGFuY2UubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNnQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3V0aWxzL2Rpc3RhbmNlLm1qcz8wZjM2Il0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGRpc3RhbmNlID0gKGEsIGIpID0+IE1hdGguYWJzKGEgLSBiKTtcclxuZnVuY3Rpb24gZGlzdGFuY2UyRChhLCBiKSB7XHJcbiAgICAvLyBNdWx0aS1kaW1lbnNpb25hbFxyXG4gICAgY29uc3QgeERlbHRhID0gZGlzdGFuY2UoYS54LCBiLngpO1xyXG4gICAgY29uc3QgeURlbHRhID0gZGlzdGFuY2UoYS55LCBiLnkpO1xyXG4gICAgcmV0dXJuIE1hdGguc3FydCh4RGVsdGEgKiogMiArIHlEZWx0YSAqKiAyKTtcclxufVxyXG5cclxuZXhwb3J0IHsgZGlzdGFuY2UsIGRpc3RhbmNlMkQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/distance.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/utils/get-context-window.mjs ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getContextWindow: function() { return /* binding */ getContextWindow; }\n/* harmony export */ });\n// Fixes https://github.com/motiondivision/motion/issues/2270\r\nconst getContextWindow = ({ current }) => {\r\n return current ? current.ownerDocument.defaultView : null;\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvZ2V0LWNvbnRleHQtd2luZG93Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQSw0QkFBNEIsU0FBUztBQUNyQztBQUNBO0FBQ0E7QUFDNEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy91dGlscy9nZXQtY29udGV4dC13aW5kb3cubWpzPzdjNGEiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRml4ZXMgaHR0cHM6Ly9naXRodWIuY29tL21vdGlvbmRpdmlzaW9uL21vdGlvbi9pc3N1ZXMvMjI3MFxyXG5jb25zdCBnZXRDb250ZXh0V2luZG93ID0gKHsgY3VycmVudCB9KSA9PiB7XHJcbiAgICByZXR1cm4gY3VycmVudCA/IGN1cnJlbnQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyA6IG51bGw7XHJcbn07XHJcblxyXG5leHBvcnQgeyBnZXRDb250ZXh0V2luZG93IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/utils/is-browser.mjs ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isBrowser: function() { return /* binding */ isBrowser; }\n/* harmony export */ });\nconst isBrowser = typeof window !== \"undefined\";\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvaXMtYnJvd3Nlci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDcUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy91dGlscy9pcy1icm93c2VyLm1qcz81NWViIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzQnJvd3NlciA9IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCI7XHJcblxyXG5leHBvcnQgeyBpc0Jyb3dzZXIgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isRefObject: function() { return /* binding */ isRefObject; }\n/* harmony export */ });\nfunction isRefObject(ref) {\r\n return (ref &&\r\n typeof ref === \"object\" &&\r\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvaXMtcmVmLW9iamVjdC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUN1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3V0aWxzL2lzLXJlZi1vYmplY3QubWpzP2M1ZGMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gaXNSZWZPYmplY3QocmVmKSB7XHJcbiAgICByZXR1cm4gKHJlZiAmJlxyXG4gICAgICAgIHR5cGVvZiByZWYgPT09IFwib2JqZWN0XCIgJiZcclxuICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVmLCBcImN1cnJlbnRcIikpO1xyXG59XHJcblxyXG5leHBvcnQgeyBpc1JlZk9iamVjdCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ initPrefersReducedMotion: function() { return /* binding */ initPrefersReducedMotion; }\n/* harmony export */ });\n/* harmony import */ var _is_browser_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../is-browser.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs\");\n/* harmony import */ var _state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs\");\n\r\n\r\n\r\nfunction initPrefersReducedMotion() {\r\n _state_mjs__WEBPACK_IMPORTED_MODULE_0__.hasReducedMotionListener.current = true;\r\n if (!_is_browser_mjs__WEBPACK_IMPORTED_MODULE_1__.isBrowser)\r\n return;\r\n if (window.matchMedia) {\r\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\r\n const setReducedMotionPreferences = () => (_state_mjs__WEBPACK_IMPORTED_MODULE_0__.prefersReducedMotion.current = motionMediaQuery.matches);\r\n motionMediaQuery.addEventListener(\"change\", setReducedMotionPreferences);\r\n setReducedMotionPreferences();\r\n }\r\n else {\r\n _state_mjs__WEBPACK_IMPORTED_MODULE_0__.prefersReducedMotion.current = false;\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvcmVkdWNlZC1tb3Rpb24vaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE4QztBQUMrQjtBQUM3RTtBQUNBO0FBQ0EsSUFBSSxnRUFBd0I7QUFDNUIsU0FBUyxzREFBUztBQUNsQjtBQUNBO0FBQ0E7QUFDQSxtREFBbUQsNERBQW9CO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSw0REFBb0I7QUFDNUI7QUFDQTtBQUNBO0FBQ29DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvcmVkdWNlZC1tb3Rpb24vaW5kZXgubWpzPzI2MDciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSAnLi4vaXMtYnJvd3Nlci5tanMnO1xyXG5pbXBvcnQgeyBoYXNSZWR1Y2VkTW90aW9uTGlzdGVuZXIsIHByZWZlcnNSZWR1Y2VkTW90aW9uIH0gZnJvbSAnLi9zdGF0ZS5tanMnO1xyXG5cclxuZnVuY3Rpb24gaW5pdFByZWZlcnNSZWR1Y2VkTW90aW9uKCkge1xyXG4gICAgaGFzUmVkdWNlZE1vdGlvbkxpc3RlbmVyLmN1cnJlbnQgPSB0cnVlO1xyXG4gICAgaWYgKCFpc0Jyb3dzZXIpXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgaWYgKHdpbmRvdy5tYXRjaE1lZGlhKSB7XHJcbiAgICAgICAgY29uc3QgbW90aW9uTWVkaWFRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKFwiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pXCIpO1xyXG4gICAgICAgIGNvbnN0IHNldFJlZHVjZWRNb3Rpb25QcmVmZXJlbmNlcyA9ICgpID0+IChwcmVmZXJzUmVkdWNlZE1vdGlvbi5jdXJyZW50ID0gbW90aW9uTWVkaWFRdWVyeS5tYXRjaGVzKTtcclxuICAgICAgICBtb3Rpb25NZWRpYVF1ZXJ5LmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwgc2V0UmVkdWNlZE1vdGlvblByZWZlcmVuY2VzKTtcclxuICAgICAgICBzZXRSZWR1Y2VkTW90aW9uUHJlZmVyZW5jZXMoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHByZWZlcnNSZWR1Y2VkTW90aW9uLmN1cnJlbnQgPSBmYWxzZTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHsgaW5pdFByZWZlcnNSZWR1Y2VkTW90aW9uIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasReducedMotionListener: function() { return /* binding */ hasReducedMotionListener; },\n/* harmony export */ prefersReducedMotion: function() { return /* binding */ prefersReducedMotion; }\n/* harmony export */ });\n// Does this device prefer reduced motion? Returns `null` server-side.\r\nconst prefersReducedMotion = { current: null };\r\nconst hasReducedMotionListener = { current: false };\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvcmVkdWNlZC1tb3Rpb24vc3RhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DO0FBQzBEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvcmVkdWNlZC1tb3Rpb24vc3RhdGUubWpzPzFkNGMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRG9lcyB0aGlzIGRldmljZSBwcmVmZXIgcmVkdWNlZCBtb3Rpb24/IFJldHVybnMgYG51bGxgIHNlcnZlci1zaWRlLlxyXG5jb25zdCBwcmVmZXJzUmVkdWNlZE1vdGlvbiA9IHsgY3VycmVudDogbnVsbCB9O1xyXG5jb25zdCBoYXNSZWR1Y2VkTW90aW9uTGlzdGVuZXIgPSB7IGN1cnJlbnQ6IGZhbHNlIH07XHJcblxyXG5leHBvcnQgeyBoYXNSZWR1Y2VkTW90aW9uTGlzdGVuZXIsIHByZWZlcnNSZWR1Y2VkTW90aW9uIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/shallow-compare.mjs":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/utils/shallow-compare.mjs ***!
|
||
\**********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ shallowCompare: function() { return /* binding */ shallowCompare; }\n/* harmony export */ });\nfunction shallowCompare(next, prev) {\r\n if (!Array.isArray(prev))\r\n return false;\r\n const prevLength = prev.length;\r\n if (prevLength !== next.length)\r\n return false;\r\n for (let i = 0; i < prevLength; i++) {\r\n if (prev[i] !== next[i])\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvc2hhbGxvdy1jb21wYXJlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGdCQUFnQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDMEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy91dGlscy9zaGFsbG93LWNvbXBhcmUubWpzP2JjYzYiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gc2hhbGxvd0NvbXBhcmUobmV4dCwgcHJldikge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHByZXYpKVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIGNvbnN0IHByZXZMZW5ndGggPSBwcmV2Lmxlbmd0aDtcclxuICAgIGlmIChwcmV2TGVuZ3RoICE9PSBuZXh0Lmxlbmd0aClcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByZXZMZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChwcmV2W2ldICE9PSBuZXh0W2ldKVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuZXhwb3J0IHsgc2hhbGxvd0NvbXBhcmUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/shallow-compare.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useComposedRefs: function() { return /* binding */ useComposedRefs; }\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\r\n\r\n/**\r\n * Taken from https://github.com/radix-ui/primitives/blob/main/packages/react/compose-refs/src/compose-refs.tsx\r\n */\r\n/**\r\n * Set a given ref to a given value\r\n * This utility takes care of different types of refs: callback refs and RefObject(s)\r\n */\r\nfunction setRef(ref, value) {\r\n if (typeof ref === \"function\") {\r\n return ref(value);\r\n }\r\n else if (ref !== null && ref !== undefined) {\r\n ref.current = value;\r\n }\r\n}\r\n/**\r\n * A utility to compose multiple refs together\r\n * Accepts callback refs and RefObject(s)\r\n */\r\nfunction composeRefs(...refs) {\r\n return (node) => {\r\n let hasCleanup = false;\r\n const cleanups = refs.map((ref) => {\r\n const cleanup = setRef(ref, node);\r\n if (!hasCleanup && typeof cleanup === \"function\") {\r\n hasCleanup = true;\r\n }\r\n return cleanup;\r\n });\r\n // React <19 will log an error to the console if a callback ref returns a\r\n // value. We don't use ref cleanups internally so this will only happen if a\r\n // user's ref callback returns a value, which we only expect if they are\r\n // using the cleanup functionality added in React 19.\r\n if (hasCleanup) {\r\n return () => {\r\n for (let i = 0; i < cleanups.length; i++) {\r\n const cleanup = cleanups[i];\r\n if (typeof cleanup === \"function\") {\r\n cleanup();\r\n }\r\n else {\r\n setRef(refs[i], null);\r\n }\r\n }\r\n };\r\n }\r\n };\r\n}\r\n/**\r\n * A custom hook that composes multiple refs\r\n * Accepts callback refs and RefObject(s)\r\n */\r\nfunction useComposedRefs(...refs) {\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n return react__WEBPACK_IMPORTED_MODULE_0__.useCallback(composeRefs(...refs), refs);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvdXNlLWNvbXBvc2VkLXJlZi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MscUJBQXFCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsOENBQWlCO0FBQzVCO0FBQ0E7QUFDMkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy91dGlscy91c2UtY29tcG9zZWQtcmVmLm1qcz8zZGNlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuXHJcbi8qKlxyXG4gKiBUYWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9yYWRpeC11aS9wcmltaXRpdmVzL2Jsb2IvbWFpbi9wYWNrYWdlcy9yZWFjdC9jb21wb3NlLXJlZnMvc3JjL2NvbXBvc2UtcmVmcy50c3hcclxuICovXHJcbi8qKlxyXG4gKiBTZXQgYSBnaXZlbiByZWYgdG8gYSBnaXZlbiB2YWx1ZVxyXG4gKiBUaGlzIHV0aWxpdHkgdGFrZXMgY2FyZSBvZiBkaWZmZXJlbnQgdHlwZXMgb2YgcmVmczogY2FsbGJhY2sgcmVmcyBhbmQgUmVmT2JqZWN0KHMpXHJcbiAqL1xyXG5mdW5jdGlvbiBzZXRSZWYocmVmLCB2YWx1ZSkge1xyXG4gICAgaWYgKHR5cGVvZiByZWYgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgIHJldHVybiByZWYodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAocmVmICE9PSBudWxsICYmIHJlZiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcclxuICAgIH1cclxufVxyXG4vKipcclxuICogQSB1dGlsaXR5IHRvIGNvbXBvc2UgbXVsdGlwbGUgcmVmcyB0b2dldGhlclxyXG4gKiBBY2NlcHRzIGNhbGxiYWNrIHJlZnMgYW5kIFJlZk9iamVjdChzKVxyXG4gKi9cclxuZnVuY3Rpb24gY29tcG9zZVJlZnMoLi4ucmVmcykge1xyXG4gICAgcmV0dXJuIChub2RlKSA9PiB7XHJcbiAgICAgICAgbGV0IGhhc0NsZWFudXAgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBjbGVhbnVwcyA9IHJlZnMubWFwKChyZWYpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY2xlYW51cCA9IHNldFJlZihyZWYsIG5vZGUpO1xyXG4gICAgICAgICAgICBpZiAoIWhhc0NsZWFudXAgJiYgdHlwZW9mIGNsZWFudXAgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgICAgICAgaGFzQ2xlYW51cCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGNsZWFudXA7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gUmVhY3QgPDE5IHdpbGwgbG9nIGFuIGVycm9yIHRvIHRoZSBjb25zb2xlIGlmIGEgY2FsbGJhY2sgcmVmIHJldHVybnMgYVxyXG4gICAgICAgIC8vIHZhbHVlLiBXZSBkb24ndCB1c2UgcmVmIGNsZWFudXBzIGludGVybmFsbHkgc28gdGhpcyB3aWxsIG9ubHkgaGFwcGVuIGlmIGFcclxuICAgICAgICAvLyB1c2VyJ3MgcmVmIGNhbGxiYWNrIHJldHVybnMgYSB2YWx1ZSwgd2hpY2ggd2Ugb25seSBleHBlY3QgaWYgdGhleSBhcmVcclxuICAgICAgICAvLyB1c2luZyB0aGUgY2xlYW51cCBmdW5jdGlvbmFsaXR5IGFkZGVkIGluIFJlYWN0IDE5LlxyXG4gICAgICAgIGlmIChoYXNDbGVhbnVwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsZWFudXBzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xlYW51cCA9IGNsZWFudXBzW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2xlYW51cCA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFudXAoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlZihyZWZzW2ldLCBudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG4vKipcclxuICogQSBjdXN0b20gaG9vayB0aGF0IGNvbXBvc2VzIG11bHRpcGxlIHJlZnNcclxuICogQWNjZXB0cyBjYWxsYmFjayByZWZzIGFuZCBSZWZPYmplY3QocylcclxuICovXHJcbmZ1bmN0aW9uIHVzZUNvbXBvc2VkUmVmcyguLi5yZWZzKSB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXHJcbiAgICByZXR1cm4gUmVhY3QudXNlQ2FsbGJhY2soY29tcG9zZVJlZnMoLi4ucmVmcyksIHJlZnMpO1xyXG59XHJcblxyXG5leHBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/utils/use-constant.mjs ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useConstant: function() { return /* binding */ useConstant; }\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\"use client\";\r\n\r\n\r\n/**\r\n * Creates a constant value over the lifecycle of a component.\r\n *\r\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\r\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\r\n * you can ensure that initialisers don't execute twice or more.\r\n */\r\nfunction useConstant(init) {\r\n const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\r\n if (ref.current === null) {\r\n ref.current = init();\r\n }\r\n return ref.current;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvdXNlLWNvbnN0YW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQytCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw2Q0FBTTtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy91dGlscy91c2UtY29uc3RhbnQubWpzPzJiZTgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcbmltcG9ydCB7IHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgY29uc3RhbnQgdmFsdWUgb3ZlciB0aGUgbGlmZWN5Y2xlIG9mIGEgY29tcG9uZW50LlxyXG4gKlxyXG4gKiBFdmVuIGlmIGB1c2VNZW1vYCBpcyBwcm92aWRlZCBhbiBlbXB0eSBhcnJheSBhcyBpdHMgZmluYWwgYXJndW1lbnQsIGl0IGRvZXNuJ3Qgb2ZmZXJcclxuICogYSBndWFyYW50ZWUgdGhhdCBpdCB3b24ndCByZS1ydW4gZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgbGF0ZXIgb24uIEJ5IHVzaW5nIGB1c2VDb25zdGFudGBcclxuICogeW91IGNhbiBlbnN1cmUgdGhhdCBpbml0aWFsaXNlcnMgZG9uJ3QgZXhlY3V0ZSB0d2ljZSBvciBtb3JlLlxyXG4gKi9cclxuZnVuY3Rpb24gdXNlQ29uc3RhbnQoaW5pdCkge1xyXG4gICAgY29uc3QgcmVmID0gdXNlUmVmKG51bGwpO1xyXG4gICAgaWYgKHJlZi5jdXJyZW50ID09PSBudWxsKSB7XHJcbiAgICAgICAgcmVmLmN1cnJlbnQgPSBpbml0KCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVmLmN1cnJlbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCB7IHVzZUNvbnN0YW50IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useIsomorphicLayoutEffect: function() { return /* binding */ useIsomorphicLayoutEffect; }\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 _is_browser_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-browser.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs\");\n\"use client\";\r\n\r\n\r\n\r\nconst useIsomorphicLayoutEffect = _is_browser_mjs__WEBPACK_IMPORTED_MODULE_1__.isBrowser ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvdXNlLWlzb21vcnBoaWMtZWZmZWN0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNtRDtBQUNOO0FBQzdDO0FBQ0Esa0NBQWtDLHNEQUFTLEdBQUcsa0RBQWUsR0FBRyw0Q0FBUztBQUN6RTtBQUNxQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3V0aWxzL3VzZS1pc29tb3JwaGljLWVmZmVjdC5tanM/ZWRhNiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IGlzQnJvd3NlciB9IGZyb20gJy4vaXMtYnJvd3Nlci5tanMnO1xyXG5cclxuY29uc3QgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCA9IGlzQnJvd3NlciA/IHVzZUxheW91dEVmZmVjdCA6IHVzZUVmZmVjdDtcclxuXHJcbmV4cG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-combine-values.mjs":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/value/use-combine-values.mjs ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCombineMotionValues: function() { return /* binding */ useCombineMotionValues; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var _utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/use-isomorphic-effect.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\");\n/* harmony import */ var _use_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./use-motion-value.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-motion-value.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\nfunction useCombineMotionValues(values, combineValues) {\r\n /**\r\n * Initialise the returned motion value. This remains the same between renders.\r\n */\r\n const value = (0,_use_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.useMotionValue)(combineValues());\r\n /**\r\n * Create a function that will update the template motion value with the latest values.\r\n * This is pre-bound so whenever a motion value updates it can schedule its\r\n * execution in Framesync. If it's already been scheduled it won't be fired twice\r\n * in a single frame.\r\n */\r\n const updateValue = () => value.set(combineValues());\r\n /**\r\n * Synchronously update the motion value with the latest values during the render.\r\n * This ensures that within a React render, the styles applied to the DOM are up-to-date.\r\n */\r\n updateValue();\r\n /**\r\n * Subscribe to all motion values found within the template. Whenever any of them change,\r\n * schedule an update.\r\n */\r\n (0,_utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_1__.useIsomorphicLayoutEffect)(() => {\r\n const scheduleUpdate = () => motion_dom__WEBPACK_IMPORTED_MODULE_2__.frame.preRender(updateValue, false, true);\r\n const subscriptions = values.map((v) => v.on(\"change\", scheduleUpdate));\r\n return () => {\r\n subscriptions.forEach((unsubscribe) => unsubscribe());\r\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.cancelFrame)(updateValue);\r\n };\r\n });\r\n return value;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdmFsdWUvdXNlLWNvbWJpbmUtdmFsdWVzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDZ0Q7QUFDK0I7QUFDdkI7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixxRUFBYztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksMkZBQXlCO0FBQzdCLHFDQUFxQyw2Q0FBSztBQUMxQztBQUNBO0FBQ0E7QUFDQSxZQUFZLHVEQUFXO0FBQ3ZCO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3ZhbHVlL3VzZS1jb21iaW5lLXZhbHVlcy5tanM/MDYwYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuaW1wb3J0IHsgY2FuY2VsRnJhbWUsIGZyYW1lIH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICcuLi91dGlscy91c2UtaXNvbW9ycGhpYy1lZmZlY3QubWpzJztcclxuaW1wb3J0IHsgdXNlTW90aW9uVmFsdWUgfSBmcm9tICcuL3VzZS1tb3Rpb24tdmFsdWUubWpzJztcclxuXHJcbmZ1bmN0aW9uIHVzZUNvbWJpbmVNb3Rpb25WYWx1ZXModmFsdWVzLCBjb21iaW5lVmFsdWVzKSB7XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpc2UgdGhlIHJldHVybmVkIG1vdGlvbiB2YWx1ZS4gVGhpcyByZW1haW5zIHRoZSBzYW1lIGJldHdlZW4gcmVuZGVycy5cclxuICAgICAqL1xyXG4gICAgY29uc3QgdmFsdWUgPSB1c2VNb3Rpb25WYWx1ZShjb21iaW5lVmFsdWVzKCkpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGUgYSBmdW5jdGlvbiB0aGF0IHdpbGwgdXBkYXRlIHRoZSB0ZW1wbGF0ZSBtb3Rpb24gdmFsdWUgd2l0aCB0aGUgbGF0ZXN0IHZhbHVlcy5cclxuICAgICAqIFRoaXMgaXMgcHJlLWJvdW5kIHNvIHdoZW5ldmVyIGEgbW90aW9uIHZhbHVlIHVwZGF0ZXMgaXQgY2FuIHNjaGVkdWxlIGl0c1xyXG4gICAgICogZXhlY3V0aW9uIGluIEZyYW1lc3luYy4gSWYgaXQncyBhbHJlYWR5IGJlZW4gc2NoZWR1bGVkIGl0IHdvbid0IGJlIGZpcmVkIHR3aWNlXHJcbiAgICAgKiBpbiBhIHNpbmdsZSBmcmFtZS5cclxuICAgICAqL1xyXG4gICAgY29uc3QgdXBkYXRlVmFsdWUgPSAoKSA9PiB2YWx1ZS5zZXQoY29tYmluZVZhbHVlcygpKTtcclxuICAgIC8qKlxyXG4gICAgICogU3luY2hyb25vdXNseSB1cGRhdGUgdGhlIG1vdGlvbiB2YWx1ZSB3aXRoIHRoZSBsYXRlc3QgdmFsdWVzIGR1cmluZyB0aGUgcmVuZGVyLlxyXG4gICAgICogVGhpcyBlbnN1cmVzIHRoYXQgd2l0aGluIGEgUmVhY3QgcmVuZGVyLCB0aGUgc3R5bGVzIGFwcGxpZWQgdG8gdGhlIERPTSBhcmUgdXAtdG8tZGF0ZS5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlVmFsdWUoKTtcclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaWJlIHRvIGFsbCBtb3Rpb24gdmFsdWVzIGZvdW5kIHdpdGhpbiB0aGUgdGVtcGxhdGUuIFdoZW5ldmVyIGFueSBvZiB0aGVtIGNoYW5nZSxcclxuICAgICAqIHNjaGVkdWxlIGFuIHVwZGF0ZS5cclxuICAgICAqL1xyXG4gICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVVcGRhdGUgPSAoKSA9PiBmcmFtZS5wcmVSZW5kZXIodXBkYXRlVmFsdWUsIGZhbHNlLCB0cnVlKTtcclxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gdmFsdWVzLm1hcCgodikgPT4gdi5vbihcImNoYW5nZVwiLCBzY2hlZHVsZVVwZGF0ZSkpO1xyXG4gICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMuZm9yRWFjaCgodW5zdWJzY3JpYmUpID0+IHVuc3Vic2NyaWJlKCkpO1xyXG4gICAgICAgICAgICBjYW5jZWxGcmFtZSh1cGRhdGVWYWx1ZSk7XHJcbiAgICAgICAgfTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgeyB1c2VDb21iaW5lTW90aW9uVmFsdWVzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-combine-values.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-computed.mjs":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/value/use-computed.mjs ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useComputed: function() { return /* binding */ useComputed; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _use_combine_values_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./use-combine-values.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-combine-values.mjs\");\n\"use client\";\r\n\r\n\r\n\r\nfunction useComputed(compute) {\r\n /**\r\n * Open session of collectMotionValues. Any MotionValue that calls get()\r\n * will be saved into this array.\r\n */\r\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.collectMotionValues.current = [];\r\n compute();\r\n const value = (0,_use_combine_values_mjs__WEBPACK_IMPORTED_MODULE_1__.useCombineMotionValues)(motion_dom__WEBPACK_IMPORTED_MODULE_0__.collectMotionValues.current, compute);\r\n /**\r\n * Synchronously close session of collectMotionValues.\r\n */\r\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.collectMotionValues.current = undefined;\r\n return value;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdmFsdWUvdXNlLWNvbXB1dGVkLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNpRDtBQUNpQjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLDJEQUFtQjtBQUN2QjtBQUNBLGtCQUFrQiwrRUFBc0IsQ0FBQywyREFBbUI7QUFDNUQ7QUFDQTtBQUNBO0FBQ0EsSUFBSSwyREFBbUI7QUFDdkI7QUFDQTtBQUNBO0FBQ3VCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdmFsdWUvdXNlLWNvbXB1dGVkLm1qcz81ZGVlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5pbXBvcnQgeyBjb2xsZWN0TW90aW9uVmFsdWVzIH0gZnJvbSAnbW90aW9uLWRvbSc7XHJcbmltcG9ydCB7IHVzZUNvbWJpbmVNb3Rpb25WYWx1ZXMgfSBmcm9tICcuL3VzZS1jb21iaW5lLXZhbHVlcy5tanMnO1xyXG5cclxuZnVuY3Rpb24gdXNlQ29tcHV0ZWQoY29tcHV0ZSkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBPcGVuIHNlc3Npb24gb2YgY29sbGVjdE1vdGlvblZhbHVlcy4gQW55IE1vdGlvblZhbHVlIHRoYXQgY2FsbHMgZ2V0KClcclxuICAgICAqIHdpbGwgYmUgc2F2ZWQgaW50byB0aGlzIGFycmF5LlxyXG4gICAgICovXHJcbiAgICBjb2xsZWN0TW90aW9uVmFsdWVzLmN1cnJlbnQgPSBbXTtcclxuICAgIGNvbXB1dGUoKTtcclxuICAgIGNvbnN0IHZhbHVlID0gdXNlQ29tYmluZU1vdGlvblZhbHVlcyhjb2xsZWN0TW90aW9uVmFsdWVzLmN1cnJlbnQsIGNvbXB1dGUpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTeW5jaHJvbm91c2x5IGNsb3NlIHNlc3Npb24gb2YgY29sbGVjdE1vdGlvblZhbHVlcy5cclxuICAgICAqL1xyXG4gICAgY29sbGVjdE1vdGlvblZhbHVlcy5jdXJyZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgeyB1c2VDb21wdXRlZCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-computed.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-motion-value.mjs":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/value/use-motion-value.mjs ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useMotionValue: function() { return /* binding */ useMotionValue; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\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 _context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../context/MotionConfigContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/use-constant.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Creates a `MotionValue` to track the state and velocity of a value.\r\n *\r\n * Usually, these are created automatically. For advanced use-cases, like use with `useTransform`, you can create `MotionValue`s externally and pass them into the animated component via the `style` prop.\r\n *\r\n * ```jsx\r\n * export const MyComponent = () => {\r\n * const scale = useMotionValue(1)\r\n *\r\n * return <motion.div style={{ scale }} />\r\n * }\r\n * ```\r\n *\r\n * @param initial - The initial state.\r\n *\r\n * @public\r\n */\r\nfunction useMotionValue(initial) {\r\n const value = (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_1__.useConstant)(() => (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.motionValue)(initial));\r\n /**\r\n * If this motion value is being used in static mode, like on\r\n * the Framer canvas, force components to rerender when the motion\r\n * value is updated.\r\n */\r\n const { isStatic } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_3__.MotionConfigContext);\r\n if (isStatic) {\r\n const [, setLatest] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initial);\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => value.on(\"change\", setLatest), []);\r\n }\r\n return value;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdmFsdWUvdXNlLW1vdGlvbi12YWx1ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUN5QztBQUNlO0FBQ2lCO0FBQ2pCO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLFNBQVM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixvRUFBVyxPQUFPLHVEQUFXO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFdBQVcsRUFBRSxpREFBVSxDQUFDLGlGQUFtQjtBQUN2RDtBQUNBLDhCQUE4QiwrQ0FBUTtBQUN0QyxRQUFRLGdEQUFTO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQzBCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdmFsdWUvdXNlLW1vdGlvbi12YWx1ZS5tanM/NTY1MSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuaW1wb3J0IHsgbW90aW9uVmFsdWUgfSBmcm9tICdtb3Rpb24tZG9tJztcclxuaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgTW90aW9uQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQvTW90aW9uQ29uZmlnQ29udGV4dC5tanMnO1xyXG5pbXBvcnQgeyB1c2VDb25zdGFudCB9IGZyb20gJy4uL3V0aWxzL3VzZS1jb25zdGFudC5tanMnO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBgTW90aW9uVmFsdWVgIHRvIHRyYWNrIHRoZSBzdGF0ZSBhbmQgdmVsb2NpdHkgb2YgYSB2YWx1ZS5cclxuICpcclxuICogVXN1YWxseSwgdGhlc2UgYXJlIGNyZWF0ZWQgYXV0b21hdGljYWxseS4gRm9yIGFkdmFuY2VkIHVzZS1jYXNlcywgbGlrZSB1c2Ugd2l0aCBgdXNlVHJhbnNmb3JtYCwgeW91IGNhbiBjcmVhdGUgYE1vdGlvblZhbHVlYHMgZXh0ZXJuYWxseSBhbmQgcGFzcyB0aGVtIGludG8gdGhlIGFuaW1hdGVkIGNvbXBvbmVudCB2aWEgdGhlIGBzdHlsZWAgcHJvcC5cclxuICpcclxuICogYGBganN4XHJcbiAqIGV4cG9ydCBjb25zdCBNeUNvbXBvbmVudCA9ICgpID0+IHtcclxuICogICBjb25zdCBzY2FsZSA9IHVzZU1vdGlvblZhbHVlKDEpXHJcbiAqXHJcbiAqICAgcmV0dXJuIDxtb3Rpb24uZGl2IHN0eWxlPXt7IHNjYWxlIH19IC8+XHJcbiAqIH1cclxuICogYGBgXHJcbiAqXHJcbiAqIEBwYXJhbSBpbml0aWFsIC0gVGhlIGluaXRpYWwgc3RhdGUuXHJcbiAqXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbmZ1bmN0aW9uIHVzZU1vdGlvblZhbHVlKGluaXRpYWwpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdXNlQ29uc3RhbnQoKCkgPT4gbW90aW9uVmFsdWUoaW5pdGlhbCkpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB0aGlzIG1vdGlvbiB2YWx1ZSBpcyBiZWluZyB1c2VkIGluIHN0YXRpYyBtb2RlLCBsaWtlIG9uXHJcbiAgICAgKiB0aGUgRnJhbWVyIGNhbnZhcywgZm9yY2UgY29tcG9uZW50cyB0byByZXJlbmRlciB3aGVuIHRoZSBtb3Rpb25cclxuICAgICAqIHZhbHVlIGlzIHVwZGF0ZWQuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IHsgaXNTdGF0aWMgfSA9IHVzZUNvbnRleHQoTW90aW9uQ29uZmlnQ29udGV4dCk7XHJcbiAgICBpZiAoaXNTdGF0aWMpIHtcclxuICAgICAgICBjb25zdCBbLCBzZXRMYXRlc3RdID0gdXNlU3RhdGUoaW5pdGlhbCk7XHJcbiAgICAgICAgdXNlRWZmZWN0KCgpID0+IHZhbHVlLm9uKFwiY2hhbmdlXCIsIHNldExhdGVzdCksIFtdKTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZXhwb3J0IHsgdXNlTW90aW9uVmFsdWUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-motion-value.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-scroll.mjs":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/value/use-scroll.mjs ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useScroll: function() { return /* binding */ useScroll; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\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 _render_dom_scroll_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../render/dom/scroll/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/scroll/index.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/use-constant.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n/* harmony import */ var _utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/use-isomorphic-effect.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst createScrollMotionValues = () => ({\r\n scrollX: (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.motionValue)(0),\r\n scrollY: (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.motionValue)(0),\r\n scrollXProgress: (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.motionValue)(0),\r\n scrollYProgress: (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.motionValue)(0),\r\n});\r\nconst isRefPending = (ref) => {\r\n if (!ref)\r\n return false;\r\n return !ref.current;\r\n};\r\nfunction useScroll({ container, target, ...options } = {}) {\r\n const values = (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_2__.useConstant)(createScrollMotionValues);\r\n const scrollAnimation = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\r\n const needsStart = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\r\n const start = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\r\n scrollAnimation.current = (0,_render_dom_scroll_index_mjs__WEBPACK_IMPORTED_MODULE_3__.scroll)((_progress, { x, y, }) => {\r\n values.scrollX.set(x.current);\r\n values.scrollXProgress.set(x.progress);\r\n values.scrollY.set(y.current);\r\n values.scrollYProgress.set(y.progress);\r\n }, {\r\n ...options,\r\n container: container?.current || undefined,\r\n target: target?.current || undefined,\r\n });\r\n return () => {\r\n scrollAnimation.current?.();\r\n };\r\n }, [container, target, JSON.stringify(options.offset)]);\r\n (0,_utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_4__.useIsomorphicLayoutEffect)(() => {\r\n needsStart.current = false;\r\n if (isRefPending(container) || isRefPending(target)) {\r\n needsStart.current = true;\r\n return;\r\n }\r\n else {\r\n return start();\r\n }\r\n }, [start]);\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\r\n if (needsStart.current) {\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_5__.invariant)(!isRefPending(container), \"Container ref is defined but not hydrated\", \"use-scroll-ref\");\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_5__.invariant)(!isRefPending(target), \"Target ref is defined but not hydrated\", \"use-scroll-ref\");\r\n return start();\r\n }\r\n else {\r\n return;\r\n }\r\n }, [start]);\r\n return values;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdmFsdWUvdXNlLXNjcm9sbC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ3lDO0FBQ0E7QUFDYztBQUNDO0FBQ0E7QUFDdUI7QUFDL0U7QUFDQTtBQUNBLGFBQWEsdURBQVc7QUFDeEIsYUFBYSx1REFBVztBQUN4QixxQkFBcUIsdURBQVc7QUFDaEMscUJBQXFCLHVEQUFXO0FBQ2hDLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLGdDQUFnQyxJQUFJO0FBQ3pELG1CQUFtQixvRUFBVztBQUM5Qiw0QkFBNEIsNkNBQU07QUFDbEMsdUJBQXVCLDZDQUFNO0FBQzdCLGtCQUFrQixrREFBVztBQUM3QixrQ0FBa0Msb0VBQU0sZUFBZSxPQUFPO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSSwyRkFBeUI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJLGdEQUFTO0FBQ2I7QUFDQSxZQUFZLHVEQUFTO0FBQ3JCLFlBQVksdURBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDcUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy92YWx1ZS91c2Utc2Nyb2xsLm1qcz84YjA4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5pbXBvcnQgeyBtb3Rpb25WYWx1ZSB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5pbXBvcnQgeyBpbnZhcmlhbnQgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VSZWYsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IHNjcm9sbCB9IGZyb20gJy4uL3JlbmRlci9kb20vc2Nyb2xsL2luZGV4Lm1qcyc7XHJcbmltcG9ydCB7IHVzZUNvbnN0YW50IH0gZnJvbSAnLi4vdXRpbHMvdXNlLWNvbnN0YW50Lm1qcyc7XHJcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICcuLi91dGlscy91c2UtaXNvbW9ycGhpYy1lZmZlY3QubWpzJztcclxuXHJcbmNvbnN0IGNyZWF0ZVNjcm9sbE1vdGlvblZhbHVlcyA9ICgpID0+ICh7XHJcbiAgICBzY3JvbGxYOiBtb3Rpb25WYWx1ZSgwKSxcclxuICAgIHNjcm9sbFk6IG1vdGlvblZhbHVlKDApLFxyXG4gICAgc2Nyb2xsWFByb2dyZXNzOiBtb3Rpb25WYWx1ZSgwKSxcclxuICAgIHNjcm9sbFlQcm9ncmVzczogbW90aW9uVmFsdWUoMCksXHJcbn0pO1xyXG5jb25zdCBpc1JlZlBlbmRpbmcgPSAocmVmKSA9PiB7XHJcbiAgICBpZiAoIXJlZilcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gIXJlZi5jdXJyZW50O1xyXG59O1xyXG5mdW5jdGlvbiB1c2VTY3JvbGwoeyBjb250YWluZXIsIHRhcmdldCwgLi4ub3B0aW9ucyB9ID0ge30pIHtcclxuICAgIGNvbnN0IHZhbHVlcyA9IHVzZUNvbnN0YW50KGNyZWF0ZVNjcm9sbE1vdGlvblZhbHVlcyk7XHJcbiAgICBjb25zdCBzY3JvbGxBbmltYXRpb24gPSB1c2VSZWYobnVsbCk7XHJcbiAgICBjb25zdCBuZWVkc1N0YXJ0ID0gdXNlUmVmKGZhbHNlKTtcclxuICAgIGNvbnN0IHN0YXJ0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xyXG4gICAgICAgIHNjcm9sbEFuaW1hdGlvbi5jdXJyZW50ID0gc2Nyb2xsKChfcHJvZ3Jlc3MsIHsgeCwgeSwgfSkgPT4ge1xyXG4gICAgICAgICAgICB2YWx1ZXMuc2Nyb2xsWC5zZXQoeC5jdXJyZW50KTtcclxuICAgICAgICAgICAgdmFsdWVzLnNjcm9sbFhQcm9ncmVzcy5zZXQoeC5wcm9ncmVzcyk7XHJcbiAgICAgICAgICAgIHZhbHVlcy5zY3JvbGxZLnNldCh5LmN1cnJlbnQpO1xyXG4gICAgICAgICAgICB2YWx1ZXMuc2Nyb2xsWVByb2dyZXNzLnNldCh5LnByb2dyZXNzKTtcclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXHJcbiAgICAgICAgICAgIGNvbnRhaW5lcjogY29udGFpbmVyPy5jdXJyZW50IHx8IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgdGFyZ2V0OiB0YXJnZXQ/LmN1cnJlbnQgfHwgdW5kZWZpbmVkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHNjcm9sbEFuaW1hdGlvbi5jdXJyZW50Py4oKTtcclxuICAgICAgICB9O1xyXG4gICAgfSwgW2NvbnRhaW5lciwgdGFyZ2V0LCBKU09OLnN0cmluZ2lmeShvcHRpb25zLm9mZnNldCldKTtcclxuICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIG5lZWRzU3RhcnQuY3VycmVudCA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChpc1JlZlBlbmRpbmcoY29udGFpbmVyKSB8fCBpc1JlZlBlbmRpbmcodGFyZ2V0KSkge1xyXG4gICAgICAgICAgICBuZWVkc1N0YXJ0LmN1cnJlbnQgPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gc3RhcnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbc3RhcnRdKTtcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKG5lZWRzU3RhcnQuY3VycmVudCkge1xyXG4gICAgICAgICAgICBpbnZhcmlhbnQoIWlzUmVmUGVuZGluZyhjb250YWluZXIpLCBcIkNvbnRhaW5lciByZWYgaXMgZGVmaW5lZCBidXQgbm90IGh5ZHJhdGVkXCIsIFwidXNlLXNjcm9sbC1yZWZcIik7XHJcbiAgICAgICAgICAgIGludmFyaWFudCghaXNSZWZQZW5kaW5nKHRhcmdldCksIFwiVGFyZ2V0IHJlZiBpcyBkZWZpbmVkIGJ1dCBub3QgaHlkcmF0ZWRcIiwgXCJ1c2Utc2Nyb2xsLXJlZlwiKTtcclxuICAgICAgICAgICAgcmV0dXJuIHN0YXJ0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3N0YXJ0XSk7XHJcbiAgICByZXR1cm4gdmFsdWVzO1xyXG59XHJcblxyXG5leHBvcnQgeyB1c2VTY3JvbGwgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-scroll.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-transform.mjs":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/value/use-transform.mjs ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useTransform: function() { return /* binding */ useTransform; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/transform.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/use-constant.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n/* harmony import */ var _use_combine_values_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./use-combine-values.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-combine-values.mjs\");\n/* harmony import */ var _use_computed_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./use-computed.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-computed.mjs\");\n\"use client\";\r\n\r\n\r\n\r\n\r\n\r\nfunction useTransform(input, inputRangeOrTransformer, outputRange, options) {\r\n if (typeof input === \"function\") {\r\n return (0,_use_computed_mjs__WEBPACK_IMPORTED_MODULE_0__.useComputed)(input);\r\n }\r\n const transformer = typeof inputRangeOrTransformer === \"function\"\r\n ? inputRangeOrTransformer\r\n : (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.transform)(inputRangeOrTransformer, outputRange, options);\r\n return Array.isArray(input)\r\n ? useListTransform(input, transformer)\r\n : useListTransform([input], ([latest]) => transformer(latest));\r\n}\r\nfunction useListTransform(values, transformer) {\r\n const latest = (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_2__.useConstant)(() => []);\r\n return (0,_use_combine_values_mjs__WEBPACK_IMPORTED_MODULE_3__.useCombineMotionValues)(values, () => {\r\n latest.length = 0;\r\n const numValues = values.length;\r\n for (let i = 0; i < numValues; i++) {\r\n latest[i] = values[i].get();\r\n }\r\n return transformer(latest);\r\n });\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdmFsdWUvdXNlLXRyYW5zZm9ybS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUN1QztBQUNpQjtBQUNVO0FBQ2pCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBLGVBQWUsOERBQVc7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsVUFBVSxxREFBUztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG9FQUFXO0FBQzlCLFdBQVcsK0VBQXNCO0FBQ2pDO0FBQ0E7QUFDQSx3QkFBd0IsZUFBZTtBQUN2QztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUN3QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3ZhbHVlL3VzZS10cmFuc2Zvcm0ubWpzPzk2NjQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5pbXBvcnQgeyB1c2VDb25zdGFudCB9IGZyb20gJy4uL3V0aWxzL3VzZS1jb25zdGFudC5tanMnO1xyXG5pbXBvcnQgeyB1c2VDb21iaW5lTW90aW9uVmFsdWVzIH0gZnJvbSAnLi91c2UtY29tYmluZS12YWx1ZXMubWpzJztcclxuaW1wb3J0IHsgdXNlQ29tcHV0ZWQgfSBmcm9tICcuL3VzZS1jb21wdXRlZC5tanMnO1xyXG5cclxuZnVuY3Rpb24gdXNlVHJhbnNmb3JtKGlucHV0LCBpbnB1dFJhbmdlT3JUcmFuc2Zvcm1lciwgb3V0cHV0UmFuZ2UsIG9wdGlvbnMpIHtcclxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgIHJldHVybiB1c2VDb21wdXRlZChpbnB1dCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0cmFuc2Zvcm1lciA9IHR5cGVvZiBpbnB1dFJhbmdlT3JUcmFuc2Zvcm1lciA9PT0gXCJmdW5jdGlvblwiXHJcbiAgICAgICAgPyBpbnB1dFJhbmdlT3JUcmFuc2Zvcm1lclxyXG4gICAgICAgIDogdHJhbnNmb3JtKGlucHV0UmFuZ2VPclRyYW5zZm9ybWVyLCBvdXRwdXRSYW5nZSwgb3B0aW9ucyk7XHJcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShpbnB1dClcclxuICAgICAgICA/IHVzZUxpc3RUcmFuc2Zvcm0oaW5wdXQsIHRyYW5zZm9ybWVyKVxyXG4gICAgICAgIDogdXNlTGlzdFRyYW5zZm9ybShbaW5wdXRdLCAoW2xhdGVzdF0pID0+IHRyYW5zZm9ybWVyKGxhdGVzdCkpO1xyXG59XHJcbmZ1bmN0aW9uIHVzZUxpc3RUcmFuc2Zvcm0odmFsdWVzLCB0cmFuc2Zvcm1lcikge1xyXG4gICAgY29uc3QgbGF0ZXN0ID0gdXNlQ29uc3RhbnQoKCkgPT4gW10pO1xyXG4gICAgcmV0dXJuIHVzZUNvbWJpbmVNb3Rpb25WYWx1ZXModmFsdWVzLCAoKSA9PiB7XHJcbiAgICAgICAgbGF0ZXN0Lmxlbmd0aCA9IDA7XHJcbiAgICAgICAgY29uc3QgbnVtVmFsdWVzID0gdmFsdWVzLmxlbmd0aDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVZhbHVlczsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxhdGVzdFtpXSA9IHZhbHVlc1tpXS5nZXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybWVyKGxhdGVzdCk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IHsgdXNlVHJhbnNmb3JtIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-transform.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs ***!
|
||
\**************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addValueToWillChange: function() { return /* binding */ addValueToWillChange; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _is_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-will-change/is.mjs\");\n\r\n\r\n\r\nfunction addValueToWillChange(visualElement, key) {\r\n const willChange = visualElement.getValue(\"willChange\");\r\n /**\r\n * It could be that a user has set willChange to a regular MotionValue,\r\n * in which case we can't add the value to it.\r\n */\r\n if ((0,_is_mjs__WEBPACK_IMPORTED_MODULE_0__.isWillChangeMotionValue)(willChange)) {\r\n return willChange.add(key);\r\n }\r\n else if (!willChange && motion_utils__WEBPACK_IMPORTED_MODULE_1__.MotionGlobalConfig.WillChange) {\r\n const newWillChange = new motion_utils__WEBPACK_IMPORTED_MODULE_1__.MotionGlobalConfig.WillChange(\"auto\");\r\n visualElement.addValue(\"willChange\", newWillChange);\r\n newWillChange.add(key);\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdmFsdWUvdXNlLXdpbGwtY2hhbmdlL2FkZC13aWxsLWNoYW5nZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWtEO0FBQ0M7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLGdFQUF1QjtBQUMvQjtBQUNBO0FBQ0EsNEJBQTRCLDREQUFrQjtBQUM5QyxrQ0FBa0MsNERBQWtCO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy92YWx1ZS91c2Utd2lsbC1jaGFuZ2UvYWRkLXdpbGwtY2hhbmdlLm1qcz80N2JjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vdGlvbkdsb2JhbENvbmZpZyB9IGZyb20gJ21vdGlvbi11dGlscyc7XHJcbmltcG9ydCB7IGlzV2lsbENoYW5nZU1vdGlvblZhbHVlIH0gZnJvbSAnLi9pcy5tanMnO1xyXG5cclxuZnVuY3Rpb24gYWRkVmFsdWVUb1dpbGxDaGFuZ2UodmlzdWFsRWxlbWVudCwga2V5KSB7XHJcbiAgICBjb25zdCB3aWxsQ2hhbmdlID0gdmlzdWFsRWxlbWVudC5nZXRWYWx1ZShcIndpbGxDaGFuZ2VcIik7XHJcbiAgICAvKipcclxuICAgICAqIEl0IGNvdWxkIGJlIHRoYXQgYSB1c2VyIGhhcyBzZXQgd2lsbENoYW5nZSB0byBhIHJlZ3VsYXIgTW90aW9uVmFsdWUsXHJcbiAgICAgKiBpbiB3aGljaCBjYXNlIHdlIGNhbid0IGFkZCB0aGUgdmFsdWUgdG8gaXQuXHJcbiAgICAgKi9cclxuICAgIGlmIChpc1dpbGxDaGFuZ2VNb3Rpb25WYWx1ZSh3aWxsQ2hhbmdlKSkge1xyXG4gICAgICAgIHJldHVybiB3aWxsQ2hhbmdlLmFkZChrZXkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoIXdpbGxDaGFuZ2UgJiYgTW90aW9uR2xvYmFsQ29uZmlnLldpbGxDaGFuZ2UpIHtcclxuICAgICAgICBjb25zdCBuZXdXaWxsQ2hhbmdlID0gbmV3IE1vdGlvbkdsb2JhbENvbmZpZy5XaWxsQ2hhbmdlKFwiYXV0b1wiKTtcclxuICAgICAgICB2aXN1YWxFbGVtZW50LmFkZFZhbHVlKFwid2lsbENoYW5nZVwiLCBuZXdXaWxsQ2hhbmdlKTtcclxuICAgICAgICBuZXdXaWxsQ2hhbmdlLmFkZChrZXkpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgeyBhZGRWYWx1ZVRvV2lsbENoYW5nZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-will-change/is.mjs":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/value/use-will-change/is.mjs ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isWillChangeMotionValue: function() { return /* binding */ isWillChangeMotionValue; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n\r\n\r\nfunction isWillChangeMotionValue(value) {\r\n return Boolean((0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(value) && value.add);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdmFsdWUvdXNlLXdpbGwtY2hhbmdlL2lzLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUEyQztBQUMzQztBQUNBO0FBQ0EsbUJBQW1CLHlEQUFhO0FBQ2hDO0FBQ0E7QUFDbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy92YWx1ZS91c2Utd2lsbC1jaGFuZ2UvaXMubWpzP2ViODciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5cclxuZnVuY3Rpb24gaXNXaWxsQ2hhbmdlTW90aW9uVmFsdWUodmFsdWUpIHtcclxuICAgIHJldHVybiBCb29sZWFuKGlzTW90aW9uVmFsdWUodmFsdWUpICYmIHZhbHVlLmFkZCk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGlzV2lsbENoYW5nZU1vdGlvblZhbHVlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/value/use-will-change/is.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs ***!
|
||
\*********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveMotionValue: function() { return /* binding */ resolveMotionValue; }\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n\r\n\r\n/**\r\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\r\n *\r\n * TODO: Remove and move to library\r\n */\r\nfunction resolveMotionValue(value) {\r\n return (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(value) ? value.get() : value;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdmFsdWUvdXRpbHMvcmVzb2x2ZS1tb3Rpb24tdmFsdWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTJDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyx5REFBYTtBQUN4QjtBQUNBO0FBQzhCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdmFsdWUvdXRpbHMvcmVzb2x2ZS1tb3Rpb24tdmFsdWUubWpzP2U5ZGMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJ21vdGlvbi1kb20nO1xyXG5cclxuLyoqXHJcbiAqIElmIHRoZSBwcm92aWRlZCB2YWx1ZSBpcyBhIE1vdGlvblZhbHVlLCB0aGlzIHJldHVybnMgdGhlIGFjdHVhbCB2YWx1ZSwgb3RoZXJ3aXNlIGp1c3QgdGhlIHZhbHVlIGl0c2VsZlxyXG4gKlxyXG4gKiBUT0RPOiBSZW1vdmUgYW5kIG1vdmUgdG8gbGlicmFyeVxyXG4gKi9cclxuZnVuY3Rpb24gcmVzb2x2ZU1vdGlvblZhbHVlKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gaXNNb3Rpb25WYWx1ZSh2YWx1ZSkgPyB2YWx1ZS5nZXQoKSA6IHZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgeyByZXNvbHZlTW90aW9uVmFsdWUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/isows/_esm/native.js":
|
||
/*!*******************************************!*\
|
||
!*** ./node_modules/isows/_esm/native.js ***!
|
||
\*******************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WebSocket: function() { return /* binding */ WebSocket; }\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ \"(app-pages-browser)/./node_modules/isows/_esm/utils.js\");\n\r\nconst WebSocket = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.getNativeWebSocket)();\r\n//# sourceMappingURL=native.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pc293cy9fZXNtL25hdGl2ZS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFnRDtBQUN6QyxrQkFBa0IsNkRBQWtCO0FBQzNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9pc293cy9fZXNtL25hdGl2ZS5qcz8zOTUyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldE5hdGl2ZVdlYlNvY2tldCB9IGZyb20gXCIuL3V0aWxzLmpzXCI7XHJcbmV4cG9ydCBjb25zdCBXZWJTb2NrZXQgPSBnZXROYXRpdmVXZWJTb2NrZXQoKTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmF0aXZlLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/isows/_esm/native.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/isows/_esm/utils.js":
|
||
/*!******************************************!*\
|
||
!*** ./node_modules/isows/_esm/utils.js ***!
|
||
\******************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getNativeWebSocket: function() { return /* binding */ getNativeWebSocket; }\n/* harmony export */ });\nfunction getNativeWebSocket() {\r\n if (typeof WebSocket !== \"undefined\")\r\n return WebSocket;\r\n if (typeof global.WebSocket !== \"undefined\")\r\n return global.WebSocket;\r\n if (typeof window.WebSocket !== \"undefined\")\r\n return window.WebSocket;\r\n if (typeof self.WebSocket !== \"undefined\")\r\n return self.WebSocket;\r\n throw new Error(\"`WebSocket` is not supported in this environment\");\r\n}\r\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pc293cy9fZXNtL3V0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2lzb3dzL19lc20vdXRpbHMuanM/YTAyZSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2V0TmF0aXZlV2ViU29ja2V0KCkge1xyXG4gICAgaWYgKHR5cGVvZiBXZWJTb2NrZXQgIT09IFwidW5kZWZpbmVkXCIpXHJcbiAgICAgICAgcmV0dXJuIFdlYlNvY2tldDtcclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsLldlYlNvY2tldCAhPT0gXCJ1bmRlZmluZWRcIilcclxuICAgICAgICByZXR1cm4gZ2xvYmFsLldlYlNvY2tldDtcclxuICAgIGlmICh0eXBlb2Ygd2luZG93LldlYlNvY2tldCAhPT0gXCJ1bmRlZmluZWRcIilcclxuICAgICAgICByZXR1cm4gd2luZG93LldlYlNvY2tldDtcclxuICAgIGlmICh0eXBlb2Ygc2VsZi5XZWJTb2NrZXQgIT09IFwidW5kZWZpbmVkXCIpXHJcbiAgICAgICAgcmV0dXJuIHNlbGYuV2ViU29ja2V0O1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiYFdlYlNvY2tldGAgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGVudmlyb25tZW50XCIpO1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/isows/_esm/utils.js\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs ***!
|
||
\*********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AsyncMotionValueAnimation: function() { return /* binding */ AsyncMotionValueAnimation; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./JSAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\");\n/* harmony import */ var _keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./keyframes/get-final.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\");\n/* harmony import */ var _keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keyframes/KeyframesResolver.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\");\n/* harmony import */ var _NativeAnimationExtended_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./NativeAnimationExtended.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs\");\n/* harmony import */ var _utils_can_animate_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/can-animate.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs\");\n/* harmony import */ var _utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/make-animation-instant.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs\");\n/* harmony import */ var _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/WithPromise.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\");\n/* harmony import */ var _waapi_supports_waapi_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./waapi/supports/waapi.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Maximum time allowed between an animation being created and it being\r\n * resolved for us to use the latter as the start time.\r\n *\r\n * This is to ensure that while we prefer to \"start\" an animation as soon\r\n * as it's triggered, we also want to avoid a visual jump if there's a big delay\r\n * between these two moments.\r\n */\r\nconst MAX_RESOLVE_DELAY = 40;\r\nclass AsyncMotionValueAnimation extends _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__.WithPromise {\r\n constructor({ autoplay = true, delay = 0, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", keyframes, name, motionValue, element, ...options }) {\r\n super();\r\n /**\r\n * Bound to support return animation.stop pattern\r\n */\r\n this.stop = () => {\r\n if (this._animation) {\r\n this._animation.stop();\r\n this.stopTimeline?.();\r\n }\r\n this.keyframeResolver?.cancel();\r\n };\r\n this.createdAt = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now();\r\n const optionsWithDefaults = {\r\n autoplay,\r\n delay,\r\n type,\r\n repeat,\r\n repeatDelay,\r\n repeatType,\r\n name,\r\n motionValue,\r\n element,\r\n ...options,\r\n };\r\n const KeyframeResolver$1 = element?.KeyframeResolver || _keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_2__.KeyframeResolver;\r\n this.keyframeResolver = new KeyframeResolver$1(keyframes, (resolvedKeyframes, finalKeyframe, forced) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe, optionsWithDefaults, !forced), name, motionValue, element);\r\n this.keyframeResolver?.scheduleResolve();\r\n }\r\n onKeyframesResolved(keyframes, finalKeyframe, options, sync) {\r\n this.keyframeResolver = undefined;\r\n const { name, type, velocity, delay, isHandoff, onUpdate } = options;\r\n this.resolvedAt = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now();\r\n /**\r\n * If we can't animate this value with the resolved keyframes\r\n * then we should complete it immediately.\r\n */\r\n if (!(0,_utils_can_animate_mjs__WEBPACK_IMPORTED_MODULE_3__.canAnimate)(keyframes, name, type, velocity)) {\r\n if (motion_utils__WEBPACK_IMPORTED_MODULE_4__.MotionGlobalConfig.instantAnimations || !delay) {\r\n onUpdate?.((0,_keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_5__.getFinalKeyframe)(keyframes, options, finalKeyframe));\r\n }\r\n keyframes[0] = keyframes[keyframes.length - 1];\r\n (0,_utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_6__.makeAnimationInstant)(options);\r\n options.repeat = 0;\r\n }\r\n /**\r\n * Resolve startTime for the animation.\r\n *\r\n * This method uses the createdAt and resolvedAt to calculate the\r\n * animation startTime. *Ideally*, we would use the createdAt time as t=0\r\n * as the following frame would then be the first frame of the animation in\r\n * progress, which would feel snappier.\r\n *\r\n * However, if there's a delay (main thread work) between the creation of\r\n * the animation and the first commited frame, we prefer to use resolvedAt\r\n * to avoid a sudden jump into the animation.\r\n */\r\n const startTime = sync\r\n ? !this.resolvedAt\r\n ? this.createdAt\r\n : this.resolvedAt - this.createdAt > MAX_RESOLVE_DELAY\r\n ? this.resolvedAt\r\n : this.createdAt\r\n : undefined;\r\n const resolvedOptions = {\r\n startTime,\r\n finalKeyframe,\r\n ...options,\r\n keyframes,\r\n };\r\n /**\r\n * Animate via WAAPI if possible. If this is a handoff animation, the optimised animation will be running via\r\n * WAAPI. Therefore, this animation must be JS to ensure it runs \"under\" the\r\n * optimised animation.\r\n */\r\n const animation = !isHandoff && (0,_waapi_supports_waapi_mjs__WEBPACK_IMPORTED_MODULE_7__.supportsBrowserAnimation)(resolvedOptions)\r\n ? new _NativeAnimationExtended_mjs__WEBPACK_IMPORTED_MODULE_8__.NativeAnimationExtended({\r\n ...resolvedOptions,\r\n element: resolvedOptions.motionValue.owner.current,\r\n })\r\n : new _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_9__.JSAnimation(resolvedOptions);\r\n animation.finished.then(() => this.notifyFinished()).catch(motion_utils__WEBPACK_IMPORTED_MODULE_10__.noop);\r\n if (this.pendingTimeline) {\r\n this.stopTimeline = animation.attachTimeline(this.pendingTimeline);\r\n this.pendingTimeline = undefined;\r\n }\r\n this._animation = animation;\r\n }\r\n get finished() {\r\n if (!this._animation) {\r\n return this._finished;\r\n }\r\n else {\r\n return this.animation.finished;\r\n }\r\n }\r\n then(onResolve, _onReject) {\r\n return this.finished.finally(onResolve).then(() => { });\r\n }\r\n get animation() {\r\n if (!this._animation) {\r\n this.keyframeResolver?.resume();\r\n (0,_keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_2__.flushKeyframeResolvers)();\r\n }\r\n return this._animation;\r\n }\r\n get duration() {\r\n return this.animation.duration;\r\n }\r\n get iterationDuration() {\r\n return this.animation.iterationDuration;\r\n }\r\n get time() {\r\n return this.animation.time;\r\n }\r\n set time(newTime) {\r\n this.animation.time = newTime;\r\n }\r\n get speed() {\r\n return this.animation.speed;\r\n }\r\n get state() {\r\n return this.animation.state;\r\n }\r\n set speed(newSpeed) {\r\n this.animation.speed = newSpeed;\r\n }\r\n get startTime() {\r\n return this.animation.startTime;\r\n }\r\n attachTimeline(timeline) {\r\n if (this._animation) {\r\n this.stopTimeline = this.animation.attachTimeline(timeline);\r\n }\r\n else {\r\n this.pendingTimeline = timeline;\r\n }\r\n return () => this.stop();\r\n }\r\n play() {\r\n this.animation.play();\r\n }\r\n pause() {\r\n this.animation.pause();\r\n }\r\n complete() {\r\n this.animation.complete();\r\n }\r\n cancel() {\r\n if (this._animation) {\r\n this.animation.cancel();\r\n }\r\n this.keyframeResolver?.cancel();\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL0FzeW5jTW90aW9uVmFsdWVBbmltYXRpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUF3RDtBQUNOO0FBQ0Y7QUFDYTtBQUNnQztBQUNyQjtBQUNuQjtBQUNxQjtBQUNwQjtBQUNnQjtBQUN0RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QywrREFBVztBQUNuRCxrQkFBa0IscUpBQXFKO0FBQ3ZLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsMERBQUk7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0VBQWdFLDhFQUFnQjtBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG1EQUFtRDtBQUNuRSwwQkFBMEIsMERBQUk7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLGtFQUFVO0FBQ3ZCLGdCQUFnQiw0REFBa0I7QUFDbEMsMkJBQTJCLDBFQUFnQjtBQUMzQztBQUNBO0FBQ0EsWUFBWSx1RkFBb0I7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QyxtRkFBd0I7QUFDaEUsa0JBQWtCLGlGQUF1QjtBQUN6QztBQUNBO0FBQ0EsYUFBYTtBQUNiLGtCQUFrQix5REFBVztBQUM3QixtRUFBbUUsK0NBQUk7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOERBQThEO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx3RkFBc0I7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNxQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9Bc3luY01vdGlvblZhbHVlQW5pbWF0aW9uLm1qcz81YjJjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vdGlvbkdsb2JhbENvbmZpZywgbm9vcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XHJcbmltcG9ydCB7IHRpbWUgfSBmcm9tICcuLi9mcmFtZWxvb3Avc3luYy10aW1lLm1qcyc7XHJcbmltcG9ydCB7IEpTQW5pbWF0aW9uIH0gZnJvbSAnLi9KU0FuaW1hdGlvbi5tanMnO1xyXG5pbXBvcnQgeyBnZXRGaW5hbEtleWZyYW1lIH0gZnJvbSAnLi9rZXlmcmFtZXMvZ2V0LWZpbmFsLm1qcyc7XHJcbmltcG9ydCB7IEtleWZyYW1lUmVzb2x2ZXIsIGZsdXNoS2V5ZnJhbWVSZXNvbHZlcnMgfSBmcm9tICcuL2tleWZyYW1lcy9LZXlmcmFtZXNSZXNvbHZlci5tanMnO1xyXG5pbXBvcnQgeyBOYXRpdmVBbmltYXRpb25FeHRlbmRlZCB9IGZyb20gJy4vTmF0aXZlQW5pbWF0aW9uRXh0ZW5kZWQubWpzJztcclxuaW1wb3J0IHsgY2FuQW5pbWF0ZSB9IGZyb20gJy4vdXRpbHMvY2FuLWFuaW1hdGUubWpzJztcclxuaW1wb3J0IHsgbWFrZUFuaW1hdGlvbkluc3RhbnQgfSBmcm9tICcuL3V0aWxzL21ha2UtYW5pbWF0aW9uLWluc3RhbnQubWpzJztcclxuaW1wb3J0IHsgV2l0aFByb21pc2UgfSBmcm9tICcuL3V0aWxzL1dpdGhQcm9taXNlLm1qcyc7XHJcbmltcG9ydCB7IHN1cHBvcnRzQnJvd3NlckFuaW1hdGlvbiB9IGZyb20gJy4vd2FhcGkvc3VwcG9ydHMvd2FhcGkubWpzJztcclxuXHJcbi8qKlxyXG4gKiBNYXhpbXVtIHRpbWUgYWxsb3dlZCBiZXR3ZWVuIGFuIGFuaW1hdGlvbiBiZWluZyBjcmVhdGVkIGFuZCBpdCBiZWluZ1xyXG4gKiByZXNvbHZlZCBmb3IgdXMgdG8gdXNlIHRoZSBsYXR0ZXIgYXMgdGhlIHN0YXJ0IHRpbWUuXHJcbiAqXHJcbiAqIFRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgd2hpbGUgd2UgcHJlZmVyIHRvIFwic3RhcnRcIiBhbiBhbmltYXRpb24gYXMgc29vblxyXG4gKiBhcyBpdCdzIHRyaWdnZXJlZCwgd2UgYWxzbyB3YW50IHRvIGF2b2lkIGEgdmlzdWFsIGp1bXAgaWYgdGhlcmUncyBhIGJpZyBkZWxheVxyXG4gKiBiZXR3ZWVuIHRoZXNlIHR3byBtb21lbnRzLlxyXG4gKi9cclxuY29uc3QgTUFYX1JFU09MVkVfREVMQVkgPSA0MDtcclxuY2xhc3MgQXN5bmNNb3Rpb25WYWx1ZUFuaW1hdGlvbiBleHRlbmRzIFdpdGhQcm9taXNlIHtcclxuICAgIGNvbnN0cnVjdG9yKHsgYXV0b3BsYXkgPSB0cnVlLCBkZWxheSA9IDAsIHR5cGUgPSBcImtleWZyYW1lc1wiLCByZXBlYXQgPSAwLCByZXBlYXREZWxheSA9IDAsIHJlcGVhdFR5cGUgPSBcImxvb3BcIiwga2V5ZnJhbWVzLCBuYW1lLCBtb3Rpb25WYWx1ZSwgZWxlbWVudCwgLi4ub3B0aW9ucyB9KSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBCb3VuZCB0byBzdXBwb3J0IHJldHVybiBhbmltYXRpb24uc3RvcCBwYXR0ZXJuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zdG9wID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24uc3RvcCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZWxpbmU/LigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMua2V5ZnJhbWVSZXNvbHZlcj8uY2FuY2VsKCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmNyZWF0ZWRBdCA9IHRpbWUubm93KCk7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uc1dpdGhEZWZhdWx0cyA9IHtcclxuICAgICAgICAgICAgYXV0b3BsYXksXHJcbiAgICAgICAgICAgIGRlbGF5LFxyXG4gICAgICAgICAgICB0eXBlLFxyXG4gICAgICAgICAgICByZXBlYXQsXHJcbiAgICAgICAgICAgIHJlcGVhdERlbGF5LFxyXG4gICAgICAgICAgICByZXBlYXRUeXBlLFxyXG4gICAgICAgICAgICBuYW1lLFxyXG4gICAgICAgICAgICBtb3Rpb25WYWx1ZSxcclxuICAgICAgICAgICAgZWxlbWVudCxcclxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IEtleWZyYW1lUmVzb2x2ZXIkMSA9IGVsZW1lbnQ/LktleWZyYW1lUmVzb2x2ZXIgfHwgS2V5ZnJhbWVSZXNvbHZlcjtcclxuICAgICAgICB0aGlzLmtleWZyYW1lUmVzb2x2ZXIgPSBuZXcgS2V5ZnJhbWVSZXNvbHZlciQxKGtleWZyYW1lcywgKHJlc29sdmVkS2V5ZnJhbWVzLCBmaW5hbEtleWZyYW1lLCBmb3JjZWQpID0+IHRoaXMub25LZXlmcmFtZXNSZXNvbHZlZChyZXNvbHZlZEtleWZyYW1lcywgZmluYWxLZXlmcmFtZSwgb3B0aW9uc1dpdGhEZWZhdWx0cywgIWZvcmNlZCksIG5hbWUsIG1vdGlvblZhbHVlLCBlbGVtZW50KTtcclxuICAgICAgICB0aGlzLmtleWZyYW1lUmVzb2x2ZXI/LnNjaGVkdWxlUmVzb2x2ZSgpO1xyXG4gICAgfVxyXG4gICAgb25LZXlmcmFtZXNSZXNvbHZlZChrZXlmcmFtZXMsIGZpbmFsS2V5ZnJhbWUsIG9wdGlvbnMsIHN5bmMpIHtcclxuICAgICAgICB0aGlzLmtleWZyYW1lUmVzb2x2ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgY29uc3QgeyBuYW1lLCB0eXBlLCB2ZWxvY2l0eSwgZGVsYXksIGlzSGFuZG9mZiwgb25VcGRhdGUgfSA9IG9wdGlvbnM7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlZEF0ID0gdGltZS5ub3coKTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB3ZSBjYW4ndCBhbmltYXRlIHRoaXMgdmFsdWUgd2l0aCB0aGUgcmVzb2x2ZWQga2V5ZnJhbWVzXHJcbiAgICAgICAgICogdGhlbiB3ZSBzaG91bGQgY29tcGxldGUgaXQgaW1tZWRpYXRlbHkuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgaWYgKCFjYW5BbmltYXRlKGtleWZyYW1lcywgbmFtZSwgdHlwZSwgdmVsb2NpdHkpKSB7XHJcbiAgICAgICAgICAgIGlmIChNb3Rpb25HbG9iYWxDb25maWcuaW5zdGFudEFuaW1hdGlvbnMgfHwgIWRlbGF5KSB7XHJcbiAgICAgICAgICAgICAgICBvblVwZGF0ZT8uKGdldEZpbmFsS2V5ZnJhbWUoa2V5ZnJhbWVzLCBvcHRpb25zLCBmaW5hbEtleWZyYW1lKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAga2V5ZnJhbWVzWzBdID0ga2V5ZnJhbWVzW2tleWZyYW1lcy5sZW5ndGggLSAxXTtcclxuICAgICAgICAgICAgbWFrZUFuaW1hdGlvbkluc3RhbnQob3B0aW9ucyk7XHJcbiAgICAgICAgICAgIG9wdGlvbnMucmVwZWF0ID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUmVzb2x2ZSBzdGFydFRpbWUgZm9yIHRoZSBhbmltYXRpb24uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBUaGlzIG1ldGhvZCB1c2VzIHRoZSBjcmVhdGVkQXQgYW5kIHJlc29sdmVkQXQgdG8gY2FsY3VsYXRlIHRoZVxyXG4gICAgICAgICAqIGFuaW1hdGlvbiBzdGFydFRpbWUuICpJZGVhbGx5Kiwgd2Ugd291bGQgdXNlIHRoZSBjcmVhdGVkQXQgdGltZSBhcyB0PTBcclxuICAgICAgICAgKiBhcyB0aGUgZm9sbG93aW5nIGZyYW1lIHdvdWxkIHRoZW4gYmUgdGhlIGZpcnN0IGZyYW1lIG9mIHRoZSBhbmltYXRpb24gaW5cclxuICAgICAgICAgKiBwcm9ncmVzcywgd2hpY2ggd291bGQgZmVlbCBzbmFwcGllci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEhvd2V2ZXIsIGlmIHRoZXJlJ3MgYSBkZWxheSAobWFpbiB0aHJlYWQgd29yaykgYmV0d2VlbiB0aGUgY3JlYXRpb24gb2ZcclxuICAgICAgICAgKiB0aGUgYW5pbWF0aW9uIGFuZCB0aGUgZmlyc3QgY29tbWl0ZWQgZnJhbWUsIHdlIHByZWZlciB0byB1c2UgcmVzb2x2ZWRBdFxyXG4gICAgICAgICAqIHRvIGF2b2lkIGEgc3VkZGVuIGp1bXAgaW50byB0aGUgYW5pbWF0aW9uLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHN5bmNcclxuICAgICAgICAgICAgPyAhdGhpcy5yZXNvbHZlZEF0XHJcbiAgICAgICAgICAgICAgICA/IHRoaXMuY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICA6IHRoaXMucmVzb2x2ZWRBdCAtIHRoaXMuY3JlYXRlZEF0ID4gTUFYX1JFU09MVkVfREVMQVlcclxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMucmVzb2x2ZWRBdFxyXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5jcmVhdGVkQXRcclxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRPcHRpb25zID0ge1xyXG4gICAgICAgICAgICBzdGFydFRpbWUsXHJcbiAgICAgICAgICAgIGZpbmFsS2V5ZnJhbWUsXHJcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXHJcbiAgICAgICAgICAgIGtleWZyYW1lcyxcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuaW1hdGUgdmlhIFdBQVBJIGlmIHBvc3NpYmxlLiBJZiB0aGlzIGlzIGEgaGFuZG9mZiBhbmltYXRpb24sIHRoZSBvcHRpbWlzZWQgYW5pbWF0aW9uIHdpbGwgYmUgcnVubmluZyB2aWFcclxuICAgICAgICAgKiBXQUFQSS4gVGhlcmVmb3JlLCB0aGlzIGFuaW1hdGlvbiBtdXN0IGJlIEpTIHRvIGVuc3VyZSBpdCBydW5zIFwidW5kZXJcIiB0aGVcclxuICAgICAgICAgKiBvcHRpbWlzZWQgYW5pbWF0aW9uLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbiA9ICFpc0hhbmRvZmYgJiYgc3VwcG9ydHNCcm93c2VyQW5pbWF0aW9uKHJlc29sdmVkT3B0aW9ucylcclxuICAgICAgICAgICAgPyBuZXcgTmF0aXZlQW5pbWF0aW9uRXh0ZW5kZWQoe1xyXG4gICAgICAgICAgICAgICAgLi4ucmVzb2x2ZWRPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgZWxlbWVudDogcmVzb2x2ZWRPcHRpb25zLm1vdGlvblZhbHVlLm93bmVyLmN1cnJlbnQsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIDogbmV3IEpTQW5pbWF0aW9uKHJlc29sdmVkT3B0aW9ucyk7XHJcbiAgICAgICAgYW5pbWF0aW9uLmZpbmlzaGVkLnRoZW4oKCkgPT4gdGhpcy5ub3RpZnlGaW5pc2hlZCgpKS5jYXRjaChub29wKTtcclxuICAgICAgICBpZiAodGhpcy5wZW5kaW5nVGltZWxpbmUpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9wVGltZWxpbmUgPSBhbmltYXRpb24uYXR0YWNoVGltZWxpbmUodGhpcy5wZW5kaW5nVGltZWxpbmUpO1xyXG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdUaW1lbGluZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fYW5pbWF0aW9uID0gYW5pbWF0aW9uO1xyXG4gICAgfVxyXG4gICAgZ2V0IGZpbmlzaGVkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fYW5pbWF0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maW5pc2hlZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbi5maW5pc2hlZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGVuKG9uUmVzb2x2ZSwgX29uUmVqZWN0KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluaXNoZWQuZmluYWxseShvblJlc29sdmUpLnRoZW4oKCkgPT4geyB9KTtcclxuICAgIH1cclxuICAgIGdldCBhbmltYXRpb24oKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5rZXlmcmFtZVJlc29sdmVyPy5yZXN1bWUoKTtcclxuICAgICAgICAgICAgZmx1c2hLZXlmcmFtZVJlc29sdmVycygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uO1xyXG4gICAgfVxyXG4gICAgZ2V0IGR1cmF0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbi5kdXJhdGlvbjtcclxuICAgIH1cclxuICAgIGdldCBpdGVyYXRpb25EdXJhdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb247XHJcbiAgICB9XHJcbiAgICBnZXQgdGltZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24udGltZTtcclxuICAgIH1cclxuICAgIHNldCB0aW1lKG5ld1RpbWUpIHtcclxuICAgICAgICB0aGlzLmFuaW1hdGlvbi50aW1lID0gbmV3VGltZTtcclxuICAgIH1cclxuICAgIGdldCBzcGVlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24uc3BlZWQ7XHJcbiAgICB9XHJcbiAgICBnZXQgc3RhdGUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uLnN0YXRlO1xyXG4gICAgfVxyXG4gICAgc2V0IHNwZWVkKG5ld1NwZWVkKSB7XHJcbiAgICAgICAgdGhpcy5hbmltYXRpb24uc3BlZWQgPSBuZXdTcGVlZDtcclxuICAgIH1cclxuICAgIGdldCBzdGFydFRpbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uLnN0YXJ0VGltZTtcclxuICAgIH1cclxuICAgIGF0dGFjaFRpbWVsaW5lKHRpbWVsaW5lKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3BUaW1lbGluZSA9IHRoaXMuYW5pbWF0aW9uLmF0dGFjaFRpbWVsaW5lKHRpbWVsaW5lKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ1RpbWVsaW5lID0gdGltZWxpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAoKSA9PiB0aGlzLnN0b3AoKTtcclxuICAgIH1cclxuICAgIHBsYXkoKSB7XHJcbiAgICAgICAgdGhpcy5hbmltYXRpb24ucGxheSgpO1xyXG4gICAgfVxyXG4gICAgcGF1c2UoKSB7XHJcbiAgICAgICAgdGhpcy5hbmltYXRpb24ucGF1c2UoKTtcclxuICAgIH1cclxuICAgIGNvbXBsZXRlKCkge1xyXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbiAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbi5jYW5jZWwoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5rZXlmcmFtZVJlc29sdmVyPy5jYW5jZWwoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHsgQXN5bmNNb3Rpb25WYWx1ZUFuaW1hdGlvbiB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ JSAnimation: function() { return /* binding */ JSAnimation; },\n/* harmony export */ animateValue: function() { return /* binding */ animateValue; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../stats/animation-count.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\");\n/* harmony import */ var _utils_mix_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/mix/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs\");\n/* harmony import */ var _drivers_frame_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./drivers/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs\");\n/* harmony import */ var _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./generators/inertia.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs\");\n/* harmony import */ var _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./generators/keyframes.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs\");\n/* harmony import */ var _generators_utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./generators/utils/calc-duration.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\");\n/* harmony import */ var _keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./keyframes/get-final.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\");\n/* harmony import */ var _utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/replace-transition-type.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs\");\n/* harmony import */ var _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/WithPromise.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst percentToProgress = (percent) => percent / 100;\r\nclass JSAnimation extends _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__.WithPromise {\r\n constructor(options) {\r\n super();\r\n this.state = \"idle\";\r\n this.startTime = null;\r\n this.isStopped = false;\r\n /**\r\n * The current time of the animation.\r\n */\r\n this.currentTime = 0;\r\n /**\r\n * The time at which the animation was paused.\r\n */\r\n this.holdTime = null;\r\n /**\r\n * Playback speed as a factor. 0 would be stopped, -1 reverse and 2 double speed.\r\n */\r\n this.playbackSpeed = 1;\r\n /**\r\n * This method is bound to the instance to fix a pattern where\r\n * animation.stop is returned as a reference from a useEffect.\r\n */\r\n this.stop = () => {\r\n const { motionValue } = this.options;\r\n if (motionValue && motionValue.updatedAt !== _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now()) {\r\n this.tick(_frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now());\r\n }\r\n this.isStopped = true;\r\n if (this.state === \"idle\")\r\n return;\r\n this.teardown();\r\n this.options.onStop?.();\r\n };\r\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.mainThread++;\r\n this.options = options;\r\n this.initAnimation();\r\n this.play();\r\n if (options.autoplay === false)\r\n this.pause();\r\n }\r\n initAnimation() {\r\n const { options } = this;\r\n (0,_utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_3__.replaceTransitionType)(options);\r\n const { type = _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes, repeat = 0, repeatDelay = 0, repeatType, velocity = 0, } = options;\r\n let { keyframes: keyframes$1 } = options;\r\n const generatorFactory = type || _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes;\r\n if ( true &&\r\n generatorFactory !== _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes) {\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_5__.invariant)(keyframes$1.length <= 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`, \"spring-two-frames\");\r\n }\r\n if (generatorFactory !== _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes &&\r\n typeof keyframes$1[0] !== \"number\") {\r\n this.mixKeyframes = (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.pipe)(percentToProgress, (0,_utils_mix_index_mjs__WEBPACK_IMPORTED_MODULE_7__.mix)(keyframes$1[0], keyframes$1[1]));\r\n keyframes$1 = [0, 100];\r\n }\r\n const generator = generatorFactory({ ...options, keyframes: keyframes$1 });\r\n /**\r\n * If we have a mirror repeat type we need to create a second generator that outputs the\r\n * mirrored (not reversed) animation and later ping pong between the two generators.\r\n */\r\n if (repeatType === \"mirror\") {\r\n this.mirroredGenerator = generatorFactory({\r\n ...options,\r\n keyframes: [...keyframes$1].reverse(),\r\n velocity: -velocity,\r\n });\r\n }\r\n /**\r\n * If duration is undefined and we have repeat options,\r\n * we need to calculate a duration from the generator.\r\n *\r\n * We set it to the generator itself to cache the duration.\r\n * Any timeline resolver will need to have already precalculated\r\n * the duration by this step.\r\n */\r\n if (generator.calculatedDuration === null) {\r\n generator.calculatedDuration = (0,_generators_utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_8__.calcGeneratorDuration)(generator);\r\n }\r\n const { calculatedDuration } = generator;\r\n this.calculatedDuration = calculatedDuration;\r\n this.resolvedDuration = calculatedDuration + repeatDelay;\r\n this.totalDuration = this.resolvedDuration * (repeat + 1) - repeatDelay;\r\n this.generator = generator;\r\n }\r\n updateTime(timestamp) {\r\n const animationTime = Math.round(timestamp - this.startTime) * this.playbackSpeed;\r\n // Update currentTime\r\n if (this.holdTime !== null) {\r\n this.currentTime = this.holdTime;\r\n }\r\n else {\r\n // Rounding the time because floating point arithmetic is not always accurate, e.g. 3000.367 - 1000.367 =\r\n // 2000.0000000000002. This is a problem when we are comparing the currentTime with the duration, for\r\n // example.\r\n this.currentTime = animationTime;\r\n }\r\n }\r\n tick(timestamp, sample = false) {\r\n const { generator, totalDuration, mixKeyframes, mirroredGenerator, resolvedDuration, calculatedDuration, } = this;\r\n if (this.startTime === null)\r\n return generator.next(0);\r\n const { delay = 0, keyframes, repeat, repeatType, repeatDelay, type, onUpdate, finalKeyframe, } = this.options;\r\n /**\r\n * requestAnimationFrame timestamps can come through as lower than\r\n * the startTime as set by performance.now(). Here we prevent this,\r\n * though in the future it could be possible to make setting startTime\r\n * a pending operation that gets resolved here.\r\n */\r\n if (this.speed > 0) {\r\n this.startTime = Math.min(this.startTime, timestamp);\r\n }\r\n else if (this.speed < 0) {\r\n this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime);\r\n }\r\n if (sample) {\r\n this.currentTime = timestamp;\r\n }\r\n else {\r\n this.updateTime(timestamp);\r\n }\r\n // Rebase on delay\r\n const timeWithoutDelay = this.currentTime - delay * (this.playbackSpeed >= 0 ? 1 : -1);\r\n const isInDelayPhase = this.playbackSpeed >= 0\r\n ? timeWithoutDelay < 0\r\n : timeWithoutDelay > totalDuration;\r\n this.currentTime = Math.max(timeWithoutDelay, 0);\r\n // If this animation has finished, set the current time to the total duration.\r\n if (this.state === \"finished\" && this.holdTime === null) {\r\n this.currentTime = totalDuration;\r\n }\r\n let elapsed = this.currentTime;\r\n let frameGenerator = generator;\r\n if (repeat) {\r\n /**\r\n * Get the current progress (0-1) of the animation. If t is >\r\n * than duration we'll get values like 2.5 (midway through the\r\n * third iteration)\r\n */\r\n const progress = Math.min(this.currentTime, totalDuration) / resolvedDuration;\r\n /**\r\n * Get the current iteration (0 indexed). For instance the floor of\r\n * 2.5 is 2.\r\n */\r\n let currentIteration = Math.floor(progress);\r\n /**\r\n * Get the current progress of the iteration by taking the remainder\r\n * so 2.5 is 0.5 through iteration 2\r\n */\r\n let iterationProgress = progress % 1.0;\r\n /**\r\n * If iteration progress is 1 we count that as the end\r\n * of the previous iteration.\r\n */\r\n if (!iterationProgress && progress >= 1) {\r\n iterationProgress = 1;\r\n }\r\n iterationProgress === 1 && currentIteration--;\r\n currentIteration = Math.min(currentIteration, repeat + 1);\r\n /**\r\n * Reverse progress if we're not running in \"normal\" direction\r\n */\r\n const isOddIteration = Boolean(currentIteration % 2);\r\n if (isOddIteration) {\r\n if (repeatType === \"reverse\") {\r\n iterationProgress = 1 - iterationProgress;\r\n if (repeatDelay) {\r\n iterationProgress -= repeatDelay / resolvedDuration;\r\n }\r\n }\r\n else if (repeatType === \"mirror\") {\r\n frameGenerator = mirroredGenerator;\r\n }\r\n }\r\n elapsed = (0,motion_utils__WEBPACK_IMPORTED_MODULE_9__.clamp)(0, 1, iterationProgress) * resolvedDuration;\r\n }\r\n /**\r\n * If we're in negative time, set state as the initial keyframe.\r\n * This prevents delay: x, duration: 0 animations from finishing\r\n * instantly.\r\n */\r\n const state = isInDelayPhase\r\n ? { done: false, value: keyframes[0] }\r\n : frameGenerator.next(elapsed);\r\n if (mixKeyframes) {\r\n state.value = mixKeyframes(state.value);\r\n }\r\n let { done } = state;\r\n if (!isInDelayPhase && calculatedDuration !== null) {\r\n done =\r\n this.playbackSpeed >= 0\r\n ? this.currentTime >= totalDuration\r\n : this.currentTime <= 0;\r\n }\r\n const isAnimationFinished = this.holdTime === null &&\r\n (this.state === \"finished\" || (this.state === \"running\" && done));\r\n // TODO: The exception for inertia could be cleaner here\r\n if (isAnimationFinished && type !== _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_10__.inertia) {\r\n state.value = (0,_keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_11__.getFinalKeyframe)(keyframes, this.options, finalKeyframe, this.speed);\r\n }\r\n if (onUpdate) {\r\n onUpdate(state.value);\r\n }\r\n if (isAnimationFinished) {\r\n this.finish();\r\n }\r\n return state;\r\n }\r\n /**\r\n * Allows the returned animation to be awaited or promise-chained. Currently\r\n * resolves when the animation finishes at all but in a future update could/should\r\n * reject if its cancels.\r\n */\r\n then(resolve, reject) {\r\n return this.finished.then(resolve, reject);\r\n }\r\n get duration() {\r\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(this.calculatedDuration);\r\n }\r\n get iterationDuration() {\r\n const { delay = 0 } = this.options || {};\r\n return this.duration + (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(delay);\r\n }\r\n get time() {\r\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(this.currentTime);\r\n }\r\n set time(newTime) {\r\n newTime = (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.secondsToMilliseconds)(newTime);\r\n this.currentTime = newTime;\r\n if (this.startTime === null ||\r\n this.holdTime !== null ||\r\n this.playbackSpeed === 0) {\r\n this.holdTime = newTime;\r\n }\r\n else if (this.driver) {\r\n this.startTime = this.driver.now() - newTime / this.playbackSpeed;\r\n }\r\n this.driver?.start(false);\r\n }\r\n get speed() {\r\n return this.playbackSpeed;\r\n }\r\n set speed(newSpeed) {\r\n this.updateTime(_frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now());\r\n const hasChanged = this.playbackSpeed !== newSpeed;\r\n this.playbackSpeed = newSpeed;\r\n if (hasChanged) {\r\n this.time = (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(this.currentTime);\r\n }\r\n }\r\n play() {\r\n if (this.isStopped)\r\n return;\r\n const { driver = _drivers_frame_mjs__WEBPACK_IMPORTED_MODULE_13__.frameloopDriver, startTime } = this.options;\r\n if (!this.driver) {\r\n this.driver = driver((timestamp) => this.tick(timestamp));\r\n }\r\n this.options.onPlay?.();\r\n const now = this.driver.now();\r\n if (this.state === \"finished\") {\r\n this.updateFinished();\r\n this.startTime = now;\r\n }\r\n else if (this.holdTime !== null) {\r\n this.startTime = now - this.holdTime;\r\n }\r\n else if (!this.startTime) {\r\n this.startTime = startTime ?? now;\r\n }\r\n if (this.state === \"finished\" && this.speed < 0) {\r\n this.startTime += this.calculatedDuration;\r\n }\r\n this.holdTime = null;\r\n /**\r\n * Set playState to running only after we've used it in\r\n * the previous logic.\r\n */\r\n this.state = \"running\";\r\n this.driver.start();\r\n }\r\n pause() {\r\n this.state = \"paused\";\r\n this.updateTime(_frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now());\r\n this.holdTime = this.currentTime;\r\n }\r\n complete() {\r\n if (this.state !== \"running\") {\r\n this.play();\r\n }\r\n this.state = \"finished\";\r\n this.holdTime = null;\r\n }\r\n finish() {\r\n this.notifyFinished();\r\n this.teardown();\r\n this.state = \"finished\";\r\n this.options.onComplete?.();\r\n }\r\n cancel() {\r\n this.holdTime = null;\r\n this.startTime = 0;\r\n this.tick(0);\r\n this.teardown();\r\n this.options.onCancel?.();\r\n }\r\n teardown() {\r\n this.state = \"idle\";\r\n this.stopDriver();\r\n this.startTime = this.holdTime = null;\r\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.mainThread--;\r\n }\r\n stopDriver() {\r\n if (!this.driver)\r\n return;\r\n this.driver.stop();\r\n this.driver = undefined;\r\n }\r\n sample(sampleTime) {\r\n this.startTime = 0;\r\n return this.tick(sampleTime, true);\r\n }\r\n attachTimeline(timeline) {\r\n if (this.options.allowFlatten) {\r\n this.options.type = \"keyframes\";\r\n this.options.ease = \"linear\";\r\n this.initAnimation();\r\n }\r\n this.driver?.stop();\r\n return timeline.observe(this);\r\n }\r\n}\r\n// Legacy function support\r\nfunction animateValue(options) {\r\n return new JSAnimation(options);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL0pTQW5pbWF0aW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQW9HO0FBQ2xEO0FBQ2M7QUFDbkI7QUFDUztBQUNIO0FBQ0k7QUFDc0I7QUFDaEI7QUFDZTtBQUN0QjtBQUN0RDtBQUNBO0FBQ0EsMEJBQTBCLCtEQUFXO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGNBQWM7QUFDbEMseURBQXlELDBEQUFJO0FBQzdELDBCQUEwQiwwREFBSTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsd0VBQWdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFVBQVU7QUFDMUIsUUFBUSx5RkFBcUI7QUFDN0IsZ0JBQWdCLE9BQU8sZ0VBQVMsMkRBQTJEO0FBQzNGLGNBQWMseUJBQXlCO0FBQ3ZDLHlDQUF5QyxnRUFBUztBQUNsRCxZQUFZLEtBQXFDO0FBQ2pELGlDQUFpQyxnRUFBUztBQUMxQyxZQUFZLHVEQUFTLDBIQUEwSCxZQUFZO0FBQzNKO0FBQ0EsaUNBQWlDLGdFQUFTO0FBQzFDO0FBQ0EsZ0NBQWdDLGtEQUFJLG9CQUFvQix5REFBRztBQUMzRDtBQUNBO0FBQ0EsNkNBQTZDLG9DQUFvQztBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMsMEZBQXFCO0FBQ2hFO0FBQ0EsZ0JBQWdCLHFCQUFxQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixtR0FBbUc7QUFDbkg7QUFDQTtBQUNBLGdCQUFnQix3RkFBd0Y7QUFDeEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtREFBSztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsT0FBTztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsNkRBQU87QUFDbkQsMEJBQTBCLDJFQUFnQjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG9FQUFxQjtBQUNwQztBQUNBO0FBQ0EsZ0JBQWdCLFlBQVk7QUFDNUIsK0JBQStCLG9FQUFxQjtBQUNwRDtBQUNBO0FBQ0EsZUFBZSxvRUFBcUI7QUFDcEM7QUFDQTtBQUNBLGtCQUFrQixvRUFBcUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLDBEQUFJO0FBQzVCO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixvRUFBcUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixTQUFTLGdFQUFlLGNBQWM7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsMERBQUk7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsd0VBQWdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vSlNBbmltYXRpb24ubWpzPzAzYTEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW52YXJpYW50LCBwaXBlLCBjbGFtcCwgbWlsbGlzZWNvbmRzVG9TZWNvbmRzLCBzZWNvbmRzVG9NaWxsaXNlY29uZHMgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyB0aW1lIH0gZnJvbSAnLi4vZnJhbWVsb29wL3N5bmMtdGltZS5tanMnO1xyXG5pbXBvcnQgeyBhY3RpdmVBbmltYXRpb25zIH0gZnJvbSAnLi4vc3RhdHMvYW5pbWF0aW9uLWNvdW50Lm1qcyc7XHJcbmltcG9ydCB7IG1peCB9IGZyb20gJy4uL3V0aWxzL21peC9pbmRleC5tanMnO1xyXG5pbXBvcnQgeyBmcmFtZWxvb3BEcml2ZXIgfSBmcm9tICcuL2RyaXZlcnMvZnJhbWUubWpzJztcclxuaW1wb3J0IHsgaW5lcnRpYSB9IGZyb20gJy4vZ2VuZXJhdG9ycy9pbmVydGlhLm1qcyc7XHJcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gJy4vZ2VuZXJhdG9ycy9rZXlmcmFtZXMubWpzJztcclxuaW1wb3J0IHsgY2FsY0dlbmVyYXRvckR1cmF0aW9uIH0gZnJvbSAnLi9nZW5lcmF0b3JzL3V0aWxzL2NhbGMtZHVyYXRpb24ubWpzJztcclxuaW1wb3J0IHsgZ2V0RmluYWxLZXlmcmFtZSB9IGZyb20gJy4va2V5ZnJhbWVzL2dldC1maW5hbC5tanMnO1xyXG5pbXBvcnQgeyByZXBsYWNlVHJhbnNpdGlvblR5cGUgfSBmcm9tICcuL3V0aWxzL3JlcGxhY2UtdHJhbnNpdGlvbi10eXBlLm1qcyc7XHJcbmltcG9ydCB7IFdpdGhQcm9taXNlIH0gZnJvbSAnLi91dGlscy9XaXRoUHJvbWlzZS5tanMnO1xyXG5cclxuY29uc3QgcGVyY2VudFRvUHJvZ3Jlc3MgPSAocGVyY2VudCkgPT4gcGVyY2VudCAvIDEwMDtcclxuY2xhc3MgSlNBbmltYXRpb24gZXh0ZW5kcyBXaXRoUHJvbWlzZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0gXCJpZGxlXCI7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaXNTdG9wcGVkID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGN1cnJlbnQgdGltZSBvZiB0aGUgYW5pbWF0aW9uLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRpbWUgPSAwO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBhbmltYXRpb24gd2FzIHBhdXNlZC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmhvbGRUaW1lID0gbnVsbDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBQbGF5YmFjayBzcGVlZCBhcyBhIGZhY3Rvci4gMCB3b3VsZCBiZSBzdG9wcGVkLCAtMSByZXZlcnNlIGFuZCAyIGRvdWJsZSBzcGVlZC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBsYXliYWNrU3BlZWQgPSAxO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIGJvdW5kIHRvIHRoZSBpbnN0YW5jZSB0byBmaXggYSBwYXR0ZXJuIHdoZXJlXHJcbiAgICAgICAgICogYW5pbWF0aW9uLnN0b3AgaXMgcmV0dXJuZWQgYXMgYSByZWZlcmVuY2UgZnJvbSBhIHVzZUVmZmVjdC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnN0b3AgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgbW90aW9uVmFsdWUgfSA9IHRoaXMub3B0aW9ucztcclxuICAgICAgICAgICAgaWYgKG1vdGlvblZhbHVlICYmIG1vdGlvblZhbHVlLnVwZGF0ZWRBdCAhPT0gdGltZS5ub3coKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aWNrKHRpbWUubm93KCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuaXNTdG9wcGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFwiaWRsZVwiKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLnRlYXJkb3duKCk7XHJcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5vblN0b3A/LigpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgYWN0aXZlQW5pbWF0aW9ucy5tYWluVGhyZWFkKys7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcclxuICAgICAgICB0aGlzLmluaXRBbmltYXRpb24oKTtcclxuICAgICAgICB0aGlzLnBsYXkoKTtcclxuICAgICAgICBpZiAob3B0aW9ucy5hdXRvcGxheSA9PT0gZmFsc2UpXHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UoKTtcclxuICAgIH1cclxuICAgIGluaXRBbmltYXRpb24oKSB7XHJcbiAgICAgICAgY29uc3QgeyBvcHRpb25zIH0gPSB0aGlzO1xyXG4gICAgICAgIHJlcGxhY2VUcmFuc2l0aW9uVHlwZShvcHRpb25zKTtcclxuICAgICAgICBjb25zdCB7IHR5cGUgPSBrZXlmcmFtZXMsIHJlcGVhdCA9IDAsIHJlcGVhdERlbGF5ID0gMCwgcmVwZWF0VHlwZSwgdmVsb2NpdHkgPSAwLCB9ID0gb3B0aW9ucztcclxuICAgICAgICBsZXQgeyBrZXlmcmFtZXM6IGtleWZyYW1lcyQxIH0gPSBvcHRpb25zO1xyXG4gICAgICAgIGNvbnN0IGdlbmVyYXRvckZhY3RvcnkgPSB0eXBlIHx8IGtleWZyYW1lcztcclxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmXHJcbiAgICAgICAgICAgIGdlbmVyYXRvckZhY3RvcnkgIT09IGtleWZyYW1lcykge1xyXG4gICAgICAgICAgICBpbnZhcmlhbnQoa2V5ZnJhbWVzJDEubGVuZ3RoIDw9IDIsIGBPbmx5IHR3byBrZXlmcmFtZXMgY3VycmVudGx5IHN1cHBvcnRlZCB3aXRoIHNwcmluZyBhbmQgaW5lcnRpYSBhbmltYXRpb25zLiBUcnlpbmcgdG8gYW5pbWF0ZSAke2tleWZyYW1lcyQxfWAsIFwic3ByaW5nLXR3by1mcmFtZXNcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChnZW5lcmF0b3JGYWN0b3J5ICE9PSBrZXlmcmFtZXMgJiZcclxuICAgICAgICAgICAgdHlwZW9mIGtleWZyYW1lcyQxWzBdICE9PSBcIm51bWJlclwiKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWl4S2V5ZnJhbWVzID0gcGlwZShwZXJjZW50VG9Qcm9ncmVzcywgbWl4KGtleWZyYW1lcyQxWzBdLCBrZXlmcmFtZXMkMVsxXSkpO1xyXG4gICAgICAgICAgICBrZXlmcmFtZXMkMSA9IFswLCAxMDBdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBnZW5lcmF0b3IgPSBnZW5lcmF0b3JGYWN0b3J5KHsgLi4ub3B0aW9ucywga2V5ZnJhbWVzOiBrZXlmcmFtZXMkMSB9KTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB3ZSBoYXZlIGEgbWlycm9yIHJlcGVhdCB0eXBlIHdlIG5lZWQgdG8gY3JlYXRlIGEgc2Vjb25kIGdlbmVyYXRvciB0aGF0IG91dHB1dHMgdGhlXHJcbiAgICAgICAgICogbWlycm9yZWQgKG5vdCByZXZlcnNlZCkgYW5pbWF0aW9uIGFuZCBsYXRlciBwaW5nIHBvbmcgYmV0d2VlbiB0aGUgdHdvIGdlbmVyYXRvcnMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgaWYgKHJlcGVhdFR5cGUgPT09IFwibWlycm9yXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5taXJyb3JlZEdlbmVyYXRvciA9IGdlbmVyYXRvckZhY3Rvcnkoe1xyXG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgICAgICAgICAgIGtleWZyYW1lczogWy4uLmtleWZyYW1lcyQxXS5yZXZlcnNlKCksXHJcbiAgICAgICAgICAgICAgICB2ZWxvY2l0eTogLXZlbG9jaXR5LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSWYgZHVyYXRpb24gaXMgdW5kZWZpbmVkIGFuZCB3ZSBoYXZlIHJlcGVhdCBvcHRpb25zLFxyXG4gICAgICAgICAqIHdlIG5lZWQgdG8gY2FsY3VsYXRlIGEgZHVyYXRpb24gZnJvbSB0aGUgZ2VuZXJhdG9yLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogV2Ugc2V0IGl0IHRvIHRoZSBnZW5lcmF0b3IgaXRzZWxmIHRvIGNhY2hlIHRoZSBkdXJhdGlvbi5cclxuICAgICAgICAgKiBBbnkgdGltZWxpbmUgcmVzb2x2ZXIgd2lsbCBuZWVkIHRvIGhhdmUgYWxyZWFkeSBwcmVjYWxjdWxhdGVkXHJcbiAgICAgICAgICogdGhlIGR1cmF0aW9uIGJ5IHRoaXMgc3RlcC5cclxuICAgICAgICAgKi9cclxuICAgICAgICBpZiAoZ2VuZXJhdG9yLmNhbGN1bGF0ZWREdXJhdGlvbiA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICBnZW5lcmF0b3IuY2FsY3VsYXRlZER1cmF0aW9uID0gY2FsY0dlbmVyYXRvckR1cmF0aW9uKGdlbmVyYXRvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHsgY2FsY3VsYXRlZER1cmF0aW9uIH0gPSBnZW5lcmF0b3I7XHJcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVkRHVyYXRpb24gPSBjYWxjdWxhdGVkRHVyYXRpb247XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlZER1cmF0aW9uID0gY2FsY3VsYXRlZER1cmF0aW9uICsgcmVwZWF0RGVsYXk7XHJcbiAgICAgICAgdGhpcy50b3RhbER1cmF0aW9uID0gdGhpcy5yZXNvbHZlZER1cmF0aW9uICogKHJlcGVhdCArIDEpIC0gcmVwZWF0RGVsYXk7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0b3IgPSBnZW5lcmF0b3I7XHJcbiAgICB9XHJcbiAgICB1cGRhdGVUaW1lKHRpbWVzdGFtcCkge1xyXG4gICAgICAgIGNvbnN0IGFuaW1hdGlvblRpbWUgPSBNYXRoLnJvdW5kKHRpbWVzdGFtcCAtIHRoaXMuc3RhcnRUaW1lKSAqIHRoaXMucGxheWJhY2tTcGVlZDtcclxuICAgICAgICAvLyBVcGRhdGUgY3VycmVudFRpbWVcclxuICAgICAgICBpZiAodGhpcy5ob2xkVGltZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5ob2xkVGltZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIFJvdW5kaW5nIHRoZSB0aW1lIGJlY2F1c2UgZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYyBpcyBub3QgYWx3YXlzIGFjY3VyYXRlLCBlLmcuIDMwMDAuMzY3IC0gMTAwMC4zNjcgPVxyXG4gICAgICAgICAgICAvLyAyMDAwLjAwMDAwMDAwMDAwMDIuIFRoaXMgaXMgYSBwcm9ibGVtIHdoZW4gd2UgYXJlIGNvbXBhcmluZyB0aGUgY3VycmVudFRpbWUgd2l0aCB0aGUgZHVyYXRpb24sIGZvclxyXG4gICAgICAgICAgICAvLyBleGFtcGxlLlxyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gYW5pbWF0aW9uVGltZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB0aWNrKHRpbWVzdGFtcCwgc2FtcGxlID0gZmFsc2UpIHtcclxuICAgICAgICBjb25zdCB7IGdlbmVyYXRvciwgdG90YWxEdXJhdGlvbiwgbWl4S2V5ZnJhbWVzLCBtaXJyb3JlZEdlbmVyYXRvciwgcmVzb2x2ZWREdXJhdGlvbiwgY2FsY3VsYXRlZER1cmF0aW9uLCB9ID0gdGhpcztcclxuICAgICAgICBpZiAodGhpcy5zdGFydFRpbWUgPT09IG51bGwpXHJcbiAgICAgICAgICAgIHJldHVybiBnZW5lcmF0b3IubmV4dCgwKTtcclxuICAgICAgICBjb25zdCB7IGRlbGF5ID0gMCwga2V5ZnJhbWVzLCByZXBlYXQsIHJlcGVhdFR5cGUsIHJlcGVhdERlbGF5LCB0eXBlLCBvblVwZGF0ZSwgZmluYWxLZXlmcmFtZSwgfSA9IHRoaXMub3B0aW9ucztcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgdGltZXN0YW1wcyBjYW4gY29tZSB0aHJvdWdoIGFzIGxvd2VyIHRoYW5cclxuICAgICAgICAgKiB0aGUgc3RhcnRUaW1lIGFzIHNldCBieSBwZXJmb3JtYW5jZS5ub3coKS4gSGVyZSB3ZSBwcmV2ZW50IHRoaXMsXHJcbiAgICAgICAgICogdGhvdWdoIGluIHRoZSBmdXR1cmUgaXQgY291bGQgYmUgcG9zc2libGUgdG8gbWFrZSBzZXR0aW5nIHN0YXJ0VGltZVxyXG4gICAgICAgICAqIGEgcGVuZGluZyBvcGVyYXRpb24gdGhhdCBnZXRzIHJlc29sdmVkIGhlcmUuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgaWYgKHRoaXMuc3BlZWQgPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gTWF0aC5taW4odGhpcy5zdGFydFRpbWUsIHRpbWVzdGFtcCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuc3BlZWQgPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gTWF0aC5taW4odGltZXN0YW1wIC0gdG90YWxEdXJhdGlvbiAvIHRoaXMuc3BlZWQsIHRoaXMuc3RhcnRUaW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNhbXBsZSkge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGltZXN0YW1wO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVUaW1lKHRpbWVzdGFtcCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFJlYmFzZSBvbiBkZWxheVxyXG4gICAgICAgIGNvbnN0IHRpbWVXaXRob3V0RGVsYXkgPSB0aGlzLmN1cnJlbnRUaW1lIC0gZGVsYXkgKiAodGhpcy5wbGF5YmFja1NwZWVkID49IDAgPyAxIDogLTEpO1xyXG4gICAgICAgIGNvbnN0IGlzSW5EZWxheVBoYXNlID0gdGhpcy5wbGF5YmFja1NwZWVkID49IDBcclxuICAgICAgICAgICAgPyB0aW1lV2l0aG91dERlbGF5IDwgMFxyXG4gICAgICAgICAgICA6IHRpbWVXaXRob3V0RGVsYXkgPiB0b3RhbER1cmF0aW9uO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRpbWUgPSBNYXRoLm1heCh0aW1lV2l0aG91dERlbGF5LCAwKTtcclxuICAgICAgICAvLyBJZiB0aGlzIGFuaW1hdGlvbiBoYXMgZmluaXNoZWQsIHNldCB0aGUgY3VycmVudCB0aW1lICB0byB0aGUgdG90YWwgZHVyYXRpb24uXHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFwiZmluaXNoZWRcIiAmJiB0aGlzLmhvbGRUaW1lID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFRpbWUgPSB0b3RhbER1cmF0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZWxhcHNlZCA9IHRoaXMuY3VycmVudFRpbWU7XHJcbiAgICAgICAgbGV0IGZyYW1lR2VuZXJhdG9yID0gZ2VuZXJhdG9yO1xyXG4gICAgICAgIGlmIChyZXBlYXQpIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEdldCB0aGUgY3VycmVudCBwcm9ncmVzcyAoMC0xKSBvZiB0aGUgYW5pbWF0aW9uLiBJZiB0IGlzID5cclxuICAgICAgICAgICAgICogdGhhbiBkdXJhdGlvbiB3ZSdsbCBnZXQgdmFsdWVzIGxpa2UgMi41IChtaWR3YXkgdGhyb3VnaCB0aGVcclxuICAgICAgICAgICAgICogdGhpcmQgaXRlcmF0aW9uKVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBNYXRoLm1pbih0aGlzLmN1cnJlbnRUaW1lLCB0b3RhbER1cmF0aW9uKSAvIHJlc29sdmVkRHVyYXRpb247XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBHZXQgdGhlIGN1cnJlbnQgaXRlcmF0aW9uICgwIGluZGV4ZWQpLiBGb3IgaW5zdGFuY2UgdGhlIGZsb29yIG9mXHJcbiAgICAgICAgICAgICAqIDIuNSBpcyAyLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgbGV0IGN1cnJlbnRJdGVyYXRpb24gPSBNYXRoLmZsb29yKHByb2dyZXNzKTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEdldCB0aGUgY3VycmVudCBwcm9ncmVzcyBvZiB0aGUgaXRlcmF0aW9uIGJ5IHRha2luZyB0aGUgcmVtYWluZGVyXHJcbiAgICAgICAgICAgICAqIHNvIDIuNSBpcyAwLjUgdGhyb3VnaCBpdGVyYXRpb24gMlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgbGV0IGl0ZXJhdGlvblByb2dyZXNzID0gcHJvZ3Jlc3MgJSAxLjA7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiBpdGVyYXRpb24gcHJvZ3Jlc3MgaXMgMSB3ZSBjb3VudCB0aGF0IGFzIHRoZSBlbmRcclxuICAgICAgICAgICAgICogb2YgdGhlIHByZXZpb3VzIGl0ZXJhdGlvbi5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmICghaXRlcmF0aW9uUHJvZ3Jlc3MgJiYgcHJvZ3Jlc3MgPj0gMSkge1xyXG4gICAgICAgICAgICAgICAgaXRlcmF0aW9uUHJvZ3Jlc3MgPSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGl0ZXJhdGlvblByb2dyZXNzID09PSAxICYmIGN1cnJlbnRJdGVyYXRpb24tLTtcclxuICAgICAgICAgICAgY3VycmVudEl0ZXJhdGlvbiA9IE1hdGgubWluKGN1cnJlbnRJdGVyYXRpb24sIHJlcGVhdCArIDEpO1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogUmV2ZXJzZSBwcm9ncmVzcyBpZiB3ZSdyZSBub3QgcnVubmluZyBpbiBcIm5vcm1hbFwiIGRpcmVjdGlvblxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgY29uc3QgaXNPZGRJdGVyYXRpb24gPSBCb29sZWFuKGN1cnJlbnRJdGVyYXRpb24gJSAyKTtcclxuICAgICAgICAgICAgaWYgKGlzT2RkSXRlcmF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVwZWF0VHlwZSA9PT0gXCJyZXZlcnNlXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25Qcm9ncmVzcyA9IDEgLSBpdGVyYXRpb25Qcm9ncmVzcztcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVwZWF0RGVsYXkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uUHJvZ3Jlc3MgLT0gcmVwZWF0RGVsYXkgLyByZXNvbHZlZER1cmF0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlcGVhdFR5cGUgPT09IFwibWlycm9yXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBmcmFtZUdlbmVyYXRvciA9IG1pcnJvcmVkR2VuZXJhdG9yO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsYXBzZWQgPSBjbGFtcCgwLCAxLCBpdGVyYXRpb25Qcm9ncmVzcykgKiByZXNvbHZlZER1cmF0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB3ZSdyZSBpbiBuZWdhdGl2ZSB0aW1lLCBzZXQgc3RhdGUgYXMgdGhlIGluaXRpYWwga2V5ZnJhbWUuXHJcbiAgICAgICAgICogVGhpcyBwcmV2ZW50cyBkZWxheTogeCwgZHVyYXRpb246IDAgYW5pbWF0aW9ucyBmcm9tIGZpbmlzaGluZ1xyXG4gICAgICAgICAqIGluc3RhbnRseS5cclxuICAgICAgICAgKi9cclxuICAgICAgICBjb25zdCBzdGF0ZSA9IGlzSW5EZWxheVBoYXNlXHJcbiAgICAgICAgICAgID8geyBkb25lOiBmYWxzZSwgdmFsdWU6IGtleWZyYW1lc1swXSB9XHJcbiAgICAgICAgICAgIDogZnJhbWVHZW5lcmF0b3IubmV4dChlbGFwc2VkKTtcclxuICAgICAgICBpZiAobWl4S2V5ZnJhbWVzKSB7XHJcbiAgICAgICAgICAgIHN0YXRlLnZhbHVlID0gbWl4S2V5ZnJhbWVzKHN0YXRlLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHsgZG9uZSB9ID0gc3RhdGU7XHJcbiAgICAgICAgaWYgKCFpc0luRGVsYXlQaGFzZSAmJiBjYWxjdWxhdGVkRHVyYXRpb24gIT09IG51bGwpIHtcclxuICAgICAgICAgICAgZG9uZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBsYXliYWNrU3BlZWQgPj0gMFxyXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5jdXJyZW50VGltZSA+PSB0b3RhbER1cmF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmN1cnJlbnRUaW1lIDw9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGlzQW5pbWF0aW9uRmluaXNoZWQgPSB0aGlzLmhvbGRUaW1lID09PSBudWxsICYmXHJcbiAgICAgICAgICAgICh0aGlzLnN0YXRlID09PSBcImZpbmlzaGVkXCIgfHwgKHRoaXMuc3RhdGUgPT09IFwicnVubmluZ1wiICYmIGRvbmUpKTtcclxuICAgICAgICAvLyBUT0RPOiBUaGUgZXhjZXB0aW9uIGZvciBpbmVydGlhIGNvdWxkIGJlIGNsZWFuZXIgaGVyZVxyXG4gICAgICAgIGlmIChpc0FuaW1hdGlvbkZpbmlzaGVkICYmIHR5cGUgIT09IGluZXJ0aWEpIHtcclxuICAgICAgICAgICAgc3RhdGUudmFsdWUgPSBnZXRGaW5hbEtleWZyYW1lKGtleWZyYW1lcywgdGhpcy5vcHRpb25zLCBmaW5hbEtleWZyYW1lLCB0aGlzLnNwZWVkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9uVXBkYXRlKSB7XHJcbiAgICAgICAgICAgIG9uVXBkYXRlKHN0YXRlLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlzQW5pbWF0aW9uRmluaXNoZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBBbGxvd3MgdGhlIHJldHVybmVkIGFuaW1hdGlvbiB0byBiZSBhd2FpdGVkIG9yIHByb21pc2UtY2hhaW5lZC4gQ3VycmVudGx5XHJcbiAgICAgKiByZXNvbHZlcyB3aGVuIHRoZSBhbmltYXRpb24gZmluaXNoZXMgYXQgYWxsIGJ1dCBpbiBhIGZ1dHVyZSB1cGRhdGUgY291bGQvc2hvdWxkXHJcbiAgICAgKiByZWplY3QgaWYgaXRzIGNhbmNlbHMuXHJcbiAgICAgKi9cclxuICAgIHRoZW4ocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluaXNoZWQudGhlbihyZXNvbHZlLCByZWplY3QpO1xyXG4gICAgfVxyXG4gICAgZ2V0IGR1cmF0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBtaWxsaXNlY29uZHNUb1NlY29uZHModGhpcy5jYWxjdWxhdGVkRHVyYXRpb24pO1xyXG4gICAgfVxyXG4gICAgZ2V0IGl0ZXJhdGlvbkR1cmF0aW9uKCkge1xyXG4gICAgICAgIGNvbnN0IHsgZGVsYXkgPSAwIH0gPSB0aGlzLm9wdGlvbnMgfHwge307XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZHVyYXRpb24gKyBtaWxsaXNlY29uZHNUb1NlY29uZHMoZGVsYXkpO1xyXG4gICAgfVxyXG4gICAgZ2V0IHRpbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIG1pbGxpc2Vjb25kc1RvU2Vjb25kcyh0aGlzLmN1cnJlbnRUaW1lKTtcclxuICAgIH1cclxuICAgIHNldCB0aW1lKG5ld1RpbWUpIHtcclxuICAgICAgICBuZXdUaW1lID0gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKG5ld1RpbWUpO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRpbWUgPSBuZXdUaW1lO1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0VGltZSA9PT0gbnVsbCB8fFxyXG4gICAgICAgICAgICB0aGlzLmhvbGRUaW1lICE9PSBudWxsIHx8XHJcbiAgICAgICAgICAgIHRoaXMucGxheWJhY2tTcGVlZCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmhvbGRUaW1lID0gbmV3VGltZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5kcml2ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSB0aGlzLmRyaXZlci5ub3coKSAtIG5ld1RpbWUgLyB0aGlzLnBsYXliYWNrU3BlZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZHJpdmVyPy5zdGFydChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBnZXQgc3BlZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheWJhY2tTcGVlZDtcclxuICAgIH1cclxuICAgIHNldCBzcGVlZChuZXdTcGVlZCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlVGltZSh0aW1lLm5vdygpKTtcclxuICAgICAgICBjb25zdCBoYXNDaGFuZ2VkID0gdGhpcy5wbGF5YmFja1NwZWVkICE9PSBuZXdTcGVlZDtcclxuICAgICAgICB0aGlzLnBsYXliYWNrU3BlZWQgPSBuZXdTcGVlZDtcclxuICAgICAgICBpZiAoaGFzQ2hhbmdlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnRpbWUgPSBtaWxsaXNlY29uZHNUb1NlY29uZHModGhpcy5jdXJyZW50VGltZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcGxheSgpIHtcclxuICAgICAgICBpZiAodGhpcy5pc1N0b3BwZWQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBjb25zdCB7IGRyaXZlciA9IGZyYW1lbG9vcERyaXZlciwgc3RhcnRUaW1lIH0gPSB0aGlzLm9wdGlvbnM7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRyaXZlcikge1xyXG4gICAgICAgICAgICB0aGlzLmRyaXZlciA9IGRyaXZlcigodGltZXN0YW1wKSA9PiB0aGlzLnRpY2sodGltZXN0YW1wKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub3B0aW9ucy5vblBsYXk/LigpO1xyXG4gICAgICAgIGNvbnN0IG5vdyA9IHRoaXMuZHJpdmVyLm5vdygpO1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlID09PSBcImZpbmlzaGVkXCIpIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVGaW5pc2hlZCgpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IG5vdztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5ob2xkVGltZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IG5vdyAtIHRoaXMuaG9sZFRpbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLnN0YXJ0VGltZSkge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IHN0YXJ0VGltZSA/PyBub3c7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlID09PSBcImZpbmlzaGVkXCIgJiYgdGhpcy5zcGVlZCA8IDApIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgKz0gdGhpcy5jYWxjdWxhdGVkRHVyYXRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaG9sZFRpbWUgPSBudWxsO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFNldCBwbGF5U3RhdGUgdG8gcnVubmluZyBvbmx5IGFmdGVyIHdlJ3ZlIHVzZWQgaXQgaW5cclxuICAgICAgICAgKiB0aGUgcHJldmlvdXMgbG9naWMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFwicnVubmluZ1wiO1xyXG4gICAgICAgIHRoaXMuZHJpdmVyLnN0YXJ0KCk7XHJcbiAgICB9XHJcbiAgICBwYXVzZSgpIHtcclxuICAgICAgICB0aGlzLnN0YXRlID0gXCJwYXVzZWRcIjtcclxuICAgICAgICB0aGlzLnVwZGF0ZVRpbWUodGltZS5ub3coKSk7XHJcbiAgICAgICAgdGhpcy5ob2xkVGltZSA9IHRoaXMuY3VycmVudFRpbWU7XHJcbiAgICB9XHJcbiAgICBjb21wbGV0ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZSAhPT0gXCJydW5uaW5nXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5wbGF5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3RhdGUgPSBcImZpbmlzaGVkXCI7XHJcbiAgICAgICAgdGhpcy5ob2xkVGltZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBmaW5pc2goKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZnlGaW5pc2hlZCgpO1xyXG4gICAgICAgIHRoaXMudGVhcmRvd24oKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0gXCJmaW5pc2hlZFwiO1xyXG4gICAgICAgIHRoaXMub3B0aW9ucy5vbkNvbXBsZXRlPy4oKTtcclxuICAgIH1cclxuICAgIGNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLmhvbGRUaW1lID0gbnVsbDtcclxuICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy50aWNrKDApO1xyXG4gICAgICAgIHRoaXMudGVhcmRvd24oKTtcclxuICAgICAgICB0aGlzLm9wdGlvbnMub25DYW5jZWw/LigpO1xyXG4gICAgfVxyXG4gICAgdGVhcmRvd24oKSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFwiaWRsZVwiO1xyXG4gICAgICAgIHRoaXMuc3RvcERyaXZlcigpO1xyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gdGhpcy5ob2xkVGltZSA9IG51bGw7XHJcbiAgICAgICAgYWN0aXZlQW5pbWF0aW9ucy5tYWluVGhyZWFkLS07XHJcbiAgICB9XHJcbiAgICBzdG9wRHJpdmVyKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5kcml2ZXIpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB0aGlzLmRyaXZlci5zdG9wKCk7XHJcbiAgICAgICAgdGhpcy5kcml2ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBzYW1wbGUoc2FtcGxlVGltZSkge1xyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gMDtcclxuICAgICAgICByZXR1cm4gdGhpcy50aWNrKHNhbXBsZVRpbWUsIHRydWUpO1xyXG4gICAgfVxyXG4gICAgYXR0YWNoVGltZWxpbmUodGltZWxpbmUpIHtcclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmFsbG93RmxhdHRlbikge1xyXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMudHlwZSA9IFwia2V5ZnJhbWVzXCI7XHJcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5lYXNlID0gXCJsaW5lYXJcIjtcclxuICAgICAgICAgICAgdGhpcy5pbml0QW5pbWF0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZHJpdmVyPy5zdG9wKCk7XHJcbiAgICAgICAgcmV0dXJuIHRpbWVsaW5lLm9ic2VydmUodGhpcyk7XHJcbiAgICB9XHJcbn1cclxuLy8gTGVnYWN5IGZ1bmN0aW9uIHN1cHBvcnRcclxuZnVuY3Rpb24gYW5pbWF0ZVZhbHVlKG9wdGlvbnMpIHtcclxuICAgIHJldHVybiBuZXcgSlNBbmltYXRpb24ob3B0aW9ucyk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IEpTQW5pbWF0aW9uLCBhbmltYXRlVmFsdWUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NativeAnimation: function() { return /* binding */ NativeAnimation; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _render_dom_style_set_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../render/dom/style-set.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/style-set.mjs\");\n/* harmony import */ var _utils_supports_scroll_timeline_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/supports/scroll-timeline.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs\");\n/* harmony import */ var _keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./keyframes/get-final.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\");\n/* harmony import */ var _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/WithPromise.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\");\n/* harmony import */ var _waapi_start_waapi_animation_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./waapi/start-waapi-animation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs\");\n/* harmony import */ var _waapi_utils_apply_generator_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./waapi/utils/apply-generator.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * NativeAnimation implements AnimationPlaybackControls for the browser's Web Animations API.\r\n */\r\nclass NativeAnimation extends _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__.WithPromise {\r\n constructor(options) {\r\n super();\r\n this.finishedTime = null;\r\n this.isStopped = false;\r\n if (!options)\r\n return;\r\n const { element, name, keyframes, pseudoElement, allowFlatten = false, finalKeyframe, onComplete, } = options;\r\n this.isPseudoElement = Boolean(pseudoElement);\r\n this.allowFlatten = allowFlatten;\r\n this.options = options;\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.invariant)(typeof options.type !== \"string\", `Mini animate() doesn't support \"type\" as a string.`, \"mini-spring\");\r\n const transition = (0,_waapi_utils_apply_generator_mjs__WEBPACK_IMPORTED_MODULE_2__.applyGeneratorOptions)(options);\r\n this.animation = (0,_waapi_start_waapi_animation_mjs__WEBPACK_IMPORTED_MODULE_3__.startWaapiAnimation)(element, name, keyframes, transition, pseudoElement);\r\n if (transition.autoplay === false) {\r\n this.animation.pause();\r\n }\r\n this.animation.onfinish = () => {\r\n this.finishedTime = this.time;\r\n if (!pseudoElement) {\r\n const keyframe = (0,_keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_4__.getFinalKeyframe)(keyframes, this.options, finalKeyframe, this.speed);\r\n if (this.updateMotionValue) {\r\n this.updateMotionValue(keyframe);\r\n }\r\n else {\r\n /**\r\n * If we can, we want to commit the final style as set by the user,\r\n * rather than the computed keyframe value supplied by the animation.\r\n */\r\n (0,_render_dom_style_set_mjs__WEBPACK_IMPORTED_MODULE_5__.setStyle)(element, name, keyframe);\r\n }\r\n this.animation.cancel();\r\n }\r\n onComplete?.();\r\n this.notifyFinished();\r\n };\r\n }\r\n play() {\r\n if (this.isStopped)\r\n return;\r\n this.animation.play();\r\n if (this.state === \"finished\") {\r\n this.updateFinished();\r\n }\r\n }\r\n pause() {\r\n this.animation.pause();\r\n }\r\n complete() {\r\n this.animation.finish?.();\r\n }\r\n cancel() {\r\n try {\r\n this.animation.cancel();\r\n }\r\n catch (e) { }\r\n }\r\n stop() {\r\n if (this.isStopped)\r\n return;\r\n this.isStopped = true;\r\n const { state } = this;\r\n if (state === \"idle\" || state === \"finished\") {\r\n return;\r\n }\r\n if (this.updateMotionValue) {\r\n this.updateMotionValue();\r\n }\r\n else {\r\n this.commitStyles();\r\n }\r\n if (!this.isPseudoElement)\r\n this.cancel();\r\n }\r\n /**\r\n * WAAPI doesn't natively have any interruption capabilities.\r\n *\r\n * In this method, we commit styles back to the DOM before cancelling\r\n * the animation.\r\n *\r\n * This is designed to be overridden by NativeAnimationExtended, which\r\n * will create a renderless JS animation and sample it twice to calculate\r\n * its current value, \"previous\" value, and therefore allow\r\n * Motion to also correctly calculate velocity for any subsequent animation\r\n * while deferring the commit until the next animation frame.\r\n */\r\n commitStyles() {\r\n if (!this.isPseudoElement) {\r\n this.animation.commitStyles?.();\r\n }\r\n }\r\n get duration() {\r\n const duration = this.animation.effect?.getComputedTiming?.().duration || 0;\r\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(Number(duration));\r\n }\r\n get iterationDuration() {\r\n const { delay = 0 } = this.options || {};\r\n return this.duration + (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(delay);\r\n }\r\n get time() {\r\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(Number(this.animation.currentTime) || 0);\r\n }\r\n set time(newTime) {\r\n this.finishedTime = null;\r\n this.animation.currentTime = (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.secondsToMilliseconds)(newTime);\r\n }\r\n /**\r\n * The playback speed of the animation.\r\n * 1 = normal speed, 2 = double speed, 0.5 = half speed.\r\n */\r\n get speed() {\r\n return this.animation.playbackRate;\r\n }\r\n set speed(newSpeed) {\r\n // Allow backwards playback after finishing\r\n if (newSpeed < 0)\r\n this.finishedTime = null;\r\n this.animation.playbackRate = newSpeed;\r\n }\r\n get state() {\r\n return this.finishedTime !== null\r\n ? \"finished\"\r\n : this.animation.playState;\r\n }\r\n get startTime() {\r\n return Number(this.animation.startTime);\r\n }\r\n set startTime(newStartTime) {\r\n this.animation.startTime = newStartTime;\r\n }\r\n /**\r\n * Attaches a timeline to the animation, for instance the `ScrollTimeline`.\r\n */\r\n attachTimeline({ timeline, observe }) {\r\n if (this.allowFlatten) {\r\n this.animation.effect?.updateTiming({ easing: \"linear\" });\r\n }\r\n this.animation.onfinish = null;\r\n if (timeline && (0,_utils_supports_scroll_timeline_mjs__WEBPACK_IMPORTED_MODULE_7__.supportsScrollTimeline)()) {\r\n this.animation.timeline = timeline;\r\n return motion_utils__WEBPACK_IMPORTED_MODULE_8__.noop;\r\n }\r\n else {\r\n return observe(this);\r\n }\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL05hdGl2ZUFuaW1hdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUE2RjtBQUN0QztBQUN3QjtBQUNsQjtBQUNQO0FBQ2tCO0FBQ0U7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsK0RBQVc7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDRGQUE0RjtBQUM1RztBQUNBO0FBQ0E7QUFDQSxRQUFRLHVEQUFTO0FBQ2pCLDJCQUEyQix1RkFBcUI7QUFDaEQseUJBQXlCLHFGQUFtQjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsMEVBQWdCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsbUVBQVE7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsUUFBUTtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUVBQXFCO0FBQ3BDO0FBQ0E7QUFDQSxnQkFBZ0IsWUFBWTtBQUM1QiwrQkFBK0IsbUVBQXFCO0FBQ3BEO0FBQ0E7QUFDQSxlQUFlLG1FQUFxQjtBQUNwQztBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsbUVBQXFCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLG1CQUFtQjtBQUN4QztBQUNBLGtEQUFrRCxrQkFBa0I7QUFDcEU7QUFDQTtBQUNBLHdCQUF3QiwyRkFBc0I7QUFDOUM7QUFDQSxtQkFBbUIsOENBQUk7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDMkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vTmF0aXZlQW5pbWF0aW9uLm1qcz9kZDliIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludmFyaWFudCwgbWlsbGlzZWNvbmRzVG9TZWNvbmRzLCBzZWNvbmRzVG9NaWxsaXNlY29uZHMsIG5vb3AgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBzZXRTdHlsZSB9IGZyb20gJy4uL3JlbmRlci9kb20vc3R5bGUtc2V0Lm1qcyc7XHJcbmltcG9ydCB7IHN1cHBvcnRzU2Nyb2xsVGltZWxpbmUgfSBmcm9tICcuLi91dGlscy9zdXBwb3J0cy9zY3JvbGwtdGltZWxpbmUubWpzJztcclxuaW1wb3J0IHsgZ2V0RmluYWxLZXlmcmFtZSB9IGZyb20gJy4va2V5ZnJhbWVzL2dldC1maW5hbC5tanMnO1xyXG5pbXBvcnQgeyBXaXRoUHJvbWlzZSB9IGZyb20gJy4vdXRpbHMvV2l0aFByb21pc2UubWpzJztcclxuaW1wb3J0IHsgc3RhcnRXYWFwaUFuaW1hdGlvbiB9IGZyb20gJy4vd2FhcGkvc3RhcnQtd2FhcGktYW5pbWF0aW9uLm1qcyc7XHJcbmltcG9ydCB7IGFwcGx5R2VuZXJhdG9yT3B0aW9ucyB9IGZyb20gJy4vd2FhcGkvdXRpbHMvYXBwbHktZ2VuZXJhdG9yLm1qcyc7XHJcblxyXG4vKipcclxuICogTmF0aXZlQW5pbWF0aW9uIGltcGxlbWVudHMgQW5pbWF0aW9uUGxheWJhY2tDb250cm9scyBmb3IgdGhlIGJyb3dzZXIncyBXZWIgQW5pbWF0aW9ucyBBUEkuXHJcbiAqL1xyXG5jbGFzcyBOYXRpdmVBbmltYXRpb24gZXh0ZW5kcyBXaXRoUHJvbWlzZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmZpbmlzaGVkVGltZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5pc1N0b3BwZWQgPSBmYWxzZTtcclxuICAgICAgICBpZiAoIW9wdGlvbnMpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBjb25zdCB7IGVsZW1lbnQsIG5hbWUsIGtleWZyYW1lcywgcHNldWRvRWxlbWVudCwgYWxsb3dGbGF0dGVuID0gZmFsc2UsIGZpbmFsS2V5ZnJhbWUsIG9uQ29tcGxldGUsIH0gPSBvcHRpb25zO1xyXG4gICAgICAgIHRoaXMuaXNQc2V1ZG9FbGVtZW50ID0gQm9vbGVhbihwc2V1ZG9FbGVtZW50KTtcclxuICAgICAgICB0aGlzLmFsbG93RmxhdHRlbiA9IGFsbG93RmxhdHRlbjtcclxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgICAgIGludmFyaWFudCh0eXBlb2Ygb3B0aW9ucy50eXBlICE9PSBcInN0cmluZ1wiLCBgTWluaSBhbmltYXRlKCkgZG9lc24ndCBzdXBwb3J0IFwidHlwZVwiIGFzIGEgc3RyaW5nLmAsIFwibWluaS1zcHJpbmdcIik7XHJcbiAgICAgICAgY29uc3QgdHJhbnNpdGlvbiA9IGFwcGx5R2VuZXJhdG9yT3B0aW9ucyhvcHRpb25zKTtcclxuICAgICAgICB0aGlzLmFuaW1hdGlvbiA9IHN0YXJ0V2FhcGlBbmltYXRpb24oZWxlbWVudCwgbmFtZSwga2V5ZnJhbWVzLCB0cmFuc2l0aW9uLCBwc2V1ZG9FbGVtZW50KTtcclxuICAgICAgICBpZiAodHJhbnNpdGlvbi5hdXRvcGxheSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24ucGF1c2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hbmltYXRpb24ub25maW5pc2ggPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZmluaXNoZWRUaW1lID0gdGhpcy50aW1lO1xyXG4gICAgICAgICAgICBpZiAoIXBzZXVkb0VsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGtleWZyYW1lID0gZ2V0RmluYWxLZXlmcmFtZShrZXlmcmFtZXMsIHRoaXMub3B0aW9ucywgZmluYWxLZXlmcmFtZSwgdGhpcy5zcGVlZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy51cGRhdGVNb3Rpb25WYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTW90aW9uVmFsdWUoa2V5ZnJhbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgICAgICogSWYgd2UgY2FuLCB3ZSB3YW50IHRvIGNvbW1pdCB0aGUgZmluYWwgc3R5bGUgYXMgc2V0IGJ5IHRoZSB1c2VyLFxyXG4gICAgICAgICAgICAgICAgICAgICAqIHJhdGhlciB0aGFuIHRoZSBjb21wdXRlZCBrZXlmcmFtZSB2YWx1ZSBzdXBwbGllZCBieSB0aGUgYW5pbWF0aW9uLlxyXG4gICAgICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFN0eWxlKGVsZW1lbnQsIG5hbWUsIGtleWZyYW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uLmNhbmNlbCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9uQ29tcGxldGU/LigpO1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmeUZpbmlzaGVkKCk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIHBsYXkoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgdGhpcy5hbmltYXRpb24ucGxheSgpO1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlID09PSBcImZpbmlzaGVkXCIpIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVGaW5pc2hlZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHBhdXNlKCkge1xyXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLnBhdXNlKCk7XHJcbiAgICB9XHJcbiAgICBjb21wbGV0ZSgpIHtcclxuICAgICAgICB0aGlzLmFuaW1hdGlvbi5maW5pc2g/LigpO1xyXG4gICAgfVxyXG4gICAgY2FuY2VsKCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uLmNhbmNlbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkgeyB9XHJcbiAgICB9XHJcbiAgICBzdG9wKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzU3RvcHBlZClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuaXNTdG9wcGVkID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCB7IHN0YXRlIH0gPSB0aGlzO1xyXG4gICAgICAgIGlmIChzdGF0ZSA9PT0gXCJpZGxlXCIgfHwgc3RhdGUgPT09IFwiZmluaXNoZWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnVwZGF0ZU1vdGlvblZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW90aW9uVmFsdWUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbWl0U3R5bGVzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5pc1BzZXVkb0VsZW1lbnQpXHJcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsKCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFdBQVBJIGRvZXNuJ3QgbmF0aXZlbHkgaGF2ZSBhbnkgaW50ZXJydXB0aW9uIGNhcGFiaWxpdGllcy5cclxuICAgICAqXHJcbiAgICAgKiBJbiB0aGlzIG1ldGhvZCwgd2UgY29tbWl0IHN0eWxlcyBiYWNrIHRvIHRoZSBET00gYmVmb3JlIGNhbmNlbGxpbmdcclxuICAgICAqIHRoZSBhbmltYXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBpcyBkZXNpZ25lZCB0byBiZSBvdmVycmlkZGVuIGJ5IE5hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkLCB3aGljaFxyXG4gICAgICogd2lsbCBjcmVhdGUgYSByZW5kZXJsZXNzIEpTIGFuaW1hdGlvbiBhbmQgc2FtcGxlIGl0IHR3aWNlIHRvIGNhbGN1bGF0ZVxyXG4gICAgICogaXRzIGN1cnJlbnQgdmFsdWUsIFwicHJldmlvdXNcIiB2YWx1ZSwgYW5kIHRoZXJlZm9yZSBhbGxvd1xyXG4gICAgICogTW90aW9uIHRvIGFsc28gY29ycmVjdGx5IGNhbGN1bGF0ZSB2ZWxvY2l0eSBmb3IgYW55IHN1YnNlcXVlbnQgYW5pbWF0aW9uXHJcbiAgICAgKiB3aGlsZSBkZWZlcnJpbmcgdGhlIGNvbW1pdCB1bnRpbCB0aGUgbmV4dCBhbmltYXRpb24gZnJhbWUuXHJcbiAgICAgKi9cclxuICAgIGNvbW1pdFN0eWxlcygpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNQc2V1ZG9FbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uLmNvbW1pdFN0eWxlcz8uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZ2V0IGR1cmF0aW9uKCkge1xyXG4gICAgICAgIGNvbnN0IGR1cmF0aW9uID0gdGhpcy5hbmltYXRpb24uZWZmZWN0Py5nZXRDb21wdXRlZFRpbWluZz8uKCkuZHVyYXRpb24gfHwgMDtcclxuICAgICAgICByZXR1cm4gbWlsbGlzZWNvbmRzVG9TZWNvbmRzKE51bWJlcihkdXJhdGlvbikpO1xyXG4gICAgfVxyXG4gICAgZ2V0IGl0ZXJhdGlvbkR1cmF0aW9uKCkge1xyXG4gICAgICAgIGNvbnN0IHsgZGVsYXkgPSAwIH0gPSB0aGlzLm9wdGlvbnMgfHwge307XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZHVyYXRpb24gKyBtaWxsaXNlY29uZHNUb1NlY29uZHMoZGVsYXkpO1xyXG4gICAgfVxyXG4gICAgZ2V0IHRpbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIG1pbGxpc2Vjb25kc1RvU2Vjb25kcyhOdW1iZXIodGhpcy5hbmltYXRpb24uY3VycmVudFRpbWUpIHx8IDApO1xyXG4gICAgfVxyXG4gICAgc2V0IHRpbWUobmV3VGltZSkge1xyXG4gICAgICAgIHRoaXMuZmluaXNoZWRUaW1lID0gbnVsbDtcclxuICAgICAgICB0aGlzLmFuaW1hdGlvbi5jdXJyZW50VGltZSA9IHNlY29uZHNUb01pbGxpc2Vjb25kcyhuZXdUaW1lKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHBsYXliYWNrIHNwZWVkIG9mIHRoZSBhbmltYXRpb24uXHJcbiAgICAgKiAxID0gbm9ybWFsIHNwZWVkLCAyID0gZG91YmxlIHNwZWVkLCAwLjUgPSBoYWxmIHNwZWVkLlxyXG4gICAgICovXHJcbiAgICBnZXQgc3BlZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uLnBsYXliYWNrUmF0ZTtcclxuICAgIH1cclxuICAgIHNldCBzcGVlZChuZXdTcGVlZCkge1xyXG4gICAgICAgIC8vIEFsbG93IGJhY2t3YXJkcyBwbGF5YmFjayBhZnRlciBmaW5pc2hpbmdcclxuICAgICAgICBpZiAobmV3U3BlZWQgPCAwKVxyXG4gICAgICAgICAgICB0aGlzLmZpbmlzaGVkVGltZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5hbmltYXRpb24ucGxheWJhY2tSYXRlID0gbmV3U3BlZWQ7XHJcbiAgICB9XHJcbiAgICBnZXQgc3RhdGUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluaXNoZWRUaW1lICE9PSBudWxsXHJcbiAgICAgICAgICAgID8gXCJmaW5pc2hlZFwiXHJcbiAgICAgICAgICAgIDogdGhpcy5hbmltYXRpb24ucGxheVN0YXRlO1xyXG4gICAgfVxyXG4gICAgZ2V0IHN0YXJ0VGltZSgpIHtcclxuICAgICAgICByZXR1cm4gTnVtYmVyKHRoaXMuYW5pbWF0aW9uLnN0YXJ0VGltZSk7XHJcbiAgICB9XHJcbiAgICBzZXQgc3RhcnRUaW1lKG5ld1N0YXJ0VGltZSkge1xyXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLnN0YXJ0VGltZSA9IG5ld1N0YXJ0VGltZTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQXR0YWNoZXMgYSB0aW1lbGluZSB0byB0aGUgYW5pbWF0aW9uLCBmb3IgaW5zdGFuY2UgdGhlIGBTY3JvbGxUaW1lbGluZWAuXHJcbiAgICAgKi9cclxuICAgIGF0dGFjaFRpbWVsaW5lKHsgdGltZWxpbmUsIG9ic2VydmUgfSkge1xyXG4gICAgICAgIGlmICh0aGlzLmFsbG93RmxhdHRlbikge1xyXG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbi5lZmZlY3Q/LnVwZGF0ZVRpbWluZyh7IGVhc2luZzogXCJsaW5lYXJcIiB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hbmltYXRpb24ub25maW5pc2ggPSBudWxsO1xyXG4gICAgICAgIGlmICh0aW1lbGluZSAmJiBzdXBwb3J0c1Njcm9sbFRpbWVsaW5lKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24udGltZWxpbmUgPSB0aW1lbGluZTtcclxuICAgICAgICAgICAgcmV0dXJuIG5vb3A7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzZXJ2ZSh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IE5hdGl2ZUFuaW1hdGlvbiB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NativeAnimationExtended: function() { return /* binding */ NativeAnimationExtended; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./JSAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\");\n/* harmony import */ var _NativeAnimation_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NativeAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs\");\n/* harmony import */ var _utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/replace-transition-type.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs\");\n/* harmony import */ var _waapi_utils_unsupported_easing_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./waapi/utils/unsupported-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * 10ms is chosen here as it strikes a balance between smooth\r\n * results (more than one keyframe per frame at 60fps) and\r\n * keyframe quantity.\r\n */\r\nconst sampleDelta = 10; //ms\r\nclass NativeAnimationExtended extends _NativeAnimation_mjs__WEBPACK_IMPORTED_MODULE_0__.NativeAnimation {\r\n constructor(options) {\r\n /**\r\n * The base NativeAnimation function only supports a subset\r\n * of Motion easings, and WAAPI also only supports some\r\n * easing functions via string/cubic-bezier definitions.\r\n *\r\n * This function replaces those unsupported easing functions\r\n * with a JS easing function. This will later get compiled\r\n * to a linear() easing function.\r\n */\r\n (0,_waapi_utils_unsupported_easing_mjs__WEBPACK_IMPORTED_MODULE_1__.replaceStringEasing)(options);\r\n /**\r\n * Ensure we replace the transition type with a generator function\r\n * before passing to WAAPI.\r\n *\r\n * TODO: Does this have a better home? It could be shared with\r\n * JSAnimation.\r\n */\r\n (0,_utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_2__.replaceTransitionType)(options);\r\n super(options);\r\n if (options.startTime) {\r\n this.startTime = options.startTime;\r\n }\r\n this.options = options;\r\n }\r\n /**\r\n * WAAPI doesn't natively have any interruption capabilities.\r\n *\r\n * Rather than read commited styles back out of the DOM, we can\r\n * create a renderless JS animation and sample it twice to calculate\r\n * its current value, \"previous\" value, and therefore allow\r\n * Motion to calculate velocity for any subsequent animation.\r\n */\r\n updateMotionValue(value) {\r\n const { motionValue, onUpdate, onComplete, element, ...options } = this.options;\r\n if (!motionValue)\r\n return;\r\n if (value !== undefined) {\r\n motionValue.set(value);\r\n return;\r\n }\r\n const sampleAnimation = new _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_3__.JSAnimation({\r\n ...options,\r\n autoplay: false,\r\n });\r\n const sampleTime = (0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.secondsToMilliseconds)(this.finishedTime ?? this.time);\r\n motionValue.setWithVelocity(sampleAnimation.sample(sampleTime - sampleDelta).value, sampleAnimation.sample(sampleTime).value, sampleDelta);\r\n sampleAnimation.stop();\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL05hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBcUQ7QUFDTDtBQUNRO0FBQ29CO0FBQ0Q7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCLHNDQUFzQyxpRUFBZTtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsd0ZBQW1CO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSx5RkFBcUI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHlEQUF5RDtBQUN6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MseURBQVc7QUFDL0M7QUFDQTtBQUNBLFNBQVM7QUFDVCwyQkFBMkIsbUVBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vTmF0aXZlQW5pbWF0aW9uRXh0ZW5kZWQubWpzPzQ2YTQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2Vjb25kc1RvTWlsbGlzZWNvbmRzIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgSlNBbmltYXRpb24gfSBmcm9tICcuL0pTQW5pbWF0aW9uLm1qcyc7XHJcbmltcG9ydCB7IE5hdGl2ZUFuaW1hdGlvbiB9IGZyb20gJy4vTmF0aXZlQW5pbWF0aW9uLm1qcyc7XHJcbmltcG9ydCB7IHJlcGxhY2VUcmFuc2l0aW9uVHlwZSB9IGZyb20gJy4vdXRpbHMvcmVwbGFjZS10cmFuc2l0aW9uLXR5cGUubWpzJztcclxuaW1wb3J0IHsgcmVwbGFjZVN0cmluZ0Vhc2luZyB9IGZyb20gJy4vd2FhcGkvdXRpbHMvdW5zdXBwb3J0ZWQtZWFzaW5nLm1qcyc7XHJcblxyXG4vKipcclxuICogMTBtcyBpcyBjaG9zZW4gaGVyZSBhcyBpdCBzdHJpa2VzIGEgYmFsYW5jZSBiZXR3ZWVuIHNtb290aFxyXG4gKiByZXN1bHRzIChtb3JlIHRoYW4gb25lIGtleWZyYW1lIHBlciBmcmFtZSBhdCA2MGZwcykgYW5kXHJcbiAqIGtleWZyYW1lIHF1YW50aXR5LlxyXG4gKi9cclxuY29uc3Qgc2FtcGxlRGVsdGEgPSAxMDsgLy9tc1xyXG5jbGFzcyBOYXRpdmVBbmltYXRpb25FeHRlbmRlZCBleHRlbmRzIE5hdGl2ZUFuaW1hdGlvbiB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGJhc2UgTmF0aXZlQW5pbWF0aW9uIGZ1bmN0aW9uIG9ubHkgc3VwcG9ydHMgYSBzdWJzZXRcclxuICAgICAgICAgKiBvZiBNb3Rpb24gZWFzaW5ncywgYW5kIFdBQVBJIGFsc28gb25seSBzdXBwb3J0cyBzb21lXHJcbiAgICAgICAgICogZWFzaW5nIGZ1bmN0aW9ucyB2aWEgc3RyaW5nL2N1YmljLWJlemllciBkZWZpbml0aW9ucy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFRoaXMgZnVuY3Rpb24gcmVwbGFjZXMgdGhvc2UgdW5zdXBwb3J0ZWQgZWFzaW5nIGZ1bmN0aW9uc1xyXG4gICAgICAgICAqIHdpdGggYSBKUyBlYXNpbmcgZnVuY3Rpb24uIFRoaXMgd2lsbCBsYXRlciBnZXQgY29tcGlsZWRcclxuICAgICAgICAgKiB0byBhIGxpbmVhcigpIGVhc2luZyBmdW5jdGlvbi5cclxuICAgICAgICAgKi9cclxuICAgICAgICByZXBsYWNlU3RyaW5nRWFzaW5nKG9wdGlvbnMpO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEVuc3VyZSB3ZSByZXBsYWNlIHRoZSB0cmFuc2l0aW9uIHR5cGUgd2l0aCBhIGdlbmVyYXRvciBmdW5jdGlvblxyXG4gICAgICAgICAqIGJlZm9yZSBwYXNzaW5nIHRvIFdBQVBJLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogVE9ETzogRG9lcyB0aGlzIGhhdmUgYSBiZXR0ZXIgaG9tZT8gSXQgY291bGQgYmUgc2hhcmVkIHdpdGhcclxuICAgICAgICAgKiBKU0FuaW1hdGlvbi5cclxuICAgICAgICAgKi9cclxuICAgICAgICByZXBsYWNlVHJhbnNpdGlvblR5cGUob3B0aW9ucyk7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc3RhcnRUaW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gb3B0aW9ucy5zdGFydFRpbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFdBQVBJIGRvZXNuJ3QgbmF0aXZlbHkgaGF2ZSBhbnkgaW50ZXJydXB0aW9uIGNhcGFiaWxpdGllcy5cclxuICAgICAqXHJcbiAgICAgKiBSYXRoZXIgdGhhbiByZWFkIGNvbW1pdGVkIHN0eWxlcyBiYWNrIG91dCBvZiB0aGUgRE9NLCB3ZSBjYW5cclxuICAgICAqIGNyZWF0ZSBhIHJlbmRlcmxlc3MgSlMgYW5pbWF0aW9uIGFuZCBzYW1wbGUgaXQgdHdpY2UgdG8gY2FsY3VsYXRlXHJcbiAgICAgKiBpdHMgY3VycmVudCB2YWx1ZSwgXCJwcmV2aW91c1wiIHZhbHVlLCBhbmQgdGhlcmVmb3JlIGFsbG93XHJcbiAgICAgKiBNb3Rpb24gdG8gY2FsY3VsYXRlIHZlbG9jaXR5IGZvciBhbnkgc3Vic2VxdWVudCBhbmltYXRpb24uXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZU1vdGlvblZhbHVlKHZhbHVlKSB7XHJcbiAgICAgICAgY29uc3QgeyBtb3Rpb25WYWx1ZSwgb25VcGRhdGUsIG9uQ29tcGxldGUsIGVsZW1lbnQsIC4uLm9wdGlvbnMgfSA9IHRoaXMub3B0aW9ucztcclxuICAgICAgICBpZiAoIW1vdGlvblZhbHVlKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgbW90aW9uVmFsdWUuc2V0KHZhbHVlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzYW1wbGVBbmltYXRpb24gPSBuZXcgSlNBbmltYXRpb24oe1xyXG4gICAgICAgICAgICAuLi5vcHRpb25zLFxyXG4gICAgICAgICAgICBhdXRvcGxheTogZmFsc2UsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2FtcGxlVGltZSA9IHNlY29uZHNUb01pbGxpc2Vjb25kcyh0aGlzLmZpbmlzaGVkVGltZSA/PyB0aGlzLnRpbWUpO1xyXG4gICAgICAgIG1vdGlvblZhbHVlLnNldFdpdGhWZWxvY2l0eShzYW1wbGVBbmltYXRpb24uc2FtcGxlKHNhbXBsZVRpbWUgLSBzYW1wbGVEZWx0YSkudmFsdWUsIHNhbXBsZUFuaW1hdGlvbi5zYW1wbGUoc2FtcGxlVGltZSkudmFsdWUsIHNhbXBsZURlbHRhKTtcclxuICAgICAgICBzYW1wbGVBbmltYXRpb24uc3RvcCgpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgeyBOYXRpdmVBbmltYXRpb25FeHRlbmRlZCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ frameloopDriver: function() { return /* binding */ frameloopDriver; }\n/* harmony export */ });\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\r\n\r\n\r\nconst frameloopDriver = (update) => {\r\n const passTimestamp = ({ timestamp }) => update(timestamp);\r\n return {\r\n start: (keepAlive = true) => _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frame.update(passTimestamp, keepAlive),\r\n stop: () => (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.cancelFrame)(passTimestamp),\r\n /**\r\n * If we're processing this frame we can use the\r\n * framelocked timestamp to keep things in sync.\r\n */\r\n now: () => (_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.isProcessing ? _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.timestamp : _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now()),\r\n };\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2RyaXZlcnMvZnJhbWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFxRDtBQUNxQjtBQUMxRTtBQUNBO0FBQ0EsNkJBQTZCLFdBQVc7QUFDeEM7QUFDQSxxQ0FBcUMsdURBQUs7QUFDMUMsb0JBQW9CLGlFQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDJEQUFTLGdCQUFnQiwyREFBUyxhQUFhLDBEQUFJO0FBQ3ZFO0FBQ0E7QUFDQTtBQUMyQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9kcml2ZXJzL2ZyYW1lLm1qcz9mNzgyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRpbWUgfSBmcm9tICcuLi8uLi9mcmFtZWxvb3Avc3luYy10aW1lLm1qcyc7XHJcbmltcG9ydCB7IGZyYW1lLCBjYW5jZWxGcmFtZSwgZnJhbWVEYXRhIH0gZnJvbSAnLi4vLi4vZnJhbWVsb29wL2ZyYW1lLm1qcyc7XHJcblxyXG5jb25zdCBmcmFtZWxvb3BEcml2ZXIgPSAodXBkYXRlKSA9PiB7XHJcbiAgICBjb25zdCBwYXNzVGltZXN0YW1wID0gKHsgdGltZXN0YW1wIH0pID0+IHVwZGF0ZSh0aW1lc3RhbXApO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBzdGFydDogKGtlZXBBbGl2ZSA9IHRydWUpID0+IGZyYW1lLnVwZGF0ZShwYXNzVGltZXN0YW1wLCBrZWVwQWxpdmUpLFxyXG4gICAgICAgIHN0b3A6ICgpID0+IGNhbmNlbEZyYW1lKHBhc3NUaW1lc3RhbXApLFxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElmIHdlJ3JlIHByb2Nlc3NpbmcgdGhpcyBmcmFtZSB3ZSBjYW4gdXNlIHRoZVxyXG4gICAgICAgICAqIGZyYW1lbG9ja2VkIHRpbWVzdGFtcCB0byBrZWVwIHRoaW5ncyBpbiBzeW5jLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIG5vdzogKCkgPT4gKGZyYW1lRGF0YS5pc1Byb2Nlc3NpbmcgPyBmcmFtZURhdGEudGltZXN0YW1wIDogdGltZS5ub3coKSksXHJcbiAgICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IHsgZnJhbWVsb29wRHJpdmVyIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs ***!
|
||
\**************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ inertia: function() { return /* binding */ inertia; }\n/* harmony export */ });\n/* harmony import */ var _spring_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./spring/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs\");\n/* harmony import */ var _utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/velocity.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs\");\n\r\n\r\n\r\nfunction inertia({ keyframes, velocity = 0.0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed, }) {\r\n const origin = keyframes[0];\r\n const state = {\r\n done: false,\r\n value: origin,\r\n };\r\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\r\n const nearestBoundary = (v) => {\r\n if (min === undefined)\r\n return max;\r\n if (max === undefined)\r\n return min;\r\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\r\n };\r\n let amplitude = power * velocity;\r\n const ideal = origin + amplitude;\r\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\r\n /**\r\n * If the target has changed we need to re-calculate the amplitude, otherwise\r\n * the animation will start from the wrong position.\r\n */\r\n if (target !== ideal)\r\n amplitude = target - origin;\r\n const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);\r\n const calcLatest = (t) => target + calcDelta(t);\r\n const applyFriction = (t) => {\r\n const delta = calcDelta(t);\r\n const latest = calcLatest(t);\r\n state.done = Math.abs(delta) <= restDelta;\r\n state.value = state.done ? target : latest;\r\n };\r\n /**\r\n * Ideally this would resolve for t in a stateless way, we could\r\n * do that by always precalculating the animation but as we know\r\n * this will be done anyway we can assume that spring will\r\n * be discovered during that.\r\n */\r\n let timeReachedBoundary;\r\n let spring$1;\r\n const checkCatchBoundary = (t) => {\r\n if (!isOutOfBounds(state.value))\r\n return;\r\n timeReachedBoundary = t;\r\n spring$1 = (0,_spring_index_mjs__WEBPACK_IMPORTED_MODULE_0__.spring)({\r\n keyframes: [state.value, nearestBoundary(state.value)],\r\n velocity: (0,_utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_1__.calcGeneratorVelocity)(calcLatest, t, state.value), // TODO: This should be passing * 1000\r\n damping: bounceDamping,\r\n stiffness: bounceStiffness,\r\n restDelta,\r\n restSpeed,\r\n });\r\n };\r\n checkCatchBoundary(0);\r\n return {\r\n calculatedDuration: null,\r\n next: (t) => {\r\n /**\r\n * We need to resolve the friction to figure out if we need a\r\n * spring but we don't want to do this twice per frame. So here\r\n * we flag if we updated for this frame and later if we did\r\n * we can skip doing it again.\r\n */\r\n let hasUpdatedFrame = false;\r\n if (!spring$1 && timeReachedBoundary === undefined) {\r\n hasUpdatedFrame = true;\r\n applyFriction(t);\r\n checkCatchBoundary(t);\r\n }\r\n /**\r\n * If we have a spring and the provided t is beyond the moment the friction\r\n * animation crossed the min/max boundary, use the spring.\r\n */\r\n if (timeReachedBoundary !== undefined && t >= timeReachedBoundary) {\r\n return spring$1.next(t - timeReachedBoundary);\r\n }\r\n else {\r\n !hasUpdatedFrame && applyFriction(t);\r\n return state;\r\n }\r\n },\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvaW5lcnRpYS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRDO0FBQ2lCO0FBQzdEO0FBQ0EsbUJBQW1CLDRKQUE0SjtBQUMvSztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIseURBQU07QUFDekI7QUFDQSxzQkFBc0IsMEVBQXFCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL2luZXJ0aWEubWpzPzc2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3ByaW5nIH0gZnJvbSAnLi9zcHJpbmcvaW5kZXgubWpzJztcclxuaW1wb3J0IHsgY2FsY0dlbmVyYXRvclZlbG9jaXR5IH0gZnJvbSAnLi91dGlscy92ZWxvY2l0eS5tanMnO1xyXG5cclxuZnVuY3Rpb24gaW5lcnRpYSh7IGtleWZyYW1lcywgdmVsb2NpdHkgPSAwLjAsIHBvd2VyID0gMC44LCB0aW1lQ29uc3RhbnQgPSAzMjUsIGJvdW5jZURhbXBpbmcgPSAxMCwgYm91bmNlU3RpZmZuZXNzID0gNTAwLCBtb2RpZnlUYXJnZXQsIG1pbiwgbWF4LCByZXN0RGVsdGEgPSAwLjUsIHJlc3RTcGVlZCwgfSkge1xyXG4gICAgY29uc3Qgb3JpZ2luID0ga2V5ZnJhbWVzWzBdO1xyXG4gICAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICAgICAgZG9uZTogZmFsc2UsXHJcbiAgICAgICAgdmFsdWU6IG9yaWdpbixcclxuICAgIH07XHJcbiAgICBjb25zdCBpc091dE9mQm91bmRzID0gKHYpID0+IChtaW4gIT09IHVuZGVmaW5lZCAmJiB2IDwgbWluKSB8fCAobWF4ICE9PSB1bmRlZmluZWQgJiYgdiA+IG1heCk7XHJcbiAgICBjb25zdCBuZWFyZXN0Qm91bmRhcnkgPSAodikgPT4ge1xyXG4gICAgICAgIGlmIChtaW4gPT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgcmV0dXJuIG1heDtcclxuICAgICAgICBpZiAobWF4ID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIHJldHVybiBtaW47XHJcbiAgICAgICAgcmV0dXJuIE1hdGguYWJzKG1pbiAtIHYpIDwgTWF0aC5hYnMobWF4IC0gdikgPyBtaW4gOiBtYXg7XHJcbiAgICB9O1xyXG4gICAgbGV0IGFtcGxpdHVkZSA9IHBvd2VyICogdmVsb2NpdHk7XHJcbiAgICBjb25zdCBpZGVhbCA9IG9yaWdpbiArIGFtcGxpdHVkZTtcclxuICAgIGNvbnN0IHRhcmdldCA9IG1vZGlmeVRhcmdldCA9PT0gdW5kZWZpbmVkID8gaWRlYWwgOiBtb2RpZnlUYXJnZXQoaWRlYWwpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB0aGUgdGFyZ2V0IGhhcyBjaGFuZ2VkIHdlIG5lZWQgdG8gcmUtY2FsY3VsYXRlIHRoZSBhbXBsaXR1ZGUsIG90aGVyd2lzZVxyXG4gICAgICogdGhlIGFuaW1hdGlvbiB3aWxsIHN0YXJ0IGZyb20gdGhlIHdyb25nIHBvc2l0aW9uLlxyXG4gICAgICovXHJcbiAgICBpZiAodGFyZ2V0ICE9PSBpZGVhbClcclxuICAgICAgICBhbXBsaXR1ZGUgPSB0YXJnZXQgLSBvcmlnaW47XHJcbiAgICBjb25zdCBjYWxjRGVsdGEgPSAodCkgPT4gLWFtcGxpdHVkZSAqIE1hdGguZXhwKC10IC8gdGltZUNvbnN0YW50KTtcclxuICAgIGNvbnN0IGNhbGNMYXRlc3QgPSAodCkgPT4gdGFyZ2V0ICsgY2FsY0RlbHRhKHQpO1xyXG4gICAgY29uc3QgYXBwbHlGcmljdGlvbiA9ICh0KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZGVsdGEgPSBjYWxjRGVsdGEodCk7XHJcbiAgICAgICAgY29uc3QgbGF0ZXN0ID0gY2FsY0xhdGVzdCh0KTtcclxuICAgICAgICBzdGF0ZS5kb25lID0gTWF0aC5hYnMoZGVsdGEpIDw9IHJlc3REZWx0YTtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IHN0YXRlLmRvbmUgPyB0YXJnZXQgOiBsYXRlc3Q7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZGVhbGx5IHRoaXMgd291bGQgcmVzb2x2ZSBmb3IgdCBpbiBhIHN0YXRlbGVzcyB3YXksIHdlIGNvdWxkXHJcbiAgICAgKiBkbyB0aGF0IGJ5IGFsd2F5cyBwcmVjYWxjdWxhdGluZyB0aGUgYW5pbWF0aW9uIGJ1dCBhcyB3ZSBrbm93XHJcbiAgICAgKiB0aGlzIHdpbGwgYmUgZG9uZSBhbnl3YXkgd2UgY2FuIGFzc3VtZSB0aGF0IHNwcmluZyB3aWxsXHJcbiAgICAgKiBiZSBkaXNjb3ZlcmVkIGR1cmluZyB0aGF0LlxyXG4gICAgICovXHJcbiAgICBsZXQgdGltZVJlYWNoZWRCb3VuZGFyeTtcclxuICAgIGxldCBzcHJpbmckMTtcclxuICAgIGNvbnN0IGNoZWNrQ2F0Y2hCb3VuZGFyeSA9ICh0KSA9PiB7XHJcbiAgICAgICAgaWYgKCFpc091dE9mQm91bmRzKHN0YXRlLnZhbHVlKSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIHRpbWVSZWFjaGVkQm91bmRhcnkgPSB0O1xyXG4gICAgICAgIHNwcmluZyQxID0gc3ByaW5nKHtcclxuICAgICAgICAgICAga2V5ZnJhbWVzOiBbc3RhdGUudmFsdWUsIG5lYXJlc3RCb3VuZGFyeShzdGF0ZS52YWx1ZSldLFxyXG4gICAgICAgICAgICB2ZWxvY2l0eTogY2FsY0dlbmVyYXRvclZlbG9jaXR5KGNhbGNMYXRlc3QsIHQsIHN0YXRlLnZhbHVlKSwgLy8gVE9ETzogVGhpcyBzaG91bGQgYmUgcGFzc2luZyAqIDEwMDBcclxuICAgICAgICAgICAgZGFtcGluZzogYm91bmNlRGFtcGluZyxcclxuICAgICAgICAgICAgc3RpZmZuZXNzOiBib3VuY2VTdGlmZm5lc3MsXHJcbiAgICAgICAgICAgIHJlc3REZWx0YSxcclxuICAgICAgICAgICAgcmVzdFNwZWVkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIGNoZWNrQ2F0Y2hCb3VuZGFyeSgwKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgY2FsY3VsYXRlZER1cmF0aW9uOiBudWxsLFxyXG4gICAgICAgIG5leHQ6ICh0KSA9PiB7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBXZSBuZWVkIHRvIHJlc29sdmUgdGhlIGZyaWN0aW9uIHRvIGZpZ3VyZSBvdXQgaWYgd2UgbmVlZCBhXHJcbiAgICAgICAgICAgICAqIHNwcmluZyBidXQgd2UgZG9uJ3Qgd2FudCB0byBkbyB0aGlzIHR3aWNlIHBlciBmcmFtZS4gU28gaGVyZVxyXG4gICAgICAgICAgICAgKiB3ZSBmbGFnIGlmIHdlIHVwZGF0ZWQgZm9yIHRoaXMgZnJhbWUgYW5kIGxhdGVyIGlmIHdlIGRpZFxyXG4gICAgICAgICAgICAgKiB3ZSBjYW4gc2tpcCBkb2luZyBpdCBhZ2Fpbi5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGxldCBoYXNVcGRhdGVkRnJhbWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKCFzcHJpbmckMSAmJiB0aW1lUmVhY2hlZEJvdW5kYXJ5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIGhhc1VwZGF0ZWRGcmFtZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBhcHBseUZyaWN0aW9uKHQpO1xyXG4gICAgICAgICAgICAgICAgY2hlY2tDYXRjaEJvdW5kYXJ5KHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB3ZSBoYXZlIGEgc3ByaW5nIGFuZCB0aGUgcHJvdmlkZWQgdCBpcyBiZXlvbmQgdGhlIG1vbWVudCB0aGUgZnJpY3Rpb25cclxuICAgICAgICAgICAgICogYW5pbWF0aW9uIGNyb3NzZWQgdGhlIG1pbi9tYXggYm91bmRhcnksIHVzZSB0aGUgc3ByaW5nLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKHRpbWVSZWFjaGVkQm91bmRhcnkgIT09IHVuZGVmaW5lZCAmJiB0ID49IHRpbWVSZWFjaGVkQm91bmRhcnkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBzcHJpbmckMS5uZXh0KHQgLSB0aW1lUmVhY2hlZEJvdW5kYXJ5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICFoYXNVcGRhdGVkRnJhbWUgJiYgYXBwbHlGcmljdGlvbih0KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgeyBpbmVydGlhIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultEasing: function() { return /* binding */ defaultEasing; },\n/* harmony export */ keyframes: function() { return /* binding */ keyframes; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/ease.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/map.mjs\");\n/* harmony import */ var _utils_interpolate_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/interpolate.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/interpolate.mjs\");\n/* harmony import */ var _keyframes_offsets_default_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../keyframes/offsets/default.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs\");\n/* harmony import */ var _keyframes_offsets_time_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../keyframes/offsets/time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs\");\n\r\n\r\n\r\n\r\n\r\nfunction defaultEasing(values, easing) {\r\n return values.map(() => easing || motion_utils__WEBPACK_IMPORTED_MODULE_0__.easeInOut).splice(0, values.length - 1);\r\n}\r\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease = \"easeInOut\", }) {\r\n /**\r\n * Easing functions can be externally defined as strings. Here we convert them\r\n * into actual functions.\r\n */\r\n const easingFunctions = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.isEasingArray)(ease)\r\n ? ease.map(motion_utils__WEBPACK_IMPORTED_MODULE_2__.easingDefinitionToFunction)\r\n : (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.easingDefinitionToFunction)(ease);\r\n /**\r\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\r\n * to reduce GC during animation.\r\n */\r\n const state = {\r\n done: false,\r\n value: keyframeValues[0],\r\n };\r\n /**\r\n * Create a times array based on the provided 0-1 offsets\r\n */\r\n const absoluteTimes = (0,_keyframes_offsets_time_mjs__WEBPACK_IMPORTED_MODULE_3__.convertOffsetToTimes)(\r\n // Only use the provided offsets if they're the correct length\r\n // TODO Maybe we should warn here if there's a length mismatch\r\n times && times.length === keyframeValues.length\r\n ? times\r\n : (0,_keyframes_offsets_default_mjs__WEBPACK_IMPORTED_MODULE_4__.defaultOffset)(keyframeValues), duration);\r\n const mapTimeToKeyframe = (0,_utils_interpolate_mjs__WEBPACK_IMPORTED_MODULE_5__.interpolate)(absoluteTimes, keyframeValues, {\r\n ease: Array.isArray(easingFunctions)\r\n ? easingFunctions\r\n : defaultEasing(keyframeValues, easingFunctions),\r\n });\r\n return {\r\n calculatedDuration: duration,\r\n next: (t) => {\r\n state.value = mapTimeToKeyframe(t);\r\n state.done = t >= duration;\r\n return state;\r\n },\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMva2V5ZnJhbWVzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFvRjtBQUMxQjtBQUNPO0FBQ0k7QUFDckU7QUFDQTtBQUNBLHNDQUFzQyxtREFBUztBQUMvQztBQUNBLHFCQUFxQix1RUFBdUU7QUFDNUY7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsMkRBQWE7QUFDekMsbUJBQW1CLG9FQUEwQjtBQUM3QyxVQUFVLHdFQUEwQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLGlGQUFvQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsNkVBQWE7QUFDdkIsOEJBQThCLG1FQUFXO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ29DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMva2V5ZnJhbWVzLm1qcz82YjgwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVhc2VJbk91dCwgaXNFYXNpbmdBcnJheSwgZWFzaW5nRGVmaW5pdGlvblRvRnVuY3Rpb24gfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBpbnRlcnBvbGF0ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVycG9sYXRlLm1qcyc7XHJcbmltcG9ydCB7IGRlZmF1bHRPZmZzZXQgfSBmcm9tICcuLi9rZXlmcmFtZXMvb2Zmc2V0cy9kZWZhdWx0Lm1qcyc7XHJcbmltcG9ydCB7IGNvbnZlcnRPZmZzZXRUb1RpbWVzIH0gZnJvbSAnLi4va2V5ZnJhbWVzL29mZnNldHMvdGltZS5tanMnO1xyXG5cclxuZnVuY3Rpb24gZGVmYXVsdEVhc2luZyh2YWx1ZXMsIGVhc2luZykge1xyXG4gICAgcmV0dXJuIHZhbHVlcy5tYXAoKCkgPT4gZWFzaW5nIHx8IGVhc2VJbk91dCkuc3BsaWNlKDAsIHZhbHVlcy5sZW5ndGggLSAxKTtcclxufVxyXG5mdW5jdGlvbiBrZXlmcmFtZXMoeyBkdXJhdGlvbiA9IDMwMCwga2V5ZnJhbWVzOiBrZXlmcmFtZVZhbHVlcywgdGltZXMsIGVhc2UgPSBcImVhc2VJbk91dFwiLCB9KSB7XHJcbiAgICAvKipcclxuICAgICAqIEVhc2luZyBmdW5jdGlvbnMgY2FuIGJlIGV4dGVybmFsbHkgZGVmaW5lZCBhcyBzdHJpbmdzLiBIZXJlIHdlIGNvbnZlcnQgdGhlbVxyXG4gICAgICogaW50byBhY3R1YWwgZnVuY3Rpb25zLlxyXG4gICAgICovXHJcbiAgICBjb25zdCBlYXNpbmdGdW5jdGlvbnMgPSBpc0Vhc2luZ0FycmF5KGVhc2UpXHJcbiAgICAgICAgPyBlYXNlLm1hcChlYXNpbmdEZWZpbml0aW9uVG9GdW5jdGlvbilcclxuICAgICAgICA6IGVhc2luZ0RlZmluaXRpb25Ub0Z1bmN0aW9uKGVhc2UpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGlzIHRoZSBJdGVyYXRvci1zcGVjIHJldHVybiB2YWx1ZS4gV2UgZW5zdXJlIGl0J3MgbXV0YWJsZSByYXRoZXIgdGhhbiB1c2luZyBhIGdlbmVyYXRvclxyXG4gICAgICogdG8gcmVkdWNlIEdDIGR1cmluZyBhbmltYXRpb24uXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGRvbmU6IGZhbHNlLFxyXG4gICAgICAgIHZhbHVlOiBrZXlmcmFtZVZhbHVlc1swXSxcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZSBhIHRpbWVzIGFycmF5IGJhc2VkIG9uIHRoZSBwcm92aWRlZCAwLTEgb2Zmc2V0c1xyXG4gICAgICovXHJcbiAgICBjb25zdCBhYnNvbHV0ZVRpbWVzID0gY29udmVydE9mZnNldFRvVGltZXMoXHJcbiAgICAvLyBPbmx5IHVzZSB0aGUgcHJvdmlkZWQgb2Zmc2V0cyBpZiB0aGV5J3JlIHRoZSBjb3JyZWN0IGxlbmd0aFxyXG4gICAgLy8gVE9ETyBNYXliZSB3ZSBzaG91bGQgd2FybiBoZXJlIGlmIHRoZXJlJ3MgYSBsZW5ndGggbWlzbWF0Y2hcclxuICAgIHRpbWVzICYmIHRpbWVzLmxlbmd0aCA9PT0ga2V5ZnJhbWVWYWx1ZXMubGVuZ3RoXHJcbiAgICAgICAgPyB0aW1lc1xyXG4gICAgICAgIDogZGVmYXVsdE9mZnNldChrZXlmcmFtZVZhbHVlcyksIGR1cmF0aW9uKTtcclxuICAgIGNvbnN0IG1hcFRpbWVUb0tleWZyYW1lID0gaW50ZXJwb2xhdGUoYWJzb2x1dGVUaW1lcywga2V5ZnJhbWVWYWx1ZXMsIHtcclxuICAgICAgICBlYXNlOiBBcnJheS5pc0FycmF5KGVhc2luZ0Z1bmN0aW9ucylcclxuICAgICAgICAgICAgPyBlYXNpbmdGdW5jdGlvbnNcclxuICAgICAgICAgICAgOiBkZWZhdWx0RWFzaW5nKGtleWZyYW1lVmFsdWVzLCBlYXNpbmdGdW5jdGlvbnMpLFxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGNhbGN1bGF0ZWREdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgbmV4dDogKHQpID0+IHtcclxuICAgICAgICAgICAgc3RhdGUudmFsdWUgPSBtYXBUaW1lVG9LZXlmcmFtZSh0KTtcclxuICAgICAgICAgICAgc3RhdGUuZG9uZSA9IHQgPj0gZHVyYXRpb247XHJcbiAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcclxuICAgICAgICB9LFxyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IHsgZGVmYXVsdEVhc2luZywga2V5ZnJhbWVzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs ***!
|
||
\**********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ springDefaults: function() { return /* binding */ springDefaults; }\n/* harmony export */ });\nconst springDefaults = {\r\n // Default spring physics\r\n stiffness: 100,\r\n damping: 10,\r\n mass: 1.0,\r\n velocity: 0.0,\r\n // Default duration/bounce-based options\r\n duration: 800, // in ms\r\n bounce: 0.3,\r\n visualDuration: 0.3, // in seconds\r\n // Rest thresholds\r\n restSpeed: {\r\n granular: 0.01,\r\n default: 2,\r\n },\r\n restDelta: {\r\n granular: 0.005,\r\n default: 0.5,\r\n },\r\n // Limits\r\n minDuration: 0.01, // in seconds\r\n maxDuration: 10.0, // in seconds\r\n minDamping: 0.05,\r\n maxDamping: 1,\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvc3ByaW5nL2RlZmF1bHRzLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDMEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vZ2VuZXJhdG9ycy9zcHJpbmcvZGVmYXVsdHMubWpzPzYzNzAiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgc3ByaW5nRGVmYXVsdHMgPSB7XHJcbiAgICAvLyBEZWZhdWx0IHNwcmluZyBwaHlzaWNzXHJcbiAgICBzdGlmZm5lc3M6IDEwMCxcclxuICAgIGRhbXBpbmc6IDEwLFxyXG4gICAgbWFzczogMS4wLFxyXG4gICAgdmVsb2NpdHk6IDAuMCxcclxuICAgIC8vIERlZmF1bHQgZHVyYXRpb24vYm91bmNlLWJhc2VkIG9wdGlvbnNcclxuICAgIGR1cmF0aW9uOiA4MDAsIC8vIGluIG1zXHJcbiAgICBib3VuY2U6IDAuMyxcclxuICAgIHZpc3VhbER1cmF0aW9uOiAwLjMsIC8vIGluIHNlY29uZHNcclxuICAgIC8vIFJlc3QgdGhyZXNob2xkc1xyXG4gICAgcmVzdFNwZWVkOiB7XHJcbiAgICAgICAgZ3JhbnVsYXI6IDAuMDEsXHJcbiAgICAgICAgZGVmYXVsdDogMixcclxuICAgIH0sXHJcbiAgICByZXN0RGVsdGE6IHtcclxuICAgICAgICBncmFudWxhcjogMC4wMDUsXHJcbiAgICAgICAgZGVmYXVsdDogMC41LFxyXG4gICAgfSxcclxuICAgIC8vIExpbWl0c1xyXG4gICAgbWluRHVyYXRpb246IDAuMDEsIC8vIGluIHNlY29uZHNcclxuICAgIG1heER1cmF0aW9uOiAxMC4wLCAvLyBpbiBzZWNvbmRzXHJcbiAgICBtaW5EYW1waW5nOiAwLjA1LFxyXG4gICAgbWF4RGFtcGluZzogMSxcclxufTtcclxuXHJcbmV4cG9ydCB7IHNwcmluZ0RlZmF1bHRzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs ***!
|
||
\******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcAngularFreq: function() { return /* binding */ calcAngularFreq; },\n/* harmony export */ findSpring: function() { return /* binding */ findSpring; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaults.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs\");\n\r\n\r\n\r\nconst safeMin = 0.001;\r\nfunction findSpring({ duration = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.duration, bounce = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.bounce, velocity = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.velocity, mass = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass, }) {\r\n let envelope;\r\n let derivative;\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warning)(duration <= (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.secondsToMilliseconds)(_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.maxDuration), \"Spring duration must be 10 seconds or less\", \"spring-duration-limit\");\r\n let dampingRatio = 1 - bounce;\r\n /**\r\n * Restrict dampingRatio and duration to within acceptable ranges.\r\n */\r\n dampingRatio = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.clamp)(_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.minDamping, _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.maxDamping, dampingRatio);\r\n duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.clamp)(_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.minDuration, _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.maxDuration, (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.millisecondsToSeconds)(duration));\r\n if (dampingRatio < 1) {\r\n /**\r\n * Underdamped spring\r\n */\r\n envelope = (undampedFreq) => {\r\n const exponentialDecay = undampedFreq * dampingRatio;\r\n const delta = exponentialDecay * duration;\r\n const a = exponentialDecay - velocity;\r\n const b = calcAngularFreq(undampedFreq, dampingRatio);\r\n const c = Math.exp(-delta);\r\n return safeMin - (a / b) * c;\r\n };\r\n derivative = (undampedFreq) => {\r\n const exponentialDecay = undampedFreq * dampingRatio;\r\n const delta = exponentialDecay * duration;\r\n const d = delta * velocity + velocity;\r\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\r\n const f = Math.exp(-delta);\r\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\r\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\r\n return (factor * ((d - e) * f)) / g;\r\n };\r\n }\r\n else {\r\n /**\r\n * Critically-damped spring\r\n */\r\n envelope = (undampedFreq) => {\r\n const a = Math.exp(-undampedFreq * duration);\r\n const b = (undampedFreq - velocity) * duration + 1;\r\n return -safeMin + a * b;\r\n };\r\n derivative = (undampedFreq) => {\r\n const a = Math.exp(-undampedFreq * duration);\r\n const b = (velocity - undampedFreq) * (duration * duration);\r\n return a * b;\r\n };\r\n }\r\n const initialGuess = 5 / duration;\r\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\r\n duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.secondsToMilliseconds)(duration);\r\n if (isNaN(undampedFreq)) {\r\n return {\r\n stiffness: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.stiffness,\r\n damping: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.damping,\r\n duration,\r\n };\r\n }\r\n else {\r\n const stiffness = Math.pow(undampedFreq, 2) * mass;\r\n return {\r\n stiffness,\r\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\r\n duration,\r\n };\r\n }\r\n}\r\nconst rootIterations = 12;\r\nfunction approximateRoot(envelope, derivative, initialGuess) {\r\n let result = initialGuess;\r\n for (let i = 1; i < rootIterations; i++) {\r\n result = result - envelope(result) / derivative(result);\r\n }\r\n return result;\r\n}\r\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\r\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvc3ByaW5nL2ZpbmQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUE0RjtBQUM1QztBQUNoRDtBQUNBO0FBQ0Esc0JBQXNCLFdBQVcseURBQWMsb0JBQW9CLHlEQUFjLG9CQUFvQix5REFBYyxrQkFBa0IseURBQWMsUUFBUTtBQUMzSjtBQUNBO0FBQ0EsSUFBSSxxREFBTyxhQUFhLG1FQUFxQixDQUFDLHlEQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1EQUFLLENBQUMseURBQWMsYUFBYSx5REFBYztBQUNsRSxlQUFlLG1EQUFLLENBQUMseURBQWMsY0FBYyx5REFBYyxjQUFjLG1FQUFxQjtBQUNsRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUVBQXFCO0FBQ3BDO0FBQ0E7QUFDQSx1QkFBdUIseURBQWM7QUFDckMscUJBQXFCLHlEQUFjO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixvQkFBb0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUN1QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3NwcmluZy9maW5kLm1qcz84YjA4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdhcm5pbmcsIHNlY29uZHNUb01pbGxpc2Vjb25kcywgY2xhbXAsIG1pbGxpc2Vjb25kc1RvU2Vjb25kcyB9IGZyb20gJ21vdGlvbi11dGlscyc7XHJcbmltcG9ydCB7IHNwcmluZ0RlZmF1bHRzIH0gZnJvbSAnLi9kZWZhdWx0cy5tanMnO1xyXG5cclxuY29uc3Qgc2FmZU1pbiA9IDAuMDAxO1xyXG5mdW5jdGlvbiBmaW5kU3ByaW5nKHsgZHVyYXRpb24gPSBzcHJpbmdEZWZhdWx0cy5kdXJhdGlvbiwgYm91bmNlID0gc3ByaW5nRGVmYXVsdHMuYm91bmNlLCB2ZWxvY2l0eSA9IHNwcmluZ0RlZmF1bHRzLnZlbG9jaXR5LCBtYXNzID0gc3ByaW5nRGVmYXVsdHMubWFzcywgfSkge1xyXG4gICAgbGV0IGVudmVsb3BlO1xyXG4gICAgbGV0IGRlcml2YXRpdmU7XHJcbiAgICB3YXJuaW5nKGR1cmF0aW9uIDw9IHNlY29uZHNUb01pbGxpc2Vjb25kcyhzcHJpbmdEZWZhdWx0cy5tYXhEdXJhdGlvbiksIFwiU3ByaW5nIGR1cmF0aW9uIG11c3QgYmUgMTAgc2Vjb25kcyBvciBsZXNzXCIsIFwic3ByaW5nLWR1cmF0aW9uLWxpbWl0XCIpO1xyXG4gICAgbGV0IGRhbXBpbmdSYXRpbyA9IDEgLSBib3VuY2U7XHJcbiAgICAvKipcclxuICAgICAqIFJlc3RyaWN0IGRhbXBpbmdSYXRpbyBhbmQgZHVyYXRpb24gdG8gd2l0aGluIGFjY2VwdGFibGUgcmFuZ2VzLlxyXG4gICAgICovXHJcbiAgICBkYW1waW5nUmF0aW8gPSBjbGFtcChzcHJpbmdEZWZhdWx0cy5taW5EYW1waW5nLCBzcHJpbmdEZWZhdWx0cy5tYXhEYW1waW5nLCBkYW1waW5nUmF0aW8pO1xyXG4gICAgZHVyYXRpb24gPSBjbGFtcChzcHJpbmdEZWZhdWx0cy5taW5EdXJhdGlvbiwgc3ByaW5nRGVmYXVsdHMubWF4RHVyYXRpb24sIG1pbGxpc2Vjb25kc1RvU2Vjb25kcyhkdXJhdGlvbikpO1xyXG4gICAgaWYgKGRhbXBpbmdSYXRpbyA8IDEpIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBVbmRlcmRhbXBlZCBzcHJpbmdcclxuICAgICAgICAgKi9cclxuICAgICAgICBlbnZlbG9wZSA9ICh1bmRhbXBlZEZyZXEpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZXhwb25lbnRpYWxEZWNheSA9IHVuZGFtcGVkRnJlcSAqIGRhbXBpbmdSYXRpbztcclxuICAgICAgICAgICAgY29uc3QgZGVsdGEgPSBleHBvbmVudGlhbERlY2F5ICogZHVyYXRpb247XHJcbiAgICAgICAgICAgIGNvbnN0IGEgPSBleHBvbmVudGlhbERlY2F5IC0gdmVsb2NpdHk7XHJcbiAgICAgICAgICAgIGNvbnN0IGIgPSBjYWxjQW5ndWxhckZyZXEodW5kYW1wZWRGcmVxLCBkYW1waW5nUmF0aW8pO1xyXG4gICAgICAgICAgICBjb25zdCBjID0gTWF0aC5leHAoLWRlbHRhKTtcclxuICAgICAgICAgICAgcmV0dXJuIHNhZmVNaW4gLSAoYSAvIGIpICogYztcclxuICAgICAgICB9O1xyXG4gICAgICAgIGRlcml2YXRpdmUgPSAodW5kYW1wZWRGcmVxKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV4cG9uZW50aWFsRGVjYXkgPSB1bmRhbXBlZEZyZXEgKiBkYW1waW5nUmF0aW87XHJcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhID0gZXhwb25lbnRpYWxEZWNheSAqIGR1cmF0aW9uO1xyXG4gICAgICAgICAgICBjb25zdCBkID0gZGVsdGEgKiB2ZWxvY2l0eSArIHZlbG9jaXR5O1xyXG4gICAgICAgICAgICBjb25zdCBlID0gTWF0aC5wb3coZGFtcGluZ1JhdGlvLCAyKSAqIE1hdGgucG93KHVuZGFtcGVkRnJlcSwgMikgKiBkdXJhdGlvbjtcclxuICAgICAgICAgICAgY29uc3QgZiA9IE1hdGguZXhwKC1kZWx0YSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGcgPSBjYWxjQW5ndWxhckZyZXEoTWF0aC5wb3codW5kYW1wZWRGcmVxLCAyKSwgZGFtcGluZ1JhdGlvKTtcclxuICAgICAgICAgICAgY29uc3QgZmFjdG9yID0gLWVudmVsb3BlKHVuZGFtcGVkRnJlcSkgKyBzYWZlTWluID4gMCA/IC0xIDogMTtcclxuICAgICAgICAgICAgcmV0dXJuIChmYWN0b3IgKiAoKGQgLSBlKSAqIGYpKSAvIGc7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENyaXRpY2FsbHktZGFtcGVkIHNwcmluZ1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGVudmVsb3BlID0gKHVuZGFtcGVkRnJlcSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBhID0gTWF0aC5leHAoLXVuZGFtcGVkRnJlcSAqIGR1cmF0aW9uKTtcclxuICAgICAgICAgICAgY29uc3QgYiA9ICh1bmRhbXBlZEZyZXEgLSB2ZWxvY2l0eSkgKiBkdXJhdGlvbiArIDE7XHJcbiAgICAgICAgICAgIHJldHVybiAtc2FmZU1pbiArIGEgKiBiO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgZGVyaXZhdGl2ZSA9ICh1bmRhbXBlZEZyZXEpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgYSA9IE1hdGguZXhwKC11bmRhbXBlZEZyZXEgKiBkdXJhdGlvbik7XHJcbiAgICAgICAgICAgIGNvbnN0IGIgPSAodmVsb2NpdHkgLSB1bmRhbXBlZEZyZXEpICogKGR1cmF0aW9uICogZHVyYXRpb24pO1xyXG4gICAgICAgICAgICByZXR1cm4gYSAqIGI7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIGNvbnN0IGluaXRpYWxHdWVzcyA9IDUgLyBkdXJhdGlvbjtcclxuICAgIGNvbnN0IHVuZGFtcGVkRnJlcSA9IGFwcHJveGltYXRlUm9vdChlbnZlbG9wZSwgZGVyaXZhdGl2ZSwgaW5pdGlhbEd1ZXNzKTtcclxuICAgIGR1cmF0aW9uID0gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKGR1cmF0aW9uKTtcclxuICAgIGlmIChpc05hTih1bmRhbXBlZEZyZXEpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgc3RpZmZuZXNzOiBzcHJpbmdEZWZhdWx0cy5zdGlmZm5lc3MsXHJcbiAgICAgICAgICAgIGRhbXBpbmc6IHNwcmluZ0RlZmF1bHRzLmRhbXBpbmcsXHJcbiAgICAgICAgICAgIGR1cmF0aW9uLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBzdGlmZm5lc3MgPSBNYXRoLnBvdyh1bmRhbXBlZEZyZXEsIDIpICogbWFzcztcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBzdGlmZm5lc3MsXHJcbiAgICAgICAgICAgIGRhbXBpbmc6IGRhbXBpbmdSYXRpbyAqIDIgKiBNYXRoLnNxcnQobWFzcyAqIHN0aWZmbmVzcyksXHJcbiAgICAgICAgICAgIGR1cmF0aW9uLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuY29uc3Qgcm9vdEl0ZXJhdGlvbnMgPSAxMjtcclxuZnVuY3Rpb24gYXBwcm94aW1hdGVSb290KGVudmVsb3BlLCBkZXJpdmF0aXZlLCBpbml0aWFsR3Vlc3MpIHtcclxuICAgIGxldCByZXN1bHQgPSBpbml0aWFsR3Vlc3M7XHJcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvb3RJdGVyYXRpb25zOyBpKyspIHtcclxuICAgICAgICByZXN1bHQgPSByZXN1bHQgLSBlbnZlbG9wZShyZXN1bHQpIC8gZGVyaXZhdGl2ZShyZXN1bHQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5mdW5jdGlvbiBjYWxjQW5ndWxhckZyZXEodW5kYW1wZWRGcmVxLCBkYW1waW5nUmF0aW8pIHtcclxuICAgIHJldHVybiB1bmRhbXBlZEZyZXEgKiBNYXRoLnNxcnQoMSAtIGRhbXBpbmdSYXRpbyAqIGRhbXBpbmdSYXRpbyk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGNhbGNBbmd1bGFyRnJlcSwgZmluZFNwcmluZyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ spring: function() { return /* binding */ spring; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _waapi_utils_linear_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../waapi/utils/linear.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs\");\n/* harmony import */ var _utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/calc-duration.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\");\n/* harmony import */ var _utils_create_generator_easing_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/create-generator-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs\");\n/* harmony import */ var _utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/velocity.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs\");\n/* harmony import */ var _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaults.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs\");\n/* harmony import */ var _find_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./find.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst durationKeys = [\"duration\", \"bounce\"];\r\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\r\nfunction isSpringType(options, keys) {\r\n return keys.some((key) => options[key] !== undefined);\r\n}\r\nfunction getSpringOptions(options) {\r\n let springOptions = {\r\n velocity: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.velocity,\r\n stiffness: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.stiffness,\r\n damping: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.damping,\r\n mass: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass,\r\n isResolvedFromDuration: false,\r\n ...options,\r\n };\r\n // stiffness/damping/mass overrides duration/bounce\r\n if (!isSpringType(options, physicsKeys) &&\r\n isSpringType(options, durationKeys)) {\r\n if (options.visualDuration) {\r\n const visualDuration = options.visualDuration;\r\n const root = (2 * Math.PI) / (visualDuration * 1.2);\r\n const stiffness = root * root;\r\n const damping = 2 *\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.clamp)(0.05, 1, 1 - (options.bounce || 0)) *\r\n Math.sqrt(stiffness);\r\n springOptions = {\r\n ...springOptions,\r\n mass: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass,\r\n stiffness,\r\n damping,\r\n };\r\n }\r\n else {\r\n const derived = (0,_find_mjs__WEBPACK_IMPORTED_MODULE_2__.findSpring)(options);\r\n springOptions = {\r\n ...springOptions,\r\n ...derived,\r\n mass: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass,\r\n };\r\n springOptions.isResolvedFromDuration = true;\r\n }\r\n }\r\n return springOptions;\r\n}\r\nfunction spring(optionsOrVisualDuration = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.visualDuration, bounce = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.bounce) {\r\n const options = typeof optionsOrVisualDuration !== \"object\"\r\n ? {\r\n visualDuration: optionsOrVisualDuration,\r\n keyframes: [0, 1],\r\n bounce,\r\n }\r\n : optionsOrVisualDuration;\r\n let { restSpeed, restDelta } = options;\r\n const origin = options.keyframes[0];\r\n const target = options.keyframes[options.keyframes.length - 1];\r\n /**\r\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\r\n * to reduce GC during animation.\r\n */\r\n const state = { done: false, value: origin };\r\n const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration, } = getSpringOptions({\r\n ...options,\r\n velocity: -(0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.millisecondsToSeconds)(options.velocity || 0),\r\n });\r\n const initialVelocity = velocity || 0.0;\r\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\r\n const initialDelta = target - origin;\r\n const undampedAngularFreq = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.millisecondsToSeconds)(Math.sqrt(stiffness / mass));\r\n /**\r\n * If we're working on a granular scale, use smaller defaults for determining\r\n * when the spring is finished.\r\n *\r\n * These defaults have been selected emprically based on what strikes a good\r\n * ratio between feeling good and finishing as soon as changes are imperceptible.\r\n */\r\n const isGranularScale = Math.abs(initialDelta) < 5;\r\n restSpeed || (restSpeed = isGranularScale\r\n ? _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restSpeed.granular\r\n : _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restSpeed.default);\r\n restDelta || (restDelta = isGranularScale\r\n ? _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restDelta.granular\r\n : _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restDelta.default);\r\n let resolveSpring;\r\n if (dampingRatio < 1) {\r\n const angularFreq = (0,_find_mjs__WEBPACK_IMPORTED_MODULE_2__.calcAngularFreq)(undampedAngularFreq, dampingRatio);\r\n // Underdamped spring\r\n resolveSpring = (t) => {\r\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\r\n return (target -\r\n envelope *\r\n (((initialVelocity +\r\n dampingRatio * undampedAngularFreq * initialDelta) /\r\n angularFreq) *\r\n Math.sin(angularFreq * t) +\r\n initialDelta * Math.cos(angularFreq * t)));\r\n };\r\n }\r\n else if (dampingRatio === 1) {\r\n // Critically damped spring\r\n resolveSpring = (t) => target -\r\n Math.exp(-undampedAngularFreq * t) *\r\n (initialDelta +\r\n (initialVelocity + undampedAngularFreq * initialDelta) * t);\r\n }\r\n else {\r\n // Overdamped spring\r\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\r\n resolveSpring = (t) => {\r\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\r\n // When performing sinh or cosh values can hit Infinity so we cap them here\r\n const freqForT = Math.min(dampedAngularFreq * t, 300);\r\n return (target -\r\n (envelope *\r\n ((initialVelocity +\r\n dampingRatio * undampedAngularFreq * initialDelta) *\r\n Math.sinh(freqForT) +\r\n dampedAngularFreq *\r\n initialDelta *\r\n Math.cosh(freqForT))) /\r\n dampedAngularFreq);\r\n };\r\n }\r\n const generator = {\r\n calculatedDuration: isResolvedFromDuration ? duration || null : null,\r\n next: (t) => {\r\n const current = resolveSpring(t);\r\n if (!isResolvedFromDuration) {\r\n let currentVelocity = t === 0 ? initialVelocity : 0.0;\r\n /**\r\n * We only need to calculate velocity for under-damped springs\r\n * as over- and critically-damped springs can't overshoot, so\r\n * checking only for displacement is enough.\r\n */\r\n if (dampingRatio < 1) {\r\n currentVelocity =\r\n t === 0\r\n ? (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.secondsToMilliseconds)(initialVelocity)\r\n : (0,_utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_4__.calcGeneratorVelocity)(resolveSpring, t, current);\r\n }\r\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\r\n const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\r\n state.done =\r\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\r\n }\r\n else {\r\n state.done = t >= duration;\r\n }\r\n state.value = state.done ? target : current;\r\n return state;\r\n },\r\n toString: () => {\r\n const calculatedDuration = Math.min((0,_utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_5__.calcGeneratorDuration)(generator), _utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_5__.maxGeneratorDuration);\r\n const easing = (0,_waapi_utils_linear_mjs__WEBPACK_IMPORTED_MODULE_6__.generateLinearEasing)((progress) => generator.next(calculatedDuration * progress).value, calculatedDuration, 30);\r\n return calculatedDuration + \"ms \" + easing;\r\n },\r\n toTransition: () => { },\r\n };\r\n return generator;\r\n}\r\nspring.applyToOptions = (options) => {\r\n const generatorOptions = (0,_utils_create_generator_easing_mjs__WEBPACK_IMPORTED_MODULE_7__.createGeneratorEasing)(options, 100, spring);\r\n options.ease = generatorOptions.ease;\r\n options.duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.secondsToMilliseconds)(generatorOptions.duration);\r\n options.type = \"keyframes\";\r\n return options;\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvc3ByaW5nL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBbUY7QUFDZjtBQUNxQjtBQUNaO0FBQ2Y7QUFDZDtBQUNTO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IseURBQWM7QUFDaEMsbUJBQW1CLHlEQUFjO0FBQ2pDLGlCQUFpQix5REFBYztBQUMvQixjQUFjLHlEQUFjO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbURBQUs7QUFDckI7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHlEQUFjO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIscURBQVU7QUFDdEM7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHlEQUFjO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyx5REFBYywwQkFBMEIseURBQWM7QUFDaEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLHVCQUF1QjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEIsWUFBWSx3RUFBd0U7QUFDcEY7QUFDQSxtQkFBbUIsbUVBQXFCO0FBQ3hDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsbUVBQXFCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUseURBQWM7QUFDeEIsVUFBVSx5REFBYztBQUN4QjtBQUNBLFVBQVUseURBQWM7QUFDeEIsVUFBVSx5REFBYztBQUN4QjtBQUNBO0FBQ0EsNEJBQTRCLDBEQUFlO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixtRUFBcUI7QUFDbkQsOEJBQThCLDBFQUFxQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsZ0RBQWdELCtFQUFxQixhQUFhLDBFQUFvQjtBQUN0RywyQkFBMkIsNkVBQW9CO0FBQy9DO0FBQ0EsU0FBUztBQUNULCtCQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2Qix5RkFBcUI7QUFDbEQ7QUFDQSx1QkFBdUIsbUVBQXFCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ2tCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvc3ByaW5nL2luZGV4Lm1qcz81ODA3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1pbGxpc2Vjb25kc1RvU2Vjb25kcywgc2Vjb25kc1RvTWlsbGlzZWNvbmRzLCBjbGFtcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XHJcbmltcG9ydCB7IGdlbmVyYXRlTGluZWFyRWFzaW5nIH0gZnJvbSAnLi4vLi4vd2FhcGkvdXRpbHMvbGluZWFyLm1qcyc7XHJcbmltcG9ydCB7IGNhbGNHZW5lcmF0b3JEdXJhdGlvbiwgbWF4R2VuZXJhdG9yRHVyYXRpb24gfSBmcm9tICcuLi91dGlscy9jYWxjLWR1cmF0aW9uLm1qcyc7XHJcbmltcG9ydCB7IGNyZWF0ZUdlbmVyYXRvckVhc2luZyB9IGZyb20gJy4uL3V0aWxzL2NyZWF0ZS1nZW5lcmF0b3ItZWFzaW5nLm1qcyc7XHJcbmltcG9ydCB7IGNhbGNHZW5lcmF0b3JWZWxvY2l0eSB9IGZyb20gJy4uL3V0aWxzL3ZlbG9jaXR5Lm1qcyc7XHJcbmltcG9ydCB7IHNwcmluZ0RlZmF1bHRzIH0gZnJvbSAnLi9kZWZhdWx0cy5tanMnO1xyXG5pbXBvcnQgeyBmaW5kU3ByaW5nLCBjYWxjQW5ndWxhckZyZXEgfSBmcm9tICcuL2ZpbmQubWpzJztcclxuXHJcbmNvbnN0IGR1cmF0aW9uS2V5cyA9IFtcImR1cmF0aW9uXCIsIFwiYm91bmNlXCJdO1xyXG5jb25zdCBwaHlzaWNzS2V5cyA9IFtcInN0aWZmbmVzc1wiLCBcImRhbXBpbmdcIiwgXCJtYXNzXCJdO1xyXG5mdW5jdGlvbiBpc1NwcmluZ1R5cGUob3B0aW9ucywga2V5cykge1xyXG4gICAgcmV0dXJuIGtleXMuc29tZSgoa2V5KSA9PiBvcHRpb25zW2tleV0gIT09IHVuZGVmaW5lZCk7XHJcbn1cclxuZnVuY3Rpb24gZ2V0U3ByaW5nT3B0aW9ucyhvcHRpb25zKSB7XHJcbiAgICBsZXQgc3ByaW5nT3B0aW9ucyA9IHtcclxuICAgICAgICB2ZWxvY2l0eTogc3ByaW5nRGVmYXVsdHMudmVsb2NpdHksXHJcbiAgICAgICAgc3RpZmZuZXNzOiBzcHJpbmdEZWZhdWx0cy5zdGlmZm5lc3MsXHJcbiAgICAgICAgZGFtcGluZzogc3ByaW5nRGVmYXVsdHMuZGFtcGluZyxcclxuICAgICAgICBtYXNzOiBzcHJpbmdEZWZhdWx0cy5tYXNzLFxyXG4gICAgICAgIGlzUmVzb2x2ZWRGcm9tRHVyYXRpb246IGZhbHNlLFxyXG4gICAgICAgIC4uLm9wdGlvbnMsXHJcbiAgICB9O1xyXG4gICAgLy8gc3RpZmZuZXNzL2RhbXBpbmcvbWFzcyBvdmVycmlkZXMgZHVyYXRpb24vYm91bmNlXHJcbiAgICBpZiAoIWlzU3ByaW5nVHlwZShvcHRpb25zLCBwaHlzaWNzS2V5cykgJiZcclxuICAgICAgICBpc1NwcmluZ1R5cGUob3B0aW9ucywgZHVyYXRpb25LZXlzKSkge1xyXG4gICAgICAgIGlmIChvcHRpb25zLnZpc3VhbER1cmF0aW9uKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZpc3VhbER1cmF0aW9uID0gb3B0aW9ucy52aXN1YWxEdXJhdGlvbjtcclxuICAgICAgICAgICAgY29uc3Qgcm9vdCA9ICgyICogTWF0aC5QSSkgLyAodmlzdWFsRHVyYXRpb24gKiAxLjIpO1xyXG4gICAgICAgICAgICBjb25zdCBzdGlmZm5lc3MgPSByb290ICogcm9vdDtcclxuICAgICAgICAgICAgY29uc3QgZGFtcGluZyA9IDIgKlxyXG4gICAgICAgICAgICAgICAgY2xhbXAoMC4wNSwgMSwgMSAtIChvcHRpb25zLmJvdW5jZSB8fCAwKSkgKlxyXG4gICAgICAgICAgICAgICAgTWF0aC5zcXJ0KHN0aWZmbmVzcyk7XHJcbiAgICAgICAgICAgIHNwcmluZ09wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICAuLi5zcHJpbmdPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgbWFzczogc3ByaW5nRGVmYXVsdHMubWFzcyxcclxuICAgICAgICAgICAgICAgIHN0aWZmbmVzcyxcclxuICAgICAgICAgICAgICAgIGRhbXBpbmcsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBkZXJpdmVkID0gZmluZFNwcmluZyhvcHRpb25zKTtcclxuICAgICAgICAgICAgc3ByaW5nT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgIC4uLnNwcmluZ09wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAuLi5kZXJpdmVkLFxyXG4gICAgICAgICAgICAgICAgbWFzczogc3ByaW5nRGVmYXVsdHMubWFzcyxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgc3ByaW5nT3B0aW9ucy5pc1Jlc29sdmVkRnJvbUR1cmF0aW9uID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3ByaW5nT3B0aW9ucztcclxufVxyXG5mdW5jdGlvbiBzcHJpbmcob3B0aW9uc09yVmlzdWFsRHVyYXRpb24gPSBzcHJpbmdEZWZhdWx0cy52aXN1YWxEdXJhdGlvbiwgYm91bmNlID0gc3ByaW5nRGVmYXVsdHMuYm91bmNlKSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdHlwZW9mIG9wdGlvbnNPclZpc3VhbER1cmF0aW9uICE9PSBcIm9iamVjdFwiXHJcbiAgICAgICAgPyB7XHJcbiAgICAgICAgICAgIHZpc3VhbER1cmF0aW9uOiBvcHRpb25zT3JWaXN1YWxEdXJhdGlvbixcclxuICAgICAgICAgICAga2V5ZnJhbWVzOiBbMCwgMV0sXHJcbiAgICAgICAgICAgIGJvdW5jZSxcclxuICAgICAgICB9XHJcbiAgICAgICAgOiBvcHRpb25zT3JWaXN1YWxEdXJhdGlvbjtcclxuICAgIGxldCB7IHJlc3RTcGVlZCwgcmVzdERlbHRhIH0gPSBvcHRpb25zO1xyXG4gICAgY29uc3Qgb3JpZ2luID0gb3B0aW9ucy5rZXlmcmFtZXNbMF07XHJcbiAgICBjb25zdCB0YXJnZXQgPSBvcHRpb25zLmtleWZyYW1lc1tvcHRpb25zLmtleWZyYW1lcy5sZW5ndGggLSAxXTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBpcyB0aGUgSXRlcmF0b3Itc3BlYyByZXR1cm4gdmFsdWUuIFdlIGVuc3VyZSBpdCdzIG11dGFibGUgcmF0aGVyIHRoYW4gdXNpbmcgYSBnZW5lcmF0b3JcclxuICAgICAqIHRvIHJlZHVjZSBHQyBkdXJpbmcgYW5pbWF0aW9uLlxyXG4gICAgICovXHJcbiAgICBjb25zdCBzdGF0ZSA9IHsgZG9uZTogZmFsc2UsIHZhbHVlOiBvcmlnaW4gfTtcclxuICAgIGNvbnN0IHsgc3RpZmZuZXNzLCBkYW1waW5nLCBtYXNzLCBkdXJhdGlvbiwgdmVsb2NpdHksIGlzUmVzb2x2ZWRGcm9tRHVyYXRpb24sIH0gPSBnZXRTcHJpbmdPcHRpb25zKHtcclxuICAgICAgICAuLi5vcHRpb25zLFxyXG4gICAgICAgIHZlbG9jaXR5OiAtbWlsbGlzZWNvbmRzVG9TZWNvbmRzKG9wdGlvbnMudmVsb2NpdHkgfHwgMCksXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGluaXRpYWxWZWxvY2l0eSA9IHZlbG9jaXR5IHx8IDAuMDtcclxuICAgIGNvbnN0IGRhbXBpbmdSYXRpbyA9IGRhbXBpbmcgLyAoMiAqIE1hdGguc3FydChzdGlmZm5lc3MgKiBtYXNzKSk7XHJcbiAgICBjb25zdCBpbml0aWFsRGVsdGEgPSB0YXJnZXQgLSBvcmlnaW47XHJcbiAgICBjb25zdCB1bmRhbXBlZEFuZ3VsYXJGcmVxID0gbWlsbGlzZWNvbmRzVG9TZWNvbmRzKE1hdGguc3FydChzdGlmZm5lc3MgLyBtYXNzKSk7XHJcbiAgICAvKipcclxuICAgICAqIElmIHdlJ3JlIHdvcmtpbmcgb24gYSBncmFudWxhciBzY2FsZSwgdXNlIHNtYWxsZXIgZGVmYXVsdHMgZm9yIGRldGVybWluaW5nXHJcbiAgICAgKiB3aGVuIHRoZSBzcHJpbmcgaXMgZmluaXNoZWQuXHJcbiAgICAgKlxyXG4gICAgICogVGhlc2UgZGVmYXVsdHMgaGF2ZSBiZWVuIHNlbGVjdGVkIGVtcHJpY2FsbHkgYmFzZWQgb24gd2hhdCBzdHJpa2VzIGEgZ29vZFxyXG4gICAgICogcmF0aW8gYmV0d2VlbiBmZWVsaW5nIGdvb2QgYW5kIGZpbmlzaGluZyBhcyBzb29uIGFzIGNoYW5nZXMgYXJlIGltcGVyY2VwdGlibGUuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGlzR3JhbnVsYXJTY2FsZSA9IE1hdGguYWJzKGluaXRpYWxEZWx0YSkgPCA1O1xyXG4gICAgcmVzdFNwZWVkIHx8IChyZXN0U3BlZWQgPSBpc0dyYW51bGFyU2NhbGVcclxuICAgICAgICA/IHNwcmluZ0RlZmF1bHRzLnJlc3RTcGVlZC5ncmFudWxhclxyXG4gICAgICAgIDogc3ByaW5nRGVmYXVsdHMucmVzdFNwZWVkLmRlZmF1bHQpO1xyXG4gICAgcmVzdERlbHRhIHx8IChyZXN0RGVsdGEgPSBpc0dyYW51bGFyU2NhbGVcclxuICAgICAgICA/IHNwcmluZ0RlZmF1bHRzLnJlc3REZWx0YS5ncmFudWxhclxyXG4gICAgICAgIDogc3ByaW5nRGVmYXVsdHMucmVzdERlbHRhLmRlZmF1bHQpO1xyXG4gICAgbGV0IHJlc29sdmVTcHJpbmc7XHJcbiAgICBpZiAoZGFtcGluZ1JhdGlvIDwgMSkge1xyXG4gICAgICAgIGNvbnN0IGFuZ3VsYXJGcmVxID0gY2FsY0FuZ3VsYXJGcmVxKHVuZGFtcGVkQW5ndWxhckZyZXEsIGRhbXBpbmdSYXRpbyk7XHJcbiAgICAgICAgLy8gVW5kZXJkYW1wZWQgc3ByaW5nXHJcbiAgICAgICAgcmVzb2x2ZVNwcmluZyA9ICh0KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVudmVsb3BlID0gTWF0aC5leHAoLWRhbXBpbmdSYXRpbyAqIHVuZGFtcGVkQW5ndWxhckZyZXEgKiB0KTtcclxuICAgICAgICAgICAgcmV0dXJuICh0YXJnZXQgLVxyXG4gICAgICAgICAgICAgICAgZW52ZWxvcGUgKlxyXG4gICAgICAgICAgICAgICAgICAgICgoKGluaXRpYWxWZWxvY2l0eSArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhbXBpbmdSYXRpbyAqIHVuZGFtcGVkQW5ndWxhckZyZXEgKiBpbml0aWFsRGVsdGEpIC9cclxuICAgICAgICAgICAgICAgICAgICAgICAgYW5ndWxhckZyZXEpICpcclxuICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5zaW4oYW5ndWxhckZyZXEgKiB0KSArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxEZWx0YSAqIE1hdGguY29zKGFuZ3VsYXJGcmVxICogdCkpKTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZGFtcGluZ1JhdGlvID09PSAxKSB7XHJcbiAgICAgICAgLy8gQ3JpdGljYWxseSBkYW1wZWQgc3ByaW5nXHJcbiAgICAgICAgcmVzb2x2ZVNwcmluZyA9ICh0KSA9PiB0YXJnZXQgLVxyXG4gICAgICAgICAgICBNYXRoLmV4cCgtdW5kYW1wZWRBbmd1bGFyRnJlcSAqIHQpICpcclxuICAgICAgICAgICAgICAgIChpbml0aWFsRGVsdGEgK1xyXG4gICAgICAgICAgICAgICAgICAgIChpbml0aWFsVmVsb2NpdHkgKyB1bmRhbXBlZEFuZ3VsYXJGcmVxICogaW5pdGlhbERlbHRhKSAqIHQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgLy8gT3ZlcmRhbXBlZCBzcHJpbmdcclxuICAgICAgICBjb25zdCBkYW1wZWRBbmd1bGFyRnJlcSA9IHVuZGFtcGVkQW5ndWxhckZyZXEgKiBNYXRoLnNxcnQoZGFtcGluZ1JhdGlvICogZGFtcGluZ1JhdGlvIC0gMSk7XHJcbiAgICAgICAgcmVzb2x2ZVNwcmluZyA9ICh0KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVudmVsb3BlID0gTWF0aC5leHAoLWRhbXBpbmdSYXRpbyAqIHVuZGFtcGVkQW5ndWxhckZyZXEgKiB0KTtcclxuICAgICAgICAgICAgLy8gV2hlbiBwZXJmb3JtaW5nIHNpbmggb3IgY29zaCB2YWx1ZXMgY2FuIGhpdCBJbmZpbml0eSBzbyB3ZSBjYXAgdGhlbSBoZXJlXHJcbiAgICAgICAgICAgIGNvbnN0IGZyZXFGb3JUID0gTWF0aC5taW4oZGFtcGVkQW5ndWxhckZyZXEgKiB0LCAzMDApO1xyXG4gICAgICAgICAgICByZXR1cm4gKHRhcmdldCAtXHJcbiAgICAgICAgICAgICAgICAoZW52ZWxvcGUgKlxyXG4gICAgICAgICAgICAgICAgICAgICgoaW5pdGlhbFZlbG9jaXR5ICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGFtcGluZ1JhdGlvICogdW5kYW1wZWRBbmd1bGFyRnJlcSAqIGluaXRpYWxEZWx0YSkgKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnNpbmgoZnJlcUZvclQpICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGFtcGVkQW5ndWxhckZyZXEgKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbERlbHRhICpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguY29zaChmcmVxRm9yVCkpKSAvXHJcbiAgICAgICAgICAgICAgICAgICAgZGFtcGVkQW5ndWxhckZyZXEpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjb25zdCBnZW5lcmF0b3IgPSB7XHJcbiAgICAgICAgY2FsY3VsYXRlZER1cmF0aW9uOiBpc1Jlc29sdmVkRnJvbUR1cmF0aW9uID8gZHVyYXRpb24gfHwgbnVsbCA6IG51bGwsXHJcbiAgICAgICAgbmV4dDogKHQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IHJlc29sdmVTcHJpbmcodCk7XHJcbiAgICAgICAgICAgIGlmICghaXNSZXNvbHZlZEZyb21EdXJhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRWZWxvY2l0eSA9IHQgPT09IDAgPyBpbml0aWFsVmVsb2NpdHkgOiAwLjA7XHJcbiAgICAgICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICAgICAqIFdlIG9ubHkgbmVlZCB0byBjYWxjdWxhdGUgdmVsb2NpdHkgZm9yIHVuZGVyLWRhbXBlZCBzcHJpbmdzXHJcbiAgICAgICAgICAgICAgICAgKiBhcyBvdmVyLSBhbmQgY3JpdGljYWxseS1kYW1wZWQgc3ByaW5ncyBjYW4ndCBvdmVyc2hvb3QsIHNvXHJcbiAgICAgICAgICAgICAgICAgKiBjaGVja2luZyBvbmx5IGZvciBkaXNwbGFjZW1lbnQgaXMgZW5vdWdoLlxyXG4gICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICBpZiAoZGFtcGluZ1JhdGlvIDwgMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWZWxvY2l0eSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHQgPT09IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKGluaXRpYWxWZWxvY2l0eSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY2FsY0dlbmVyYXRvclZlbG9jaXR5KHJlc29sdmVTcHJpbmcsIHQsIGN1cnJlbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNCZWxvd1ZlbG9jaXR5VGhyZXNob2xkID0gTWF0aC5hYnMoY3VycmVudFZlbG9jaXR5KSA8PSByZXN0U3BlZWQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpc0JlbG93RGlzcGxhY2VtZW50VGhyZXNob2xkID0gTWF0aC5hYnModGFyZ2V0IC0gY3VycmVudCkgPD0gcmVzdERlbHRhO1xyXG4gICAgICAgICAgICAgICAgc3RhdGUuZG9uZSA9XHJcbiAgICAgICAgICAgICAgICAgICAgaXNCZWxvd1ZlbG9jaXR5VGhyZXNob2xkICYmIGlzQmVsb3dEaXNwbGFjZW1lbnRUaHJlc2hvbGQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBzdGF0ZS5kb25lID0gdCA+PSBkdXJhdGlvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdGF0ZS52YWx1ZSA9IHN0YXRlLmRvbmUgPyB0YXJnZXQgOiBjdXJyZW50O1xyXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b1N0cmluZzogKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjYWxjdWxhdGVkRHVyYXRpb24gPSBNYXRoLm1pbihjYWxjR2VuZXJhdG9yRHVyYXRpb24oZ2VuZXJhdG9yKSwgbWF4R2VuZXJhdG9yRHVyYXRpb24pO1xyXG4gICAgICAgICAgICBjb25zdCBlYXNpbmcgPSBnZW5lcmF0ZUxpbmVhckVhc2luZygocHJvZ3Jlc3MpID0+IGdlbmVyYXRvci5uZXh0KGNhbGN1bGF0ZWREdXJhdGlvbiAqIHByb2dyZXNzKS52YWx1ZSwgY2FsY3VsYXRlZER1cmF0aW9uLCAzMCk7XHJcbiAgICAgICAgICAgIHJldHVybiBjYWxjdWxhdGVkRHVyYXRpb24gKyBcIm1zIFwiICsgZWFzaW5nO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9UcmFuc2l0aW9uOiAoKSA9PiB7IH0sXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGdlbmVyYXRvcjtcclxufVxyXG5zcHJpbmcuYXBwbHlUb09wdGlvbnMgPSAob3B0aW9ucykgPT4ge1xyXG4gICAgY29uc3QgZ2VuZXJhdG9yT3B0aW9ucyA9IGNyZWF0ZUdlbmVyYXRvckVhc2luZyhvcHRpb25zLCAxMDAsIHNwcmluZyk7XHJcbiAgICBvcHRpb25zLmVhc2UgPSBnZW5lcmF0b3JPcHRpb25zLmVhc2U7XHJcbiAgICBvcHRpb25zLmR1cmF0aW9uID0gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKGdlbmVyYXRvck9wdGlvbnMuZHVyYXRpb24pO1xyXG4gICAgb3B0aW9ucy50eXBlID0gXCJrZXlmcmFtZXNcIjtcclxuICAgIHJldHVybiBvcHRpb25zO1xyXG59O1xyXG5cclxuZXhwb3J0IHsgc3ByaW5nIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs ***!
|
||
\**************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcGeneratorDuration: function() { return /* binding */ calcGeneratorDuration; },\n/* harmony export */ maxGeneratorDuration: function() { return /* binding */ maxGeneratorDuration; }\n/* harmony export */ });\n/**\r\n * Implement a practical max duration for keyframe generation\r\n * to prevent infinite loops\r\n */\r\nconst maxGeneratorDuration = 20000;\r\nfunction calcGeneratorDuration(generator) {\r\n let duration = 0;\r\n const timeStep = 50;\r\n let state = generator.next(duration);\r\n while (!state.done && duration < maxGeneratorDuration) {\r\n duration += timeStep;\r\n state = generator.next(duration);\r\n }\r\n return duration >= maxGeneratorDuration ? Infinity : duration;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvY2FsYy1kdXJhdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUN1RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3V0aWxzL2NhbGMtZHVyYXRpb24ubWpzP2YxZjYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEltcGxlbWVudCBhIHByYWN0aWNhbCBtYXggZHVyYXRpb24gZm9yIGtleWZyYW1lIGdlbmVyYXRpb25cclxuICogdG8gcHJldmVudCBpbmZpbml0ZSBsb29wc1xyXG4gKi9cclxuY29uc3QgbWF4R2VuZXJhdG9yRHVyYXRpb24gPSAyMDAwMDtcclxuZnVuY3Rpb24gY2FsY0dlbmVyYXRvckR1cmF0aW9uKGdlbmVyYXRvcikge1xyXG4gICAgbGV0IGR1cmF0aW9uID0gMDtcclxuICAgIGNvbnN0IHRpbWVTdGVwID0gNTA7XHJcbiAgICBsZXQgc3RhdGUgPSBnZW5lcmF0b3IubmV4dChkdXJhdGlvbik7XHJcbiAgICB3aGlsZSAoIXN0YXRlLmRvbmUgJiYgZHVyYXRpb24gPCBtYXhHZW5lcmF0b3JEdXJhdGlvbikge1xyXG4gICAgICAgIGR1cmF0aW9uICs9IHRpbWVTdGVwO1xyXG4gICAgICAgIHN0YXRlID0gZ2VuZXJhdG9yLm5leHQoZHVyYXRpb24pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGR1cmF0aW9uID49IG1heEdlbmVyYXRvckR1cmF0aW9uID8gSW5maW5pdHkgOiBkdXJhdGlvbjtcclxufVxyXG5cclxuZXhwb3J0IHsgY2FsY0dlbmVyYXRvckR1cmF0aW9uLCBtYXhHZW5lcmF0b3JEdXJhdGlvbiB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs":
|
||
/*!************************************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs ***!
|
||
\************************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createGeneratorEasing: function() { return /* binding */ createGeneratorEasing; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _calc_duration_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./calc-duration.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\");\n\r\n\r\n\r\n/**\r\n * Create a progress => progress easing function from a generator.\r\n */\r\nfunction createGeneratorEasing(options, scale = 100, createGenerator) {\r\n const generator = createGenerator({ ...options, keyframes: [0, scale] });\r\n const duration = Math.min((0,_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_0__.calcGeneratorDuration)(generator), _calc_duration_mjs__WEBPACK_IMPORTED_MODULE_0__.maxGeneratorDuration);\r\n return {\r\n type: \"keyframes\",\r\n ease: (progress) => {\r\n return generator.next(duration * progress).value / scale;\r\n },\r\n duration: (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.millisecondsToSeconds)(duration),\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvY3JlYXRlLWdlbmVyYXRvci1lYXNpbmcubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFxRDtBQUM2QjtBQUNsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLG1DQUFtQztBQUMzRSw4QkFBOEIseUVBQXFCLGFBQWEsb0VBQW9CO0FBQ3BGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULGtCQUFrQixtRUFBcUI7QUFDdkM7QUFDQTtBQUNBO0FBQ2lDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvY3JlYXRlLWdlbmVyYXRvci1lYXNpbmcubWpzP2RlY2IiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWlsbGlzZWNvbmRzVG9TZWNvbmRzIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgY2FsY0dlbmVyYXRvckR1cmF0aW9uLCBtYXhHZW5lcmF0b3JEdXJhdGlvbiB9IGZyb20gJy4vY2FsYy1kdXJhdGlvbi5tanMnO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZSBhIHByb2dyZXNzID0+IHByb2dyZXNzIGVhc2luZyBmdW5jdGlvbiBmcm9tIGEgZ2VuZXJhdG9yLlxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlR2VuZXJhdG9yRWFzaW5nKG9wdGlvbnMsIHNjYWxlID0gMTAwLCBjcmVhdGVHZW5lcmF0b3IpIHtcclxuICAgIGNvbnN0IGdlbmVyYXRvciA9IGNyZWF0ZUdlbmVyYXRvcih7IC4uLm9wdGlvbnMsIGtleWZyYW1lczogWzAsIHNjYWxlXSB9KTtcclxuICAgIGNvbnN0IGR1cmF0aW9uID0gTWF0aC5taW4oY2FsY0dlbmVyYXRvckR1cmF0aW9uKGdlbmVyYXRvciksIG1heEdlbmVyYXRvckR1cmF0aW9uKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogXCJrZXlmcmFtZXNcIixcclxuICAgICAgICBlYXNlOiAocHJvZ3Jlc3MpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5uZXh0KGR1cmF0aW9uICogcHJvZ3Jlc3MpLnZhbHVlIC8gc2NhbGU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkdXJhdGlvbjogbWlsbGlzZWNvbmRzVG9TZWNvbmRzKGR1cmF0aW9uKSxcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCB7IGNyZWF0ZUdlbmVyYXRvckVhc2luZyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs":
|
||
/*!*************************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs ***!
|
||
\*************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isGenerator: function() { return /* binding */ isGenerator; }\n/* harmony export */ });\nfunction isGenerator(type) {\r\n return typeof type === \"function\" && \"applyToOptions\" in type;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvaXMtZ2VuZXJhdG9yLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vZ2VuZXJhdG9ycy91dGlscy9pcy1nZW5lcmF0b3IubWpzPzg0NTMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gaXNHZW5lcmF0b3IodHlwZSkge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB0eXBlID09PSBcImZ1bmN0aW9uXCIgJiYgXCJhcHBseVRvT3B0aW9uc1wiIGluIHR5cGU7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGlzR2VuZXJhdG9yIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs ***!
|
||
\*********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcGeneratorVelocity: function() { return /* binding */ calcGeneratorVelocity; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs\");\n\r\n\r\nconst velocitySampleDuration = 5; // ms\r\nfunction calcGeneratorVelocity(resolveValue, t, current) {\r\n const prevT = Math.max(t - velocitySampleDuration, 0);\r\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.velocityPerSecond)(current - resolveValue(prevT), t - prevT);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvdmVsb2NpdHkubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWlEO0FBQ2pEO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0E7QUFDQSxXQUFXLCtEQUFpQjtBQUM1QjtBQUNBO0FBQ2lDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvdmVsb2NpdHkubWpzPzlkMWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdmVsb2NpdHlQZXJTZWNvbmQgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5cclxuY29uc3QgdmVsb2NpdHlTYW1wbGVEdXJhdGlvbiA9IDU7IC8vIG1zXHJcbmZ1bmN0aW9uIGNhbGNHZW5lcmF0b3JWZWxvY2l0eShyZXNvbHZlVmFsdWUsIHQsIGN1cnJlbnQpIHtcclxuICAgIGNvbnN0IHByZXZUID0gTWF0aC5tYXgodCAtIHZlbG9jaXR5U2FtcGxlRHVyYXRpb24sIDApO1xyXG4gICAgcmV0dXJuIHZlbG9jaXR5UGVyU2Vjb25kKGN1cnJlbnQgLSByZXNvbHZlVmFsdWUocHJldlQpLCB0IC0gcHJldlQpO1xyXG59XHJcblxyXG5leHBvcnQgeyBjYWxjR2VuZXJhdG9yVmVsb2NpdHkgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs ***!
|
||
\**************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DOMKeyframesResolver: function() { return /* binding */ DOMKeyframesResolver; }\n/* harmony export */ });\n/* harmony import */ var _render_utils_keys_position_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../render/utils/keys-position.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs\");\n/* harmony import */ var _value_types_dimensions_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../value/types/dimensions.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs\");\n/* harmony import */ var _utils_css_variables_conversion_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/css-variables-conversion.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs\");\n/* harmony import */ var _utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./KeyframesResolver.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\");\n/* harmony import */ var _utils_is_none_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/is-none.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs\");\n/* harmony import */ var _utils_make_none_animatable_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/make-none-animatable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs\");\n/* harmony import */ var _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/unit-conversion.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass DOMKeyframesResolver extends _KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_0__.KeyframeResolver {\r\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element) {\r\n super(unresolvedKeyframes, onComplete, name, motionValue, element, true);\r\n }\r\n readKeyframes() {\r\n const { unresolvedKeyframes, element, name } = this;\r\n if (!element || !element.current)\r\n return;\r\n super.readKeyframes();\r\n /**\r\n * If any keyframe is a CSS variable, we need to find its value by sampling the element\r\n */\r\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\r\n let keyframe = unresolvedKeyframes[i];\r\n if (typeof keyframe === \"string\") {\r\n keyframe = keyframe.trim();\r\n if ((0,_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.isCSSVariableToken)(keyframe)) {\r\n const resolved = (0,_utils_css_variables_conversion_mjs__WEBPACK_IMPORTED_MODULE_2__.getVariableValue)(keyframe, element.current);\r\n if (resolved !== undefined) {\r\n unresolvedKeyframes[i] = resolved;\r\n }\r\n if (i === unresolvedKeyframes.length - 1) {\r\n this.finalKeyframe = keyframe;\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Resolve \"none\" values. We do this potentially twice - once before and once after measuring keyframes.\r\n * This could be seen as inefficient but it's a trade-off to avoid measurements in more situations, which\r\n * have a far bigger performance impact.\r\n */\r\n this.resolveNoneKeyframes();\r\n /**\r\n * Check to see if unit type has changed. If so schedule jobs that will\r\n * temporarily set styles to the destination keyframes.\r\n * Skip if we have more than two keyframes or this isn't a positional value.\r\n * TODO: We can throw if there are multiple keyframes and the value type changes.\r\n */\r\n if (!_render_utils_keys_position_mjs__WEBPACK_IMPORTED_MODULE_3__.positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {\r\n return;\r\n }\r\n const [origin, target] = unresolvedKeyframes;\r\n const originType = (0,_value_types_dimensions_mjs__WEBPACK_IMPORTED_MODULE_4__.findDimensionValueType)(origin);\r\n const targetType = (0,_value_types_dimensions_mjs__WEBPACK_IMPORTED_MODULE_4__.findDimensionValueType)(target);\r\n /**\r\n * Either we don't recognise these value types or we can animate between them.\r\n */\r\n if (originType === targetType)\r\n return;\r\n /**\r\n * If both values are numbers or pixels, we can animate between them by\r\n * converting them to numbers.\r\n */\r\n if ((0,_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.isNumOrPxType)(originType) && (0,_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.isNumOrPxType)(targetType)) {\r\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\r\n const value = unresolvedKeyframes[i];\r\n if (typeof value === \"string\") {\r\n unresolvedKeyframes[i] = parseFloat(value);\r\n }\r\n }\r\n }\r\n else if (_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name]) {\r\n /**\r\n * Else, the only way to resolve this is by measuring the element.\r\n */\r\n this.needsMeasurement = true;\r\n }\r\n }\r\n resolveNoneKeyframes() {\r\n const { unresolvedKeyframes, name } = this;\r\n const noneKeyframeIndexes = [];\r\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\r\n if (unresolvedKeyframes[i] === null ||\r\n (0,_utils_is_none_mjs__WEBPACK_IMPORTED_MODULE_6__.isNone)(unresolvedKeyframes[i])) {\r\n noneKeyframeIndexes.push(i);\r\n }\r\n }\r\n if (noneKeyframeIndexes.length) {\r\n (0,_utils_make_none_animatable_mjs__WEBPACK_IMPORTED_MODULE_7__.makeNoneKeyframesAnimatable)(unresolvedKeyframes, noneKeyframeIndexes, name);\r\n }\r\n }\r\n measureInitialState() {\r\n const { element, unresolvedKeyframes, name } = this;\r\n if (!element || !element.current)\r\n return;\r\n if (name === \"height\") {\r\n this.suspendedScrollY = window.pageYOffset;\r\n }\r\n this.measuredOrigin = _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\r\n unresolvedKeyframes[0] = this.measuredOrigin;\r\n // Set final key frame to measure after next render\r\n const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\r\n if (measureKeyframe !== undefined) {\r\n element.getValue(name, measureKeyframe).jump(measureKeyframe, false);\r\n }\r\n }\r\n measureEndState() {\r\n const { element, name, unresolvedKeyframes } = this;\r\n if (!element || !element.current)\r\n return;\r\n const value = element.getValue(name);\r\n value && value.jump(this.measuredOrigin, false);\r\n const finalKeyframeIndex = unresolvedKeyframes.length - 1;\r\n const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];\r\n unresolvedKeyframes[finalKeyframeIndex] = _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\r\n if (finalKeyframe !== null && this.finalKeyframe === undefined) {\r\n this.finalKeyframe = finalKeyframe;\r\n }\r\n // If we removed transform values, reapply them before the next render\r\n if (this.removedTransforms?.length) {\r\n this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {\r\n element\r\n .getValue(unsetTransformName)\r\n .set(unsetTransformValue);\r\n });\r\n }\r\n this.resolveNoneKeyframes();\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9ET01LZXlmcmFtZXNSZXNvbHZlci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQXNFO0FBQ0k7QUFDRDtBQUNQO0FBQ1A7QUFDZDtBQUNrQztBQUNEO0FBQzlFO0FBQ0EsbUNBQW1DLG9FQUFnQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxQ0FBcUM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdDQUFnQztBQUN4RDtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsOEVBQWtCO0FBQ3RDLHFDQUFxQyxxRkFBZ0I7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSwyRUFBYztBQUMzQjtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsbUZBQXNCO0FBQ2pELDJCQUEyQixtRkFBc0I7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx5RUFBYSxnQkFBZ0IseUVBQWE7QUFDdEQsNEJBQTRCLGdDQUFnQztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsd0VBQWdCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDRCQUE0QjtBQUM1QztBQUNBLHdCQUF3QixnQ0FBZ0M7QUFDeEQ7QUFDQSxnQkFBZ0IsMERBQU07QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLDRGQUEyQjtBQUN2QztBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IscUNBQXFDO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsd0VBQWdCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IscUNBQXFDO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRCx3RUFBZ0I7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL0RPTUtleWZyYW1lc1Jlc29sdmVyLm1qcz84OGFkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBvc2l0aW9uYWxLZXlzIH0gZnJvbSAnLi4vLi4vcmVuZGVyL3V0aWxzL2tleXMtcG9zaXRpb24ubWpzJztcclxuaW1wb3J0IHsgZmluZERpbWVuc2lvblZhbHVlVHlwZSB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL2RpbWVuc2lvbnMubWpzJztcclxuaW1wb3J0IHsgZ2V0VmFyaWFibGVWYWx1ZSB9IGZyb20gJy4uL3V0aWxzL2Nzcy12YXJpYWJsZXMtY29udmVyc2lvbi5tanMnO1xyXG5pbXBvcnQgeyBpc0NTU1ZhcmlhYmxlVG9rZW4gfSBmcm9tICcuLi91dGlscy9pcy1jc3MtdmFyaWFibGUubWpzJztcclxuaW1wb3J0IHsgS2V5ZnJhbWVSZXNvbHZlciB9IGZyb20gJy4vS2V5ZnJhbWVzUmVzb2x2ZXIubWpzJztcclxuaW1wb3J0IHsgaXNOb25lIH0gZnJvbSAnLi91dGlscy9pcy1ub25lLm1qcyc7XHJcbmltcG9ydCB7IG1ha2VOb25lS2V5ZnJhbWVzQW5pbWF0YWJsZSB9IGZyb20gJy4vdXRpbHMvbWFrZS1ub25lLWFuaW1hdGFibGUubWpzJztcclxuaW1wb3J0IHsgaXNOdW1PclB4VHlwZSwgcG9zaXRpb25hbFZhbHVlcyB9IGZyb20gJy4vdXRpbHMvdW5pdC1jb252ZXJzaW9uLm1qcyc7XHJcblxyXG5jbGFzcyBET01LZXlmcmFtZXNSZXNvbHZlciBleHRlbmRzIEtleWZyYW1lUmVzb2x2ZXIge1xyXG4gICAgY29uc3RydWN0b3IodW5yZXNvbHZlZEtleWZyYW1lcywgb25Db21wbGV0ZSwgbmFtZSwgbW90aW9uVmFsdWUsIGVsZW1lbnQpIHtcclxuICAgICAgICBzdXBlcih1bnJlc29sdmVkS2V5ZnJhbWVzLCBvbkNvbXBsZXRlLCBuYW1lLCBtb3Rpb25WYWx1ZSwgZWxlbWVudCwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICByZWFkS2V5ZnJhbWVzKCkge1xyXG4gICAgICAgIGNvbnN0IHsgdW5yZXNvbHZlZEtleWZyYW1lcywgZWxlbWVudCwgbmFtZSB9ID0gdGhpcztcclxuICAgICAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQuY3VycmVudClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIHN1cGVyLnJlYWRLZXlmcmFtZXMoKTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiBhbnkga2V5ZnJhbWUgaXMgYSBDU1MgdmFyaWFibGUsIHdlIG5lZWQgdG8gZmluZCBpdHMgdmFsdWUgYnkgc2FtcGxpbmcgdGhlIGVsZW1lbnRcclxuICAgICAgICAgKi9cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHVucmVzb2x2ZWRLZXlmcmFtZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGtleWZyYW1lID0gdW5yZXNvbHZlZEtleWZyYW1lc1tpXTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBrZXlmcmFtZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICAgICAga2V5ZnJhbWUgPSBrZXlmcmFtZS50cmltKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNDU1NWYXJpYWJsZVRva2VuKGtleWZyYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gZ2V0VmFyaWFibGVWYWx1ZShrZXlmcmFtZSwgZWxlbWVudC5jdXJyZW50KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZWQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1bnJlc29sdmVkS2V5ZnJhbWVzW2ldID0gcmVzb2x2ZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpID09PSB1bnJlc29sdmVkS2V5ZnJhbWVzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbEtleWZyYW1lID0ga2V5ZnJhbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFJlc29sdmUgXCJub25lXCIgdmFsdWVzLiBXZSBkbyB0aGlzIHBvdGVudGlhbGx5IHR3aWNlIC0gb25jZSBiZWZvcmUgYW5kIG9uY2UgYWZ0ZXIgbWVhc3VyaW5nIGtleWZyYW1lcy5cclxuICAgICAgICAgKiBUaGlzIGNvdWxkIGJlIHNlZW4gYXMgaW5lZmZpY2llbnQgYnV0IGl0J3MgYSB0cmFkZS1vZmYgdG8gYXZvaWQgbWVhc3VyZW1lbnRzIGluIG1vcmUgc2l0dWF0aW9ucywgd2hpY2hcclxuICAgICAgICAgKiBoYXZlIGEgZmFyIGJpZ2dlciBwZXJmb3JtYW5jZSBpbXBhY3QuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yZXNvbHZlTm9uZUtleWZyYW1lcygpO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENoZWNrIHRvIHNlZSBpZiB1bml0IHR5cGUgaGFzIGNoYW5nZWQuIElmIHNvIHNjaGVkdWxlIGpvYnMgdGhhdCB3aWxsXHJcbiAgICAgICAgICogdGVtcG9yYXJpbHkgc2V0IHN0eWxlcyB0byB0aGUgZGVzdGluYXRpb24ga2V5ZnJhbWVzLlxyXG4gICAgICAgICAqIFNraXAgaWYgd2UgaGF2ZSBtb3JlIHRoYW4gdHdvIGtleWZyYW1lcyBvciB0aGlzIGlzbid0IGEgcG9zaXRpb25hbCB2YWx1ZS5cclxuICAgICAgICAgKiBUT0RPOiBXZSBjYW4gdGhyb3cgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGtleWZyYW1lcyBhbmQgdGhlIHZhbHVlIHR5cGUgY2hhbmdlcy5cclxuICAgICAgICAgKi9cclxuICAgICAgICBpZiAoIXBvc2l0aW9uYWxLZXlzLmhhcyhuYW1lKSB8fCB1bnJlc29sdmVkS2V5ZnJhbWVzLmxlbmd0aCAhPT0gMikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IFtvcmlnaW4sIHRhcmdldF0gPSB1bnJlc29sdmVkS2V5ZnJhbWVzO1xyXG4gICAgICAgIGNvbnN0IG9yaWdpblR5cGUgPSBmaW5kRGltZW5zaW9uVmFsdWVUeXBlKG9yaWdpbik7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0VHlwZSA9IGZpbmREaW1lbnNpb25WYWx1ZVR5cGUodGFyZ2V0KTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBFaXRoZXIgd2UgZG9uJ3QgcmVjb2duaXNlIHRoZXNlIHZhbHVlIHR5cGVzIG9yIHdlIGNhbiBhbmltYXRlIGJldHdlZW4gdGhlbS5cclxuICAgICAgICAgKi9cclxuICAgICAgICBpZiAob3JpZ2luVHlwZSA9PT0gdGFyZ2V0VHlwZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElmIGJvdGggdmFsdWVzIGFyZSBudW1iZXJzIG9yIHBpeGVscywgd2UgY2FuIGFuaW1hdGUgYmV0d2VlbiB0aGVtIGJ5XHJcbiAgICAgICAgICogY29udmVydGluZyB0aGVtIHRvIG51bWJlcnMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgaWYgKGlzTnVtT3JQeFR5cGUob3JpZ2luVHlwZSkgJiYgaXNOdW1PclB4VHlwZSh0YXJnZXRUeXBlKSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHVucmVzb2x2ZWRLZXlmcmFtZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdW5yZXNvbHZlZEtleWZyYW1lc1tpXTtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB1bnJlc29sdmVkS2V5ZnJhbWVzW2ldID0gcGFyc2VGbG9hdCh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocG9zaXRpb25hbFZhbHVlc1tuYW1lXSkge1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogRWxzZSwgdGhlIG9ubHkgd2F5IHRvIHJlc29sdmUgdGhpcyBpcyBieSBtZWFzdXJpbmcgdGhlIGVsZW1lbnQuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICB0aGlzLm5lZWRzTWVhc3VyZW1lbnQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlc29sdmVOb25lS2V5ZnJhbWVzKCkge1xyXG4gICAgICAgIGNvbnN0IHsgdW5yZXNvbHZlZEtleWZyYW1lcywgbmFtZSB9ID0gdGhpcztcclxuICAgICAgICBjb25zdCBub25lS2V5ZnJhbWVJbmRleGVzID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB1bnJlc29sdmVkS2V5ZnJhbWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh1bnJlc29sdmVkS2V5ZnJhbWVzW2ldID09PSBudWxsIHx8XHJcbiAgICAgICAgICAgICAgICBpc05vbmUodW5yZXNvbHZlZEtleWZyYW1lc1tpXSkpIHtcclxuICAgICAgICAgICAgICAgIG5vbmVLZXlmcmFtZUluZGV4ZXMucHVzaChpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobm9uZUtleWZyYW1lSW5kZXhlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgbWFrZU5vbmVLZXlmcmFtZXNBbmltYXRhYmxlKHVucmVzb2x2ZWRLZXlmcmFtZXMsIG5vbmVLZXlmcmFtZUluZGV4ZXMsIG5hbWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG1lYXN1cmVJbml0aWFsU3RhdGUoKSB7XHJcbiAgICAgICAgY29uc3QgeyBlbGVtZW50LCB1bnJlc29sdmVkS2V5ZnJhbWVzLCBuYW1lIH0gPSB0aGlzO1xyXG4gICAgICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC5jdXJyZW50KVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgaWYgKG5hbWUgPT09IFwiaGVpZ2h0XCIpIHtcclxuICAgICAgICAgICAgdGhpcy5zdXNwZW5kZWRTY3JvbGxZID0gd2luZG93LnBhZ2VZT2Zmc2V0O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm1lYXN1cmVkT3JpZ2luID0gcG9zaXRpb25hbFZhbHVlc1tuYW1lXShlbGVtZW50Lm1lYXN1cmVWaWV3cG9ydEJveCgpLCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LmN1cnJlbnQpKTtcclxuICAgICAgICB1bnJlc29sdmVkS2V5ZnJhbWVzWzBdID0gdGhpcy5tZWFzdXJlZE9yaWdpbjtcclxuICAgICAgICAvLyBTZXQgZmluYWwga2V5IGZyYW1lIHRvIG1lYXN1cmUgYWZ0ZXIgbmV4dCByZW5kZXJcclxuICAgICAgICBjb25zdCBtZWFzdXJlS2V5ZnJhbWUgPSB1bnJlc29sdmVkS2V5ZnJhbWVzW3VucmVzb2x2ZWRLZXlmcmFtZXMubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgaWYgKG1lYXN1cmVLZXlmcmFtZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuZ2V0VmFsdWUobmFtZSwgbWVhc3VyZUtleWZyYW1lKS5qdW1wKG1lYXN1cmVLZXlmcmFtZSwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG1lYXN1cmVFbmRTdGF0ZSgpIHtcclxuICAgICAgICBjb25zdCB7IGVsZW1lbnQsIG5hbWUsIHVucmVzb2x2ZWRLZXlmcmFtZXMgfSA9IHRoaXM7XHJcbiAgICAgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LmN1cnJlbnQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGVsZW1lbnQuZ2V0VmFsdWUobmFtZSk7XHJcbiAgICAgICAgdmFsdWUgJiYgdmFsdWUuanVtcCh0aGlzLm1lYXN1cmVkT3JpZ2luLCBmYWxzZSk7XHJcbiAgICAgICAgY29uc3QgZmluYWxLZXlmcmFtZUluZGV4ID0gdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGggLSAxO1xyXG4gICAgICAgIGNvbnN0IGZpbmFsS2V5ZnJhbWUgPSB1bnJlc29sdmVkS2V5ZnJhbWVzW2ZpbmFsS2V5ZnJhbWVJbmRleF07XHJcbiAgICAgICAgdW5yZXNvbHZlZEtleWZyYW1lc1tmaW5hbEtleWZyYW1lSW5kZXhdID0gcG9zaXRpb25hbFZhbHVlc1tuYW1lXShlbGVtZW50Lm1lYXN1cmVWaWV3cG9ydEJveCgpLCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LmN1cnJlbnQpKTtcclxuICAgICAgICBpZiAoZmluYWxLZXlmcmFtZSAhPT0gbnVsbCAmJiB0aGlzLmZpbmFsS2V5ZnJhbWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbmFsS2V5ZnJhbWUgPSBmaW5hbEtleWZyYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiB3ZSByZW1vdmVkIHRyYW5zZm9ybSB2YWx1ZXMsIHJlYXBwbHkgdGhlbSBiZWZvcmUgdGhlIG5leHQgcmVuZGVyXHJcbiAgICAgICAgaWYgKHRoaXMucmVtb3ZlZFRyYW5zZm9ybXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZWRUcmFuc2Zvcm1zLmZvckVhY2goKFt1bnNldFRyYW5zZm9ybU5hbWUsIHVuc2V0VHJhbnNmb3JtVmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgLmdldFZhbHVlKHVuc2V0VHJhbnNmb3JtTmFtZSlcclxuICAgICAgICAgICAgICAgICAgICAuc2V0KHVuc2V0VHJhbnNmb3JtVmFsdWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlTm9uZUtleWZyYW1lcygpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgeyBET01LZXlmcmFtZXNSZXNvbHZlciB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs ***!
|
||
\***********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ KeyframeResolver: function() { return /* binding */ KeyframeResolver; },\n/* harmony export */ flushKeyframeResolvers: function() { return /* binding */ flushKeyframeResolvers; }\n/* harmony export */ });\n/* harmony import */ var _utils_fill_wildcards_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/fill-wildcards.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs\");\n/* harmony import */ var _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/unit-conversion.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\r\n\r\n\r\n\r\nconst toResolve = new Set();\r\nlet isScheduled = false;\r\nlet anyNeedsMeasurement = false;\r\nlet isForced = false;\r\nfunction measureAllKeyframes() {\r\n if (anyNeedsMeasurement) {\r\n const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);\r\n const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));\r\n const transformsToRestore = new Map();\r\n /**\r\n * Write pass\r\n * If we're measuring elements we want to remove bounding box-changing transforms.\r\n */\r\n elementsToMeasure.forEach((element) => {\r\n const removedTransforms = (0,_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__.removeNonTranslationalTransform)(element);\r\n if (!removedTransforms.length)\r\n return;\r\n transformsToRestore.set(element, removedTransforms);\r\n element.render();\r\n });\r\n // Read\r\n resolversToMeasure.forEach((resolver) => resolver.measureInitialState());\r\n // Write\r\n elementsToMeasure.forEach((element) => {\r\n element.render();\r\n const restore = transformsToRestore.get(element);\r\n if (restore) {\r\n restore.forEach(([key, value]) => {\r\n element.getValue(key)?.set(value);\r\n });\r\n }\r\n });\r\n // Read\r\n resolversToMeasure.forEach((resolver) => resolver.measureEndState());\r\n // Write\r\n resolversToMeasure.forEach((resolver) => {\r\n if (resolver.suspendedScrollY !== undefined) {\r\n window.scrollTo(0, resolver.suspendedScrollY);\r\n }\r\n });\r\n }\r\n anyNeedsMeasurement = false;\r\n isScheduled = false;\r\n toResolve.forEach((resolver) => resolver.complete(isForced));\r\n toResolve.clear();\r\n}\r\nfunction readAllKeyframes() {\r\n toResolve.forEach((resolver) => {\r\n resolver.readKeyframes();\r\n if (resolver.needsMeasurement) {\r\n anyNeedsMeasurement = true;\r\n }\r\n });\r\n}\r\nfunction flushKeyframeResolvers() {\r\n isForced = true;\r\n readAllKeyframes();\r\n measureAllKeyframes();\r\n isForced = false;\r\n}\r\nclass KeyframeResolver {\r\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {\r\n this.state = \"pending\";\r\n /**\r\n * Track whether this resolver is async. If it is, it'll be added to the\r\n * resolver queue and flushed in the next frame. Resolvers that aren't going\r\n * to trigger read/write thrashing don't need to be async.\r\n */\r\n this.isAsync = false;\r\n /**\r\n * Track whether this resolver needs to perform a measurement\r\n * to resolve its keyframes.\r\n */\r\n this.needsMeasurement = false;\r\n this.unresolvedKeyframes = [...unresolvedKeyframes];\r\n this.onComplete = onComplete;\r\n this.name = name;\r\n this.motionValue = motionValue;\r\n this.element = element;\r\n this.isAsync = isAsync;\r\n }\r\n scheduleResolve() {\r\n this.state = \"scheduled\";\r\n if (this.isAsync) {\r\n toResolve.add(this);\r\n if (!isScheduled) {\r\n isScheduled = true;\r\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.read(readAllKeyframes);\r\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.resolveKeyframes(measureAllKeyframes);\r\n }\r\n }\r\n else {\r\n this.readKeyframes();\r\n this.complete();\r\n }\r\n }\r\n readKeyframes() {\r\n const { unresolvedKeyframes, name, element, motionValue } = this;\r\n // If initial keyframe is null we need to read it from the DOM\r\n if (unresolvedKeyframes[0] === null) {\r\n const currentValue = motionValue?.get();\r\n // TODO: This doesn't work if the final keyframe is a wildcard\r\n const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\r\n if (currentValue !== undefined) {\r\n unresolvedKeyframes[0] = currentValue;\r\n }\r\n else if (element && name) {\r\n const valueAsRead = element.readValue(name, finalKeyframe);\r\n if (valueAsRead !== undefined && valueAsRead !== null) {\r\n unresolvedKeyframes[0] = valueAsRead;\r\n }\r\n }\r\n if (unresolvedKeyframes[0] === undefined) {\r\n unresolvedKeyframes[0] = finalKeyframe;\r\n }\r\n if (motionValue && currentValue === undefined) {\r\n motionValue.set(unresolvedKeyframes[0]);\r\n }\r\n }\r\n (0,_utils_fill_wildcards_mjs__WEBPACK_IMPORTED_MODULE_2__.fillWildcards)(unresolvedKeyframes);\r\n }\r\n setFinalKeyframe() { }\r\n measureInitialState() { }\r\n renderEndStyles() { }\r\n measureEndState() { }\r\n complete(isForcedComplete = false) {\r\n this.state = \"complete\";\r\n this.onComplete(this.unresolvedKeyframes, this.finalKeyframe, isForcedComplete);\r\n toResolve.delete(this);\r\n }\r\n cancel() {\r\n if (this.state === \"scheduled\") {\r\n toResolve.delete(this);\r\n this.state = \"pending\";\r\n }\r\n }\r\n resume() {\r\n if (this.state === \"pending\")\r\n this.scheduleResolve();\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9LZXlmcmFtZXNSZXNvbHZlci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBMkQ7QUFDbUI7QUFDNUI7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLDJGQUErQjtBQUNyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHVEQUFLO0FBQ3JCLGdCQUFnQix1REFBSztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGtEQUFrRDtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHdFQUFhO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ29EIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9LZXlmcmFtZXNSZXNvbHZlci5tanM/NWQ5YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWxsV2lsZGNhcmRzIH0gZnJvbSAnLi91dGlscy9maWxsLXdpbGRjYXJkcy5tanMnO1xyXG5pbXBvcnQgeyByZW1vdmVOb25UcmFuc2xhdGlvbmFsVHJhbnNmb3JtIH0gZnJvbSAnLi91dGlscy91bml0LWNvbnZlcnNpb24ubWpzJztcclxuaW1wb3J0IHsgZnJhbWUgfSBmcm9tICcuLi8uLi9mcmFtZWxvb3AvZnJhbWUubWpzJztcclxuXHJcbmNvbnN0IHRvUmVzb2x2ZSA9IG5ldyBTZXQoKTtcclxubGV0IGlzU2NoZWR1bGVkID0gZmFsc2U7XHJcbmxldCBhbnlOZWVkc01lYXN1cmVtZW50ID0gZmFsc2U7XHJcbmxldCBpc0ZvcmNlZCA9IGZhbHNlO1xyXG5mdW5jdGlvbiBtZWFzdXJlQWxsS2V5ZnJhbWVzKCkge1xyXG4gICAgaWYgKGFueU5lZWRzTWVhc3VyZW1lbnQpIHtcclxuICAgICAgICBjb25zdCByZXNvbHZlcnNUb01lYXN1cmUgPSBBcnJheS5mcm9tKHRvUmVzb2x2ZSkuZmlsdGVyKChyZXNvbHZlcikgPT4gcmVzb2x2ZXIubmVlZHNNZWFzdXJlbWVudCk7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudHNUb01lYXN1cmUgPSBuZXcgU2V0KHJlc29sdmVyc1RvTWVhc3VyZS5tYXAoKHJlc29sdmVyKSA9PiByZXNvbHZlci5lbGVtZW50KSk7XHJcbiAgICAgICAgY29uc3QgdHJhbnNmb3Jtc1RvUmVzdG9yZSA9IG5ldyBNYXAoKTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBXcml0ZSBwYXNzXHJcbiAgICAgICAgICogSWYgd2UncmUgbWVhc3VyaW5nIGVsZW1lbnRzIHdlIHdhbnQgdG8gcmVtb3ZlIGJvdW5kaW5nIGJveC1jaGFuZ2luZyB0cmFuc2Zvcm1zLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGVsZW1lbnRzVG9NZWFzdXJlLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcmVtb3ZlZFRyYW5zZm9ybXMgPSByZW1vdmVOb25UcmFuc2xhdGlvbmFsVHJhbnNmb3JtKGVsZW1lbnQpO1xyXG4gICAgICAgICAgICBpZiAoIXJlbW92ZWRUcmFuc2Zvcm1zLmxlbmd0aClcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgdHJhbnNmb3Jtc1RvUmVzdG9yZS5zZXQoZWxlbWVudCwgcmVtb3ZlZFRyYW5zZm9ybXMpO1xyXG4gICAgICAgICAgICBlbGVtZW50LnJlbmRlcigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIFJlYWRcclxuICAgICAgICByZXNvbHZlcnNUb01lYXN1cmUuZm9yRWFjaCgocmVzb2x2ZXIpID0+IHJlc29sdmVyLm1lYXN1cmVJbml0aWFsU3RhdGUoKSk7XHJcbiAgICAgICAgLy8gV3JpdGVcclxuICAgICAgICBlbGVtZW50c1RvTWVhc3VyZS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQucmVuZGVyKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3RvcmUgPSB0cmFuc2Zvcm1zVG9SZXN0b3JlLmdldChlbGVtZW50KTtcclxuICAgICAgICAgICAgaWYgKHJlc3RvcmUpIHtcclxuICAgICAgICAgICAgICAgIHJlc3RvcmUuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5nZXRWYWx1ZShrZXkpPy5zZXQodmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBSZWFkXHJcbiAgICAgICAgcmVzb2x2ZXJzVG9NZWFzdXJlLmZvckVhY2goKHJlc29sdmVyKSA9PiByZXNvbHZlci5tZWFzdXJlRW5kU3RhdGUoKSk7XHJcbiAgICAgICAgLy8gV3JpdGVcclxuICAgICAgICByZXNvbHZlcnNUb01lYXN1cmUuZm9yRWFjaCgocmVzb2x2ZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlc29sdmVyLnN1c3BlbmRlZFNjcm9sbFkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIHJlc29sdmVyLnN1c3BlbmRlZFNjcm9sbFkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBhbnlOZWVkc01lYXN1cmVtZW50ID0gZmFsc2U7XHJcbiAgICBpc1NjaGVkdWxlZCA9IGZhbHNlO1xyXG4gICAgdG9SZXNvbHZlLmZvckVhY2goKHJlc29sdmVyKSA9PiByZXNvbHZlci5jb21wbGV0ZShpc0ZvcmNlZCkpO1xyXG4gICAgdG9SZXNvbHZlLmNsZWFyKCk7XHJcbn1cclxuZnVuY3Rpb24gcmVhZEFsbEtleWZyYW1lcygpIHtcclxuICAgIHRvUmVzb2x2ZS5mb3JFYWNoKChyZXNvbHZlcikgPT4ge1xyXG4gICAgICAgIHJlc29sdmVyLnJlYWRLZXlmcmFtZXMoKTtcclxuICAgICAgICBpZiAocmVzb2x2ZXIubmVlZHNNZWFzdXJlbWVudCkge1xyXG4gICAgICAgICAgICBhbnlOZWVkc01lYXN1cmVtZW50ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxufVxyXG5mdW5jdGlvbiBmbHVzaEtleWZyYW1lUmVzb2x2ZXJzKCkge1xyXG4gICAgaXNGb3JjZWQgPSB0cnVlO1xyXG4gICAgcmVhZEFsbEtleWZyYW1lcygpO1xyXG4gICAgbWVhc3VyZUFsbEtleWZyYW1lcygpO1xyXG4gICAgaXNGb3JjZWQgPSBmYWxzZTtcclxufVxyXG5jbGFzcyBLZXlmcmFtZVJlc29sdmVyIHtcclxuICAgIGNvbnN0cnVjdG9yKHVucmVzb2x2ZWRLZXlmcmFtZXMsIG9uQ29tcGxldGUsIG5hbWUsIG1vdGlvblZhbHVlLCBlbGVtZW50LCBpc0FzeW5jID0gZmFsc2UpIHtcclxuICAgICAgICB0aGlzLnN0YXRlID0gXCJwZW5kaW5nXCI7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVHJhY2sgd2hldGhlciB0aGlzIHJlc29sdmVyIGlzIGFzeW5jLiBJZiBpdCBpcywgaXQnbGwgYmUgYWRkZWQgdG8gdGhlXHJcbiAgICAgICAgICogcmVzb2x2ZXIgcXVldWUgYW5kIGZsdXNoZWQgaW4gdGhlIG5leHQgZnJhbWUuIFJlc29sdmVycyB0aGF0IGFyZW4ndCBnb2luZ1xyXG4gICAgICAgICAqIHRvIHRyaWdnZXIgcmVhZC93cml0ZSB0aHJhc2hpbmcgZG9uJ3QgbmVlZCB0byBiZSBhc3luYy5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlzQXN5bmMgPSBmYWxzZTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUcmFjayB3aGV0aGVyIHRoaXMgcmVzb2x2ZXIgbmVlZHMgdG8gcGVyZm9ybSBhIG1lYXN1cmVtZW50XHJcbiAgICAgICAgICogdG8gcmVzb2x2ZSBpdHMga2V5ZnJhbWVzLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubmVlZHNNZWFzdXJlbWVudCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudW5yZXNvbHZlZEtleWZyYW1lcyA9IFsuLi51bnJlc29sdmVkS2V5ZnJhbWVzXTtcclxuICAgICAgICB0aGlzLm9uQ29tcGxldGUgPSBvbkNvbXBsZXRlO1xyXG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgdGhpcy5tb3Rpb25WYWx1ZSA9IG1vdGlvblZhbHVlO1xyXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XHJcbiAgICAgICAgdGhpcy5pc0FzeW5jID0gaXNBc3luYztcclxuICAgIH1cclxuICAgIHNjaGVkdWxlUmVzb2x2ZSgpIHtcclxuICAgICAgICB0aGlzLnN0YXRlID0gXCJzY2hlZHVsZWRcIjtcclxuICAgICAgICBpZiAodGhpcy5pc0FzeW5jKSB7XHJcbiAgICAgICAgICAgIHRvUmVzb2x2ZS5hZGQodGhpcyk7XHJcbiAgICAgICAgICAgIGlmICghaXNTY2hlZHVsZWQpIHtcclxuICAgICAgICAgICAgICAgIGlzU2NoZWR1bGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGZyYW1lLnJlYWQocmVhZEFsbEtleWZyYW1lcyk7XHJcbiAgICAgICAgICAgICAgICBmcmFtZS5yZXNvbHZlS2V5ZnJhbWVzKG1lYXN1cmVBbGxLZXlmcmFtZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJlYWRLZXlmcmFtZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlYWRLZXlmcmFtZXMoKSB7XHJcbiAgICAgICAgY29uc3QgeyB1bnJlc29sdmVkS2V5ZnJhbWVzLCBuYW1lLCBlbGVtZW50LCBtb3Rpb25WYWx1ZSB9ID0gdGhpcztcclxuICAgICAgICAvLyBJZiBpbml0aWFsIGtleWZyYW1lIGlzIG51bGwgd2UgbmVlZCB0byByZWFkIGl0IGZyb20gdGhlIERPTVxyXG4gICAgICAgIGlmICh1bnJlc29sdmVkS2V5ZnJhbWVzWzBdID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IG1vdGlvblZhbHVlPy5nZXQoKTtcclxuICAgICAgICAgICAgLy8gVE9ETzogVGhpcyBkb2Vzbid0IHdvcmsgaWYgdGhlIGZpbmFsIGtleWZyYW1lIGlzIGEgd2lsZGNhcmRcclxuICAgICAgICAgICAgY29uc3QgZmluYWxLZXlmcmFtZSA9IHVucmVzb2x2ZWRLZXlmcmFtZXNbdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGggLSAxXTtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB1bnJlc29sdmVkS2V5ZnJhbWVzWzBdID0gY3VycmVudFZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQgJiYgbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVBc1JlYWQgPSBlbGVtZW50LnJlYWRWYWx1ZShuYW1lLCBmaW5hbEtleWZyYW1lKTtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZUFzUmVhZCAhPT0gdW5kZWZpbmVkICYmIHZhbHVlQXNSZWFkICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5yZXNvbHZlZEtleWZyYW1lc1swXSA9IHZhbHVlQXNSZWFkO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh1bnJlc29sdmVkS2V5ZnJhbWVzWzBdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHVucmVzb2x2ZWRLZXlmcmFtZXNbMF0gPSBmaW5hbEtleWZyYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChtb3Rpb25WYWx1ZSAmJiBjdXJyZW50VmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgbW90aW9uVmFsdWUuc2V0KHVucmVzb2x2ZWRLZXlmcmFtZXNbMF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbGxXaWxkY2FyZHModW5yZXNvbHZlZEtleWZyYW1lcyk7XHJcbiAgICB9XHJcbiAgICBzZXRGaW5hbEtleWZyYW1lKCkgeyB9XHJcbiAgICBtZWFzdXJlSW5pdGlhbFN0YXRlKCkgeyB9XHJcbiAgICByZW5kZXJFbmRTdHlsZXMoKSB7IH1cclxuICAgIG1lYXN1cmVFbmRTdGF0ZSgpIHsgfVxyXG4gICAgY29tcGxldGUoaXNGb3JjZWRDb21wbGV0ZSA9IGZhbHNlKSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFwiY29tcGxldGVcIjtcclxuICAgICAgICB0aGlzLm9uQ29tcGxldGUodGhpcy51bnJlc29sdmVkS2V5ZnJhbWVzLCB0aGlzLmZpbmFsS2V5ZnJhbWUsIGlzRm9yY2VkQ29tcGxldGUpO1xyXG4gICAgICAgIHRvUmVzb2x2ZS5kZWxldGUodGhpcyk7XHJcbiAgICB9XHJcbiAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFwic2NoZWR1bGVkXCIpIHtcclxuICAgICAgICAgICAgdG9SZXNvbHZlLmRlbGV0ZSh0aGlzKTtcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFwicGVuZGluZ1wiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlc3VtZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PT0gXCJwZW5kaW5nXCIpXHJcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVSZXNvbHZlKCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IEtleWZyYW1lUmVzb2x2ZXIsIGZsdXNoS2V5ZnJhbWVSZXNvbHZlcnMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getFinalKeyframe: function() { return /* binding */ getFinalKeyframe; }\n/* harmony export */ });\nconst isNotNull = (value) => value !== null;\r\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe, speed = 1) {\r\n const resolvedKeyframes = keyframes.filter(isNotNull);\r\n const useFirstKeyframe = speed < 0 || (repeat && repeatType !== \"loop\" && repeat % 2 === 1);\r\n const index = useFirstKeyframe ? 0 : resolvedKeyframes.length - 1;\r\n return !index || finalKeyframe === undefined\r\n ? resolvedKeyframes[index]\r\n : finalKeyframe;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9nZXQtZmluYWwubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLHVDQUF1Qyw2QkFBNkI7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUM0QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvZ2V0LWZpbmFsLm1qcz81NmE3Il0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzTm90TnVsbCA9ICh2YWx1ZSkgPT4gdmFsdWUgIT09IG51bGw7XHJcbmZ1bmN0aW9uIGdldEZpbmFsS2V5ZnJhbWUoa2V5ZnJhbWVzLCB7IHJlcGVhdCwgcmVwZWF0VHlwZSA9IFwibG9vcFwiIH0sIGZpbmFsS2V5ZnJhbWUsIHNwZWVkID0gMSkge1xyXG4gICAgY29uc3QgcmVzb2x2ZWRLZXlmcmFtZXMgPSBrZXlmcmFtZXMuZmlsdGVyKGlzTm90TnVsbCk7XHJcbiAgICBjb25zdCB1c2VGaXJzdEtleWZyYW1lID0gc3BlZWQgPCAwIHx8IChyZXBlYXQgJiYgcmVwZWF0VHlwZSAhPT0gXCJsb29wXCIgJiYgcmVwZWF0ICUgMiA9PT0gMSk7XHJcbiAgICBjb25zdCBpbmRleCA9IHVzZUZpcnN0S2V5ZnJhbWUgPyAwIDogcmVzb2x2ZWRLZXlmcmFtZXMubGVuZ3RoIC0gMTtcclxuICAgIHJldHVybiAhaW5kZXggfHwgZmluYWxLZXlmcmFtZSA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyByZXNvbHZlZEtleWZyYW1lc1tpbmRleF1cclxuICAgICAgICA6IGZpbmFsS2V5ZnJhbWU7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGdldEZpbmFsS2V5ZnJhbWUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs ***!
|
||
\*********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultOffset: function() { return /* binding */ defaultOffset; }\n/* harmony export */ });\n/* harmony import */ var _fill_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fill.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs\");\n\r\n\r\nfunction defaultOffset(arr) {\r\n const offset = [0];\r\n (0,_fill_mjs__WEBPACK_IMPORTED_MODULE_0__.fillOffset)(offset, arr.length - 1);\r\n return offset;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9vZmZzZXRzL2RlZmF1bHQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBLElBQUkscURBQVU7QUFDZDtBQUNBO0FBQ0E7QUFDeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL29mZnNldHMvZGVmYXVsdC5tanM/N2VhOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWxsT2Zmc2V0IH0gZnJvbSAnLi9maWxsLm1qcyc7XHJcblxyXG5mdW5jdGlvbiBkZWZhdWx0T2Zmc2V0KGFycikge1xyXG4gICAgY29uc3Qgb2Zmc2V0ID0gWzBdO1xyXG4gICAgZmlsbE9mZnNldChvZmZzZXQsIGFyci5sZW5ndGggLSAxKTtcclxuICAgIHJldHVybiBvZmZzZXQ7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGRlZmF1bHRPZmZzZXQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs ***!
|
||
\******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fillOffset: function() { return /* binding */ fillOffset; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\");\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\r\n\r\n\r\nfunction fillOffset(offset, remaining) {\r\n const min = offset[offset.length - 1];\r\n for (let i = 1; i <= remaining; i++) {\r\n const offsetProgress = (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.progress)(0, remaining, i);\r\n offset.push((0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(min, 1, offsetProgress));\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9vZmZzZXRzL2ZpbGwubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3QztBQUNrQjtBQUMxRDtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDLCtCQUErQixzREFBUTtBQUN2QyxvQkFBb0IsZ0VBQVM7QUFDN0I7QUFDQTtBQUNBO0FBQ3NCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9vZmZzZXRzL2ZpbGwubWpzPzIwYzkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvZ3Jlc3MgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBtaXhOdW1iZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9taXgvbnVtYmVyLm1qcyc7XHJcblxyXG5mdW5jdGlvbiBmaWxsT2Zmc2V0KG9mZnNldCwgcmVtYWluaW5nKSB7XHJcbiAgICBjb25zdCBtaW4gPSBvZmZzZXRbb2Zmc2V0Lmxlbmd0aCAtIDFdO1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gcmVtYWluaW5nOyBpKyspIHtcclxuICAgICAgICBjb25zdCBvZmZzZXRQcm9ncmVzcyA9IHByb2dyZXNzKDAsIHJlbWFpbmluZywgaSk7XHJcbiAgICAgICAgb2Zmc2V0LnB1c2gobWl4TnVtYmVyKG1pbiwgMSwgb2Zmc2V0UHJvZ3Jlc3MpKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHsgZmlsbE9mZnNldCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs ***!
|
||
\******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ convertOffsetToTimes: function() { return /* binding */ convertOffsetToTimes; }\n/* harmony export */ });\nfunction convertOffsetToTimes(offset, duration) {\r\n return offset.map((o) => o * duration);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9vZmZzZXRzL3RpbWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNnQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvb2Zmc2V0cy90aW1lLm1qcz82YmNlIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGNvbnZlcnRPZmZzZXRUb1RpbWVzKG9mZnNldCwgZHVyYXRpb24pIHtcclxuICAgIHJldHVybiBvZmZzZXQubWFwKChvKSA9PiBvICogZHVyYXRpb24pO1xyXG59XHJcblxyXG5leHBvcnQgeyBjb252ZXJ0T2Zmc2V0VG9UaW1lcyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs ***!
|
||
\**************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fillWildcards: function() { return /* binding */ fillWildcards; }\n/* harmony export */ });\nfunction fillWildcards(keyframes) {\r\n for (let i = 1; i < keyframes.length; i++) {\r\n keyframes[i] ?? (keyframes[i] = keyframes[i - 1]);\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy91dGlscy9maWxsLXdpbGRjYXJkcy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0Esb0JBQW9CLHNCQUFzQjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUN5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvdXRpbHMvZmlsbC13aWxkY2FyZHMubWpzPzZlZjgiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gZmlsbFdpbGRjYXJkcyhrZXlmcmFtZXMpIHtcclxuICAgIGZvciAobGV0IGkgPSAxOyBpIDwga2V5ZnJhbWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAga2V5ZnJhbWVzW2ldID8/IChrZXlmcmFtZXNbaV0gPSBrZXlmcmFtZXNbaSAtIDFdKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHsgZmlsbFdpbGRjYXJkcyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNone: function() { return /* binding */ isNone; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs\");\n\r\n\r\nfunction isNone(value) {\r\n if (typeof value === \"number\") {\r\n return value === 0;\r\n }\r\n else if (value !== null) {\r\n return value === \"none\" || value === \"0\" || (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.isZeroValueString)(value);\r\n }\r\n else {\r\n return true;\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy91dGlscy9pcy1ub25lLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0QsK0RBQWlCO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvdXRpbHMvaXMtbm9uZS5tanM/NzRiOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1plcm9WYWx1ZVN0cmluZyB9IGZyb20gJ21vdGlvbi11dGlscyc7XHJcblxyXG5mdW5jdGlvbiBpc05vbmUodmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IDA7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh2YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gXCJub25lXCIgfHwgdmFsdWUgPT09IFwiMFwiIHx8IGlzWmVyb1ZhbHVlU3RyaW5nKHZhbHVlKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgeyBpc05vbmUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs":
|
||
/*!********************************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs ***!
|
||
\********************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ makeNoneKeyframesAnimatable: function() { return /* binding */ makeNoneKeyframesAnimatable; }\n/* harmony export */ });\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../value/types/complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _value_types_utils_animatable_none_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../value/types/utils/animatable-none.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs\");\n\r\n\r\n\r\n/**\r\n * If we encounter keyframes like \"none\" or \"0\" and we also have keyframes like\r\n * \"#fff\" or \"200px 200px\" we want to find a keyframe to serve as a template for\r\n * the \"none\" keyframes. In this case \"#fff\" or \"200px 200px\" - then these get turned into\r\n * zero equivalents, i.e. \"#fff0\" or \"0px 0px\".\r\n */\r\nconst invalidTemplates = new Set([\"auto\", \"none\", \"0\"]);\r\nfunction makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {\r\n let i = 0;\r\n let animatableTemplate = undefined;\r\n while (i < unresolvedKeyframes.length && !animatableTemplate) {\r\n const keyframe = unresolvedKeyframes[i];\r\n if (typeof keyframe === \"string\" &&\r\n !invalidTemplates.has(keyframe) &&\r\n (0,_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__.analyseComplexValue)(keyframe).values.length) {\r\n animatableTemplate = unresolvedKeyframes[i];\r\n }\r\n i++;\r\n }\r\n if (animatableTemplate && name) {\r\n for (const noneIndex of noneKeyframeIndexes) {\r\n unresolvedKeyframes[noneIndex] = (0,_value_types_utils_animatable_none_mjs__WEBPACK_IMPORTED_MODULE_1__.getAnimatableNone)(name, animatableTemplate);\r\n }\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy91dGlscy9tYWtlLW5vbmUtYW5pbWF0YWJsZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTZFO0FBQ007QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxtRkFBbUI7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDLHlGQUFpQjtBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUN1QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvdXRpbHMvbWFrZS1ub25lLWFuaW1hdGFibGUubWpzPzc3NzUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5hbHlzZUNvbXBsZXhWYWx1ZSB9IGZyb20gJy4uLy4uLy4uL3ZhbHVlL3R5cGVzL2NvbXBsZXgvaW5kZXgubWpzJztcclxuaW1wb3J0IHsgZ2V0QW5pbWF0YWJsZU5vbmUgfSBmcm9tICcuLi8uLi8uLi92YWx1ZS90eXBlcy91dGlscy9hbmltYXRhYmxlLW5vbmUubWpzJztcclxuXHJcbi8qKlxyXG4gKiBJZiB3ZSBlbmNvdW50ZXIga2V5ZnJhbWVzIGxpa2UgXCJub25lXCIgb3IgXCIwXCIgYW5kIHdlIGFsc28gaGF2ZSBrZXlmcmFtZXMgbGlrZVxyXG4gKiBcIiNmZmZcIiBvciBcIjIwMHB4IDIwMHB4XCIgd2Ugd2FudCB0byBmaW5kIGEga2V5ZnJhbWUgdG8gc2VydmUgYXMgYSB0ZW1wbGF0ZSBmb3JcclxuICogdGhlIFwibm9uZVwiIGtleWZyYW1lcy4gSW4gdGhpcyBjYXNlIFwiI2ZmZlwiIG9yIFwiMjAwcHggMjAwcHhcIiAtIHRoZW4gdGhlc2UgZ2V0IHR1cm5lZCBpbnRvXHJcbiAqIHplcm8gZXF1aXZhbGVudHMsIGkuZS4gXCIjZmZmMFwiIG9yIFwiMHB4IDBweFwiLlxyXG4gKi9cclxuY29uc3QgaW52YWxpZFRlbXBsYXRlcyA9IG5ldyBTZXQoW1wiYXV0b1wiLCBcIm5vbmVcIiwgXCIwXCJdKTtcclxuZnVuY3Rpb24gbWFrZU5vbmVLZXlmcmFtZXNBbmltYXRhYmxlKHVucmVzb2x2ZWRLZXlmcmFtZXMsIG5vbmVLZXlmcmFtZUluZGV4ZXMsIG5hbWUpIHtcclxuICAgIGxldCBpID0gMDtcclxuICAgIGxldCBhbmltYXRhYmxlVGVtcGxhdGUgPSB1bmRlZmluZWQ7XHJcbiAgICB3aGlsZSAoaSA8IHVucmVzb2x2ZWRLZXlmcmFtZXMubGVuZ3RoICYmICFhbmltYXRhYmxlVGVtcGxhdGUpIHtcclxuICAgICAgICBjb25zdCBrZXlmcmFtZSA9IHVucmVzb2x2ZWRLZXlmcmFtZXNbaV07XHJcbiAgICAgICAgaWYgKHR5cGVvZiBrZXlmcmFtZSA9PT0gXCJzdHJpbmdcIiAmJlxyXG4gICAgICAgICAgICAhaW52YWxpZFRlbXBsYXRlcy5oYXMoa2V5ZnJhbWUpICYmXHJcbiAgICAgICAgICAgIGFuYWx5c2VDb21wbGV4VmFsdWUoa2V5ZnJhbWUpLnZhbHVlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgYW5pbWF0YWJsZVRlbXBsYXRlID0gdW5yZXNvbHZlZEtleWZyYW1lc1tpXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaSsrO1xyXG4gICAgfVxyXG4gICAgaWYgKGFuaW1hdGFibGVUZW1wbGF0ZSAmJiBuYW1lKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBub25lSW5kZXggb2Ygbm9uZUtleWZyYW1lSW5kZXhlcykge1xyXG4gICAgICAgICAgICB1bnJlc29sdmVkS2V5ZnJhbWVzW25vbmVJbmRleF0gPSBnZXRBbmltYXRhYmxlTm9uZShuYW1lLCBhbmltYXRhYmxlVGVtcGxhdGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHsgbWFrZU5vbmVLZXlmcmFtZXNBbmltYXRhYmxlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs":
|
||
/*!***************************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs ***!
|
||
\***************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNumOrPxType: function() { return /* binding */ isNumOrPxType; },\n/* harmony export */ positionalValues: function() { return /* binding */ positionalValues; },\n/* harmony export */ removeNonTranslationalTransform: function() { return /* binding */ removeNonTranslationalTransform; }\n/* harmony export */ });\n/* harmony import */ var _render_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../render/dom/parse-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs\");\n/* harmony import */ var _render_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../render/utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _value_types_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../value/types/numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../value/types/numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n\r\n\r\n\r\n\r\n\r\nconst isNumOrPxType = (v) => v === _value_types_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__.number || v === _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.px;\r\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\r\nconst nonTranslationalTransformKeys = _render_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__.transformPropOrder.filter((key) => !transformKeys.has(key));\r\nfunction removeNonTranslationalTransform(visualElement) {\r\n const removedTransforms = [];\r\n nonTranslationalTransformKeys.forEach((key) => {\r\n const value = visualElement.getValue(key);\r\n if (value !== undefined) {\r\n removedTransforms.push([key, value.get()]);\r\n value.set(key.startsWith(\"scale\") ? 1 : 0);\r\n }\r\n });\r\n return removedTransforms;\r\n}\r\nconst positionalValues = {\r\n // Dimensions\r\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\r\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\r\n top: (_bbox, { top }) => parseFloat(top),\r\n left: (_bbox, { left }) => parseFloat(left),\r\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\r\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\r\n // Transform\r\n x: (_bbox, { transform }) => (0,_render_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__.parseValueFromTransform)(transform, \"x\"),\r\n y: (_bbox, { transform }) => (0,_render_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__.parseValueFromTransform)(transform, \"y\"),\r\n};\r\n// Alias translate longform names\r\npositionalValues.translateX = positionalValues.x;\r\npositionalValues.translateY = positionalValues.y;\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy91dGlscy91bml0LWNvbnZlcnNpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBa0Y7QUFDSjtBQUNkO0FBQ0o7QUFDNUQ7QUFDQSxtQ0FBbUMsa0VBQU0sVUFBVSw4REFBRTtBQUNyRDtBQUNBLHNDQUFzQyxnRkFBa0I7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsR0FBRyxJQUFJLHVDQUF1QztBQUM1RCxlQUFlLEdBQUcsSUFBSSx1Q0FBdUM7QUFDN0QsbUJBQW1CLEtBQUs7QUFDeEIsb0JBQW9CLE1BQU07QUFDMUIsZUFBZSxHQUFHLElBQUksS0FBSztBQUMzQixjQUFjLEdBQUcsSUFBSSxNQUFNO0FBQzNCO0FBQ0EsaUJBQWlCLFdBQVcsS0FBSyx3RkFBdUI7QUFDeEQsaUJBQWlCLFdBQVcsS0FBSyx3RkFBdUI7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUM0RSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvdXRpbHMvdW5pdC1jb252ZXJzaW9uLm1qcz8xYTg5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlVmFsdWVGcm9tVHJhbnNmb3JtIH0gZnJvbSAnLi4vLi4vLi4vcmVuZGVyL2RvbS9wYXJzZS10cmFuc2Zvcm0ubWpzJztcclxuaW1wb3J0IHsgdHJhbnNmb3JtUHJvcE9yZGVyIH0gZnJvbSAnLi4vLi4vLi4vcmVuZGVyL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyc7XHJcbmltcG9ydCB7IG51bWJlciB9IGZyb20gJy4uLy4uLy4uL3ZhbHVlL3R5cGVzL251bWJlcnMvaW5kZXgubWpzJztcclxuaW1wb3J0IHsgcHggfSBmcm9tICcuLi8uLi8uLi92YWx1ZS90eXBlcy9udW1iZXJzL3VuaXRzLm1qcyc7XHJcblxyXG5jb25zdCBpc051bU9yUHhUeXBlID0gKHYpID0+IHYgPT09IG51bWJlciB8fCB2ID09PSBweDtcclxuY29uc3QgdHJhbnNmb3JtS2V5cyA9IG5ldyBTZXQoW1wieFwiLCBcInlcIiwgXCJ6XCJdKTtcclxuY29uc3Qgbm9uVHJhbnNsYXRpb25hbFRyYW5zZm9ybUtleXMgPSB0cmFuc2Zvcm1Qcm9wT3JkZXIuZmlsdGVyKChrZXkpID0+ICF0cmFuc2Zvcm1LZXlzLmhhcyhrZXkpKTtcclxuZnVuY3Rpb24gcmVtb3ZlTm9uVHJhbnNsYXRpb25hbFRyYW5zZm9ybSh2aXN1YWxFbGVtZW50KSB7XHJcbiAgICBjb25zdCByZW1vdmVkVHJhbnNmb3JtcyA9IFtdO1xyXG4gICAgbm9uVHJhbnNsYXRpb25hbFRyYW5zZm9ybUtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2aXN1YWxFbGVtZW50LmdldFZhbHVlKGtleSk7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmVtb3ZlZFRyYW5zZm9ybXMucHVzaChba2V5LCB2YWx1ZS5nZXQoKV0pO1xyXG4gICAgICAgICAgICB2YWx1ZS5zZXQoa2V5LnN0YXJ0c1dpdGgoXCJzY2FsZVwiKSA/IDEgOiAwKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByZW1vdmVkVHJhbnNmb3JtcztcclxufVxyXG5jb25zdCBwb3NpdGlvbmFsVmFsdWVzID0ge1xyXG4gICAgLy8gRGltZW5zaW9uc1xyXG4gICAgd2lkdGg6ICh7IHggfSwgeyBwYWRkaW5nTGVmdCA9IFwiMFwiLCBwYWRkaW5nUmlnaHQgPSBcIjBcIiB9KSA9PiB4Lm1heCAtIHgubWluIC0gcGFyc2VGbG9hdChwYWRkaW5nTGVmdCkgLSBwYXJzZUZsb2F0KHBhZGRpbmdSaWdodCksXHJcbiAgICBoZWlnaHQ6ICh7IHkgfSwgeyBwYWRkaW5nVG9wID0gXCIwXCIsIHBhZGRpbmdCb3R0b20gPSBcIjBcIiB9KSA9PiB5Lm1heCAtIHkubWluIC0gcGFyc2VGbG9hdChwYWRkaW5nVG9wKSAtIHBhcnNlRmxvYXQocGFkZGluZ0JvdHRvbSksXHJcbiAgICB0b3A6IChfYmJveCwgeyB0b3AgfSkgPT4gcGFyc2VGbG9hdCh0b3ApLFxyXG4gICAgbGVmdDogKF9iYm94LCB7IGxlZnQgfSkgPT4gcGFyc2VGbG9hdChsZWZ0KSxcclxuICAgIGJvdHRvbTogKHsgeSB9LCB7IHRvcCB9KSA9PiBwYXJzZUZsb2F0KHRvcCkgKyAoeS5tYXggLSB5Lm1pbiksXHJcbiAgICByaWdodDogKHsgeCB9LCB7IGxlZnQgfSkgPT4gcGFyc2VGbG9hdChsZWZ0KSArICh4Lm1heCAtIHgubWluKSxcclxuICAgIC8vIFRyYW5zZm9ybVxyXG4gICAgeDogKF9iYm94LCB7IHRyYW5zZm9ybSB9KSA9PiBwYXJzZVZhbHVlRnJvbVRyYW5zZm9ybSh0cmFuc2Zvcm0sIFwieFwiKSxcclxuICAgIHk6IChfYmJveCwgeyB0cmFuc2Zvcm0gfSkgPT4gcGFyc2VWYWx1ZUZyb21UcmFuc2Zvcm0odHJhbnNmb3JtLCBcInlcIiksXHJcbn07XHJcbi8vIEFsaWFzIHRyYW5zbGF0ZSBsb25nZm9ybSBuYW1lc1xyXG5wb3NpdGlvbmFsVmFsdWVzLnRyYW5zbGF0ZVggPSBwb3NpdGlvbmFsVmFsdWVzLng7XHJcbnBvc2l0aW9uYWxWYWx1ZXMudHJhbnNsYXRlWSA9IHBvc2l0aW9uYWxWYWx1ZXMueTtcclxuXHJcbmV4cG9ydCB7IGlzTnVtT3JQeFR5cGUsIHBvc2l0aW9uYWxWYWx1ZXMsIHJlbW92ZU5vblRyYW5zbGF0aW9uYWxUcmFuc2Zvcm0gfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WithPromise: function() { return /* binding */ WithPromise; }\n/* harmony export */ });\nclass WithPromise {\r\n constructor() {\r\n this.updateFinished();\r\n }\r\n get finished() {\r\n return this._finished;\r\n }\r\n updateFinished() {\r\n this._finished = new Promise((resolve) => {\r\n this.resolve = resolve;\r\n });\r\n }\r\n notifyFinished() {\r\n this.resolve();\r\n }\r\n /**\r\n * Allows the animation to be awaited.\r\n *\r\n * @deprecated Use `finished` instead.\r\n */\r\n then(onResolve, onReject) {\r\n return this.finished.then(onResolve, onReject);\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL1dpdGhQcm9taXNlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUN1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9XaXRoUHJvbWlzZS5tanM/ZjM4NSJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBXaXRoUHJvbWlzZSB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUZpbmlzaGVkKCk7XHJcbiAgICB9XHJcbiAgICBnZXQgZmluaXNoZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbmlzaGVkO1xyXG4gICAgfVxyXG4gICAgdXBkYXRlRmluaXNoZWQoKSB7XHJcbiAgICAgICAgdGhpcy5fZmluaXNoZWQgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlc29sdmUgPSByZXNvbHZlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgbm90aWZ5RmluaXNoZWQoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlKCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEFsbG93cyB0aGUgYW5pbWF0aW9uIHRvIGJlIGF3YWl0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIGBmaW5pc2hlZGAgaW5zdGVhZC5cclxuICAgICAqL1xyXG4gICAgdGhlbihvblJlc29sdmUsIG9uUmVqZWN0KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluaXNoZWQudGhlbihvblJlc29sdmUsIG9uUmVqZWN0KTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHsgV2l0aFByb21pc2UgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ canAnimate: function() { return /* binding */ canAnimate; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../generators/utils/is-generator.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs\");\n/* harmony import */ var _is_animatable_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-animatable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs\");\n\r\n\r\n\r\n\r\nfunction hasKeyframesChanged(keyframes) {\r\n const current = keyframes[0];\r\n if (keyframes.length === 1)\r\n return true;\r\n for (let i = 0; i < keyframes.length; i++) {\r\n if (keyframes[i] !== current)\r\n return true;\r\n }\r\n}\r\nfunction canAnimate(keyframes, name, type, velocity) {\r\n /**\r\n * Check if we're able to animate between the start and end keyframes,\r\n * and throw a warning if we're attempting to animate between one that's\r\n * animatable and another that isn't.\r\n */\r\n const originKeyframe = keyframes[0];\r\n if (originKeyframe === null)\r\n return false;\r\n /**\r\n * These aren't traditionally animatable but we do support them.\r\n * In future we could look into making this more generic or replacing\r\n * this function with mix() === mixImmediate\r\n */\r\n if (name === \"display\" || name === \"visibility\")\r\n return true;\r\n const targetKeyframe = keyframes[keyframes.length - 1];\r\n const isOriginAnimatable = (0,_is_animatable_mjs__WEBPACK_IMPORTED_MODULE_0__.isAnimatable)(originKeyframe, name);\r\n const isTargetAnimatable = (0,_is_animatable_mjs__WEBPACK_IMPORTED_MODULE_0__.isAnimatable)(targetKeyframe, name);\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warning)(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from \"${originKeyframe}\" to \"${targetKeyframe}\". \"${isOriginAnimatable ? targetKeyframe : originKeyframe}\" is not an animatable value.`, \"value-not-animatable\");\r\n // Always skip if any of these are true\r\n if (!isOriginAnimatable || !isTargetAnimatable) {\r\n return false;\r\n }\r\n return (hasKeyframesChanged(keyframes) ||\r\n ((type === \"spring\" || (0,_generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_2__.isGenerator)(type)) && velocity));\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2Nhbi1hbmltYXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXVDO0FBQzRCO0FBQ2hCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isc0JBQXNCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixnRUFBWTtBQUMzQywrQkFBK0IsZ0VBQVk7QUFDM0MsSUFBSSxxREFBTyx5RUFBeUUsTUFBTSxRQUFRLGVBQWUsUUFBUSxlQUFlLE1BQU0scURBQXFEO0FBQ25NO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsK0VBQVc7QUFDMUM7QUFDQTtBQUNzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9jYW4tYW5pbWF0ZS5tanM/ZDUzMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB3YXJuaW5nIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgaXNHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzL3V0aWxzL2lzLWdlbmVyYXRvci5tanMnO1xyXG5pbXBvcnQgeyBpc0FuaW1hdGFibGUgfSBmcm9tICcuL2lzLWFuaW1hdGFibGUubWpzJztcclxuXHJcbmZ1bmN0aW9uIGhhc0tleWZyYW1lc0NoYW5nZWQoa2V5ZnJhbWVzKSB7XHJcbiAgICBjb25zdCBjdXJyZW50ID0ga2V5ZnJhbWVzWzBdO1xyXG4gICAgaWYgKGtleWZyYW1lcy5sZW5ndGggPT09IDEpXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleWZyYW1lcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChrZXlmcmFtZXNbaV0gIT09IGN1cnJlbnQpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGNhbkFuaW1hdGUoa2V5ZnJhbWVzLCBuYW1lLCB0eXBlLCB2ZWxvY2l0eSkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB3ZSdyZSBhYmxlIHRvIGFuaW1hdGUgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCBrZXlmcmFtZXMsXHJcbiAgICAgKiBhbmQgdGhyb3cgYSB3YXJuaW5nIGlmIHdlJ3JlIGF0dGVtcHRpbmcgdG8gYW5pbWF0ZSBiZXR3ZWVuIG9uZSB0aGF0J3NcclxuICAgICAqIGFuaW1hdGFibGUgYW5kIGFub3RoZXIgdGhhdCBpc24ndC5cclxuICAgICAqL1xyXG4gICAgY29uc3Qgb3JpZ2luS2V5ZnJhbWUgPSBrZXlmcmFtZXNbMF07XHJcbiAgICBpZiAob3JpZ2luS2V5ZnJhbWUgPT09IG51bGwpXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGVzZSBhcmVuJ3QgdHJhZGl0aW9uYWxseSBhbmltYXRhYmxlIGJ1dCB3ZSBkbyBzdXBwb3J0IHRoZW0uXHJcbiAgICAgKiBJbiBmdXR1cmUgd2UgY291bGQgbG9vayBpbnRvIG1ha2luZyB0aGlzIG1vcmUgZ2VuZXJpYyBvciByZXBsYWNpbmdcclxuICAgICAqIHRoaXMgZnVuY3Rpb24gd2l0aCBtaXgoKSA9PT0gbWl4SW1tZWRpYXRlXHJcbiAgICAgKi9cclxuICAgIGlmIChuYW1lID09PSBcImRpc3BsYXlcIiB8fCBuYW1lID09PSBcInZpc2liaWxpdHlcIilcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIGNvbnN0IHRhcmdldEtleWZyYW1lID0ga2V5ZnJhbWVzW2tleWZyYW1lcy5sZW5ndGggLSAxXTtcclxuICAgIGNvbnN0IGlzT3JpZ2luQW5pbWF0YWJsZSA9IGlzQW5pbWF0YWJsZShvcmlnaW5LZXlmcmFtZSwgbmFtZSk7XHJcbiAgICBjb25zdCBpc1RhcmdldEFuaW1hdGFibGUgPSBpc0FuaW1hdGFibGUodGFyZ2V0S2V5ZnJhbWUsIG5hbWUpO1xyXG4gICAgd2FybmluZyhpc09yaWdpbkFuaW1hdGFibGUgPT09IGlzVGFyZ2V0QW5pbWF0YWJsZSwgYFlvdSBhcmUgdHJ5aW5nIHRvIGFuaW1hdGUgJHtuYW1lfSBmcm9tIFwiJHtvcmlnaW5LZXlmcmFtZX1cIiB0byBcIiR7dGFyZ2V0S2V5ZnJhbWV9XCIuIFwiJHtpc09yaWdpbkFuaW1hdGFibGUgPyB0YXJnZXRLZXlmcmFtZSA6IG9yaWdpbktleWZyYW1lfVwiIGlzIG5vdCBhbiBhbmltYXRhYmxlIHZhbHVlLmAsIFwidmFsdWUtbm90LWFuaW1hdGFibGVcIik7XHJcbiAgICAvLyBBbHdheXMgc2tpcCBpZiBhbnkgb2YgdGhlc2UgYXJlIHRydWVcclxuICAgIGlmICghaXNPcmlnaW5BbmltYXRhYmxlIHx8ICFpc1RhcmdldEFuaW1hdGFibGUpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKGhhc0tleWZyYW1lc0NoYW5nZWQoa2V5ZnJhbWVzKSB8fFxyXG4gICAgICAgICgodHlwZSA9PT0gXCJzcHJpbmdcIiB8fCBpc0dlbmVyYXRvcih0eXBlKSkgJiYgdmVsb2NpdHkpKTtcclxufVxyXG5cclxuZXhwb3J0IHsgY2FuQW5pbWF0ZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs ***!
|
||
\**************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getVariableValue: function() { return /* binding */ getVariableValue; },\n/* harmony export */ parseCSSVariable: function() { return /* binding */ parseCSSVariable; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs\");\n/* harmony import */ var _is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n\r\n\r\n\r\n/**\r\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\r\n *\r\n * ```\r\n * `var(--foo, #fff)` => [`--foo`, '#fff']\r\n * ```\r\n *\r\n * @param current\r\n */\r\nconst splitCSSVariableRegex = \r\n// eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words\r\n/^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u;\r\nfunction parseCSSVariable(current) {\r\n const match = splitCSSVariableRegex.exec(current);\r\n if (!match)\r\n return [,];\r\n const [, token1, token2, fallback] = match;\r\n return [`--${token1 ?? token2}`, fallback];\r\n}\r\nconst maxDepth = 4;\r\nfunction getVariableValue(current, element, depth = 1) {\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.invariant)(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`, \"max-css-var-depth\");\r\n const [token, fallback] = parseCSSVariable(current);\r\n // No CSS variable detected\r\n if (!token)\r\n return;\r\n // Attempt to read this CSS variable off the element\r\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\r\n if (resolved) {\r\n const trimmed = resolved.trim();\r\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.isNumericalString)(trimmed) ? parseFloat(trimmed) : trimmed;\r\n }\r\n return (0,_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_2__.isCSSVariableToken)(fallback)\r\n ? getVariableValue(fallback, element, depth + 1)\r\n : fallback;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2Nzcy12YXJpYWJsZXMtY29udmVyc2lvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBNEQ7QUFDRDtBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsaUJBQWlCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBLElBQUksdURBQVMsNkVBQTZFLFFBQVE7QUFDbEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsK0RBQWlCO0FBQ2hDO0FBQ0EsV0FBVyx3RUFBa0I7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vdXRpbHMvY3NzLXZhcmlhYmxlcy1jb252ZXJzaW9uLm1qcz80YzlkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludmFyaWFudCwgaXNOdW1lcmljYWxTdHJpbmcgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBpc0NTU1ZhcmlhYmxlVG9rZW4gfSBmcm9tICcuL2lzLWNzcy12YXJpYWJsZS5tanMnO1xyXG5cclxuLyoqXHJcbiAqIFBhcnNlIEZyYW1lcidzIHNwZWNpYWwgQ1NTIHZhcmlhYmxlIGZvcm1hdCBpbnRvIGEgQ1NTIHRva2VuIGFuZCBhIGZhbGxiYWNrLlxyXG4gKlxyXG4gKiBgYGBcclxuICogYHZhcigtLWZvbywgI2ZmZilgID0+IFtgLS1mb29gLCAnI2ZmZiddXHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAcGFyYW0gY3VycmVudFxyXG4gKi9cclxuY29uc3Qgc3BsaXRDU1NWYXJpYWJsZVJlZ2V4ID0gXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWRvcy1kZXRlY3Rvci9uby11bnNhZmUtcmVnZXggLS0gZmFsc2UgcG9zaXRpdmUsIGFzIGl0IGNhbiBtYXRjaCBhIGxvdCBvZiB3b3Jkc1xyXG4vXnZhclxcKC0tKD86KFtcXHctXSspfChbXFx3LV0rKSwgPyhbYS16QS1aXFxkICgpJSMuLC1dKykpXFwpL3U7XHJcbmZ1bmN0aW9uIHBhcnNlQ1NTVmFyaWFibGUoY3VycmVudCkge1xyXG4gICAgY29uc3QgbWF0Y2ggPSBzcGxpdENTU1ZhcmlhYmxlUmVnZXguZXhlYyhjdXJyZW50KTtcclxuICAgIGlmICghbWF0Y2gpXHJcbiAgICAgICAgcmV0dXJuIFssXTtcclxuICAgIGNvbnN0IFssIHRva2VuMSwgdG9rZW4yLCBmYWxsYmFja10gPSBtYXRjaDtcclxuICAgIHJldHVybiBbYC0tJHt0b2tlbjEgPz8gdG9rZW4yfWAsIGZhbGxiYWNrXTtcclxufVxyXG5jb25zdCBtYXhEZXB0aCA9IDQ7XHJcbmZ1bmN0aW9uIGdldFZhcmlhYmxlVmFsdWUoY3VycmVudCwgZWxlbWVudCwgZGVwdGggPSAxKSB7XHJcbiAgICBpbnZhcmlhbnQoZGVwdGggPD0gbWF4RGVwdGgsIGBNYXggQ1NTIHZhcmlhYmxlIGZhbGxiYWNrIGRlcHRoIGRldGVjdGVkIGluIHByb3BlcnR5IFwiJHtjdXJyZW50fVwiLiBUaGlzIG1heSBpbmRpY2F0ZSBhIGNpcmN1bGFyIGZhbGxiYWNrIGRlcGVuZGVuY3kuYCwgXCJtYXgtY3NzLXZhci1kZXB0aFwiKTtcclxuICAgIGNvbnN0IFt0b2tlbiwgZmFsbGJhY2tdID0gcGFyc2VDU1NWYXJpYWJsZShjdXJyZW50KTtcclxuICAgIC8vIE5vIENTUyB2YXJpYWJsZSBkZXRlY3RlZFxyXG4gICAgaWYgKCF0b2tlbilcclxuICAgICAgICByZXR1cm47XHJcbiAgICAvLyBBdHRlbXB0IHRvIHJlYWQgdGhpcyBDU1MgdmFyaWFibGUgb2ZmIHRoZSBlbGVtZW50XHJcbiAgICBjb25zdCByZXNvbHZlZCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUodG9rZW4pO1xyXG4gICAgaWYgKHJlc29sdmVkKSB7XHJcbiAgICAgICAgY29uc3QgdHJpbW1lZCA9IHJlc29sdmVkLnRyaW0oKTtcclxuICAgICAgICByZXR1cm4gaXNOdW1lcmljYWxTdHJpbmcodHJpbW1lZCkgPyBwYXJzZUZsb2F0KHRyaW1tZWQpIDogdHJpbW1lZDtcclxuICAgIH1cclxuICAgIHJldHVybiBpc0NTU1ZhcmlhYmxlVG9rZW4oZmFsbGJhY2spXHJcbiAgICAgICAgPyBnZXRWYXJpYWJsZVZhbHVlKGZhbGxiYWNrLCBlbGVtZW50LCBkZXB0aCArIDEpXHJcbiAgICAgICAgOiBmYWxsYmFjaztcclxufVxyXG5cclxuZXhwb3J0IHsgZ2V0VmFyaWFibGVWYWx1ZSwgcGFyc2VDU1NWYXJpYWJsZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs ***!
|
||
\**********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getValueTransition: function() { return /* binding */ getValueTransition; }\n/* harmony export */ });\nfunction getValueTransition(transition, key) {\r\n return (transition?.[key] ??\r\n transition?.[\"default\"] ??\r\n transition);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2dldC12YWx1ZS10cmFuc2l0aW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQzhCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2dldC12YWx1ZS10cmFuc2l0aW9uLm1qcz8zZmMzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGdldFZhbHVlVHJhbnNpdGlvbih0cmFuc2l0aW9uLCBrZXkpIHtcclxuICAgIHJldHVybiAodHJhbnNpdGlvbj8uW2tleV0gPz9cclxuICAgICAgICB0cmFuc2l0aW9uPy5bXCJkZWZhdWx0XCJdID8/XHJcbiAgICAgICAgdHJhbnNpdGlvbik7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGdldFZhbHVlVHJhbnNpdGlvbiB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isAnimatable: function() { return /* binding */ isAnimatable; }\n/* harmony export */ });\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n\r\n\r\n/**\r\n * Check if a value is animatable. Examples:\r\n *\r\n * ✅: 100, \"100px\", \"#fff\"\r\n * ❌: \"block\", \"url(2.jpg)\"\r\n * @param value\r\n *\r\n * @internal\r\n */\r\nconst isAnimatable = (value, name) => {\r\n // If the list of keys that might be non-animatable grows, replace with Set\r\n if (name === \"zIndex\")\r\n return false;\r\n // If it's a number or a keyframes array, we can animate it. We might at some point\r\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\r\n // but for now lets leave it like this for performance reasons\r\n if (typeof value === \"number\" || Array.isArray(value))\r\n return true;\r\n if (typeof value === \"string\" && // It's animatable if we have a string\r\n (_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.test(value) || value === \"0\") && // And it contains numbers and/or colors\r\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLWFuaW1hdGFibGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQThEO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLG1FQUFPO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3dCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLWFuaW1hdGFibGUubWpzP2Y2ZTUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGxleCB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL2NvbXBsZXgvaW5kZXgubWpzJztcclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiBhIHZhbHVlIGlzIGFuaW1hdGFibGUuIEV4YW1wbGVzOlxyXG4gKlxyXG4gKiDinIU6IDEwMCwgXCIxMDBweFwiLCBcIiNmZmZcIlxyXG4gKiDinYw6IFwiYmxvY2tcIiwgXCJ1cmwoMi5qcGcpXCJcclxuICogQHBhcmFtIHZhbHVlXHJcbiAqXHJcbiAqIEBpbnRlcm5hbFxyXG4gKi9cclxuY29uc3QgaXNBbmltYXRhYmxlID0gKHZhbHVlLCBuYW1lKSA9PiB7XHJcbiAgICAvLyBJZiB0aGUgbGlzdCBvZiBrZXlzIHRoYXQgbWlnaHQgYmUgbm9uLWFuaW1hdGFibGUgZ3Jvd3MsIHJlcGxhY2Ugd2l0aCBTZXRcclxuICAgIGlmIChuYW1lID09PSBcInpJbmRleFwiKVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIC8vIElmIGl0J3MgYSBudW1iZXIgb3IgYSBrZXlmcmFtZXMgYXJyYXksIHdlIGNhbiBhbmltYXRlIGl0LiBXZSBtaWdodCBhdCBzb21lIHBvaW50XHJcbiAgICAvLyBuZWVkIHRvIGRvIGEgZGVlcCBpc0FuaW1hdGFibGUgY2hlY2sgb2Yga2V5ZnJhbWVzLCBvciBsZXQgUG9wbW90aW9uIGhhbmRsZSB0aGlzLFxyXG4gICAgLy8gYnV0IGZvciBub3cgbGV0cyBsZWF2ZSBpdCBsaWtlIHRoaXMgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnNcclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIC8vIEl0J3MgYW5pbWF0YWJsZSBpZiB3ZSBoYXZlIGEgc3RyaW5nXHJcbiAgICAgICAgKGNvbXBsZXgudGVzdCh2YWx1ZSkgfHwgdmFsdWUgPT09IFwiMFwiKSAmJiAvLyBBbmQgaXQgY29udGFpbnMgbnVtYmVycyBhbmQvb3IgY29sb3JzXHJcbiAgICAgICAgIXZhbHVlLnN0YXJ0c1dpdGgoXCJ1cmwoXCIpIC8vIFVubGVzcyBpdCBzdGFydHMgd2l0aCBcInVybChcIlxyXG4gICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn07XHJcblxyXG5leHBvcnQgeyBpc0FuaW1hdGFibGUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs ***!
|
||
\*****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isCSSVariableName: function() { return /* binding */ isCSSVariableName; },\n/* harmony export */ isCSSVariableToken: function() { return /* binding */ isCSSVariableToken; }\n/* harmony export */ });\nconst checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\r\nconst isCSSVariableName = \r\n/*@__PURE__*/ checkStringStartsWith(\"--\");\r\nconst startsAsVariableToken = \r\n/*@__PURE__*/ checkStringStartsWith(\"var(--\");\r\nconst isCSSVariableToken = (value) => {\r\n const startsWithToken = startsAsVariableToken(value);\r\n if (!startsWithToken)\r\n return false;\r\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\r\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\r\n};\r\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLWNzcy12YXJpYWJsZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2lEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLWNzcy12YXJpYWJsZS5tanM/ZTg0MiJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjaGVja1N0cmluZ1N0YXJ0c1dpdGggPSAodG9rZW4pID0+IChrZXkpID0+IHR5cGVvZiBrZXkgPT09IFwic3RyaW5nXCIgJiYga2V5LnN0YXJ0c1dpdGgodG9rZW4pO1xyXG5jb25zdCBpc0NTU1ZhcmlhYmxlTmFtZSA9IFxyXG4vKkBfX1BVUkVfXyovIGNoZWNrU3RyaW5nU3RhcnRzV2l0aChcIi0tXCIpO1xyXG5jb25zdCBzdGFydHNBc1ZhcmlhYmxlVG9rZW4gPSBcclxuLypAX19QVVJFX18qLyBjaGVja1N0cmluZ1N0YXJ0c1dpdGgoXCJ2YXIoLS1cIik7XHJcbmNvbnN0IGlzQ1NTVmFyaWFibGVUb2tlbiA9ICh2YWx1ZSkgPT4ge1xyXG4gICAgY29uc3Qgc3RhcnRzV2l0aFRva2VuID0gc3RhcnRzQXNWYXJpYWJsZVRva2VuKHZhbHVlKTtcclxuICAgIGlmICghc3RhcnRzV2l0aFRva2VuKVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIC8vIEVuc3VyZSBhbnkgY29tbWVudHMgYXJlIHN0cmlwcGVkIGZyb20gdGhlIHZhbHVlIGFzIHRoaXMgY2FuIGhhcm0gcGVyZm9ybWFuY2Ugb2YgdGhlIHJlZ2V4LlxyXG4gICAgcmV0dXJuIHNpbmdsZUNzc1ZhcmlhYmxlUmVnZXgudGVzdCh2YWx1ZS5zcGxpdChcIi8qXCIpWzBdLnRyaW0oKSk7XHJcbn07XHJcbmNvbnN0IHNpbmdsZUNzc1ZhcmlhYmxlUmVnZXggPSAvdmFyXFwoLS0oPzpbXFx3LV0rXFxzKnxbXFx3LV0rXFxzKiwoPzpcXHMqW14pKFxcc118XFxzKlxcKCg/OlteKShdfFxcKFteKShdKlxcKSkqXFwpKStcXHMqKVxcKSQvaXU7XHJcblxyXG5leHBvcnQgeyBpc0NTU1ZhcmlhYmxlTmFtZSwgaXNDU1NWYXJpYWJsZVRva2VuIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs":
|
||
/*!************************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs ***!
|
||
\************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ makeAnimationInstant: function() { return /* binding */ makeAnimationInstant; }\n/* harmony export */ });\nfunction makeAnimationInstant(options) {\r\n options.duration = 0;\r\n options.type = \"keyframes\";\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL21ha2UtYW5pbWF0aW9uLWluc3RhbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2dDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL21ha2UtYW5pbWF0aW9uLWluc3RhbnQubWpzP2YxMDUiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gbWFrZUFuaW1hdGlvbkluc3RhbnQob3B0aW9ucykge1xyXG4gICAgb3B0aW9ucy5kdXJhdGlvbiA9IDA7XHJcbiAgICBvcHRpb25zLnR5cGUgPSBcImtleWZyYW1lc1wiO1xyXG59XHJcblxyXG5leHBvcnQgeyBtYWtlQW5pbWF0aW9uSW5zdGFudCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs":
|
||
/*!*************************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs ***!
|
||
\*************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ replaceTransitionType: function() { return /* binding */ replaceTransitionType; }\n/* harmony export */ });\n/* harmony import */ var _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../generators/inertia.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs\");\n/* harmony import */ var _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../generators/keyframes.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs\");\n/* harmony import */ var _generators_spring_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../generators/spring/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs\");\n\r\n\r\n\r\n\r\nconst transitionTypeMap = {\r\n decay: _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_0__.inertia,\r\n inertia: _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_0__.inertia,\r\n tween: _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_1__.keyframes,\r\n keyframes: _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_1__.keyframes,\r\n spring: _generators_spring_index_mjs__WEBPACK_IMPORTED_MODULE_2__.spring,\r\n};\r\nfunction replaceTransitionType(transition) {\r\n if (typeof transition.type === \"string\") {\r\n transition.type = transitionTypeMap[transition.type];\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL3JlcGxhY2UtdHJhbnNpdGlvbi10eXBlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQW9EO0FBQ0k7QUFDQTtBQUN4RDtBQUNBO0FBQ0EsV0FBVyw0REFBTztBQUNsQixXQUFXO0FBQ1gsV0FBVyxnRUFBUztBQUNwQixlQUFlLGdFQUFTO0FBQ3hCLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9yZXBsYWNlLXRyYW5zaXRpb24tdHlwZS5tanM/NTdkZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmVydGlhIH0gZnJvbSAnLi4vZ2VuZXJhdG9ycy9pbmVydGlhLm1qcyc7XHJcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gJy4uL2dlbmVyYXRvcnMva2V5ZnJhbWVzLm1qcyc7XHJcbmltcG9ydCB7IHNwcmluZyB9IGZyb20gJy4uL2dlbmVyYXRvcnMvc3ByaW5nL2luZGV4Lm1qcyc7XHJcblxyXG5jb25zdCB0cmFuc2l0aW9uVHlwZU1hcCA9IHtcclxuICAgIGRlY2F5OiBpbmVydGlhLFxyXG4gICAgaW5lcnRpYSxcclxuICAgIHR3ZWVuOiBrZXlmcmFtZXMsXHJcbiAgICBrZXlmcmFtZXM6IGtleWZyYW1lcyxcclxuICAgIHNwcmluZyxcclxufTtcclxuZnVuY3Rpb24gcmVwbGFjZVRyYW5zaXRpb25UeXBlKHRyYW5zaXRpb24pIHtcclxuICAgIGlmICh0eXBlb2YgdHJhbnNpdGlvbi50eXBlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgdHJhbnNpdGlvbi50eXBlID0gdHJhbnNpdGlvblR5cGVNYXBbdHJhbnNpdGlvbi50eXBlXTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHsgcmVwbGFjZVRyYW5zaXRpb25UeXBlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs ***!
|
||
\*********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cubicBezierAsString: function() { return /* binding */ cubicBezierAsString; }\n/* harmony export */ });\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9jdWJpYy1iZXppZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSw4REFBOEQsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtBQUNsRjtBQUMrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9lYXNpbmcvY3ViaWMtYmV6aWVyLm1qcz9kMTMyIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGN1YmljQmV6aWVyQXNTdHJpbmcgPSAoW2EsIGIsIGMsIGRdKSA9PiBgY3ViaWMtYmV6aWVyKCR7YX0sICR7Yn0sICR7Y30sICR7ZH0pYDtcclxuXHJcbmV4cG9ydCB7IGN1YmljQmV6aWVyQXNTdHJpbmcgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mapEasingToNativeEasing: function() { return /* binding */ mapEasingToNativeEasing; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs\");\n/* harmony import */ var _utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../utils/supports/linear-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs\");\n/* harmony import */ var _utils_linear_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/linear.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs\");\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs\");\n/* harmony import */ var _supported_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./supported.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\nfunction mapEasingToNativeEasing(easing, duration) {\r\n if (!easing) {\r\n return undefined;\r\n }\r\n else if (typeof easing === \"function\") {\r\n return (0,_utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_0__.supportsLinearEasing)()\r\n ? (0,_utils_linear_mjs__WEBPACK_IMPORTED_MODULE_1__.generateLinearEasing)(easing, duration)\r\n : \"ease-out\";\r\n }\r\n else if ((0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.isBezierDefinition)(easing)) {\r\n return (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_3__.cubicBezierAsString)(easing);\r\n }\r\n else if (Array.isArray(easing)) {\r\n return easing.map((segmentEasing) => mapEasingToNativeEasing(segmentEasing, duration) ||\r\n _supported_mjs__WEBPACK_IMPORTED_MODULE_4__.supportedWaapiEasing.easeOut);\r\n }\r\n else {\r\n return _supported_mjs__WEBPACK_IMPORTED_MODULE_4__.supportedWaapiEasing[easing];\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9tYXAtZWFzaW5nLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBa0Q7QUFDK0I7QUFDdEI7QUFDRjtBQUNGO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsdUZBQW9CO0FBQ25DLGNBQWMsdUVBQW9CO0FBQ2xDO0FBQ0E7QUFDQSxhQUFhLGdFQUFrQjtBQUMvQixlQUFlLHNFQUFtQjtBQUNsQztBQUNBO0FBQ0E7QUFDQSxZQUFZLGdFQUFvQjtBQUNoQztBQUNBO0FBQ0EsZUFBZSxnRUFBb0I7QUFDbkM7QUFDQTtBQUNBO0FBQ21DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9tYXAtZWFzaW5nLm1qcz9lZGYwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQmV6aWVyRGVmaW5pdGlvbiB9IGZyb20gJ21vdGlvbi11dGlscyc7XHJcbmltcG9ydCB7IHN1cHBvcnRzTGluZWFyRWFzaW5nIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvc3VwcG9ydHMvbGluZWFyLWVhc2luZy5tanMnO1xyXG5pbXBvcnQgeyBnZW5lcmF0ZUxpbmVhckVhc2luZyB9IGZyb20gJy4uL3V0aWxzL2xpbmVhci5tanMnO1xyXG5pbXBvcnQgeyBjdWJpY0JlemllckFzU3RyaW5nIH0gZnJvbSAnLi9jdWJpYy1iZXppZXIubWpzJztcclxuaW1wb3J0IHsgc3VwcG9ydGVkV2FhcGlFYXNpbmcgfSBmcm9tICcuL3N1cHBvcnRlZC5tanMnO1xyXG5cclxuZnVuY3Rpb24gbWFwRWFzaW5nVG9OYXRpdmVFYXNpbmcoZWFzaW5nLCBkdXJhdGlvbikge1xyXG4gICAgaWYgKCFlYXNpbmcpIHtcclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIGVhc2luZyA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHN1cHBvcnRzTGluZWFyRWFzaW5nKClcclxuICAgICAgICAgICAgPyBnZW5lcmF0ZUxpbmVhckVhc2luZyhlYXNpbmcsIGR1cmF0aW9uKVxyXG4gICAgICAgICAgICA6IFwiZWFzZS1vdXRcIjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzQmV6aWVyRGVmaW5pdGlvbihlYXNpbmcpKSB7XHJcbiAgICAgICAgcmV0dXJuIGN1YmljQmV6aWVyQXNTdHJpbmcoZWFzaW5nKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZWFzaW5nKSkge1xyXG4gICAgICAgIHJldHVybiBlYXNpbmcubWFwKChzZWdtZW50RWFzaW5nKSA9PiBtYXBFYXNpbmdUb05hdGl2ZUVhc2luZyhzZWdtZW50RWFzaW5nLCBkdXJhdGlvbikgfHxcclxuICAgICAgICAgICAgc3VwcG9ydGVkV2FhcGlFYXNpbmcuZWFzZU91dCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gc3VwcG9ydGVkV2FhcGlFYXNpbmdbZWFzaW5nXTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHsgbWFwRWFzaW5nVG9OYXRpdmVFYXNpbmcgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs ***!
|
||
\******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportedWaapiEasing: function() { return /* binding */ supportedWaapiEasing; }\n/* harmony export */ });\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs\");\n\r\n\r\nconst supportedWaapiEasing = {\r\n linear: \"linear\",\r\n ease: \"ease\",\r\n easeIn: \"ease-in\",\r\n easeOut: \"ease-out\",\r\n easeInOut: \"ease-in-out\",\r\n circIn: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0, 0.65, 0.55, 1]),\r\n circOut: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0.55, 0, 1, 0.45]),\r\n backIn: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0.31, 0.01, 0.66, -0.59]),\r\n backOut: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0.33, 1.53, 0.69, 0.99]),\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9zdXBwb3J0ZWQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlEO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLHNFQUFtQjtBQUM3QywyQkFBMkIsc0VBQW1CO0FBQzlDLDBCQUEwQixzRUFBbUI7QUFDN0MsMkJBQTJCLHNFQUFtQjtBQUM5QztBQUNBO0FBQ2dDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9zdXBwb3J0ZWQubWpzPzFmN2YiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3ViaWNCZXppZXJBc1N0cmluZyB9IGZyb20gJy4vY3ViaWMtYmV6aWVyLm1qcyc7XHJcblxyXG5jb25zdCBzdXBwb3J0ZWRXYWFwaUVhc2luZyA9IHtcclxuICAgIGxpbmVhcjogXCJsaW5lYXJcIixcclxuICAgIGVhc2U6IFwiZWFzZVwiLFxyXG4gICAgZWFzZUluOiBcImVhc2UtaW5cIixcclxuICAgIGVhc2VPdXQ6IFwiZWFzZS1vdXRcIixcclxuICAgIGVhc2VJbk91dDogXCJlYXNlLWluLW91dFwiLFxyXG4gICAgY2lyY0luOiAvKkBfX1BVUkVfXyovIGN1YmljQmV6aWVyQXNTdHJpbmcoWzAsIDAuNjUsIDAuNTUsIDFdKSxcclxuICAgIGNpcmNPdXQ6IC8qQF9fUFVSRV9fKi8gY3ViaWNCZXppZXJBc1N0cmluZyhbMC41NSwgMCwgMSwgMC40NV0pLFxyXG4gICAgYmFja0luOiAvKkBfX1BVUkVfXyovIGN1YmljQmV6aWVyQXNTdHJpbmcoWzAuMzEsIDAuMDEsIDAuNjYsIC0wLjU5XSksXHJcbiAgICBiYWNrT3V0OiAvKkBfX1BVUkVfXyovIGN1YmljQmV6aWVyQXNTdHJpbmcoWzAuMzMsIDEuNTMsIDAuNjksIDAuOTldKSxcclxufTtcclxuXHJcbmV4cG9ydCB7IHN1cHBvcnRlZFdhYXBpRWFzaW5nIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs ***!
|
||
\***********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ startWaapiAnimation: function() { return /* binding */ startWaapiAnimation; }\n/* harmony export */ });\n/* harmony import */ var _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../stats/animation-count.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\");\n/* harmony import */ var _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../stats/buffer.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\");\n/* harmony import */ var _easing_map_easing_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./easing/map-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs\");\n\r\n\r\n\r\n\r\nfunction startWaapiAnimation(element, valueName, keyframes, { delay = 0, duration = 300, repeat = 0, repeatType = \"loop\", ease = \"easeOut\", times, } = {}, pseudoElement = undefined) {\r\n const keyframeOptions = {\r\n [valueName]: keyframes,\r\n };\r\n if (times)\r\n keyframeOptions.offset = times;\r\n const easing = (0,_easing_map_easing_mjs__WEBPACK_IMPORTED_MODULE_0__.mapEasingToNativeEasing)(ease, duration);\r\n /**\r\n * If this is an easing array, apply to keyframes, not animation as a whole\r\n */\r\n if (Array.isArray(easing))\r\n keyframeOptions.easing = easing;\r\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_1__.statsBuffer.value) {\r\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.waapi++;\r\n }\r\n const options = {\r\n delay,\r\n duration,\r\n easing: !Array.isArray(easing) ? easing : \"linear\",\r\n fill: \"both\",\r\n iterations: repeat + 1,\r\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\r\n };\r\n if (pseudoElement)\r\n options.pseudoElement = pseudoElement;\r\n const animation = element.animate(keyframeOptions, options);\r\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_1__.statsBuffer.value) {\r\n animation.finished.finally(() => {\r\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.waapi--;\r\n });\r\n }\r\n return animation;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3N0YXJ0LXdhYXBpLWFuaW1hdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFtRTtBQUNkO0FBQ2E7QUFDbEU7QUFDQSw4REFBOEQsdUZBQXVGLElBQUk7QUFDeko7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwrRUFBdUI7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsMERBQVc7QUFDbkIsUUFBUSx3RUFBZ0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwwREFBVztBQUNuQjtBQUNBLFlBQVksd0VBQWdCO0FBQzVCLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUMrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9zdGFydC13YWFwaS1hbmltYXRpb24ubWpzPzRjMDEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWN0aXZlQW5pbWF0aW9ucyB9IGZyb20gJy4uLy4uL3N0YXRzL2FuaW1hdGlvbi1jb3VudC5tanMnO1xyXG5pbXBvcnQgeyBzdGF0c0J1ZmZlciB9IGZyb20gJy4uLy4uL3N0YXRzL2J1ZmZlci5tanMnO1xyXG5pbXBvcnQgeyBtYXBFYXNpbmdUb05hdGl2ZUVhc2luZyB9IGZyb20gJy4vZWFzaW5nL21hcC1lYXNpbmcubWpzJztcclxuXHJcbmZ1bmN0aW9uIHN0YXJ0V2FhcGlBbmltYXRpb24oZWxlbWVudCwgdmFsdWVOYW1lLCBrZXlmcmFtZXMsIHsgZGVsYXkgPSAwLCBkdXJhdGlvbiA9IDMwMCwgcmVwZWF0ID0gMCwgcmVwZWF0VHlwZSA9IFwibG9vcFwiLCBlYXNlID0gXCJlYXNlT3V0XCIsIHRpbWVzLCB9ID0ge30sIHBzZXVkb0VsZW1lbnQgPSB1bmRlZmluZWQpIHtcclxuICAgIGNvbnN0IGtleWZyYW1lT3B0aW9ucyA9IHtcclxuICAgICAgICBbdmFsdWVOYW1lXToga2V5ZnJhbWVzLFxyXG4gICAgfTtcclxuICAgIGlmICh0aW1lcylcclxuICAgICAgICBrZXlmcmFtZU9wdGlvbnMub2Zmc2V0ID0gdGltZXM7XHJcbiAgICBjb25zdCBlYXNpbmcgPSBtYXBFYXNpbmdUb05hdGl2ZUVhc2luZyhlYXNlLCBkdXJhdGlvbik7XHJcbiAgICAvKipcclxuICAgICAqIElmIHRoaXMgaXMgYW4gZWFzaW5nIGFycmF5LCBhcHBseSB0byBrZXlmcmFtZXMsIG5vdCBhbmltYXRpb24gYXMgYSB3aG9sZVxyXG4gICAgICovXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShlYXNpbmcpKVxyXG4gICAgICAgIGtleWZyYW1lT3B0aW9ucy5lYXNpbmcgPSBlYXNpbmc7XHJcbiAgICBpZiAoc3RhdHNCdWZmZXIudmFsdWUpIHtcclxuICAgICAgICBhY3RpdmVBbmltYXRpb25zLndhYXBpKys7XHJcbiAgICB9XHJcbiAgICBjb25zdCBvcHRpb25zID0ge1xyXG4gICAgICAgIGRlbGF5LFxyXG4gICAgICAgIGR1cmF0aW9uLFxyXG4gICAgICAgIGVhc2luZzogIUFycmF5LmlzQXJyYXkoZWFzaW5nKSA/IGVhc2luZyA6IFwibGluZWFyXCIsXHJcbiAgICAgICAgZmlsbDogXCJib3RoXCIsXHJcbiAgICAgICAgaXRlcmF0aW9uczogcmVwZWF0ICsgMSxcclxuICAgICAgICBkaXJlY3Rpb246IHJlcGVhdFR5cGUgPT09IFwicmV2ZXJzZVwiID8gXCJhbHRlcm5hdGVcIiA6IFwibm9ybWFsXCIsXHJcbiAgICB9O1xyXG4gICAgaWYgKHBzZXVkb0VsZW1lbnQpXHJcbiAgICAgICAgb3B0aW9ucy5wc2V1ZG9FbGVtZW50ID0gcHNldWRvRWxlbWVudDtcclxuICAgIGNvbnN0IGFuaW1hdGlvbiA9IGVsZW1lbnQuYW5pbWF0ZShrZXlmcmFtZU9wdGlvbnMsIG9wdGlvbnMpO1xyXG4gICAgaWYgKHN0YXRzQnVmZmVyLnZhbHVlKSB7XHJcbiAgICAgICAgYW5pbWF0aW9uLmZpbmlzaGVkLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICAgICAgICBhY3RpdmVBbmltYXRpb25zLndhYXBpLS07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYW5pbWF0aW9uO1xyXG59XHJcblxyXG5leHBvcnQgeyBzdGFydFdhYXBpQW5pbWF0aW9uIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportsBrowserAnimation: function() { return /* binding */ supportsBrowserAnimation; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/memo.mjs\");\n\r\n\r\n/**\r\n * A list of values that can be hardware-accelerated.\r\n */\r\nconst acceleratedValues = new Set([\r\n \"opacity\",\r\n \"clipPath\",\r\n \"filter\",\r\n \"transform\",\r\n // TODO: Could be re-enabled now we have support for linear() easing\r\n // \"background-color\"\r\n]);\r\nconst supportsWaapi = /*@__PURE__*/ (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.memo)(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\r\nfunction supportsBrowserAnimation(options) {\r\n const { motionValue, name, repeatDelay, repeatType, damping, type } = options;\r\n const subject = motionValue?.owner?.current;\r\n /**\r\n * We use this check instead of isHTMLElement() because we explicitly\r\n * **don't** want elements in different timing contexts (i.e. popups)\r\n * to be accelerated, as it's not possible to sync these animations\r\n * properly with those driven from the main window frameloop.\r\n */\r\n if (!(subject instanceof HTMLElement)) {\r\n return false;\r\n }\r\n const { onUpdate, transformTemplate } = motionValue.owner.getProps();\r\n return (supportsWaapi() &&\r\n name &&\r\n acceleratedValues.has(name) &&\r\n (name !== \"transform\" || !transformTemplate) &&\r\n /**\r\n * If we're outputting values to onUpdate then we can't use WAAPI as there's\r\n * no way to read the value from WAAPI every frame.\r\n */\r\n !onUpdate &&\r\n !repeatDelay &&\r\n repeatType !== \"mirror\" &&\r\n damping !== 0 &&\r\n type !== \"inertia\");\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3N1cHBvcnRzL3dhYXBpLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFvQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0Msa0RBQUk7QUFDeEM7QUFDQSxZQUFZLDREQUE0RDtBQUN4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksOEJBQThCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNvQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9zdXBwb3J0cy93YWFwaS5tanM/YzFjMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtZW1vIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBBIGxpc3Qgb2YgdmFsdWVzIHRoYXQgY2FuIGJlIGhhcmR3YXJlLWFjY2VsZXJhdGVkLlxyXG4gKi9cclxuY29uc3QgYWNjZWxlcmF0ZWRWYWx1ZXMgPSBuZXcgU2V0KFtcclxuICAgIFwib3BhY2l0eVwiLFxyXG4gICAgXCJjbGlwUGF0aFwiLFxyXG4gICAgXCJmaWx0ZXJcIixcclxuICAgIFwidHJhbnNmb3JtXCIsXHJcbiAgICAvLyBUT0RPOiBDb3VsZCBiZSByZS1lbmFibGVkIG5vdyB3ZSBoYXZlIHN1cHBvcnQgZm9yIGxpbmVhcigpIGVhc2luZ1xyXG4gICAgLy8gXCJiYWNrZ3JvdW5kLWNvbG9yXCJcclxuXSk7XHJcbmNvbnN0IHN1cHBvcnRzV2FhcGkgPSAvKkBfX1BVUkVfXyovIG1lbW8oKCkgPT4gT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoRWxlbWVudC5wcm90b3R5cGUsIFwiYW5pbWF0ZVwiKSk7XHJcbmZ1bmN0aW9uIHN1cHBvcnRzQnJvd3NlckFuaW1hdGlvbihvcHRpb25zKSB7XHJcbiAgICBjb25zdCB7IG1vdGlvblZhbHVlLCBuYW1lLCByZXBlYXREZWxheSwgcmVwZWF0VHlwZSwgZGFtcGluZywgdHlwZSB9ID0gb3B0aW9ucztcclxuICAgIGNvbnN0IHN1YmplY3QgPSBtb3Rpb25WYWx1ZT8ub3duZXI/LmN1cnJlbnQ7XHJcbiAgICAvKipcclxuICAgICAqIFdlIHVzZSB0aGlzIGNoZWNrIGluc3RlYWQgb2YgaXNIVE1MRWxlbWVudCgpIGJlY2F1c2Ugd2UgZXhwbGljaXRseVxyXG4gICAgICogKipkb24ndCoqIHdhbnQgZWxlbWVudHMgaW4gZGlmZmVyZW50IHRpbWluZyBjb250ZXh0cyAoaS5lLiBwb3B1cHMpXHJcbiAgICAgKiB0byBiZSBhY2NlbGVyYXRlZCwgYXMgaXQncyBub3QgcG9zc2libGUgdG8gc3luYyB0aGVzZSBhbmltYXRpb25zXHJcbiAgICAgKiBwcm9wZXJseSB3aXRoIHRob3NlIGRyaXZlbiBmcm9tIHRoZSBtYWluIHdpbmRvdyBmcmFtZWxvb3AuXHJcbiAgICAgKi9cclxuICAgIGlmICghKHN1YmplY3QgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IG9uVXBkYXRlLCB0cmFuc2Zvcm1UZW1wbGF0ZSB9ID0gbW90aW9uVmFsdWUub3duZXIuZ2V0UHJvcHMoKTtcclxuICAgIHJldHVybiAoc3VwcG9ydHNXYWFwaSgpICYmXHJcbiAgICAgICAgbmFtZSAmJlxyXG4gICAgICAgIGFjY2VsZXJhdGVkVmFsdWVzLmhhcyhuYW1lKSAmJlxyXG4gICAgICAgIChuYW1lICE9PSBcInRyYW5zZm9ybVwiIHx8ICF0cmFuc2Zvcm1UZW1wbGF0ZSkgJiZcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB3ZSdyZSBvdXRwdXR0aW5nIHZhbHVlcyB0byBvblVwZGF0ZSB0aGVuIHdlIGNhbid0IHVzZSBXQUFQSSBhcyB0aGVyZSdzXHJcbiAgICAgICAgICogbm8gd2F5IHRvIHJlYWQgdGhlIHZhbHVlIGZyb20gV0FBUEkgZXZlcnkgZnJhbWUuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgIW9uVXBkYXRlICYmXHJcbiAgICAgICAgIXJlcGVhdERlbGF5ICYmXHJcbiAgICAgICAgcmVwZWF0VHlwZSAhPT0gXCJtaXJyb3JcIiAmJlxyXG4gICAgICAgIGRhbXBpbmcgIT09IDAgJiZcclxuICAgICAgICB0eXBlICE9PSBcImluZXJ0aWFcIik7XHJcbn1cclxuXHJcbmV4cG9ydCB7IHN1cHBvcnRzQnJvd3NlckFuaW1hdGlvbiB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs ***!
|
||
\***********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyGeneratorOptions: function() { return /* binding */ applyGeneratorOptions; }\n/* harmony export */ });\n/* harmony import */ var _utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../utils/supports/linear-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs\");\n/* harmony import */ var _generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../generators/utils/is-generator.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs\");\n\r\n\r\n\r\nfunction applyGeneratorOptions({ type, ...options }) {\r\n if ((0,_generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_0__.isGenerator)(type) && (0,_utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_1__.supportsLinearEasing)()) {\r\n return type.applyToOptions(options);\r\n }\r\n else {\r\n options.duration ?? (options.duration = 300);\r\n options.ease ?? (options.ease = \"easeOut\");\r\n }\r\n return options;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL2FwcGx5LWdlbmVyYXRvci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWlGO0FBQ1g7QUFDdEU7QUFDQSxpQ0FBaUMsa0JBQWtCO0FBQ25ELFFBQVEsK0VBQVcsVUFBVSx1RkFBb0I7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2lDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL2FwcGx5LWdlbmVyYXRvci5tanM/MDdkMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdXBwb3J0c0xpbmVhckVhc2luZyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3N1cHBvcnRzL2xpbmVhci1lYXNpbmcubWpzJztcclxuaW1wb3J0IHsgaXNHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi9nZW5lcmF0b3JzL3V0aWxzL2lzLWdlbmVyYXRvci5tanMnO1xyXG5cclxuZnVuY3Rpb24gYXBwbHlHZW5lcmF0b3JPcHRpb25zKHsgdHlwZSwgLi4ub3B0aW9ucyB9KSB7XHJcbiAgICBpZiAoaXNHZW5lcmF0b3IodHlwZSkgJiYgc3VwcG9ydHNMaW5lYXJFYXNpbmcoKSkge1xyXG4gICAgICAgIHJldHVybiB0eXBlLmFwcGx5VG9PcHRpb25zKG9wdGlvbnMpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgb3B0aW9ucy5kdXJhdGlvbiA/PyAob3B0aW9ucy5kdXJhdGlvbiA9IDMwMCk7XHJcbiAgICAgICAgb3B0aW9ucy5lYXNlID8/IChvcHRpb25zLmVhc2UgPSBcImVhc2VPdXRcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxufVxyXG5cclxuZXhwb3J0IHsgYXBwbHlHZW5lcmF0b3JPcHRpb25zIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs ***!
|
||
\**************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ generateLinearEasing: function() { return /* binding */ generateLinearEasing; }\n/* harmony export */ });\nconst generateLinearEasing = (easing, duration, // as milliseconds\r\nresolution = 10 // as milliseconds\r\n) => {\r\n let points = \"\";\r\n const numPoints = Math.max(Math.round(duration / resolution), 2);\r\n for (let i = 0; i < numPoints; i++) {\r\n points += Math.round(easing(i / (numPoints - 1)) * 10000) / 10000 + \", \";\r\n }\r\n return `linear(${points.substring(0, points.length - 2)})`;\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL2xpbmVhci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZUFBZTtBQUNuQztBQUNBO0FBQ0EscUJBQXFCLHVDQUF1QztBQUM1RDtBQUNBO0FBQ2dDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL2xpbmVhci5tanM/MGU1NCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBnZW5lcmF0ZUxpbmVhckVhc2luZyA9IChlYXNpbmcsIGR1cmF0aW9uLCAvLyBhcyBtaWxsaXNlY29uZHNcclxucmVzb2x1dGlvbiA9IDEwIC8vIGFzIG1pbGxpc2Vjb25kc1xyXG4pID0+IHtcclxuICAgIGxldCBwb2ludHMgPSBcIlwiO1xyXG4gICAgY29uc3QgbnVtUG9pbnRzID0gTWF0aC5tYXgoTWF0aC5yb3VuZChkdXJhdGlvbiAvIHJlc29sdXRpb24pLCAyKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtUG9pbnRzOyBpKyspIHtcclxuICAgICAgICBwb2ludHMgKz0gTWF0aC5yb3VuZChlYXNpbmcoaSAvIChudW1Qb2ludHMgLSAxKSkgKiAxMDAwMCkgLyAxMDAwMCArIFwiLCBcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBgbGluZWFyKCR7cG9pbnRzLnN1YnN0cmluZygwLCBwb2ludHMubGVuZ3RoIC0gMil9KWA7XHJcbn07XHJcblxyXG5leHBvcnQgeyBnZW5lcmF0ZUxpbmVhckVhc2luZyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs ***!
|
||
\**************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ replaceStringEasing: function() { return /* binding */ replaceStringEasing; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs\");\n\r\n\r\nconst unsupportedEasingFunctions = {\r\n anticipate: motion_utils__WEBPACK_IMPORTED_MODULE_0__.anticipate,\r\n backInOut: motion_utils__WEBPACK_IMPORTED_MODULE_1__.backInOut,\r\n circInOut: motion_utils__WEBPACK_IMPORTED_MODULE_2__.circInOut,\r\n};\r\nfunction isUnsupportedEase(key) {\r\n return key in unsupportedEasingFunctions;\r\n}\r\nfunction replaceStringEasing(transition) {\r\n if (typeof transition.ease === \"string\" &&\r\n isUnsupportedEase(transition.ease)) {\r\n transition.ease = unsupportedEasingFunctions[transition.ease];\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL3Vuc3VwcG9ydGVkLWVhc2luZy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFnRTtBQUNoRTtBQUNBO0FBQ0EsY0FBYztBQUNkLGFBQWE7QUFDYixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUMrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS91dGlscy91bnN1cHBvcnRlZC1lYXNpbmcubWpzP2MyZDEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW50aWNpcGF0ZSwgYmFja0luT3V0LCBjaXJjSW5PdXQgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5cclxuY29uc3QgdW5zdXBwb3J0ZWRFYXNpbmdGdW5jdGlvbnMgPSB7XHJcbiAgICBhbnRpY2lwYXRlLFxyXG4gICAgYmFja0luT3V0LFxyXG4gICAgY2lyY0luT3V0LFxyXG59O1xyXG5mdW5jdGlvbiBpc1Vuc3VwcG9ydGVkRWFzZShrZXkpIHtcclxuICAgIHJldHVybiBrZXkgaW4gdW5zdXBwb3J0ZWRFYXNpbmdGdW5jdGlvbnM7XHJcbn1cclxuZnVuY3Rpb24gcmVwbGFjZVN0cmluZ0Vhc2luZyh0cmFuc2l0aW9uKSB7XHJcbiAgICBpZiAodHlwZW9mIHRyYW5zaXRpb24uZWFzZSA9PT0gXCJzdHJpbmdcIiAmJlxyXG4gICAgICAgIGlzVW5zdXBwb3J0ZWRFYXNlKHRyYW5zaXRpb24uZWFzZSkpIHtcclxuICAgICAgICB0cmFuc2l0aW9uLmVhc2UgPSB1bnN1cHBvcnRlZEVhc2luZ0Z1bmN0aW9uc1t0cmFuc2l0aW9uLmVhc2VdO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgeyByZXBsYWNlU3RyaW5nRWFzaW5nIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/frameloop/batcher.mjs ***!
|
||
\***************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createRenderBatcher: function() { return /* binding */ createRenderBatcher; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _order_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./order.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/order.mjs\");\n/* harmony import */ var _render_step_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./render-step.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/render-step.mjs\");\n\r\n\r\n\r\n\r\nconst maxElapsed = 40;\r\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\r\n let runNextFrame = false;\r\n let useDefaultElapsed = true;\r\n const state = {\r\n delta: 0.0,\r\n timestamp: 0.0,\r\n isProcessing: false,\r\n };\r\n const flagRunNextFrame = () => (runNextFrame = true);\r\n const steps = _order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder.reduce((acc, key) => {\r\n acc[key] = (0,_render_step_mjs__WEBPACK_IMPORTED_MODULE_1__.createRenderStep)(flagRunNextFrame, allowKeepAlive ? key : undefined);\r\n return acc;\r\n }, {});\r\n const { setup, read, resolveKeyframes, preUpdate, update, preRender, render, postRender, } = steps;\r\n const processBatch = () => {\r\n const timestamp = motion_utils__WEBPACK_IMPORTED_MODULE_2__.MotionGlobalConfig.useManualTiming\r\n ? state.timestamp\r\n : performance.now();\r\n runNextFrame = false;\r\n if (!motion_utils__WEBPACK_IMPORTED_MODULE_2__.MotionGlobalConfig.useManualTiming) {\r\n state.delta = useDefaultElapsed\r\n ? 1000 / 60\r\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\r\n }\r\n state.timestamp = timestamp;\r\n state.isProcessing = true;\r\n // Unrolled render loop for better per-frame performance\r\n setup.process(state);\r\n read.process(state);\r\n resolveKeyframes.process(state);\r\n preUpdate.process(state);\r\n update.process(state);\r\n preRender.process(state);\r\n render.process(state);\r\n postRender.process(state);\r\n state.isProcessing = false;\r\n if (runNextFrame && allowKeepAlive) {\r\n useDefaultElapsed = false;\r\n scheduleNextBatch(processBatch);\r\n }\r\n };\r\n const wake = () => {\r\n runNextFrame = true;\r\n useDefaultElapsed = true;\r\n if (!state.isProcessing) {\r\n scheduleNextBatch(processBatch);\r\n }\r\n };\r\n const schedule = _order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder.reduce((acc, key) => {\r\n const step = steps[key];\r\n acc[key] = (process, keepAlive = false, immediate = false) => {\r\n if (!runNextFrame)\r\n wake();\r\n return step.schedule(process, keepAlive, immediate);\r\n };\r\n return acc;\r\n }, {});\r\n const cancel = (process) => {\r\n for (let i = 0; i < _order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder.length; i++) {\r\n steps[_order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder[i]].cancel(process);\r\n }\r\n };\r\n return { schedule, cancel, state, steps };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL2JhdGNoZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBa0Q7QUFDVDtBQUNZO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0Isa0RBQVU7QUFDNUIsbUJBQW1CLGtFQUFnQjtBQUNuQztBQUNBLEtBQUssSUFBSTtBQUNULFlBQVksbUZBQW1GO0FBQy9GO0FBQ0EsMEJBQTBCLDREQUFrQjtBQUM1QztBQUNBO0FBQ0E7QUFDQSxhQUFhLDREQUFrQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixrREFBVTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssSUFBSTtBQUNUO0FBQ0Esd0JBQXdCLElBQUksa0RBQVUsU0FBUztBQUMvQyxrQkFBa0Isa0RBQVU7QUFDNUI7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQytCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL2JhdGNoZXIubWpzPzRhMjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW90aW9uR2xvYmFsQ29uZmlnIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgc3RlcHNPcmRlciB9IGZyb20gJy4vb3JkZXIubWpzJztcclxuaW1wb3J0IHsgY3JlYXRlUmVuZGVyU3RlcCB9IGZyb20gJy4vcmVuZGVyLXN0ZXAubWpzJztcclxuXHJcbmNvbnN0IG1heEVsYXBzZWQgPSA0MDtcclxuZnVuY3Rpb24gY3JlYXRlUmVuZGVyQmF0Y2hlcihzY2hlZHVsZU5leHRCYXRjaCwgYWxsb3dLZWVwQWxpdmUpIHtcclxuICAgIGxldCBydW5OZXh0RnJhbWUgPSBmYWxzZTtcclxuICAgIGxldCB1c2VEZWZhdWx0RWxhcHNlZCA9IHRydWU7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHtcclxuICAgICAgICBkZWx0YTogMC4wLFxyXG4gICAgICAgIHRpbWVzdGFtcDogMC4wLFxyXG4gICAgICAgIGlzUHJvY2Vzc2luZzogZmFsc2UsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgZmxhZ1J1bk5leHRGcmFtZSA9ICgpID0+IChydW5OZXh0RnJhbWUgPSB0cnVlKTtcclxuICAgIGNvbnN0IHN0ZXBzID0gc3RlcHNPcmRlci5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XHJcbiAgICAgICAgYWNjW2tleV0gPSBjcmVhdGVSZW5kZXJTdGVwKGZsYWdSdW5OZXh0RnJhbWUsIGFsbG93S2VlcEFsaXZlID8ga2V5IDogdW5kZWZpbmVkKTtcclxuICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgfSwge30pO1xyXG4gICAgY29uc3QgeyBzZXR1cCwgcmVhZCwgcmVzb2x2ZUtleWZyYW1lcywgcHJlVXBkYXRlLCB1cGRhdGUsIHByZVJlbmRlciwgcmVuZGVyLCBwb3N0UmVuZGVyLCB9ID0gc3RlcHM7XHJcbiAgICBjb25zdCBwcm9jZXNzQmF0Y2ggPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gTW90aW9uR2xvYmFsQ29uZmlnLnVzZU1hbnVhbFRpbWluZ1xyXG4gICAgICAgICAgICA/IHN0YXRlLnRpbWVzdGFtcFxyXG4gICAgICAgICAgICA6IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgIHJ1bk5leHRGcmFtZSA9IGZhbHNlO1xyXG4gICAgICAgIGlmICghTW90aW9uR2xvYmFsQ29uZmlnLnVzZU1hbnVhbFRpbWluZykge1xyXG4gICAgICAgICAgICBzdGF0ZS5kZWx0YSA9IHVzZURlZmF1bHRFbGFwc2VkXHJcbiAgICAgICAgICAgICAgICA/IDEwMDAgLyA2MFxyXG4gICAgICAgICAgICAgICAgOiBNYXRoLm1heChNYXRoLm1pbih0aW1lc3RhbXAgLSBzdGF0ZS50aW1lc3RhbXAsIG1heEVsYXBzZWQpLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3RhdGUudGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgIHN0YXRlLmlzUHJvY2Vzc2luZyA9IHRydWU7XHJcbiAgICAgICAgLy8gVW5yb2xsZWQgcmVuZGVyIGxvb3AgZm9yIGJldHRlciBwZXItZnJhbWUgcGVyZm9ybWFuY2VcclxuICAgICAgICBzZXR1cC5wcm9jZXNzKHN0YXRlKTtcclxuICAgICAgICByZWFkLnByb2Nlc3Moc3RhdGUpO1xyXG4gICAgICAgIHJlc29sdmVLZXlmcmFtZXMucHJvY2VzcyhzdGF0ZSk7XHJcbiAgICAgICAgcHJlVXBkYXRlLnByb2Nlc3Moc3RhdGUpO1xyXG4gICAgICAgIHVwZGF0ZS5wcm9jZXNzKHN0YXRlKTtcclxuICAgICAgICBwcmVSZW5kZXIucHJvY2VzcyhzdGF0ZSk7XHJcbiAgICAgICAgcmVuZGVyLnByb2Nlc3Moc3RhdGUpO1xyXG4gICAgICAgIHBvc3RSZW5kZXIucHJvY2VzcyhzdGF0ZSk7XHJcbiAgICAgICAgc3RhdGUuaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHJ1bk5leHRGcmFtZSAmJiBhbGxvd0tlZXBBbGl2ZSkge1xyXG4gICAgICAgICAgICB1c2VEZWZhdWx0RWxhcHNlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBzY2hlZHVsZU5leHRCYXRjaChwcm9jZXNzQmF0Y2gpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCB3YWtlID0gKCkgPT4ge1xyXG4gICAgICAgIHJ1bk5leHRGcmFtZSA9IHRydWU7XHJcbiAgICAgICAgdXNlRGVmYXVsdEVsYXBzZWQgPSB0cnVlO1xyXG4gICAgICAgIGlmICghc3RhdGUuaXNQcm9jZXNzaW5nKSB7XHJcbiAgICAgICAgICAgIHNjaGVkdWxlTmV4dEJhdGNoKHByb2Nlc3NCYXRjaCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHNjaGVkdWxlID0gc3RlcHNPcmRlci5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3RlcCA9IHN0ZXBzW2tleV07XHJcbiAgICAgICAgYWNjW2tleV0gPSAocHJvY2Vzcywga2VlcEFsaXZlID0gZmFsc2UsIGltbWVkaWF0ZSA9IGZhbHNlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghcnVuTmV4dEZyYW1lKVxyXG4gICAgICAgICAgICAgICAgd2FrZSgpO1xyXG4gICAgICAgICAgICByZXR1cm4gc3RlcC5zY2hlZHVsZShwcm9jZXNzLCBrZWVwQWxpdmUsIGltbWVkaWF0ZSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgfSwge30pO1xyXG4gICAgY29uc3QgY2FuY2VsID0gKHByb2Nlc3MpID0+IHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ZXBzT3JkZXIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgc3RlcHNbc3RlcHNPcmRlcltpXV0uY2FuY2VsKHByb2Nlc3MpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4geyBzY2hlZHVsZSwgY2FuY2VsLCBzdGF0ZSwgc3RlcHMgfTtcclxufVxyXG5cclxuZXhwb3J0IHsgY3JlYXRlUmVuZGVyQmF0Y2hlciB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/frameloop/frame.mjs ***!
|
||
\*************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cancelFrame: function() { return /* binding */ cancelFrame; },\n/* harmony export */ frame: function() { return /* binding */ frame; },\n/* harmony export */ frameData: function() { return /* binding */ frameData; },\n/* harmony export */ frameSteps: function() { return /* binding */ frameSteps; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _batcher_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./batcher.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs\");\n\r\n\r\n\r\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps: frameSteps, } = /* @__PURE__ */ (0,_batcher_mjs__WEBPACK_IMPORTED_MODULE_0__.createRenderBatcher)(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop, true);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL2ZyYW1lLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBb0M7QUFDZ0I7QUFDcEQ7QUFDQSxRQUFRLDZFQUE2RSxrQkFBa0IsaUVBQW1CLHdFQUF3RSw4Q0FBSTtBQUN0TTtBQUNxRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2ZyYW1lbG9vcC9mcmFtZS5tanM/YTViZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub29wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgY3JlYXRlUmVuZGVyQmF0Y2hlciB9IGZyb20gJy4vYmF0Y2hlci5tanMnO1xyXG5cclxuY29uc3QgeyBzY2hlZHVsZTogZnJhbWUsIGNhbmNlbDogY2FuY2VsRnJhbWUsIHN0YXRlOiBmcmFtZURhdGEsIHN0ZXBzOiBmcmFtZVN0ZXBzLCB9ID0gLyogQF9fUFVSRV9fICovIGNyZWF0ZVJlbmRlckJhdGNoZXIodHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSAhPT0gXCJ1bmRlZmluZWRcIiA/IHJlcXVlc3RBbmltYXRpb25GcmFtZSA6IG5vb3AsIHRydWUpO1xyXG5cclxuZXhwb3J0IHsgY2FuY2VsRnJhbWUsIGZyYW1lLCBmcmFtZURhdGEsIGZyYW1lU3RlcHMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/frameloop/microtask.mjs ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cancelMicrotask: function() { return /* binding */ cancelMicrotask; },\n/* harmony export */ microtask: function() { return /* binding */ microtask; }\n/* harmony export */ });\n/* harmony import */ var _batcher_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./batcher.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs\");\n\r\n\r\nconst { schedule: microtask, cancel: cancelMicrotask } = \r\n/* @__PURE__ */ (0,_batcher_mjs__WEBPACK_IMPORTED_MODULE_0__.createRenderBatcher)(queueMicrotask, false);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL21pY3JvdGFzay5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9EO0FBQ3BEO0FBQ0EsUUFBUSwrQ0FBK0M7QUFDdkQsZ0JBQWdCLGlFQUFtQjtBQUNuQztBQUNzQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2ZyYW1lbG9vcC9taWNyb3Rhc2subWpzP2QxZTciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVuZGVyQmF0Y2hlciB9IGZyb20gJy4vYmF0Y2hlci5tanMnO1xyXG5cclxuY29uc3QgeyBzY2hlZHVsZTogbWljcm90YXNrLCBjYW5jZWw6IGNhbmNlbE1pY3JvdGFzayB9ID0gXHJcbi8qIEBfX1BVUkVfXyAqLyBjcmVhdGVSZW5kZXJCYXRjaGVyKHF1ZXVlTWljcm90YXNrLCBmYWxzZSk7XHJcblxyXG5leHBvcnQgeyBjYW5jZWxNaWNyb3Rhc2ssIG1pY3JvdGFzayB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/order.mjs":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/frameloop/order.mjs ***!
|
||
\*************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ stepsOrder: function() { return /* binding */ stepsOrder; }\n/* harmony export */ });\nconst stepsOrder = [\r\n \"setup\", // Compute\r\n \"read\", // Read\r\n \"resolveKeyframes\", // Write/Read/Write/Read\r\n \"preUpdate\", // Compute\r\n \"update\", // Compute\r\n \"preRender\", // Compute\r\n \"render\", // Write\r\n \"postRender\", // Compute\r\n];\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL29yZGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2ZyYW1lbG9vcC9vcmRlci5tanM/ODY4ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzdGVwc09yZGVyID0gW1xyXG4gICAgXCJzZXR1cFwiLCAvLyBDb21wdXRlXHJcbiAgICBcInJlYWRcIiwgLy8gUmVhZFxyXG4gICAgXCJyZXNvbHZlS2V5ZnJhbWVzXCIsIC8vIFdyaXRlL1JlYWQvV3JpdGUvUmVhZFxyXG4gICAgXCJwcmVVcGRhdGVcIiwgLy8gQ29tcHV0ZVxyXG4gICAgXCJ1cGRhdGVcIiwgLy8gQ29tcHV0ZVxyXG4gICAgXCJwcmVSZW5kZXJcIiwgLy8gQ29tcHV0ZVxyXG4gICAgXCJyZW5kZXJcIiwgLy8gV3JpdGVcclxuICAgIFwicG9zdFJlbmRlclwiLCAvLyBDb21wdXRlXHJcbl07XHJcblxyXG5leHBvcnQgeyBzdGVwc09yZGVyIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/order.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/render-step.mjs":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/frameloop/render-step.mjs ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createRenderStep: function() { return /* binding */ createRenderStep; }\n/* harmony export */ });\n/* harmony import */ var _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../stats/buffer.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\");\n\r\n\r\nfunction createRenderStep(runNextFrame, stepName) {\r\n /**\r\n * We create and reuse two queues, one to queue jobs for the current frame\r\n * and one for the next. We reuse to avoid triggering GC after x frames.\r\n */\r\n let thisFrame = new Set();\r\n let nextFrame = new Set();\r\n /**\r\n * Track whether we're currently processing jobs in this step. This way\r\n * we can decide whether to schedule new jobs for this frame or next.\r\n */\r\n let isProcessing = false;\r\n let flushNextFrame = false;\r\n /**\r\n * A set of processes which were marked keepAlive when scheduled.\r\n */\r\n const toKeepAlive = new WeakSet();\r\n let latestFrameData = {\r\n delta: 0.0,\r\n timestamp: 0.0,\r\n isProcessing: false,\r\n };\r\n let numCalls = 0;\r\n function triggerCallback(callback) {\r\n if (toKeepAlive.has(callback)) {\r\n step.schedule(callback);\r\n runNextFrame();\r\n }\r\n numCalls++;\r\n callback(latestFrameData);\r\n }\r\n const step = {\r\n /**\r\n * Schedule a process to run on the next frame.\r\n */\r\n schedule: (callback, keepAlive = false, immediate = false) => {\r\n const addToCurrentFrame = immediate && isProcessing;\r\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\r\n if (keepAlive)\r\n toKeepAlive.add(callback);\r\n if (!queue.has(callback))\r\n queue.add(callback);\r\n return callback;\r\n },\r\n /**\r\n * Cancel the provided callback from running on the next frame.\r\n */\r\n cancel: (callback) => {\r\n nextFrame.delete(callback);\r\n toKeepAlive.delete(callback);\r\n },\r\n /**\r\n * Execute all schedule callbacks.\r\n */\r\n process: (frameData) => {\r\n latestFrameData = frameData;\r\n /**\r\n * If we're already processing we've probably been triggered by a flushSync\r\n * inside an existing process. Instead of executing, mark flushNextFrame\r\n * as true and ensure we flush the following frame at the end of this one.\r\n */\r\n if (isProcessing) {\r\n flushNextFrame = true;\r\n return;\r\n }\r\n isProcessing = true;\r\n [thisFrame, nextFrame] = [nextFrame, thisFrame];\r\n // Execute this frame\r\n thisFrame.forEach(triggerCallback);\r\n /**\r\n * If we're recording stats then\r\n */\r\n if (stepName && _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_0__.statsBuffer.value) {\r\n _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_0__.statsBuffer.value.frameloop[stepName].push(numCalls);\r\n }\r\n numCalls = 0;\r\n // Clear the frame so no callbacks remain. This is to avoid\r\n // memory leaks should this render step not run for a while.\r\n thisFrame.clear();\r\n isProcessing = false;\r\n if (flushNextFrame) {\r\n flushNextFrame = false;\r\n step.process(frameData);\r\n }\r\n },\r\n };\r\n return step;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL3JlbmRlci1zdGVwLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFrRDtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsMERBQVc7QUFDdkMsZ0JBQWdCLDBEQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQzRCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL3JlbmRlci1zdGVwLm1qcz9lYTMzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0YXRzQnVmZmVyIH0gZnJvbSAnLi4vc3RhdHMvYnVmZmVyLm1qcyc7XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVSZW5kZXJTdGVwKHJ1bk5leHRGcmFtZSwgc3RlcE5hbWUpIHtcclxuICAgIC8qKlxyXG4gICAgICogV2UgY3JlYXRlIGFuZCByZXVzZSB0d28gcXVldWVzLCBvbmUgdG8gcXVldWUgam9icyBmb3IgdGhlIGN1cnJlbnQgZnJhbWVcclxuICAgICAqIGFuZCBvbmUgZm9yIHRoZSBuZXh0LiBXZSByZXVzZSB0byBhdm9pZCB0cmlnZ2VyaW5nIEdDIGFmdGVyIHggZnJhbWVzLlxyXG4gICAgICovXHJcbiAgICBsZXQgdGhpc0ZyYW1lID0gbmV3IFNldCgpO1xyXG4gICAgbGV0IG5leHRGcmFtZSA9IG5ldyBTZXQoKTtcclxuICAgIC8qKlxyXG4gICAgICogVHJhY2sgd2hldGhlciB3ZSdyZSBjdXJyZW50bHkgcHJvY2Vzc2luZyBqb2JzIGluIHRoaXMgc3RlcC4gVGhpcyB3YXlcclxuICAgICAqIHdlIGNhbiBkZWNpZGUgd2hldGhlciB0byBzY2hlZHVsZSBuZXcgam9icyBmb3IgdGhpcyBmcmFtZSBvciBuZXh0LlxyXG4gICAgICovXHJcbiAgICBsZXQgaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgICBsZXQgZmx1c2hOZXh0RnJhbWUgPSBmYWxzZTtcclxuICAgIC8qKlxyXG4gICAgICogQSBzZXQgb2YgcHJvY2Vzc2VzIHdoaWNoIHdlcmUgbWFya2VkIGtlZXBBbGl2ZSB3aGVuIHNjaGVkdWxlZC5cclxuICAgICAqL1xyXG4gICAgY29uc3QgdG9LZWVwQWxpdmUgPSBuZXcgV2Vha1NldCgpO1xyXG4gICAgbGV0IGxhdGVzdEZyYW1lRGF0YSA9IHtcclxuICAgICAgICBkZWx0YTogMC4wLFxyXG4gICAgICAgIHRpbWVzdGFtcDogMC4wLFxyXG4gICAgICAgIGlzUHJvY2Vzc2luZzogZmFsc2UsXHJcbiAgICB9O1xyXG4gICAgbGV0IG51bUNhbGxzID0gMDtcclxuICAgIGZ1bmN0aW9uIHRyaWdnZXJDYWxsYmFjayhjYWxsYmFjaykge1xyXG4gICAgICAgIGlmICh0b0tlZXBBbGl2ZS5oYXMoY2FsbGJhY2spKSB7XHJcbiAgICAgICAgICAgIHN0ZXAuc2NoZWR1bGUoY2FsbGJhY2spO1xyXG4gICAgICAgICAgICBydW5OZXh0RnJhbWUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbnVtQ2FsbHMrKztcclxuICAgICAgICBjYWxsYmFjayhsYXRlc3RGcmFtZURhdGEpO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3RlcCA9IHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBTY2hlZHVsZSBhIHByb2Nlc3MgdG8gcnVuIG9uIHRoZSBuZXh0IGZyYW1lLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHNjaGVkdWxlOiAoY2FsbGJhY2ssIGtlZXBBbGl2ZSA9IGZhbHNlLCBpbW1lZGlhdGUgPSBmYWxzZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBhZGRUb0N1cnJlbnRGcmFtZSA9IGltbWVkaWF0ZSAmJiBpc1Byb2Nlc3Npbmc7XHJcbiAgICAgICAgICAgIGNvbnN0IHF1ZXVlID0gYWRkVG9DdXJyZW50RnJhbWUgPyB0aGlzRnJhbWUgOiBuZXh0RnJhbWU7XHJcbiAgICAgICAgICAgIGlmIChrZWVwQWxpdmUpXHJcbiAgICAgICAgICAgICAgICB0b0tlZXBBbGl2ZS5hZGQoY2FsbGJhY2spO1xyXG4gICAgICAgICAgICBpZiAoIXF1ZXVlLmhhcyhjYWxsYmFjaykpXHJcbiAgICAgICAgICAgICAgICBxdWV1ZS5hZGQoY2FsbGJhY2spO1xyXG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2s7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBDYW5jZWwgdGhlIHByb3ZpZGVkIGNhbGxiYWNrIGZyb20gcnVubmluZyBvbiB0aGUgbmV4dCBmcmFtZS5cclxuICAgICAgICAgKi9cclxuICAgICAgICBjYW5jZWw6IChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgICAgICBuZXh0RnJhbWUuZGVsZXRlKGNhbGxiYWNrKTtcclxuICAgICAgICAgICAgdG9LZWVwQWxpdmUuZGVsZXRlKGNhbGxiYWNrKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEV4ZWN1dGUgYWxsIHNjaGVkdWxlIGNhbGxiYWNrcy5cclxuICAgICAgICAgKi9cclxuICAgICAgICBwcm9jZXNzOiAoZnJhbWVEYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGxhdGVzdEZyYW1lRGF0YSA9IGZyYW1lRGF0YTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIElmIHdlJ3JlIGFscmVhZHkgcHJvY2Vzc2luZyB3ZSd2ZSBwcm9iYWJseSBiZWVuIHRyaWdnZXJlZCBieSBhIGZsdXNoU3luY1xyXG4gICAgICAgICAgICAgKiBpbnNpZGUgYW4gZXhpc3RpbmcgcHJvY2Vzcy4gSW5zdGVhZCBvZiBleGVjdXRpbmcsIG1hcmsgZmx1c2hOZXh0RnJhbWVcclxuICAgICAgICAgICAgICogYXMgdHJ1ZSBhbmQgZW5zdXJlIHdlIGZsdXNoIHRoZSBmb2xsb3dpbmcgZnJhbWUgYXQgdGhlIGVuZCBvZiB0aGlzIG9uZS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmIChpc1Byb2Nlc3NpbmcpIHtcclxuICAgICAgICAgICAgICAgIGZsdXNoTmV4dEZyYW1lID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpc1Byb2Nlc3NpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICBbdGhpc0ZyYW1lLCBuZXh0RnJhbWVdID0gW25leHRGcmFtZSwgdGhpc0ZyYW1lXTtcclxuICAgICAgICAgICAgLy8gRXhlY3V0ZSB0aGlzIGZyYW1lXHJcbiAgICAgICAgICAgIHRoaXNGcmFtZS5mb3JFYWNoKHRyaWdnZXJDYWxsYmFjayk7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB3ZSdyZSByZWNvcmRpbmcgc3RhdHMgdGhlblxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKHN0ZXBOYW1lICYmIHN0YXRzQnVmZmVyLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBzdGF0c0J1ZmZlci52YWx1ZS5mcmFtZWxvb3Bbc3RlcE5hbWVdLnB1c2gobnVtQ2FsbHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG51bUNhbGxzID0gMDtcclxuICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIGZyYW1lIHNvIG5vIGNhbGxiYWNrcyByZW1haW4uIFRoaXMgaXMgdG8gYXZvaWRcclxuICAgICAgICAgICAgLy8gbWVtb3J5IGxlYWtzIHNob3VsZCB0aGlzIHJlbmRlciBzdGVwIG5vdCBydW4gZm9yIGEgd2hpbGUuXHJcbiAgICAgICAgICAgIHRoaXNGcmFtZS5jbGVhcigpO1xyXG4gICAgICAgICAgICBpc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKGZsdXNoTmV4dEZyYW1lKSB7XHJcbiAgICAgICAgICAgICAgICBmbHVzaE5leHRGcmFtZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgc3RlcC5wcm9jZXNzKGZyYW1lRGF0YSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgfTtcclxuICAgIHJldHVybiBzdGVwO1xyXG59XHJcblxyXG5leHBvcnQgeyBjcmVhdGVSZW5kZXJTdGVwIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/render-step.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ time: function() { return /* binding */ time; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _frame_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\r\n\r\n\r\nlet now;\r\nfunction clearTime() {\r\n now = undefined;\r\n}\r\n/**\r\n * An eventloop-synchronous alternative to performance.now().\r\n *\r\n * Ensures that time measurements remain consistent within a synchronous context.\r\n * Usually calling performance.now() twice within the same synchronous context\r\n * will return different values which isn't useful for animations when we're usually\r\n * trying to sync animations to the same frame.\r\n */\r\nconst time = {\r\n now: () => {\r\n if (now === undefined) {\r\n time.set(_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.isProcessing || motion_utils__WEBPACK_IMPORTED_MODULE_1__.MotionGlobalConfig.useManualTiming\r\n ? _frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.timestamp\r\n : performance.now());\r\n }\r\n return now;\r\n },\r\n set: (newTime) => {\r\n now = newTime;\r\n queueMicrotask(clearTime);\r\n },\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL3N5bmMtdGltZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWtEO0FBQ1Y7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsaURBQVMsaUJBQWlCLDREQUFrQjtBQUNqRSxrQkFBa0IsaURBQVM7QUFDM0I7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ2dCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL3N5bmMtdGltZS5tanM/N2U3MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb3Rpb25HbG9iYWxDb25maWcgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBmcmFtZURhdGEgfSBmcm9tICcuL2ZyYW1lLm1qcyc7XHJcblxyXG5sZXQgbm93O1xyXG5mdW5jdGlvbiBjbGVhclRpbWUoKSB7XHJcbiAgICBub3cgPSB1bmRlZmluZWQ7XHJcbn1cclxuLyoqXHJcbiAqIEFuIGV2ZW50bG9vcC1zeW5jaHJvbm91cyBhbHRlcm5hdGl2ZSB0byBwZXJmb3JtYW5jZS5ub3coKS5cclxuICpcclxuICogRW5zdXJlcyB0aGF0IHRpbWUgbWVhc3VyZW1lbnRzIHJlbWFpbiBjb25zaXN0ZW50IHdpdGhpbiBhIHN5bmNocm9ub3VzIGNvbnRleHQuXHJcbiAqIFVzdWFsbHkgY2FsbGluZyBwZXJmb3JtYW5jZS5ub3coKSB0d2ljZSB3aXRoaW4gdGhlIHNhbWUgc3luY2hyb25vdXMgY29udGV4dFxyXG4gKiB3aWxsIHJldHVybiBkaWZmZXJlbnQgdmFsdWVzIHdoaWNoIGlzbid0IHVzZWZ1bCBmb3IgYW5pbWF0aW9ucyB3aGVuIHdlJ3JlIHVzdWFsbHlcclxuICogdHJ5aW5nIHRvIHN5bmMgYW5pbWF0aW9ucyB0byB0aGUgc2FtZSBmcmFtZS5cclxuICovXHJcbmNvbnN0IHRpbWUgPSB7XHJcbiAgICBub3c6ICgpID0+IHtcclxuICAgICAgICBpZiAobm93ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGltZS5zZXQoZnJhbWVEYXRhLmlzUHJvY2Vzc2luZyB8fCBNb3Rpb25HbG9iYWxDb25maWcudXNlTWFudWFsVGltaW5nXHJcbiAgICAgICAgICAgICAgICA/IGZyYW1lRGF0YS50aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgIDogcGVyZm9ybWFuY2Uubm93KCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbm93O1xyXG4gICAgfSxcclxuICAgIHNldDogKG5ld1RpbWUpID0+IHtcclxuICAgICAgICBub3cgPSBuZXdUaW1lO1xyXG4gICAgICAgIHF1ZXVlTWljcm90YXNrKGNsZWFyVGltZSk7XHJcbiAgICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IHsgdGltZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isDragActive: function() { return /* binding */ isDragActive; },\n/* harmony export */ isDragging: function() { return /* binding */ isDragging; }\n/* harmony export */ });\nconst isDragging = {\r\n x: false,\r\n y: false,\r\n};\r\nfunction isDragActive() {\r\n return isDragging.x || isDragging.y;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9zdGF0ZS9pcy1hY3RpdmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNvQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvc3RhdGUvaXMtYWN0aXZlLm1qcz8xNmFjIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzRHJhZ2dpbmcgPSB7XHJcbiAgICB4OiBmYWxzZSxcclxuICAgIHk6IGZhbHNlLFxyXG59O1xyXG5mdW5jdGlvbiBpc0RyYWdBY3RpdmUoKSB7XHJcbiAgICByZXR1cm4gaXNEcmFnZ2luZy54IHx8IGlzRHJhZ2dpbmcueTtcclxufVxyXG5cclxuZXhwb3J0IHsgaXNEcmFnQWN0aXZlLCBpc0RyYWdnaW5nIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setDragLock: function() { return /* binding */ setDragLock; }\n/* harmony export */ });\n/* harmony import */ var _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-active.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\");\n\r\n\r\nfunction setDragLock(axis) {\r\n if (axis === \"x\" || axis === \"y\") {\r\n if (_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging[axis]) {\r\n return null;\r\n }\r\n else {\r\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging[axis] = true;\r\n return () => {\r\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging[axis] = false;\r\n };\r\n }\r\n }\r\n else {\r\n if (_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.x || _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.y) {\r\n return null;\r\n }\r\n else {\r\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.x = _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.y = true;\r\n return () => {\r\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.x = _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.y = false;\r\n };\r\n }\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9zdGF0ZS9zZXQtYWN0aXZlLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE2QztBQUM3QztBQUNBO0FBQ0E7QUFDQSxZQUFZLHNEQUFVO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBLFlBQVksc0RBQVU7QUFDdEI7QUFDQSxnQkFBZ0Isc0RBQVU7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHNEQUFVLE1BQU0sc0RBQVU7QUFDdEM7QUFDQTtBQUNBO0FBQ0EsWUFBWSxzREFBVSxLQUFLLHNEQUFVO0FBQ3JDO0FBQ0EsZ0JBQWdCLHNEQUFVLEtBQUssc0RBQVU7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUN1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvc3RhdGUvc2V0LWFjdGl2ZS5tanM/MTYzOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0RyYWdnaW5nIH0gZnJvbSAnLi9pcy1hY3RpdmUubWpzJztcclxuXHJcbmZ1bmN0aW9uIHNldERyYWdMb2NrKGF4aXMpIHtcclxuICAgIGlmIChheGlzID09PSBcInhcIiB8fCBheGlzID09PSBcInlcIikge1xyXG4gICAgICAgIGlmIChpc0RyYWdnaW5nW2F4aXNdKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaXNEcmFnZ2luZ1theGlzXSA9IHRydWU7XHJcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpc0RyYWdnaW5nW2F4aXNdID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKGlzRHJhZ2dpbmcueCB8fCBpc0RyYWdnaW5nLnkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpc0RyYWdnaW5nLnggPSBpc0RyYWdnaW5nLnkgPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaXNEcmFnZ2luZy54ID0gaXNEcmFnZ2luZy55ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgeyBzZXREcmFnTG9jayB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/hover.mjs":
|
||
/*!************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/gestures/hover.mjs ***!
|
||
\************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hover: function() { return /* binding */ hover; }\n/* harmony export */ });\n/* harmony import */ var _drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./drag/state/is-active.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\");\n/* harmony import */ var _utils_setup_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/setup.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs\");\n\r\n\r\n\r\nfunction isValidHover(event) {\r\n return !(event.pointerType === \"touch\" || (0,_drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragActive)());\r\n}\r\n/**\r\n * Create a hover gesture. hover() is different to .addEventListener(\"pointerenter\")\r\n * in that it has an easier syntax, filters out polyfilled touch events, interoperates\r\n * with drag gestures, and automatically removes the \"pointerennd\" event listener when the hover ends.\r\n *\r\n * @public\r\n */\r\nfunction hover(elementOrSelector, onHoverStart, options = {}) {\r\n const [elements, eventOptions, cancel] = (0,_utils_setup_mjs__WEBPACK_IMPORTED_MODULE_1__.setupGesture)(elementOrSelector, options);\r\n const onPointerEnter = (enterEvent) => {\r\n if (!isValidHover(enterEvent))\r\n return;\r\n const { target } = enterEvent;\r\n const onHoverEnd = onHoverStart(target, enterEvent);\r\n if (typeof onHoverEnd !== \"function\" || !target)\r\n return;\r\n const onPointerLeave = (leaveEvent) => {\r\n if (!isValidHover(leaveEvent))\r\n return;\r\n onHoverEnd(leaveEvent);\r\n target.removeEventListener(\"pointerleave\", onPointerLeave);\r\n };\r\n target.addEventListener(\"pointerleave\", onPointerLeave, eventOptions);\r\n };\r\n elements.forEach((element) => {\r\n element.addEventListener(\"pointerenter\", onPointerEnter, eventOptions);\r\n });\r\n return cancel;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvaG92ZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUEwRDtBQUNUO0FBQ2pEO0FBQ0E7QUFDQSw4Q0FBOEMsdUVBQVk7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDREQUE0RDtBQUM1RCw2Q0FBNkMsOERBQVk7QUFDekQ7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFNBQVM7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ2lCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvaG92ZXIubWpzP2EwYzQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEcmFnQWN0aXZlIH0gZnJvbSAnLi9kcmFnL3N0YXRlL2lzLWFjdGl2ZS5tanMnO1xyXG5pbXBvcnQgeyBzZXR1cEdlc3R1cmUgfSBmcm9tICcuL3V0aWxzL3NldHVwLm1qcyc7XHJcblxyXG5mdW5jdGlvbiBpc1ZhbGlkSG92ZXIoZXZlbnQpIHtcclxuICAgIHJldHVybiAhKGV2ZW50LnBvaW50ZXJUeXBlID09PSBcInRvdWNoXCIgfHwgaXNEcmFnQWN0aXZlKCkpO1xyXG59XHJcbi8qKlxyXG4gKiBDcmVhdGUgYSBob3ZlciBnZXN0dXJlLiBob3ZlcigpIGlzIGRpZmZlcmVudCB0byAuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJlbnRlclwiKVxyXG4gKiBpbiB0aGF0IGl0IGhhcyBhbiBlYXNpZXIgc3ludGF4LCBmaWx0ZXJzIG91dCBwb2x5ZmlsbGVkIHRvdWNoIGV2ZW50cywgaW50ZXJvcGVyYXRlc1xyXG4gKiB3aXRoIGRyYWcgZ2VzdHVyZXMsIGFuZCBhdXRvbWF0aWNhbGx5IHJlbW92ZXMgdGhlIFwicG9pbnRlcmVubmRcIiBldmVudCBsaXN0ZW5lciB3aGVuIHRoZSBob3ZlciBlbmRzLlxyXG4gKlxyXG4gKiBAcHVibGljXHJcbiAqL1xyXG5mdW5jdGlvbiBob3ZlcihlbGVtZW50T3JTZWxlY3Rvciwgb25Ib3ZlclN0YXJ0LCBvcHRpb25zID0ge30pIHtcclxuICAgIGNvbnN0IFtlbGVtZW50cywgZXZlbnRPcHRpb25zLCBjYW5jZWxdID0gc2V0dXBHZXN0dXJlKGVsZW1lbnRPclNlbGVjdG9yLCBvcHRpb25zKTtcclxuICAgIGNvbnN0IG9uUG9pbnRlckVudGVyID0gKGVudGVyRXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoIWlzVmFsaWRIb3ZlcihlbnRlckV2ZW50KSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBlbnRlckV2ZW50O1xyXG4gICAgICAgIGNvbnN0IG9uSG92ZXJFbmQgPSBvbkhvdmVyU3RhcnQodGFyZ2V0LCBlbnRlckV2ZW50KTtcclxuICAgICAgICBpZiAodHlwZW9mIG9uSG92ZXJFbmQgIT09IFwiZnVuY3Rpb25cIiB8fCAhdGFyZ2V0KVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgY29uc3Qgb25Qb2ludGVyTGVhdmUgPSAobGVhdmVFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWlzVmFsaWRIb3ZlcihsZWF2ZUV2ZW50KSlcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgb25Ib3ZlckVuZChsZWF2ZUV2ZW50KTtcclxuICAgICAgICAgICAgdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVybGVhdmVcIiwgb25Qb2ludGVyTGVhdmUpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVybGVhdmVcIiwgb25Qb2ludGVyTGVhdmUsIGV2ZW50T3B0aW9ucyk7XHJcbiAgICB9O1xyXG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJlbnRlclwiLCBvblBvaW50ZXJFbnRlciwgZXZlbnRPcHRpb25zKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGNhbmNlbDtcclxufVxyXG5cclxuZXhwb3J0IHsgaG92ZXIgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/hover.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/index.mjs":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/gestures/press/index.mjs ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ press: function() { return /* binding */ press; }\n/* harmony export */ });\n/* harmony import */ var _utils_is_html_element_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/is-html-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs\");\n/* harmony import */ var _drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../drag/state/is-active.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\");\n/* harmony import */ var _utils_is_node_or_child_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/is-node-or-child.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs\");\n/* harmony import */ var _utils_is_primary_pointer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/is-primary-pointer.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\");\n/* harmony import */ var _utils_setup_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/setup.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs\");\n/* harmony import */ var _utils_is_keyboard_accessible_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/is-keyboard-accessible.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs\");\n/* harmony import */ var _utils_keyboard_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/keyboard.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs\");\n/* harmony import */ var _utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/state.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Filter out events that are not primary pointer events, or are triggering\r\n * while a Motion gesture is active.\r\n */\r\nfunction isValidPressEvent(event) {\r\n return (0,_utils_is_primary_pointer_mjs__WEBPACK_IMPORTED_MODULE_0__.isPrimaryPointer)(event) && !(0,_drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_1__.isDragActive)();\r\n}\r\n/**\r\n * Create a press gesture.\r\n *\r\n * Press is different to `\"pointerdown\"`, `\"pointerup\"` in that it\r\n * automatically filters out secondary pointer events like right\r\n * click and multitouch.\r\n *\r\n * It also adds accessibility support for keyboards, where\r\n * an element with a press gesture will receive focus and\r\n * trigger on Enter `\"keydown\"` and `\"keyup\"` events.\r\n *\r\n * This is different to a browser's `\"click\"` event, which does\r\n * respond to keyboards but only for the `\"click\"` itself, rather\r\n * than the press start and end/cancel. The element also needs\r\n * to be focusable for this to work, whereas a press gesture will\r\n * make an element focusable by default.\r\n *\r\n * @public\r\n */\r\nfunction press(targetOrSelector, onPressStart, options = {}) {\r\n const [targets, eventOptions, cancelEvents] = (0,_utils_setup_mjs__WEBPACK_IMPORTED_MODULE_2__.setupGesture)(targetOrSelector, options);\r\n const startPress = (startEvent) => {\r\n const target = startEvent.currentTarget;\r\n if (!isValidPressEvent(startEvent))\r\n return;\r\n _utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__.isPressing.add(target);\r\n const onPressEnd = onPressStart(target, startEvent);\r\n const onPointerEnd = (endEvent, success) => {\r\n window.removeEventListener(\"pointerup\", onPointerUp);\r\n window.removeEventListener(\"pointercancel\", onPointerCancel);\r\n if (_utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__.isPressing.has(target)) {\r\n _utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__.isPressing.delete(target);\r\n }\r\n if (!isValidPressEvent(endEvent)) {\r\n return;\r\n }\r\n if (typeof onPressEnd === \"function\") {\r\n onPressEnd(endEvent, { success });\r\n }\r\n };\r\n const onPointerUp = (upEvent) => {\r\n onPointerEnd(upEvent, target === window ||\r\n target === document ||\r\n options.useGlobalTarget ||\r\n (0,_utils_is_node_or_child_mjs__WEBPACK_IMPORTED_MODULE_4__.isNodeOrChild)(target, upEvent.target));\r\n };\r\n const onPointerCancel = (cancelEvent) => {\r\n onPointerEnd(cancelEvent, false);\r\n };\r\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\r\n window.addEventListener(\"pointercancel\", onPointerCancel, eventOptions);\r\n };\r\n targets.forEach((target) => {\r\n const pointerDownTarget = options.useGlobalTarget ? window : target;\r\n pointerDownTarget.addEventListener(\"pointerdown\", startPress, eventOptions);\r\n if ((0,_utils_is_html_element_mjs__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement)(target)) {\r\n target.addEventListener(\"focus\", (event) => (0,_utils_keyboard_mjs__WEBPACK_IMPORTED_MODULE_6__.enableKeyboardPress)(event, eventOptions));\r\n if (!(0,_utils_is_keyboard_accessible_mjs__WEBPACK_IMPORTED_MODULE_7__.isElementKeyboardAccessible)(target) &&\r\n !target.hasAttribute(\"tabindex\")) {\r\n target.tabIndex = 0;\r\n }\r\n }\r\n });\r\n return cancelEvents;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFnRTtBQUNMO0FBQ0c7QUFDSztBQUNqQjtBQUMrQjtBQUN0QjtBQUNaO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsK0VBQWdCLFlBQVksdUVBQVk7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRDtBQUMzRCxrREFBa0QsOERBQVk7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHdEQUFVO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHdEQUFVO0FBQzFCLGdCQUFnQix3REFBVTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLFNBQVM7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDBFQUFhO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx5RUFBYTtBQUN6Qix3REFBd0Qsd0VBQW1CO0FBQzNFLGlCQUFpQiw4RkFBMkI7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ2lCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvaW5kZXgubWpzP2E1NTciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL2lzLWh0bWwtZWxlbWVudC5tanMnO1xyXG5pbXBvcnQgeyBpc0RyYWdBY3RpdmUgfSBmcm9tICcuLi9kcmFnL3N0YXRlL2lzLWFjdGl2ZS5tanMnO1xyXG5pbXBvcnQgeyBpc05vZGVPckNoaWxkIH0gZnJvbSAnLi4vdXRpbHMvaXMtbm9kZS1vci1jaGlsZC5tanMnO1xyXG5pbXBvcnQgeyBpc1ByaW1hcnlQb2ludGVyIH0gZnJvbSAnLi4vdXRpbHMvaXMtcHJpbWFyeS1wb2ludGVyLm1qcyc7XHJcbmltcG9ydCB7IHNldHVwR2VzdHVyZSB9IGZyb20gJy4uL3V0aWxzL3NldHVwLm1qcyc7XHJcbmltcG9ydCB7IGlzRWxlbWVudEtleWJvYXJkQWNjZXNzaWJsZSB9IGZyb20gJy4vdXRpbHMvaXMta2V5Ym9hcmQtYWNjZXNzaWJsZS5tanMnO1xyXG5pbXBvcnQgeyBlbmFibGVLZXlib2FyZFByZXNzIH0gZnJvbSAnLi91dGlscy9rZXlib2FyZC5tanMnO1xyXG5pbXBvcnQgeyBpc1ByZXNzaW5nIH0gZnJvbSAnLi91dGlscy9zdGF0ZS5tanMnO1xyXG5cclxuLyoqXHJcbiAqIEZpbHRlciBvdXQgZXZlbnRzIHRoYXQgYXJlIG5vdCBwcmltYXJ5IHBvaW50ZXIgZXZlbnRzLCBvciBhcmUgdHJpZ2dlcmluZ1xyXG4gKiB3aGlsZSBhIE1vdGlvbiBnZXN0dXJlIGlzIGFjdGl2ZS5cclxuICovXHJcbmZ1bmN0aW9uIGlzVmFsaWRQcmVzc0V2ZW50KGV2ZW50KSB7XHJcbiAgICByZXR1cm4gaXNQcmltYXJ5UG9pbnRlcihldmVudCkgJiYgIWlzRHJhZ0FjdGl2ZSgpO1xyXG59XHJcbi8qKlxyXG4gKiBDcmVhdGUgYSBwcmVzcyBnZXN0dXJlLlxyXG4gKlxyXG4gKiBQcmVzcyBpcyBkaWZmZXJlbnQgdG8gYFwicG9pbnRlcmRvd25cImAsIGBcInBvaW50ZXJ1cFwiYCBpbiB0aGF0IGl0XHJcbiAqIGF1dG9tYXRpY2FsbHkgZmlsdGVycyBvdXQgc2Vjb25kYXJ5IHBvaW50ZXIgZXZlbnRzIGxpa2UgcmlnaHRcclxuICogY2xpY2sgYW5kIG11bHRpdG91Y2guXHJcbiAqXHJcbiAqIEl0IGFsc28gYWRkcyBhY2Nlc3NpYmlsaXR5IHN1cHBvcnQgZm9yIGtleWJvYXJkcywgd2hlcmVcclxuICogYW4gZWxlbWVudCB3aXRoIGEgcHJlc3MgZ2VzdHVyZSB3aWxsIHJlY2VpdmUgZm9jdXMgYW5kXHJcbiAqICB0cmlnZ2VyIG9uIEVudGVyIGBcImtleWRvd25cImAgYW5kIGBcImtleXVwXCJgIGV2ZW50cy5cclxuICpcclxuICogVGhpcyBpcyBkaWZmZXJlbnQgdG8gYSBicm93c2VyJ3MgYFwiY2xpY2tcImAgZXZlbnQsIHdoaWNoIGRvZXNcclxuICogcmVzcG9uZCB0byBrZXlib2FyZHMgYnV0IG9ubHkgZm9yIHRoZSBgXCJjbGlja1wiYCBpdHNlbGYsIHJhdGhlclxyXG4gKiB0aGFuIHRoZSBwcmVzcyBzdGFydCBhbmQgZW5kL2NhbmNlbC4gVGhlIGVsZW1lbnQgYWxzbyBuZWVkc1xyXG4gKiB0byBiZSBmb2N1c2FibGUgZm9yIHRoaXMgdG8gd29yaywgd2hlcmVhcyBhIHByZXNzIGdlc3R1cmUgd2lsbFxyXG4gKiBtYWtlIGFuIGVsZW1lbnQgZm9jdXNhYmxlIGJ5IGRlZmF1bHQuXHJcbiAqXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbmZ1bmN0aW9uIHByZXNzKHRhcmdldE9yU2VsZWN0b3IsIG9uUHJlc3NTdGFydCwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICBjb25zdCBbdGFyZ2V0cywgZXZlbnRPcHRpb25zLCBjYW5jZWxFdmVudHNdID0gc2V0dXBHZXN0dXJlKHRhcmdldE9yU2VsZWN0b3IsIG9wdGlvbnMpO1xyXG4gICAgY29uc3Qgc3RhcnRQcmVzcyA9IChzdGFydEV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gc3RhcnRFdmVudC5jdXJyZW50VGFyZ2V0O1xyXG4gICAgICAgIGlmICghaXNWYWxpZFByZXNzRXZlbnQoc3RhcnRFdmVudCkpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBpc1ByZXNzaW5nLmFkZCh0YXJnZXQpO1xyXG4gICAgICAgIGNvbnN0IG9uUHJlc3NFbmQgPSBvblByZXNzU3RhcnQodGFyZ2V0LCBzdGFydEV2ZW50KTtcclxuICAgICAgICBjb25zdCBvblBvaW50ZXJFbmQgPSAoZW5kRXZlbnQsIHN1Y2Nlc3MpID0+IHtcclxuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIiwgb25Qb2ludGVyVXApO1xyXG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJjYW5jZWxcIiwgb25Qb2ludGVyQ2FuY2VsKTtcclxuICAgICAgICAgICAgaWYgKGlzUHJlc3NpbmcuaGFzKHRhcmdldCkpIHtcclxuICAgICAgICAgICAgICAgIGlzUHJlc3NpbmcuZGVsZXRlKHRhcmdldCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkUHJlc3NFdmVudChlbmRFdmVudCkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIG9uUHJlc3NFbmQgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgICAgICAgb25QcmVzc0VuZChlbmRFdmVudCwgeyBzdWNjZXNzIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBvblBvaW50ZXJVcCA9ICh1cEV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIG9uUG9pbnRlckVuZCh1cEV2ZW50LCB0YXJnZXQgPT09IHdpbmRvdyB8fFxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0ID09PSBkb2N1bWVudCB8fFxyXG4gICAgICAgICAgICAgICAgb3B0aW9ucy51c2VHbG9iYWxUYXJnZXQgfHxcclxuICAgICAgICAgICAgICAgIGlzTm9kZU9yQ2hpbGQodGFyZ2V0LCB1cEV2ZW50LnRhcmdldCkpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3Qgb25Qb2ludGVyQ2FuY2VsID0gKGNhbmNlbEV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIG9uUG9pbnRlckVuZChjYW5jZWxFdmVudCwgZmFsc2UpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIiwgb25Qb2ludGVyVXAsIGV2ZW50T3B0aW9ucyk7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVyY2FuY2VsXCIsIG9uUG9pbnRlckNhbmNlbCwgZXZlbnRPcHRpb25zKTtcclxuICAgIH07XHJcbiAgICB0YXJnZXRzLmZvckVhY2goKHRhcmdldCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHBvaW50ZXJEb3duVGFyZ2V0ID0gb3B0aW9ucy51c2VHbG9iYWxUYXJnZXQgPyB3aW5kb3cgOiB0YXJnZXQ7XHJcbiAgICAgICAgcG9pbnRlckRvd25UYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsIHN0YXJ0UHJlc3MsIGV2ZW50T3B0aW9ucyk7XHJcbiAgICAgICAgaWYgKGlzSFRNTEVsZW1lbnQodGFyZ2V0KSkge1xyXG4gICAgICAgICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsIChldmVudCkgPT4gZW5hYmxlS2V5Ym9hcmRQcmVzcyhldmVudCwgZXZlbnRPcHRpb25zKSk7XHJcbiAgICAgICAgICAgIGlmICghaXNFbGVtZW50S2V5Ym9hcmRBY2Nlc3NpYmxlKHRhcmdldCkgJiZcclxuICAgICAgICAgICAgICAgICF0YXJnZXQuaGFzQXR0cmlidXRlKFwidGFiaW5kZXhcIikpIHtcclxuICAgICAgICAgICAgICAgIHRhcmdldC50YWJJbmRleCA9IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBjYW5jZWxFdmVudHM7XHJcbn1cclxuXHJcbmV4cG9ydCB7IHByZXNzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs ***!
|
||
\*****************************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isElementKeyboardAccessible: function() { return /* binding */ isElementKeyboardAccessible; }\n/* harmony export */ });\nconst focusableElements = new Set([\r\n \"BUTTON\",\r\n \"INPUT\",\r\n \"SELECT\",\r\n \"TEXTAREA\",\r\n \"A\",\r\n]);\r\nfunction isElementKeyboardAccessible(element) {\r\n return (focusableElements.has(element.tagName) ||\r\n element.tabIndex !== -1);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvdXRpbHMvaXMta2V5Ym9hcmQtYWNjZXNzaWJsZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUN1QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3ByZXNzL3V0aWxzL2lzLWtleWJvYXJkLWFjY2Vzc2libGUubWpzPzEwYzAiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZm9jdXNhYmxlRWxlbWVudHMgPSBuZXcgU2V0KFtcclxuICAgIFwiQlVUVE9OXCIsXHJcbiAgICBcIklOUFVUXCIsXHJcbiAgICBcIlNFTEVDVFwiLFxyXG4gICAgXCJURVhUQVJFQVwiLFxyXG4gICAgXCJBXCIsXHJcbl0pO1xyXG5mdW5jdGlvbiBpc0VsZW1lbnRLZXlib2FyZEFjY2Vzc2libGUoZWxlbWVudCkge1xyXG4gICAgcmV0dXJuIChmb2N1c2FibGVFbGVtZW50cy5oYXMoZWxlbWVudC50YWdOYW1lKSB8fFxyXG4gICAgICAgIGVsZW1lbnQudGFiSW5kZXggIT09IC0xKTtcclxufVxyXG5cclxuZXhwb3J0IHsgaXNFbGVtZW50S2V5Ym9hcmRBY2Nlc3NpYmxlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ enableKeyboardPress: function() { return /* binding */ enableKeyboardPress; }\n/* harmony export */ });\n/* harmony import */ var _state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs\");\n\r\n\r\n/**\r\n * Filter out events that are not \"Enter\" keys.\r\n */\r\nfunction filterEvents(callback) {\r\n return (event) => {\r\n if (event.key !== \"Enter\")\r\n return;\r\n callback(event);\r\n };\r\n}\r\nfunction firePointerEvent(target, type) {\r\n target.dispatchEvent(new PointerEvent(\"pointer\" + type, { isPrimary: true, bubbles: true }));\r\n}\r\nconst enableKeyboardPress = (focusEvent, eventOptions) => {\r\n const element = focusEvent.currentTarget;\r\n if (!element)\r\n return;\r\n const handleKeydown = filterEvents(() => {\r\n if (_state_mjs__WEBPACK_IMPORTED_MODULE_0__.isPressing.has(element))\r\n return;\r\n firePointerEvent(element, \"down\");\r\n const handleKeyup = filterEvents(() => {\r\n firePointerEvent(element, \"up\");\r\n });\r\n const handleBlur = () => firePointerEvent(element, \"cancel\");\r\n element.addEventListener(\"keyup\", handleKeyup, eventOptions);\r\n element.addEventListener(\"blur\", handleBlur, eventOptions);\r\n });\r\n element.addEventListener(\"keydown\", handleKeydown, eventOptions);\r\n /**\r\n * Add an event listener that fires on blur to remove the keydown events.\r\n */\r\n element.addEventListener(\"blur\", () => element.removeEventListener(\"keydown\", handleKeydown), eventOptions);\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvdXRpbHMva2V5Ym9hcmQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RCxnQ0FBZ0M7QUFDOUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxrREFBVTtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDK0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9nZXN0dXJlcy9wcmVzcy91dGlscy9rZXlib2FyZC5tanM/NmY3YyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1ByZXNzaW5nIH0gZnJvbSAnLi9zdGF0ZS5tanMnO1xyXG5cclxuLyoqXHJcbiAqIEZpbHRlciBvdXQgZXZlbnRzIHRoYXQgYXJlIG5vdCBcIkVudGVyXCIga2V5cy5cclxuICovXHJcbmZ1bmN0aW9uIGZpbHRlckV2ZW50cyhjYWxsYmFjaykge1xyXG4gICAgcmV0dXJuIChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChldmVudC5rZXkgIT09IFwiRW50ZXJcIilcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGNhbGxiYWNrKGV2ZW50KTtcclxuICAgIH07XHJcbn1cclxuZnVuY3Rpb24gZmlyZVBvaW50ZXJFdmVudCh0YXJnZXQsIHR5cGUpIHtcclxuICAgIHRhcmdldC5kaXNwYXRjaEV2ZW50KG5ldyBQb2ludGVyRXZlbnQoXCJwb2ludGVyXCIgKyB0eXBlLCB7IGlzUHJpbWFyeTogdHJ1ZSwgYnViYmxlczogdHJ1ZSB9KSk7XHJcbn1cclxuY29uc3QgZW5hYmxlS2V5Ym9hcmRQcmVzcyA9IChmb2N1c0V2ZW50LCBldmVudE9wdGlvbnMpID0+IHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBmb2N1c0V2ZW50LmN1cnJlbnRUYXJnZXQ7XHJcbiAgICBpZiAoIWVsZW1lbnQpXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgY29uc3QgaGFuZGxlS2V5ZG93biA9IGZpbHRlckV2ZW50cygoKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzUHJlc3NpbmcuaGFzKGVsZW1lbnQpKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgZmlyZVBvaW50ZXJFdmVudChlbGVtZW50LCBcImRvd25cIik7XHJcbiAgICAgICAgY29uc3QgaGFuZGxlS2V5dXAgPSBmaWx0ZXJFdmVudHMoKCkgPT4ge1xyXG4gICAgICAgICAgICBmaXJlUG9pbnRlckV2ZW50KGVsZW1lbnQsIFwidXBcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgaGFuZGxlQmx1ciA9ICgpID0+IGZpcmVQb2ludGVyRXZlbnQoZWxlbWVudCwgXCJjYW5jZWxcIik7XHJcbiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5dXBcIiwgaGFuZGxlS2V5dXAsIGV2ZW50T3B0aW9ucyk7XHJcbiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwiYmx1clwiLCBoYW5kbGVCbHVyLCBldmVudE9wdGlvbnMpO1xyXG4gICAgfSk7XHJcbiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGhhbmRsZUtleWRvd24sIGV2ZW50T3B0aW9ucyk7XHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhbiBldmVudCBsaXN0ZW5lciB0aGF0IGZpcmVzIG9uIGJsdXIgdG8gcmVtb3ZlIHRoZSBrZXlkb3duIGV2ZW50cy5cclxuICAgICAqL1xyXG4gICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwiYmx1clwiLCAoKSA9PiBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGhhbmRsZUtleWRvd24pLCBldmVudE9wdGlvbnMpO1xyXG59O1xyXG5cclxuZXhwb3J0IHsgZW5hYmxlS2V5Ym9hcmRQcmVzcyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isPressing: function() { return /* binding */ isPressing; }\n/* harmony export */ });\nconst isPressing = new WeakSet();\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvdXRpbHMvc3RhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ3NCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvdXRpbHMvc3RhdGUubWpzPzhkMzEiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNQcmVzc2luZyA9IG5ldyBXZWFrU2V0KCk7XHJcblxyXG5leHBvcnQgeyBpc1ByZXNzaW5nIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs ***!
|
||
\*****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNodeOrChild: function() { return /* binding */ isNodeOrChild; }\n/* harmony export */ });\n/**\r\n * Recursively traverse up the tree to check whether the provided child node\r\n * is the parent or a descendant of it.\r\n *\r\n * @param parent - Element to find\r\n * @param child - Element to test against parent\r\n */\r\nconst isNodeOrChild = (parent, child) => {\r\n if (!child) {\r\n return false;\r\n }\r\n else if (parent === child) {\r\n return true;\r\n }\r\n else {\r\n return isNodeOrChild(parent, child.parentElement);\r\n }\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvdXRpbHMvaXMtbm9kZS1vci1jaGlsZC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3lCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvdXRpbHMvaXMtbm9kZS1vci1jaGlsZC5tanM/Nzc4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogUmVjdXJzaXZlbHkgdHJhdmVyc2UgdXAgdGhlIHRyZWUgdG8gY2hlY2sgd2hldGhlciB0aGUgcHJvdmlkZWQgY2hpbGQgbm9kZVxyXG4gKiBpcyB0aGUgcGFyZW50IG9yIGEgZGVzY2VuZGFudCBvZiBpdC5cclxuICpcclxuICogQHBhcmFtIHBhcmVudCAtIEVsZW1lbnQgdG8gZmluZFxyXG4gKiBAcGFyYW0gY2hpbGQgLSBFbGVtZW50IHRvIHRlc3QgYWdhaW5zdCBwYXJlbnRcclxuICovXHJcbmNvbnN0IGlzTm9kZU9yQ2hpbGQgPSAocGFyZW50LCBjaGlsZCkgPT4ge1xyXG4gICAgaWYgKCFjaGlsZCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHBhcmVudCA9PT0gY2hpbGQpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBpc05vZGVPckNoaWxkKHBhcmVudCwgY2hpbGQucGFyZW50RWxlbWVudCk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgeyBpc05vZGVPckNoaWxkIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isPrimaryPointer: function() { return /* binding */ isPrimaryPointer; }\n/* harmony export */ });\nconst isPrimaryPointer = (event) => {\r\n if (event.pointerType === \"mouse\") {\r\n return typeof event.button !== \"number\" || event.button <= 0;\r\n }\r\n else {\r\n /**\r\n * isPrimary is true for all mice buttons, whereas every touch point\r\n * is regarded as its own input. So subsequent concurrent touch points\r\n * will be false.\r\n *\r\n * Specifically match against false here as incomplete versions of\r\n * PointerEvents in very old browser might have it set as undefined.\r\n */\r\n return event.isPrimary !== false;\r\n }\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvdXRpbHMvaXMtcHJpbWFyeS1wb2ludGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUM0QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3V0aWxzL2lzLXByaW1hcnktcG9pbnRlci5tanM/YmRjMCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc1ByaW1hcnlQb2ludGVyID0gKGV2ZW50KSA9PiB7XHJcbiAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgPT09IFwibW91c2VcIikge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgZXZlbnQuYnV0dG9uICE9PSBcIm51bWJlclwiIHx8IGV2ZW50LmJ1dHRvbiA8PSAwO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogaXNQcmltYXJ5IGlzIHRydWUgZm9yIGFsbCBtaWNlIGJ1dHRvbnMsIHdoZXJlYXMgZXZlcnkgdG91Y2ggcG9pbnRcclxuICAgICAgICAgKiBpcyByZWdhcmRlZCBhcyBpdHMgb3duIGlucHV0LiBTbyBzdWJzZXF1ZW50IGNvbmN1cnJlbnQgdG91Y2ggcG9pbnRzXHJcbiAgICAgICAgICogd2lsbCBiZSBmYWxzZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFNwZWNpZmljYWxseSBtYXRjaCBhZ2FpbnN0IGZhbHNlIGhlcmUgYXMgaW5jb21wbGV0ZSB2ZXJzaW9ucyBvZlxyXG4gICAgICAgICAqIFBvaW50ZXJFdmVudHMgaW4gdmVyeSBvbGQgYnJvd3NlciBtaWdodCBoYXZlIGl0IHNldCBhcyB1bmRlZmluZWQuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcmV0dXJuIGV2ZW50LmlzUHJpbWFyeSAhPT0gZmFsc2U7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgeyBpc1ByaW1hcnlQb2ludGVyIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setupGesture: function() { return /* binding */ setupGesture; }\n/* harmony export */ });\n/* harmony import */ var _utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/resolve-elements.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs\");\n\r\n\r\nfunction setupGesture(elementOrSelector, options) {\r\n const elements = (0,_utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveElements)(elementOrSelector);\r\n const gestureAbortController = new AbortController();\r\n const eventOptions = {\r\n passive: true,\r\n ...options,\r\n signal: gestureAbortController.signal,\r\n };\r\n const cancel = () => gestureAbortController.abort();\r\n return [elements, eventOptions, cancel];\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvdXRpbHMvc2V0dXAubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW1FO0FBQ25FO0FBQ0E7QUFDQSxxQkFBcUIsNEVBQWU7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDd0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9nZXN0dXJlcy91dGlscy9zZXR1cC5tanM/MTk0NCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlRWxlbWVudHMgfSBmcm9tICcuLi8uLi91dGlscy9yZXNvbHZlLWVsZW1lbnRzLm1qcyc7XHJcblxyXG5mdW5jdGlvbiBzZXR1cEdlc3R1cmUoZWxlbWVudE9yU2VsZWN0b3IsIG9wdGlvbnMpIHtcclxuICAgIGNvbnN0IGVsZW1lbnRzID0gcmVzb2x2ZUVsZW1lbnRzKGVsZW1lbnRPclNlbGVjdG9yKTtcclxuICAgIGNvbnN0IGdlc3R1cmVBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XHJcbiAgICBjb25zdCBldmVudE9wdGlvbnMgPSB7XHJcbiAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcclxuICAgICAgICAuLi5vcHRpb25zLFxyXG4gICAgICAgIHNpZ25hbDogZ2VzdHVyZUFib3J0Q29udHJvbGxlci5zaWduYWwsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgY2FuY2VsID0gKCkgPT4gZ2VzdHVyZUFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xyXG4gICAgcmV0dXJuIFtlbGVtZW50cywgZXZlbnRPcHRpb25zLCBjYW5jZWxdO1xyXG59XHJcblxyXG5leHBvcnQgeyBzZXR1cEdlc3R1cmUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isCSSVar: function() { return /* binding */ isCSSVar; }\n/* harmony export */ });\nconst isCSSVar = (name) => name.startsWith(\"--\");\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9pcy1jc3MtdmFyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9kb20vaXMtY3NzLXZhci5tanM/NmRjYiJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc0NTU1ZhciA9IChuYW1lKSA9PiBuYW1lLnN0YXJ0c1dpdGgoXCItLVwiKTtcclxuXHJcbmV4cG9ydCB7IGlzQ1NTVmFyIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultTransformValue: function() { return /* binding */ defaultTransformValue; },\n/* harmony export */ parseValueFromTransform: function() { return /* binding */ parseValueFromTransform; },\n/* harmony export */ readTransformValue: function() { return /* binding */ readTransformValue; }\n/* harmony export */ });\nconst radToDeg = (rad) => (rad * 180) / Math.PI;\r\nconst rotate = (v) => {\r\n const angle = radToDeg(Math.atan2(v[1], v[0]));\r\n return rebaseAngle(angle);\r\n};\r\nconst matrix2dParsers = {\r\n x: 4,\r\n y: 5,\r\n translateX: 4,\r\n translateY: 5,\r\n scaleX: 0,\r\n scaleY: 3,\r\n scale: (v) => (Math.abs(v[0]) + Math.abs(v[3])) / 2,\r\n rotate,\r\n rotateZ: rotate,\r\n skewX: (v) => radToDeg(Math.atan(v[1])),\r\n skewY: (v) => radToDeg(Math.atan(v[2])),\r\n skew: (v) => (Math.abs(v[1]) + Math.abs(v[2])) / 2,\r\n};\r\nconst rebaseAngle = (angle) => {\r\n angle = angle % 360;\r\n if (angle < 0)\r\n angle += 360;\r\n return angle;\r\n};\r\nconst rotateZ = rotate;\r\nconst scaleX = (v) => Math.sqrt(v[0] * v[0] + v[1] * v[1]);\r\nconst scaleY = (v) => Math.sqrt(v[4] * v[4] + v[5] * v[5]);\r\nconst matrix3dParsers = {\r\n x: 12,\r\n y: 13,\r\n z: 14,\r\n translateX: 12,\r\n translateY: 13,\r\n translateZ: 14,\r\n scaleX,\r\n scaleY,\r\n scale: (v) => (scaleX(v) + scaleY(v)) / 2,\r\n rotateX: (v) => rebaseAngle(radToDeg(Math.atan2(v[6], v[5]))),\r\n rotateY: (v) => rebaseAngle(radToDeg(Math.atan2(-v[2], v[0]))),\r\n rotateZ,\r\n rotate: rotateZ,\r\n skewX: (v) => radToDeg(Math.atan(v[4])),\r\n skewY: (v) => radToDeg(Math.atan(v[1])),\r\n skew: (v) => (Math.abs(v[1]) + Math.abs(v[4])) / 2,\r\n};\r\nfunction defaultTransformValue(name) {\r\n return name.includes(\"scale\") ? 1 : 0;\r\n}\r\nfunction parseValueFromTransform(transform, name) {\r\n if (!transform || transform === \"none\") {\r\n return defaultTransformValue(name);\r\n }\r\n const matrix3dMatch = transform.match(/^matrix3d\\(([-\\d.e\\s,]+)\\)$/u);\r\n let parsers;\r\n let match;\r\n if (matrix3dMatch) {\r\n parsers = matrix3dParsers;\r\n match = matrix3dMatch;\r\n }\r\n else {\r\n const matrix2dMatch = transform.match(/^matrix\\(([-\\d.e\\s,]+)\\)$/u);\r\n parsers = matrix2dParsers;\r\n match = matrix2dMatch;\r\n }\r\n if (!match) {\r\n return defaultTransformValue(name);\r\n }\r\n const valueParser = parsers[name];\r\n const values = match[1].split(\",\").map(convertTransformToNumber);\r\n return typeof valueParser === \"function\"\r\n ? valueParser(values)\r\n : values[valueParser];\r\n}\r\nconst readTransformValue = (instance, name) => {\r\n const { transform = \"none\" } = getComputedStyle(instance);\r\n return parseValueFromTransform(transform, name);\r\n};\r\nfunction convertTransformToNumber(value) {\r\n return parseFloat(value.trim());\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9wYXJzZS10cmFuc2Zvcm0ubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVkscUJBQXFCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUM4RSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9kb20vcGFyc2UtdHJhbnNmb3JtLm1qcz83OTllIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHJhZFRvRGVnID0gKHJhZCkgPT4gKHJhZCAqIDE4MCkgLyBNYXRoLlBJO1xyXG5jb25zdCByb3RhdGUgPSAodikgPT4ge1xyXG4gICAgY29uc3QgYW5nbGUgPSByYWRUb0RlZyhNYXRoLmF0YW4yKHZbMV0sIHZbMF0pKTtcclxuICAgIHJldHVybiByZWJhc2VBbmdsZShhbmdsZSk7XHJcbn07XHJcbmNvbnN0IG1hdHJpeDJkUGFyc2VycyA9IHtcclxuICAgIHg6IDQsXHJcbiAgICB5OiA1LFxyXG4gICAgdHJhbnNsYXRlWDogNCxcclxuICAgIHRyYW5zbGF0ZVk6IDUsXHJcbiAgICBzY2FsZVg6IDAsXHJcbiAgICBzY2FsZVk6IDMsXHJcbiAgICBzY2FsZTogKHYpID0+IChNYXRoLmFicyh2WzBdKSArIE1hdGguYWJzKHZbM10pKSAvIDIsXHJcbiAgICByb3RhdGUsXHJcbiAgICByb3RhdGVaOiByb3RhdGUsXHJcbiAgICBza2V3WDogKHYpID0+IHJhZFRvRGVnKE1hdGguYXRhbih2WzFdKSksXHJcbiAgICBza2V3WTogKHYpID0+IHJhZFRvRGVnKE1hdGguYXRhbih2WzJdKSksXHJcbiAgICBza2V3OiAodikgPT4gKE1hdGguYWJzKHZbMV0pICsgTWF0aC5hYnModlsyXSkpIC8gMixcclxufTtcclxuY29uc3QgcmViYXNlQW5nbGUgPSAoYW5nbGUpID0+IHtcclxuICAgIGFuZ2xlID0gYW5nbGUgJSAzNjA7XHJcbiAgICBpZiAoYW5nbGUgPCAwKVxyXG4gICAgICAgIGFuZ2xlICs9IDM2MDtcclxuICAgIHJldHVybiBhbmdsZTtcclxufTtcclxuY29uc3Qgcm90YXRlWiA9IHJvdGF0ZTtcclxuY29uc3Qgc2NhbGVYID0gKHYpID0+IE1hdGguc3FydCh2WzBdICogdlswXSArIHZbMV0gKiB2WzFdKTtcclxuY29uc3Qgc2NhbGVZID0gKHYpID0+IE1hdGguc3FydCh2WzRdICogdls0XSArIHZbNV0gKiB2WzVdKTtcclxuY29uc3QgbWF0cml4M2RQYXJzZXJzID0ge1xyXG4gICAgeDogMTIsXHJcbiAgICB5OiAxMyxcclxuICAgIHo6IDE0LFxyXG4gICAgdHJhbnNsYXRlWDogMTIsXHJcbiAgICB0cmFuc2xhdGVZOiAxMyxcclxuICAgIHRyYW5zbGF0ZVo6IDE0LFxyXG4gICAgc2NhbGVYLFxyXG4gICAgc2NhbGVZLFxyXG4gICAgc2NhbGU6ICh2KSA9PiAoc2NhbGVYKHYpICsgc2NhbGVZKHYpKSAvIDIsXHJcbiAgICByb3RhdGVYOiAodikgPT4gcmViYXNlQW5nbGUocmFkVG9EZWcoTWF0aC5hdGFuMih2WzZdLCB2WzVdKSkpLFxyXG4gICAgcm90YXRlWTogKHYpID0+IHJlYmFzZUFuZ2xlKHJhZFRvRGVnKE1hdGguYXRhbjIoLXZbMl0sIHZbMF0pKSksXHJcbiAgICByb3RhdGVaLFxyXG4gICAgcm90YXRlOiByb3RhdGVaLFxyXG4gICAgc2tld1g6ICh2KSA9PiByYWRUb0RlZyhNYXRoLmF0YW4odls0XSkpLFxyXG4gICAgc2tld1k6ICh2KSA9PiByYWRUb0RlZyhNYXRoLmF0YW4odlsxXSkpLFxyXG4gICAgc2tldzogKHYpID0+IChNYXRoLmFicyh2WzFdKSArIE1hdGguYWJzKHZbNF0pKSAvIDIsXHJcbn07XHJcbmZ1bmN0aW9uIGRlZmF1bHRUcmFuc2Zvcm1WYWx1ZShuYW1lKSB7XHJcbiAgICByZXR1cm4gbmFtZS5pbmNsdWRlcyhcInNjYWxlXCIpID8gMSA6IDA7XHJcbn1cclxuZnVuY3Rpb24gcGFyc2VWYWx1ZUZyb21UcmFuc2Zvcm0odHJhbnNmb3JtLCBuYW1lKSB7XHJcbiAgICBpZiAoIXRyYW5zZm9ybSB8fCB0cmFuc2Zvcm0gPT09IFwibm9uZVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRUcmFuc2Zvcm1WYWx1ZShuYW1lKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1hdHJpeDNkTWF0Y2ggPSB0cmFuc2Zvcm0ubWF0Y2goL15tYXRyaXgzZFxcKChbLVxcZC5lXFxzLF0rKVxcKSQvdSk7XHJcbiAgICBsZXQgcGFyc2VycztcclxuICAgIGxldCBtYXRjaDtcclxuICAgIGlmIChtYXRyaXgzZE1hdGNoKSB7XHJcbiAgICAgICAgcGFyc2VycyA9IG1hdHJpeDNkUGFyc2VycztcclxuICAgICAgICBtYXRjaCA9IG1hdHJpeDNkTWF0Y2g7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBtYXRyaXgyZE1hdGNoID0gdHJhbnNmb3JtLm1hdGNoKC9ebWF0cml4XFwoKFstXFxkLmVcXHMsXSspXFwpJC91KTtcclxuICAgICAgICBwYXJzZXJzID0gbWF0cml4MmRQYXJzZXJzO1xyXG4gICAgICAgIG1hdGNoID0gbWF0cml4MmRNYXRjaDtcclxuICAgIH1cclxuICAgIGlmICghbWF0Y2gpIHtcclxuICAgICAgICByZXR1cm4gZGVmYXVsdFRyYW5zZm9ybVZhbHVlKG5hbWUpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdmFsdWVQYXJzZXIgPSBwYXJzZXJzW25hbWVdO1xyXG4gICAgY29uc3QgdmFsdWVzID0gbWF0Y2hbMV0uc3BsaXQoXCIsXCIpLm1hcChjb252ZXJ0VHJhbnNmb3JtVG9OdW1iZXIpO1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZVBhcnNlciA9PT0gXCJmdW5jdGlvblwiXHJcbiAgICAgICAgPyB2YWx1ZVBhcnNlcih2YWx1ZXMpXHJcbiAgICAgICAgOiB2YWx1ZXNbdmFsdWVQYXJzZXJdO1xyXG59XHJcbmNvbnN0IHJlYWRUcmFuc2Zvcm1WYWx1ZSA9IChpbnN0YW5jZSwgbmFtZSkgPT4ge1xyXG4gICAgY29uc3QgeyB0cmFuc2Zvcm0gPSBcIm5vbmVcIiB9ID0gZ2V0Q29tcHV0ZWRTdHlsZShpbnN0YW5jZSk7XHJcbiAgICByZXR1cm4gcGFyc2VWYWx1ZUZyb21UcmFuc2Zvcm0odHJhbnNmb3JtLCBuYW1lKTtcclxufTtcclxuZnVuY3Rpb24gY29udmVydFRyYW5zZm9ybVRvTnVtYmVyKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gcGFyc2VGbG9hdCh2YWx1ZS50cmltKCkpO1xyXG59XHJcblxyXG5leHBvcnQgeyBkZWZhdWx0VHJhbnNmb3JtVmFsdWUsIHBhcnNlVmFsdWVGcm9tVHJhbnNmb3JtLCByZWFkVHJhbnNmb3JtVmFsdWUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/style-set.mjs":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/render/dom/style-set.mjs ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setStyle: function() { return /* binding */ setStyle; }\n/* harmony export */ });\n/* harmony import */ var _is_css_var_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-css-var.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs\");\n\r\n\r\nfunction setStyle(element, name, value) {\r\n (0,_is_css_var_mjs__WEBPACK_IMPORTED_MODULE_0__.isCSSVar)(name)\r\n ? element.style.setProperty(name, value)\r\n : (element.style[name] = value);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9zdHlsZS1zZXQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTRDO0FBQzVDO0FBQ0E7QUFDQSxJQUFJLHlEQUFRO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvZG9tL3N0eWxlLXNldC5tanM/MzFlMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0NTU1ZhciB9IGZyb20gJy4vaXMtY3NzLXZhci5tanMnO1xyXG5cclxuZnVuY3Rpb24gc2V0U3R5bGUoZWxlbWVudCwgbmFtZSwgdmFsdWUpIHtcclxuICAgIGlzQ1NTVmFyKG5hbWUpXHJcbiAgICAgICAgPyBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KG5hbWUsIHZhbHVlKVxyXG4gICAgICAgIDogKGVsZW1lbnQuc3R5bGVbbmFtZV0gPSB2YWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IHNldFN0eWxlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/style-set.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ positionalKeys: function() { return /* binding */ positionalKeys; }\n/* harmony export */ });\n/* harmony import */ var _keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n\r\n\r\nconst positionalKeys = new Set([\r\n \"width\",\r\n \"height\",\r\n \"top\",\r\n \"left\",\r\n \"right\",\r\n \"bottom\",\r\n ..._keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformPropOrder,\r\n]);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2tleXMtcG9zaXRpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTBEO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLG1FQUFrQjtBQUN6QjtBQUNBO0FBQzBCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2tleXMtcG9zaXRpb24ubWpzPzgyNTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJhbnNmb3JtUHJvcE9yZGVyIH0gZnJvbSAnLi9rZXlzLXRyYW5zZm9ybS5tanMnO1xyXG5cclxuY29uc3QgcG9zaXRpb25hbEtleXMgPSBuZXcgU2V0KFtcclxuICAgIFwid2lkdGhcIixcclxuICAgIFwiaGVpZ2h0XCIsXHJcbiAgICBcInRvcFwiLFxyXG4gICAgXCJsZWZ0XCIsXHJcbiAgICBcInJpZ2h0XCIsXHJcbiAgICBcImJvdHRvbVwiLFxyXG4gICAgLi4udHJhbnNmb3JtUHJvcE9yZGVyLFxyXG5dKTtcclxuXHJcbmV4cG9ydCB7IHBvc2l0aW9uYWxLZXlzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ transformPropOrder: function() { return /* binding */ transformPropOrder; },\n/* harmony export */ transformProps: function() { return /* binding */ transformProps; }\n/* harmony export */ });\n/**\r\n * Generate a list of every possible transform key.\r\n */\r\nconst transformPropOrder = [\r\n \"transformPerspective\",\r\n \"x\",\r\n \"y\",\r\n \"z\",\r\n \"translateX\",\r\n \"translateY\",\r\n \"translateZ\",\r\n \"scale\",\r\n \"scaleX\",\r\n \"scaleY\",\r\n \"rotate\",\r\n \"rotateX\",\r\n \"rotateY\",\r\n \"rotateZ\",\r\n \"skew\",\r\n \"skewX\",\r\n \"skewY\",\r\n];\r\n/**\r\n * A quick lookup for transform props.\r\n */\r\nconst transformProps = /*@__PURE__*/ (() => new Set(transformPropOrder))();\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUM4QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9rZXlzLXRyYW5zZm9ybS5tanM/MjI3MSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogR2VuZXJhdGUgYSBsaXN0IG9mIGV2ZXJ5IHBvc3NpYmxlIHRyYW5zZm9ybSBrZXkuXHJcbiAqL1xyXG5jb25zdCB0cmFuc2Zvcm1Qcm9wT3JkZXIgPSBbXHJcbiAgICBcInRyYW5zZm9ybVBlcnNwZWN0aXZlXCIsXHJcbiAgICBcInhcIixcclxuICAgIFwieVwiLFxyXG4gICAgXCJ6XCIsXHJcbiAgICBcInRyYW5zbGF0ZVhcIixcclxuICAgIFwidHJhbnNsYXRlWVwiLFxyXG4gICAgXCJ0cmFuc2xhdGVaXCIsXHJcbiAgICBcInNjYWxlXCIsXHJcbiAgICBcInNjYWxlWFwiLFxyXG4gICAgXCJzY2FsZVlcIixcclxuICAgIFwicm90YXRlXCIsXHJcbiAgICBcInJvdGF0ZVhcIixcclxuICAgIFwicm90YXRlWVwiLFxyXG4gICAgXCJyb3RhdGVaXCIsXHJcbiAgICBcInNrZXdcIixcclxuICAgIFwic2tld1hcIixcclxuICAgIFwic2tld1lcIixcclxuXTtcclxuLyoqXHJcbiAqIEEgcXVpY2sgbG9va3VwIGZvciB0cmFuc2Zvcm0gcHJvcHMuXHJcbiAqL1xyXG5jb25zdCB0cmFuc2Zvcm1Qcm9wcyA9IC8qQF9fUFVSRV9fKi8gKCgpID0+IG5ldyBTZXQodHJhbnNmb3JtUHJvcE9yZGVyKSkoKTtcclxuXHJcbmV4cG9ydCB7IHRyYW5zZm9ybVByb3BPcmRlciwgdHJhbnNmb3JtUHJvcHMgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-element.mjs":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/resize/handle-element.mjs ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resizeElement: function() { return /* binding */ resizeElement; }\n/* harmony export */ });\n/* harmony import */ var _utils_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/is-svg-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\");\n/* harmony import */ var _utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/resolve-elements.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs\");\n\r\n\r\n\r\nconst resizeHandlers = new WeakMap();\r\nlet observer;\r\nconst getSize = (borderBoxAxis, svgAxis, htmlAxis) => (target, borderBoxSize) => {\r\n if (borderBoxSize && borderBoxSize[0]) {\r\n return borderBoxSize[0][(borderBoxAxis + \"Size\")];\r\n }\r\n else if ((0,_utils_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__.isSVGElement)(target) && \"getBBox\" in target) {\r\n return target.getBBox()[svgAxis];\r\n }\r\n else {\r\n return target[htmlAxis];\r\n }\r\n};\r\nconst getWidth = /*@__PURE__*/ getSize(\"inline\", \"width\", \"offsetWidth\");\r\nconst getHeight = /*@__PURE__*/ getSize(\"block\", \"height\", \"offsetHeight\");\r\nfunction notifyTarget({ target, borderBoxSize }) {\r\n resizeHandlers.get(target)?.forEach((handler) => {\r\n handler(target, {\r\n get width() {\r\n return getWidth(target, borderBoxSize);\r\n },\r\n get height() {\r\n return getHeight(target, borderBoxSize);\r\n },\r\n });\r\n });\r\n}\r\nfunction notifyAll(entries) {\r\n entries.forEach(notifyTarget);\r\n}\r\nfunction createResizeObserver() {\r\n if (typeof ResizeObserver === \"undefined\")\r\n return;\r\n observer = new ResizeObserver(notifyAll);\r\n}\r\nfunction resizeElement(target, handler) {\r\n if (!observer)\r\n createResizeObserver();\r\n const elements = (0,_utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_1__.resolveElements)(target);\r\n elements.forEach((element) => {\r\n let elementHandlers = resizeHandlers.get(element);\r\n if (!elementHandlers) {\r\n elementHandlers = new Set();\r\n resizeHandlers.set(element, elementHandlers);\r\n }\r\n elementHandlers.add(handler);\r\n observer?.observe(element);\r\n });\r\n return () => {\r\n elements.forEach((element) => {\r\n const elementHandlers = resizeHandlers.get(element);\r\n elementHandlers?.delete(handler);\r\n if (!elementHandlers?.size) {\r\n observer?.unobserve(element);\r\n }\r\n });\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVzaXplL2hhbmRsZS1lbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBMkQ7QUFDSztBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsdUVBQVk7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qix1QkFBdUI7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiw0RUFBZTtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUN5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Jlc2l6ZS9oYW5kbGUtZWxlbWVudC5tanM/NGRiMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NWR0VsZW1lbnQgfSBmcm9tICcuLi91dGlscy9pcy1zdmctZWxlbWVudC5tanMnO1xyXG5pbXBvcnQgeyByZXNvbHZlRWxlbWVudHMgfSBmcm9tICcuLi91dGlscy9yZXNvbHZlLWVsZW1lbnRzLm1qcyc7XHJcblxyXG5jb25zdCByZXNpemVIYW5kbGVycyA9IG5ldyBXZWFrTWFwKCk7XHJcbmxldCBvYnNlcnZlcjtcclxuY29uc3QgZ2V0U2l6ZSA9IChib3JkZXJCb3hBeGlzLCBzdmdBeGlzLCBodG1sQXhpcykgPT4gKHRhcmdldCwgYm9yZGVyQm94U2l6ZSkgPT4ge1xyXG4gICAgaWYgKGJvcmRlckJveFNpemUgJiYgYm9yZGVyQm94U2l6ZVswXSkge1xyXG4gICAgICAgIHJldHVybiBib3JkZXJCb3hTaXplWzBdWyhib3JkZXJCb3hBeGlzICsgXCJTaXplXCIpXTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzU1ZHRWxlbWVudCh0YXJnZXQpICYmIFwiZ2V0QkJveFwiIGluIHRhcmdldCkge1xyXG4gICAgICAgIHJldHVybiB0YXJnZXQuZ2V0QkJveCgpW3N2Z0F4aXNdO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRhcmdldFtodG1sQXhpc107XHJcbiAgICB9XHJcbn07XHJcbmNvbnN0IGdldFdpZHRoID0gLypAX19QVVJFX18qLyBnZXRTaXplKFwiaW5saW5lXCIsIFwid2lkdGhcIiwgXCJvZmZzZXRXaWR0aFwiKTtcclxuY29uc3QgZ2V0SGVpZ2h0ID0gLypAX19QVVJFX18qLyBnZXRTaXplKFwiYmxvY2tcIiwgXCJoZWlnaHRcIiwgXCJvZmZzZXRIZWlnaHRcIik7XHJcbmZ1bmN0aW9uIG5vdGlmeVRhcmdldCh7IHRhcmdldCwgYm9yZGVyQm94U2l6ZSB9KSB7XHJcbiAgICByZXNpemVIYW5kbGVycy5nZXQodGFyZ2V0KT8uZm9yRWFjaCgoaGFuZGxlcikgPT4ge1xyXG4gICAgICAgIGhhbmRsZXIodGFyZ2V0LCB7XHJcbiAgICAgICAgICAgIGdldCB3aWR0aCgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBnZXRXaWR0aCh0YXJnZXQsIGJvcmRlckJveFNpemUpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBnZXQgaGVpZ2h0KCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldEhlaWdodCh0YXJnZXQsIGJvcmRlckJveFNpemUpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuZnVuY3Rpb24gbm90aWZ5QWxsKGVudHJpZXMpIHtcclxuICAgIGVudHJpZXMuZm9yRWFjaChub3RpZnlUYXJnZXQpO1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZVJlc2l6ZU9ic2VydmVyKCkge1xyXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciA9PT0gXCJ1bmRlZmluZWRcIilcclxuICAgICAgICByZXR1cm47XHJcbiAgICBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihub3RpZnlBbGwpO1xyXG59XHJcbmZ1bmN0aW9uIHJlc2l6ZUVsZW1lbnQodGFyZ2V0LCBoYW5kbGVyKSB7XHJcbiAgICBpZiAoIW9ic2VydmVyKVxyXG4gICAgICAgIGNyZWF0ZVJlc2l6ZU9ic2VydmVyKCk7XHJcbiAgICBjb25zdCBlbGVtZW50cyA9IHJlc29sdmVFbGVtZW50cyh0YXJnZXQpO1xyXG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgIGxldCBlbGVtZW50SGFuZGxlcnMgPSByZXNpemVIYW5kbGVycy5nZXQoZWxlbWVudCk7XHJcbiAgICAgICAgaWYgKCFlbGVtZW50SGFuZGxlcnMpIHtcclxuICAgICAgICAgICAgZWxlbWVudEhhbmRsZXJzID0gbmV3IFNldCgpO1xyXG4gICAgICAgICAgICByZXNpemVIYW5kbGVycy5zZXQoZWxlbWVudCwgZWxlbWVudEhhbmRsZXJzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxlbWVudEhhbmRsZXJzLmFkZChoYW5kbGVyKTtcclxuICAgICAgICBvYnNlcnZlcj8ub2JzZXJ2ZShlbGVtZW50KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRIYW5kbGVycyA9IHJlc2l6ZUhhbmRsZXJzLmdldChlbGVtZW50KTtcclxuICAgICAgICAgICAgZWxlbWVudEhhbmRsZXJzPy5kZWxldGUoaGFuZGxlcik7XHJcbiAgICAgICAgICAgIGlmICghZWxlbWVudEhhbmRsZXJzPy5zaXplKSB7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlcj8udW5vYnNlcnZlKGVsZW1lbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgeyByZXNpemVFbGVtZW50IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-element.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-window.mjs":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/resize/handle-window.mjs ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resizeWindow: function() { return /* binding */ resizeWindow; }\n/* harmony export */ });\nconst windowCallbacks = new Set();\r\nlet windowResizeHandler;\r\nfunction createWindowResizeHandler() {\r\n windowResizeHandler = () => {\r\n const info = {\r\n get width() {\r\n return window.innerWidth;\r\n },\r\n get height() {\r\n return window.innerHeight;\r\n },\r\n };\r\n windowCallbacks.forEach((callback) => callback(info));\r\n };\r\n window.addEventListener(\"resize\", windowResizeHandler);\r\n}\r\nfunction resizeWindow(callback) {\r\n windowCallbacks.add(callback);\r\n if (!windowResizeHandler)\r\n createWindowResizeHandler();\r\n return () => {\r\n windowCallbacks.delete(callback);\r\n if (!windowCallbacks.size &&\r\n typeof windowResizeHandler === \"function\") {\r\n window.removeEventListener(\"resize\", windowResizeHandler);\r\n windowResizeHandler = undefined;\r\n }\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVzaXplL2hhbmRsZS13aW5kb3cubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3dCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVzaXplL2hhbmRsZS13aW5kb3cubWpzP2JjNmMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgd2luZG93Q2FsbGJhY2tzID0gbmV3IFNldCgpO1xyXG5sZXQgd2luZG93UmVzaXplSGFuZGxlcjtcclxuZnVuY3Rpb24gY3JlYXRlV2luZG93UmVzaXplSGFuZGxlcigpIHtcclxuICAgIHdpbmRvd1Jlc2l6ZUhhbmRsZXIgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5mbyA9IHtcclxuICAgICAgICAgICAgZ2V0IHdpZHRoKCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBnZXQgaGVpZ2h0KCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHdpbmRvd0NhbGxiYWNrcy5mb3JFYWNoKChjYWxsYmFjaykgPT4gY2FsbGJhY2soaW5mbykpO1xyXG4gICAgfTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHdpbmRvd1Jlc2l6ZUhhbmRsZXIpO1xyXG59XHJcbmZ1bmN0aW9uIHJlc2l6ZVdpbmRvdyhjYWxsYmFjaykge1xyXG4gICAgd2luZG93Q2FsbGJhY2tzLmFkZChjYWxsYmFjayk7XHJcbiAgICBpZiAoIXdpbmRvd1Jlc2l6ZUhhbmRsZXIpXHJcbiAgICAgICAgY3JlYXRlV2luZG93UmVzaXplSGFuZGxlcigpO1xyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICB3aW5kb3dDYWxsYmFja3MuZGVsZXRlKGNhbGxiYWNrKTtcclxuICAgICAgICBpZiAoIXdpbmRvd0NhbGxiYWNrcy5zaXplICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiB3aW5kb3dSZXNpemVIYW5kbGVyID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgd2luZG93UmVzaXplSGFuZGxlcik7XHJcbiAgICAgICAgICAgIHdpbmRvd1Jlc2l6ZUhhbmRsZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IHsgcmVzaXplV2luZG93IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-window.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/index.mjs":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/resize/index.mjs ***!
|
||
\**********************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resize: function() { return /* binding */ resize; }\n/* harmony export */ });\n/* harmony import */ var _handle_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./handle-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-element.mjs\");\n/* harmony import */ var _handle_window_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./handle-window.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-window.mjs\");\n\r\n\r\n\r\nfunction resize(a, b) {\r\n return typeof a === \"function\" ? (0,_handle_window_mjs__WEBPACK_IMPORTED_MODULE_0__.resizeWindow)(a) : (0,_handle_element_mjs__WEBPACK_IMPORTED_MODULE_1__.resizeElement)(a, b);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVzaXplL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBcUQ7QUFDRjtBQUNuRDtBQUNBO0FBQ0EscUNBQXFDLGdFQUFZLE1BQU0sa0VBQWE7QUFDcEU7QUFDQTtBQUNrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Jlc2l6ZS9pbmRleC5tanM/YjY1ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNpemVFbGVtZW50IH0gZnJvbSAnLi9oYW5kbGUtZWxlbWVudC5tanMnO1xyXG5pbXBvcnQgeyByZXNpemVXaW5kb3cgfSBmcm9tICcuL2hhbmRsZS13aW5kb3cubWpzJztcclxuXHJcbmZ1bmN0aW9uIHJlc2l6ZShhLCBiKSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIGEgPT09IFwiZnVuY3Rpb25cIiA/IHJlc2l6ZVdpbmRvdyhhKSA6IHJlc2l6ZUVsZW1lbnQoYSwgYik7XHJcbn1cclxuXHJcbmV4cG9ydCB7IHJlc2l6ZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/scroll/observe.mjs":
|
||
/*!************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/scroll/observe.mjs ***!
|
||
\************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ observeTimeline: function() { return /* binding */ observeTimeline; }\n/* harmony export */ });\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\r\n\r\nfunction observeTimeline(update, timeline) {\r\n let prevProgress;\r\n const onFrame = () => {\r\n const { currentTime } = timeline;\r\n const percentage = currentTime === null ? 0 : currentTime.value;\r\n const progress = percentage / 100;\r\n if (prevProgress !== progress) {\r\n update(progress);\r\n }\r\n prevProgress = progress;\r\n };\r\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frame.preUpdate(onFrame, true);\r\n return () => (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.cancelFrame)(onFrame);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvc2Nyb2xsL29ic2VydmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTREO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGNBQWM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLHVEQUFLO0FBQ1QsaUJBQWlCLGlFQUFXO0FBQzVCO0FBQ0E7QUFDMkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9zY3JvbGwvb2JzZXJ2ZS5tanM/NGQzZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcmFtZSwgY2FuY2VsRnJhbWUgfSBmcm9tICcuLi9mcmFtZWxvb3AvZnJhbWUubWpzJztcclxuXHJcbmZ1bmN0aW9uIG9ic2VydmVUaW1lbGluZSh1cGRhdGUsIHRpbWVsaW5lKSB7XHJcbiAgICBsZXQgcHJldlByb2dyZXNzO1xyXG4gICAgY29uc3Qgb25GcmFtZSA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCB7IGN1cnJlbnRUaW1lIH0gPSB0aW1lbGluZTtcclxuICAgICAgICBjb25zdCBwZXJjZW50YWdlID0gY3VycmVudFRpbWUgPT09IG51bGwgPyAwIDogY3VycmVudFRpbWUudmFsdWU7XHJcbiAgICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBwZXJjZW50YWdlIC8gMTAwO1xyXG4gICAgICAgIGlmIChwcmV2UHJvZ3Jlc3MgIT09IHByb2dyZXNzKSB7XHJcbiAgICAgICAgICAgIHVwZGF0ZShwcm9ncmVzcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByZXZQcm9ncmVzcyA9IHByb2dyZXNzO1xyXG4gICAgfTtcclxuICAgIGZyYW1lLnByZVVwZGF0ZShvbkZyYW1lLCB0cnVlKTtcclxuICAgIHJldHVybiAoKSA9PiBjYW5jZWxGcmFtZShvbkZyYW1lKTtcclxufVxyXG5cclxuZXhwb3J0IHsgb2JzZXJ2ZVRpbWVsaW5lIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/scroll/observe.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/stats/animation-count.mjs ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ activeAnimations: function() { return /* binding */ activeAnimations; }\n/* harmony export */ });\nconst activeAnimations = {\r\n layout: 0,\r\n mainThread: 0,\r\n waapi: 0,\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvc3RhdHMvYW5pbWF0aW9uLWNvdW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQzRCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvc3RhdHMvYW5pbWF0aW9uLWNvdW50Lm1qcz84NmZmIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFjdGl2ZUFuaW1hdGlvbnMgPSB7XHJcbiAgICBsYXlvdXQ6IDAsXHJcbiAgICBtYWluVGhyZWFkOiAwLFxyXG4gICAgd2FhcGk6IDAsXHJcbn07XHJcblxyXG5leHBvcnQgeyBhY3RpdmVBbmltYXRpb25zIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/stats/buffer.mjs ***!
|
||
\**********************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ statsBuffer: function() { return /* binding */ statsBuffer; }\n/* harmony export */ });\nconst statsBuffer = {\r\n value: null,\r\n addProjectionMetrics: null,\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvc3RhdHMvYnVmZmVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUN1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3N0YXRzL2J1ZmZlci5tanM/MDYwMiJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzdGF0c0J1ZmZlciA9IHtcclxuICAgIHZhbHVlOiBudWxsLFxyXG4gICAgYWRkUHJvamVjdGlvbk1ldHJpY3M6IG51bGwsXHJcbn07XHJcblxyXG5leHBvcnQgeyBzdGF0c0J1ZmZlciB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/interpolate.mjs":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/interpolate.mjs ***!
|
||
\***************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ interpolate: function() { return /* binding */ interpolate; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _mix_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mix/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs\");\n\r\n\r\n\r\nfunction createMixers(output, ease, customMixer) {\r\n const mixers = [];\r\n const mixerFactory = customMixer || motion_utils__WEBPACK_IMPORTED_MODULE_0__.MotionGlobalConfig.mix || _mix_index_mjs__WEBPACK_IMPORTED_MODULE_1__.mix;\r\n const numMixers = output.length - 1;\r\n for (let i = 0; i < numMixers; i++) {\r\n let mixer = mixerFactory(output[i], output[i + 1]);\r\n if (ease) {\r\n const easingFunction = Array.isArray(ease) ? ease[i] || motion_utils__WEBPACK_IMPORTED_MODULE_2__.noop : ease;\r\n mixer = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.pipe)(easingFunction, mixer);\r\n }\r\n mixers.push(mixer);\r\n }\r\n return mixers;\r\n}\r\n/**\r\n * Create a function that maps from a numerical input array to a generic output array.\r\n *\r\n * Accepts:\r\n * - Numbers\r\n * - Colors (hex, hsl, hsla, rgb, rgba)\r\n * - Complex (combinations of one or more numbers or strings)\r\n *\r\n * ```jsx\r\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\r\n *\r\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\r\n * ```\r\n *\r\n * TODO Revisit this approach once we've moved to data models for values,\r\n * probably not needed to pregenerate mixer functions.\r\n *\r\n * @public\r\n */\r\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\r\n const inputLength = input.length;\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.invariant)(inputLength === output.length, \"Both input and output ranges must be the same length\", \"range-length\");\r\n /**\r\n * If we're only provided a single input, we can just make a function\r\n * that returns the output.\r\n */\r\n if (inputLength === 1)\r\n return () => output[0];\r\n if (inputLength === 2 && output[0] === output[1])\r\n return () => output[1];\r\n const isZeroDeltaRange = input[0] === input[1];\r\n // If input runs highest -> lowest, reverse both arrays\r\n if (input[0] > input[inputLength - 1]) {\r\n input = [...input].reverse();\r\n output = [...output].reverse();\r\n }\r\n const mixers = createMixers(output, ease, mixer);\r\n const numMixers = mixers.length;\r\n const interpolator = (v) => {\r\n if (isZeroDeltaRange && v < input[0])\r\n return output[0];\r\n let i = 0;\r\n if (numMixers > 1) {\r\n for (; i < input.length - 2; i++) {\r\n if (v < input[i + 1])\r\n break;\r\n }\r\n }\r\n const progressInRange = (0,motion_utils__WEBPACK_IMPORTED_MODULE_5__.progress)(input[i], input[i + 1], v);\r\n return mixers[i](progressInRange);\r\n };\r\n return isClamp\r\n ? (v) => interpolator((0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.clamp)(input[0], input[inputLength - 1], v))\r\n : interpolator;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaW50ZXJwb2xhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQTBGO0FBQ3BEO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBLHdDQUF3Qyw0REFBa0IsUUFBUSwrQ0FBRztBQUNyRTtBQUNBLG9CQUFvQixlQUFlO0FBQ25DO0FBQ0E7QUFDQSxvRUFBb0UsOENBQUk7QUFDeEUsb0JBQW9CLGtEQUFJO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyxxQ0FBcUMsSUFBSTtBQUMvRTtBQUNBLElBQUksdURBQVM7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsc0JBQXNCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLHNEQUFRO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixtREFBSztBQUNuQztBQUNBO0FBQ0E7QUFDdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9pbnRlcnBvbGF0ZS5tanM/NTBhMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnZhcmlhbnQsIGNsYW1wLCBNb3Rpb25HbG9iYWxDb25maWcsIG5vb3AsIHBpcGUsIHByb2dyZXNzIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgbWl4IH0gZnJvbSAnLi9taXgvaW5kZXgubWpzJztcclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZU1peGVycyhvdXRwdXQsIGVhc2UsIGN1c3RvbU1peGVyKSB7XHJcbiAgICBjb25zdCBtaXhlcnMgPSBbXTtcclxuICAgIGNvbnN0IG1peGVyRmFjdG9yeSA9IGN1c3RvbU1peGVyIHx8IE1vdGlvbkdsb2JhbENvbmZpZy5taXggfHwgbWl4O1xyXG4gICAgY29uc3QgbnVtTWl4ZXJzID0gb3V0cHV0Lmxlbmd0aCAtIDE7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bU1peGVyczsgaSsrKSB7XHJcbiAgICAgICAgbGV0IG1peGVyID0gbWl4ZXJGYWN0b3J5KG91dHB1dFtpXSwgb3V0cHV0W2kgKyAxXSk7XHJcbiAgICAgICAgaWYgKGVhc2UpIHtcclxuICAgICAgICAgICAgY29uc3QgZWFzaW5nRnVuY3Rpb24gPSBBcnJheS5pc0FycmF5KGVhc2UpID8gZWFzZVtpXSB8fCBub29wIDogZWFzZTtcclxuICAgICAgICAgICAgbWl4ZXIgPSBwaXBlKGVhc2luZ0Z1bmN0aW9uLCBtaXhlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1peGVycy5wdXNoKG1peGVyKTtcclxuICAgIH1cclxuICAgIHJldHVybiBtaXhlcnM7XHJcbn1cclxuLyoqXHJcbiAqIENyZWF0ZSBhIGZ1bmN0aW9uIHRoYXQgbWFwcyBmcm9tIGEgbnVtZXJpY2FsIGlucHV0IGFycmF5IHRvIGEgZ2VuZXJpYyBvdXRwdXQgYXJyYXkuXHJcbiAqXHJcbiAqIEFjY2VwdHM6XHJcbiAqICAgLSBOdW1iZXJzXHJcbiAqICAgLSBDb2xvcnMgKGhleCwgaHNsLCBoc2xhLCByZ2IsIHJnYmEpXHJcbiAqICAgLSBDb21wbGV4IChjb21iaW5hdGlvbnMgb2Ygb25lIG9yIG1vcmUgbnVtYmVycyBvciBzdHJpbmdzKVxyXG4gKlxyXG4gKiBgYGBqc3hcclxuICogY29uc3QgbWl4Q29sb3IgPSBpbnRlcnBvbGF0ZShbMCwgMV0sIFsnI2ZmZicsICcjMDAwJ10pXHJcbiAqXHJcbiAqIG1peENvbG9yKDAuNSkgLy8gJ3JnYmEoMTI4LCAxMjgsIDEyOCwgMSknXHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBUT0RPIFJldmlzaXQgdGhpcyBhcHByb2FjaCBvbmNlIHdlJ3ZlIG1vdmVkIHRvIGRhdGEgbW9kZWxzIGZvciB2YWx1ZXMsXHJcbiAqIHByb2JhYmx5IG5vdCBuZWVkZWQgdG8gcHJlZ2VuZXJhdGUgbWl4ZXIgZnVuY3Rpb25zLlxyXG4gKlxyXG4gKiBAcHVibGljXHJcbiAqL1xyXG5mdW5jdGlvbiBpbnRlcnBvbGF0ZShpbnB1dCwgb3V0cHV0LCB7IGNsYW1wOiBpc0NsYW1wID0gdHJ1ZSwgZWFzZSwgbWl4ZXIgfSA9IHt9KSB7XHJcbiAgICBjb25zdCBpbnB1dExlbmd0aCA9IGlucHV0Lmxlbmd0aDtcclxuICAgIGludmFyaWFudChpbnB1dExlbmd0aCA9PT0gb3V0cHV0Lmxlbmd0aCwgXCJCb3RoIGlucHV0IGFuZCBvdXRwdXQgcmFuZ2VzIG11c3QgYmUgdGhlIHNhbWUgbGVuZ3RoXCIsIFwicmFuZ2UtbGVuZ3RoXCIpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB3ZSdyZSBvbmx5IHByb3ZpZGVkIGEgc2luZ2xlIGlucHV0LCB3ZSBjYW4ganVzdCBtYWtlIGEgZnVuY3Rpb25cclxuICAgICAqIHRoYXQgcmV0dXJucyB0aGUgb3V0cHV0LlxyXG4gICAgICovXHJcbiAgICBpZiAoaW5wdXRMZW5ndGggPT09IDEpXHJcbiAgICAgICAgcmV0dXJuICgpID0+IG91dHB1dFswXTtcclxuICAgIGlmIChpbnB1dExlbmd0aCA9PT0gMiAmJiBvdXRwdXRbMF0gPT09IG91dHB1dFsxXSlcclxuICAgICAgICByZXR1cm4gKCkgPT4gb3V0cHV0WzFdO1xyXG4gICAgY29uc3QgaXNaZXJvRGVsdGFSYW5nZSA9IGlucHV0WzBdID09PSBpbnB1dFsxXTtcclxuICAgIC8vIElmIGlucHV0IHJ1bnMgaGlnaGVzdCAtPiBsb3dlc3QsIHJldmVyc2UgYm90aCBhcnJheXNcclxuICAgIGlmIChpbnB1dFswXSA+IGlucHV0W2lucHV0TGVuZ3RoIC0gMV0pIHtcclxuICAgICAgICBpbnB1dCA9IFsuLi5pbnB1dF0ucmV2ZXJzZSgpO1xyXG4gICAgICAgIG91dHB1dCA9IFsuLi5vdXRwdXRdLnJldmVyc2UoKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1peGVycyA9IGNyZWF0ZU1peGVycyhvdXRwdXQsIGVhc2UsIG1peGVyKTtcclxuICAgIGNvbnN0IG51bU1peGVycyA9IG1peGVycy5sZW5ndGg7XHJcbiAgICBjb25zdCBpbnRlcnBvbGF0b3IgPSAodikgPT4ge1xyXG4gICAgICAgIGlmIChpc1plcm9EZWx0YVJhbmdlICYmIHYgPCBpbnB1dFswXSlcclxuICAgICAgICAgICAgcmV0dXJuIG91dHB1dFswXTtcclxuICAgICAgICBsZXQgaSA9IDA7XHJcbiAgICAgICAgaWYgKG51bU1peGVycyA+IDEpIHtcclxuICAgICAgICAgICAgZm9yICg7IGkgPCBpbnB1dC5sZW5ndGggLSAyOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh2IDwgaW5wdXRbaSArIDFdKVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHByb2dyZXNzSW5SYW5nZSA9IHByb2dyZXNzKGlucHV0W2ldLCBpbnB1dFtpICsgMV0sIHYpO1xyXG4gICAgICAgIHJldHVybiBtaXhlcnNbaV0ocHJvZ3Jlc3NJblJhbmdlKTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gaXNDbGFtcFxyXG4gICAgICAgID8gKHYpID0+IGludGVycG9sYXRvcihjbGFtcChpbnB1dFswXSwgaW5wdXRbaW5wdXRMZW5ndGggLSAxXSwgdikpXHJcbiAgICAgICAgOiBpbnRlcnBvbGF0b3I7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGludGVycG9sYXRlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/interpolate.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/is-html-element.mjs ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isHTMLElement: function() { return /* binding */ isHTMLElement; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-object.mjs\");\n\r\n\r\n/**\r\n * Checks if an element is an HTML element in a way\r\n * that works across iframes\r\n */\r\nfunction isHTMLElement(element) {\r\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.isObject)(element) && \"offsetHeight\" in element;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaXMtaHRtbC1lbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLHNEQUFRO0FBQ25CO0FBQ0E7QUFDeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9pcy1odG1sLWVsZW1lbnQubWpzPzZmZmEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBpZiBhbiBlbGVtZW50IGlzIGFuIEhUTUwgZWxlbWVudCBpbiBhIHdheVxyXG4gKiB0aGF0IHdvcmtzIGFjcm9zcyBpZnJhbWVzXHJcbiAqL1xyXG5mdW5jdGlvbiBpc0hUTUxFbGVtZW50KGVsZW1lbnQpIHtcclxuICAgIHJldHVybiBpc09iamVjdChlbGVtZW50KSAmJiBcIm9mZnNldEhlaWdodFwiIGluIGVsZW1lbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGlzSFRNTEVsZW1lbnQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isSVGElement: function() { return /* binding */ isSVGElement; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-object.mjs\");\n\r\n\r\n/**\r\n * Checks if an element is an SVG element in a way\r\n * that works across iframes\r\n */\r\nfunction isSVGElement(element) {\r\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.isObject)(element) && \"ownerSVGElement\" in element;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaXMtc3ZnLWVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsc0RBQVE7QUFDbkI7QUFDQTtBQUN3QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL2lzLXN2Zy1lbGVtZW50Lm1qcz9jMzdlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgaWYgYW4gZWxlbWVudCBpcyBhbiBTVkcgZWxlbWVudCBpbiBhIHdheVxyXG4gKiB0aGF0IHdvcmtzIGFjcm9zcyBpZnJhbWVzXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1NWR0VsZW1lbnQoZWxlbWVudCkge1xyXG4gICAgcmV0dXJuIGlzT2JqZWN0KGVsZW1lbnQpICYmIFwib3duZXJTVkdFbGVtZW50XCIgaW4gZWxlbWVudDtcclxufVxyXG5cclxuZXhwb3J0IHsgaXNTVkdFbGVtZW50IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs ***!
|
||
\**********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isSVGSVGElement: function() { return /* binding */ isSVGSVGElement; }\n/* harmony export */ });\n/* harmony import */ var _is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-svg-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\");\n\r\n\r\n/**\r\n * Checks if an element is specifically an SVGSVGElement (the root SVG element)\r\n * in a way that works across iframes\r\n */\r\nfunction isSVGSVGElement(element) {\r\n return (0,_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__.isSVGElement)(element) && element.tagName === \"svg\";\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaXMtc3ZnLXN2Zy1lbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFvRDtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGlFQUFZO0FBQ3ZCO0FBQ0E7QUFDMkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9pcy1zdmctc3ZnLWVsZW1lbnQubWpzPzcxMTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTVkdFbGVtZW50IH0gZnJvbSAnLi9pcy1zdmctZWxlbWVudC5tanMnO1xyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBpZiBhbiBlbGVtZW50IGlzIHNwZWNpZmljYWxseSBhbiBTVkdTVkdFbGVtZW50ICh0aGUgcm9vdCBTVkcgZWxlbWVudClcclxuICogaW4gYSB3YXkgdGhhdCB3b3JrcyBhY3Jvc3MgaWZyYW1lc1xyXG4gKi9cclxuZnVuY3Rpb24gaXNTVkdTVkdFbGVtZW50KGVsZW1lbnQpIHtcclxuICAgIHJldHVybiBpc1NWR0VsZW1lbnQoZWxlbWVudCkgJiYgZWxlbWVudC50YWdOYW1lID09PSBcInN2Z1wiO1xyXG59XHJcblxyXG5leHBvcnQgeyBpc1NWR1NWR0VsZW1lbnQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/color.mjs":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/mix/color.mjs ***!
|
||
\*************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mixColor: function() { return /* binding */ mixColor; },\n/* harmony export */ mixLinearColor: function() { return /* binding */ mixLinearColor; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _value_types_color_hex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/color/hex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs\");\n/* harmony import */ var _value_types_color_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../value/types/color/hsla.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs\");\n/* harmony import */ var _value_types_color_hsla_to_rgba_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../value/types/color/hsla-to-rgba.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs\");\n/* harmony import */ var _value_types_color_rgba_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../value/types/color/rgba.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\");\n/* harmony import */ var _immediate_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./immediate.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Linear color space blending\r\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\r\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\r\nconst mixLinearColor = (from, to, v) => {\r\n const fromExpo = from * from;\r\n const expo = v * (to * to - fromExpo) + fromExpo;\r\n return expo < 0 ? 0 : Math.sqrt(expo);\r\n};\r\nconst colorTypes = [_value_types_color_hex_mjs__WEBPACK_IMPORTED_MODULE_0__.hex, _value_types_color_rgba_mjs__WEBPACK_IMPORTED_MODULE_1__.rgba, _value_types_color_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla];\r\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\r\nfunction asRGBA(color) {\r\n const type = getColorType(color);\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.warning)(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`, \"color-not-animatable\");\r\n if (!Boolean(type))\r\n return false;\r\n let model = type.parse(color);\r\n if (type === _value_types_color_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla) {\r\n // TODO Remove this cast - needed since Motion's stricter typing\r\n model = (0,_value_types_color_hsla_to_rgba_mjs__WEBPACK_IMPORTED_MODULE_4__.hslaToRgba)(model);\r\n }\r\n return model;\r\n}\r\nconst mixColor = (from, to) => {\r\n const fromRGBA = asRGBA(from);\r\n const toRGBA = asRGBA(to);\r\n if (!fromRGBA || !toRGBA) {\r\n return (0,_immediate_mjs__WEBPACK_IMPORTED_MODULE_5__.mixImmediate)(from, to);\r\n }\r\n const blended = { ...fromRGBA };\r\n return (v) => {\r\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\r\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\r\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\r\n blended.alpha = (0,_number_mjs__WEBPACK_IMPORTED_MODULE_6__.mixNumber)(fromRGBA.alpha, toRGBA.alpha, v);\r\n return _value_types_color_rgba_mjs__WEBPACK_IMPORTED_MODULE_1__.rgba.transform(blended);\r\n };\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2NvbG9yLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBdUM7QUFDZTtBQUNFO0FBQ2M7QUFDZDtBQUNUO0FBQ047QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDJEQUFHLEVBQUUsNkRBQUksRUFBRSw2REFBSTtBQUNuQztBQUNBO0FBQ0E7QUFDQSxJQUFJLHFEQUFPLG9CQUFvQixNQUFNO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiw2REFBSTtBQUNyQjtBQUNBLGdCQUFnQiwrRUFBVTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsNERBQVk7QUFDM0I7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isc0RBQVM7QUFDakMsZUFBZSw2REFBSTtBQUNuQjtBQUNBO0FBQ0E7QUFDb0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9taXgvY29sb3IubWpzPzAzY2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2FybmluZyB9IGZyb20gJ21vdGlvbi11dGlscyc7XHJcbmltcG9ydCB7IGhleCB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL2NvbG9yL2hleC5tanMnO1xyXG5pbXBvcnQgeyBoc2xhIH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvY29sb3IvaHNsYS5tanMnO1xyXG5pbXBvcnQgeyBoc2xhVG9SZ2JhIH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvY29sb3IvaHNsYS10by1yZ2JhLm1qcyc7XHJcbmltcG9ydCB7IHJnYmEgfSBmcm9tICcuLi8uLi92YWx1ZS90eXBlcy9jb2xvci9yZ2JhLm1qcyc7XHJcbmltcG9ydCB7IG1peEltbWVkaWF0ZSB9IGZyb20gJy4vaW1tZWRpYXRlLm1qcyc7XHJcbmltcG9ydCB7IG1peE51bWJlciB9IGZyb20gJy4vbnVtYmVyLm1qcyc7XHJcblxyXG4vLyBMaW5lYXIgY29sb3Igc3BhY2UgYmxlbmRpbmdcclxuLy8gRXhwbGFpbmVkIGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9TEtucUVDY2c2R3dcclxuLy8gRGVtb25zdHJhdGVkIGh0dHA6Ly9jb2RlcGVuLmlvL29zdWJsYWtlL3Blbi94R1ZWYU5cclxuY29uc3QgbWl4TGluZWFyQ29sb3IgPSAoZnJvbSwgdG8sIHYpID0+IHtcclxuICAgIGNvbnN0IGZyb21FeHBvID0gZnJvbSAqIGZyb207XHJcbiAgICBjb25zdCBleHBvID0gdiAqICh0byAqIHRvIC0gZnJvbUV4cG8pICsgZnJvbUV4cG87XHJcbiAgICByZXR1cm4gZXhwbyA8IDAgPyAwIDogTWF0aC5zcXJ0KGV4cG8pO1xyXG59O1xyXG5jb25zdCBjb2xvclR5cGVzID0gW2hleCwgcmdiYSwgaHNsYV07XHJcbmNvbnN0IGdldENvbG9yVHlwZSA9ICh2KSA9PiBjb2xvclR5cGVzLmZpbmQoKHR5cGUpID0+IHR5cGUudGVzdCh2KSk7XHJcbmZ1bmN0aW9uIGFzUkdCQShjb2xvcikge1xyXG4gICAgY29uc3QgdHlwZSA9IGdldENvbG9yVHlwZShjb2xvcik7XHJcbiAgICB3YXJuaW5nKEJvb2xlYW4odHlwZSksIGAnJHtjb2xvcn0nIGlzIG5vdCBhbiBhbmltYXRhYmxlIGNvbG9yLiBVc2UgdGhlIGVxdWl2YWxlbnQgY29sb3IgY29kZSBpbnN0ZWFkLmAsIFwiY29sb3Itbm90LWFuaW1hdGFibGVcIik7XHJcbiAgICBpZiAoIUJvb2xlYW4odHlwZSkpXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgbGV0IG1vZGVsID0gdHlwZS5wYXJzZShjb2xvcik7XHJcbiAgICBpZiAodHlwZSA9PT0gaHNsYSkge1xyXG4gICAgICAgIC8vIFRPRE8gUmVtb3ZlIHRoaXMgY2FzdCAtIG5lZWRlZCBzaW5jZSBNb3Rpb24ncyBzdHJpY3RlciB0eXBpbmdcclxuICAgICAgICBtb2RlbCA9IGhzbGFUb1JnYmEobW9kZWwpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vZGVsO1xyXG59XHJcbmNvbnN0IG1peENvbG9yID0gKGZyb20sIHRvKSA9PiB7XHJcbiAgICBjb25zdCBmcm9tUkdCQSA9IGFzUkdCQShmcm9tKTtcclxuICAgIGNvbnN0IHRvUkdCQSA9IGFzUkdCQSh0byk7XHJcbiAgICBpZiAoIWZyb21SR0JBIHx8ICF0b1JHQkEpIHtcclxuICAgICAgICByZXR1cm4gbWl4SW1tZWRpYXRlKGZyb20sIHRvKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGJsZW5kZWQgPSB7IC4uLmZyb21SR0JBIH07XHJcbiAgICByZXR1cm4gKHYpID0+IHtcclxuICAgICAgICBibGVuZGVkLnJlZCA9IG1peExpbmVhckNvbG9yKGZyb21SR0JBLnJlZCwgdG9SR0JBLnJlZCwgdik7XHJcbiAgICAgICAgYmxlbmRlZC5ncmVlbiA9IG1peExpbmVhckNvbG9yKGZyb21SR0JBLmdyZWVuLCB0b1JHQkEuZ3JlZW4sIHYpO1xyXG4gICAgICAgIGJsZW5kZWQuYmx1ZSA9IG1peExpbmVhckNvbG9yKGZyb21SR0JBLmJsdWUsIHRvUkdCQS5ibHVlLCB2KTtcclxuICAgICAgICBibGVuZGVkLmFscGhhID0gbWl4TnVtYmVyKGZyb21SR0JBLmFscGhhLCB0b1JHQkEuYWxwaGEsIHYpO1xyXG4gICAgICAgIHJldHVybiByZ2JhLnRyYW5zZm9ybShibGVuZGVkKTtcclxuICAgIH07XHJcbn07XHJcblxyXG5leHBvcnQgeyBtaXhDb2xvciwgbWl4TGluZWFyQ29sb3IgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/color.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/complex.mjs":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/mix/complex.mjs ***!
|
||
\***************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getMixer: function() { return /* binding */ getMixer; },\n/* harmony export */ mixArray: function() { return /* binding */ mixArray; },\n/* harmony export */ mixComplex: function() { return /* binding */ mixComplex; },\n/* harmony export */ mixObject: function() { return /* binding */ mixObject; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../animation/utils/is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _value_types_color_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../value/types/color/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../value/types/complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _color_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./color.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/color.mjs\");\n/* harmony import */ var _immediate_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./immediate.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _visibility_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction mixNumber(a, b) {\r\n return (p) => (0,_number_mjs__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(a, b, p);\r\n}\r\nfunction getMixer(a) {\r\n if (typeof a === \"number\") {\r\n return mixNumber;\r\n }\r\n else if (typeof a === \"string\") {\r\n return (0,_animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.isCSSVariableToken)(a)\r\n ? _immediate_mjs__WEBPACK_IMPORTED_MODULE_2__.mixImmediate\r\n : _value_types_color_index_mjs__WEBPACK_IMPORTED_MODULE_3__.color.test(a)\r\n ? _color_mjs__WEBPACK_IMPORTED_MODULE_4__.mixColor\r\n : mixComplex;\r\n }\r\n else if (Array.isArray(a)) {\r\n return mixArray;\r\n }\r\n else if (typeof a === \"object\") {\r\n return _value_types_color_index_mjs__WEBPACK_IMPORTED_MODULE_3__.color.test(a) ? _color_mjs__WEBPACK_IMPORTED_MODULE_4__.mixColor : mixObject;\r\n }\r\n return _immediate_mjs__WEBPACK_IMPORTED_MODULE_2__.mixImmediate;\r\n}\r\nfunction mixArray(a, b) {\r\n const output = [...a];\r\n const numValues = output.length;\r\n const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));\r\n return (p) => {\r\n for (let i = 0; i < numValues; i++) {\r\n output[i] = blendValue[i](p);\r\n }\r\n return output;\r\n };\r\n}\r\nfunction mixObject(a, b) {\r\n const output = { ...a, ...b };\r\n const blendValue = {};\r\n for (const key in output) {\r\n if (a[key] !== undefined && b[key] !== undefined) {\r\n blendValue[key] = getMixer(a[key])(a[key], b[key]);\r\n }\r\n }\r\n return (v) => {\r\n for (const key in blendValue) {\r\n output[key] = blendValue[key](v);\r\n }\r\n return output;\r\n };\r\n}\r\nfunction matchOrder(origin, target) {\r\n const orderedOrigin = [];\r\n const pointers = { color: 0, var: 0, number: 0 };\r\n for (let i = 0; i < target.values.length; i++) {\r\n const type = target.types[i];\r\n const originIndex = origin.indexes[type][pointers[type]];\r\n const originValue = origin.values[originIndex] ?? 0;\r\n orderedOrigin[i] = originValue;\r\n pointers[type]++;\r\n }\r\n return orderedOrigin;\r\n}\r\nconst mixComplex = (origin, target) => {\r\n const template = _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__.complex.createTransformer(target);\r\n const originStats = (0,_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__.analyseComplexValue)(origin);\r\n const targetStats = (0,_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__.analyseComplexValue)(target);\r\n const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length &&\r\n originStats.indexes.color.length === targetStats.indexes.color.length &&\r\n originStats.indexes.number.length >= targetStats.indexes.number.length;\r\n if (canInterpolate) {\r\n if ((_visibility_mjs__WEBPACK_IMPORTED_MODULE_6__.invisibleValues.has(origin) &&\r\n !targetStats.values.length) ||\r\n (_visibility_mjs__WEBPACK_IMPORTED_MODULE_6__.invisibleValues.has(target) &&\r\n !originStats.values.length)) {\r\n return (0,_visibility_mjs__WEBPACK_IMPORTED_MODULE_6__.mixVisibility)(origin, target);\r\n }\r\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_7__.pipe)(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);\r\n }\r\n else {\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_8__.warning)(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`, \"complex-values-different\");\r\n return (0,_immediate_mjs__WEBPACK_IMPORTED_MODULE_2__.mixImmediate)(origin, target);\r\n }\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2NvbXBsZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBNkM7QUFDa0M7QUFDckI7QUFDeUI7QUFDNUM7QUFDUTtBQUNTO0FBQ1U7QUFDbEU7QUFDQTtBQUNBLGtCQUFrQixzREFBVztBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHdGQUFrQjtBQUNqQyxjQUFjLHdEQUFZO0FBQzFCLGNBQWMsK0RBQUs7QUFDbkIsa0JBQWtCLGdEQUFRO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsK0RBQUssV0FBVyxnREFBUTtBQUN2QztBQUNBLFdBQVcsd0RBQVk7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGVBQWU7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QixvQkFBb0IsMEJBQTBCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixtRUFBTztBQUM1Qix3QkFBd0IsbUZBQW1CO0FBQzNDLHdCQUF3QixtRkFBbUI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLDREQUFlO0FBQzVCO0FBQ0EsYUFBYSw0REFBZTtBQUM1QjtBQUNBLG1CQUFtQiw4REFBYTtBQUNoQztBQUNBLGVBQWUsa0RBQUk7QUFDbkI7QUFDQTtBQUNBLFFBQVEscURBQU8sMEJBQTBCLE9BQU8sU0FBUyxPQUFPO0FBQ2hFLGVBQWUsNERBQVk7QUFDM0I7QUFDQTtBQUNBO0FBQ3FEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2NvbXBsZXgubWpzPzUxNjciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGlwZSwgd2FybmluZyB9IGZyb20gJ21vdGlvbi11dGlscyc7XHJcbmltcG9ydCB7IGlzQ1NTVmFyaWFibGVUb2tlbiB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi91dGlscy9pcy1jc3MtdmFyaWFibGUubWpzJztcclxuaW1wb3J0IHsgY29sb3IgfSBmcm9tICcuLi8uLi92YWx1ZS90eXBlcy9jb2xvci9pbmRleC5tanMnO1xyXG5pbXBvcnQgeyBjb21wbGV4LCBhbmFseXNlQ29tcGxleFZhbHVlIH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvY29tcGxleC9pbmRleC5tanMnO1xyXG5pbXBvcnQgeyBtaXhDb2xvciB9IGZyb20gJy4vY29sb3IubWpzJztcclxuaW1wb3J0IHsgbWl4SW1tZWRpYXRlIH0gZnJvbSAnLi9pbW1lZGlhdGUubWpzJztcclxuaW1wb3J0IHsgbWl4TnVtYmVyIGFzIG1peE51bWJlciQxIH0gZnJvbSAnLi9udW1iZXIubWpzJztcclxuaW1wb3J0IHsgaW52aXNpYmxlVmFsdWVzLCBtaXhWaXNpYmlsaXR5IH0gZnJvbSAnLi92aXNpYmlsaXR5Lm1qcyc7XHJcblxyXG5mdW5jdGlvbiBtaXhOdW1iZXIoYSwgYikge1xyXG4gICAgcmV0dXJuIChwKSA9PiBtaXhOdW1iZXIkMShhLCBiLCBwKTtcclxufVxyXG5mdW5jdGlvbiBnZXRNaXhlcihhKSB7XHJcbiAgICBpZiAodHlwZW9mIGEgPT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICByZXR1cm4gbWl4TnVtYmVyO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIGEgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICByZXR1cm4gaXNDU1NWYXJpYWJsZVRva2VuKGEpXHJcbiAgICAgICAgICAgID8gbWl4SW1tZWRpYXRlXHJcbiAgICAgICAgICAgIDogY29sb3IudGVzdChhKVxyXG4gICAgICAgICAgICAgICAgPyBtaXhDb2xvclxyXG4gICAgICAgICAgICAgICAgOiBtaXhDb21wbGV4O1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhKSkge1xyXG4gICAgICAgIHJldHVybiBtaXhBcnJheTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHR5cGVvZiBhID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgcmV0dXJuIGNvbG9yLnRlc3QoYSkgPyBtaXhDb2xvciA6IG1peE9iamVjdDtcclxuICAgIH1cclxuICAgIHJldHVybiBtaXhJbW1lZGlhdGU7XHJcbn1cclxuZnVuY3Rpb24gbWl4QXJyYXkoYSwgYikge1xyXG4gICAgY29uc3Qgb3V0cHV0ID0gWy4uLmFdO1xyXG4gICAgY29uc3QgbnVtVmFsdWVzID0gb3V0cHV0Lmxlbmd0aDtcclxuICAgIGNvbnN0IGJsZW5kVmFsdWUgPSBhLm1hcCgodiwgaSkgPT4gZ2V0TWl4ZXIodikodiwgYltpXSkpO1xyXG4gICAgcmV0dXJuIChwKSA9PiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1WYWx1ZXM7IGkrKykge1xyXG4gICAgICAgICAgICBvdXRwdXRbaV0gPSBibGVuZFZhbHVlW2ldKHApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb3V0cHV0O1xyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBtaXhPYmplY3QoYSwgYikge1xyXG4gICAgY29uc3Qgb3V0cHV0ID0geyAuLi5hLCAuLi5iIH07XHJcbiAgICBjb25zdCBibGVuZFZhbHVlID0ge307XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvdXRwdXQpIHtcclxuICAgICAgICBpZiAoYVtrZXldICE9PSB1bmRlZmluZWQgJiYgYltrZXldICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgYmxlbmRWYWx1ZVtrZXldID0gZ2V0TWl4ZXIoYVtrZXldKShhW2tleV0sIGJba2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICh2KSA9PiB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gYmxlbmRWYWx1ZSkge1xyXG4gICAgICAgICAgICBvdXRwdXRba2V5XSA9IGJsZW5kVmFsdWVba2V5XSh2KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG91dHB1dDtcclxuICAgIH07XHJcbn1cclxuZnVuY3Rpb24gbWF0Y2hPcmRlcihvcmlnaW4sIHRhcmdldCkge1xyXG4gICAgY29uc3Qgb3JkZXJlZE9yaWdpbiA9IFtdO1xyXG4gICAgY29uc3QgcG9pbnRlcnMgPSB7IGNvbG9yOiAwLCB2YXI6IDAsIG51bWJlcjogMCB9O1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YXJnZXQudmFsdWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgdHlwZSA9IHRhcmdldC50eXBlc1tpXTtcclxuICAgICAgICBjb25zdCBvcmlnaW5JbmRleCA9IG9yaWdpbi5pbmRleGVzW3R5cGVdW3BvaW50ZXJzW3R5cGVdXTtcclxuICAgICAgICBjb25zdCBvcmlnaW5WYWx1ZSA9IG9yaWdpbi52YWx1ZXNbb3JpZ2luSW5kZXhdID8/IDA7XHJcbiAgICAgICAgb3JkZXJlZE9yaWdpbltpXSA9IG9yaWdpblZhbHVlO1xyXG4gICAgICAgIHBvaW50ZXJzW3R5cGVdKys7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb3JkZXJlZE9yaWdpbjtcclxufVxyXG5jb25zdCBtaXhDb21wbGV4ID0gKG9yaWdpbiwgdGFyZ2V0KSA9PiB7XHJcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IGNvbXBsZXguY3JlYXRlVHJhbnNmb3JtZXIodGFyZ2V0KTtcclxuICAgIGNvbnN0IG9yaWdpblN0YXRzID0gYW5hbHlzZUNvbXBsZXhWYWx1ZShvcmlnaW4pO1xyXG4gICAgY29uc3QgdGFyZ2V0U3RhdHMgPSBhbmFseXNlQ29tcGxleFZhbHVlKHRhcmdldCk7XHJcbiAgICBjb25zdCBjYW5JbnRlcnBvbGF0ZSA9IG9yaWdpblN0YXRzLmluZGV4ZXMudmFyLmxlbmd0aCA9PT0gdGFyZ2V0U3RhdHMuaW5kZXhlcy52YXIubGVuZ3RoICYmXHJcbiAgICAgICAgb3JpZ2luU3RhdHMuaW5kZXhlcy5jb2xvci5sZW5ndGggPT09IHRhcmdldFN0YXRzLmluZGV4ZXMuY29sb3IubGVuZ3RoICYmXHJcbiAgICAgICAgb3JpZ2luU3RhdHMuaW5kZXhlcy5udW1iZXIubGVuZ3RoID49IHRhcmdldFN0YXRzLmluZGV4ZXMubnVtYmVyLmxlbmd0aDtcclxuICAgIGlmIChjYW5JbnRlcnBvbGF0ZSkge1xyXG4gICAgICAgIGlmICgoaW52aXNpYmxlVmFsdWVzLmhhcyhvcmlnaW4pICYmXHJcbiAgICAgICAgICAgICF0YXJnZXRTdGF0cy52YWx1ZXMubGVuZ3RoKSB8fFxyXG4gICAgICAgICAgICAoaW52aXNpYmxlVmFsdWVzLmhhcyh0YXJnZXQpICYmXHJcbiAgICAgICAgICAgICAgICAhb3JpZ2luU3RhdHMudmFsdWVzLmxlbmd0aCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG1peFZpc2liaWxpdHkob3JpZ2luLCB0YXJnZXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcGlwZShtaXhBcnJheShtYXRjaE9yZGVyKG9yaWdpblN0YXRzLCB0YXJnZXRTdGF0cyksIHRhcmdldFN0YXRzLnZhbHVlcyksIHRlbXBsYXRlKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHdhcm5pbmcodHJ1ZSwgYENvbXBsZXggdmFsdWVzICcke29yaWdpbn0nIGFuZCAnJHt0YXJnZXR9JyB0b28gZGlmZmVyZW50IHRvIG1peC4gRW5zdXJlIGFsbCBjb2xvcnMgYXJlIG9mIHRoZSBzYW1lIHR5cGUsIGFuZCB0aGF0IGVhY2ggY29udGFpbnMgdGhlIHNhbWUgcXVhbnRpdHkgb2YgbnVtYmVyIGFuZCBjb2xvciB2YWx1ZXMuIEZhbGxpbmcgYmFjayB0byBpbnN0YW50IHRyYW5zaXRpb24uYCwgXCJjb21wbGV4LXZhbHVlcy1kaWZmZXJlbnRcIik7XHJcbiAgICAgICAgcmV0dXJuIG1peEltbWVkaWF0ZShvcmlnaW4sIHRhcmdldCk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgeyBnZXRNaXhlciwgbWl4QXJyYXksIG1peENvbXBsZXgsIG1peE9iamVjdCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/complex.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mixImmediate: function() { return /* binding */ mixImmediate; }\n/* harmony export */ });\nfunction mixImmediate(a, b) {\r\n return (p) => (p > 0 ? b : a);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2ltbWVkaWF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ3dCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2ltbWVkaWF0ZS5tanM/NjY0MCJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBtaXhJbW1lZGlhdGUoYSwgYikge1xyXG4gICAgcmV0dXJuIChwKSA9PiAocCA+IDAgPyBiIDogYSk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IG1peEltbWVkaWF0ZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/mix/index.mjs ***!
|
||
\*************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mix: function() { return /* binding */ mix; }\n/* harmony export */ });\n/* harmony import */ var _complex_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./complex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/complex.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\r\n\r\n\r\nfunction mix(from, to, p) {\r\n if (typeof from === \"number\" &&\r\n typeof to === \"number\" &&\r\n typeof p === \"number\") {\r\n return (0,_number_mjs__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(from, to, p);\r\n }\r\n const mixer = (0,_complex_mjs__WEBPACK_IMPORTED_MODULE_1__.getMixer)(from);\r\n return mixer(from, to);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBeUM7QUFDQTtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxzREFBUztBQUN4QjtBQUNBLGtCQUFrQixzREFBUTtBQUMxQjtBQUNBO0FBQ0E7QUFDZSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL21peC9pbmRleC5tanM/YjVjYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRNaXhlciB9IGZyb20gJy4vY29tcGxleC5tanMnO1xyXG5pbXBvcnQgeyBtaXhOdW1iZXIgfSBmcm9tICcuL251bWJlci5tanMnO1xyXG5cclxuZnVuY3Rpb24gbWl4KGZyb20sIHRvLCBwKSB7XHJcbiAgICBpZiAodHlwZW9mIGZyb20gPT09IFwibnVtYmVyXCIgJiZcclxuICAgICAgICB0eXBlb2YgdG8gPT09IFwibnVtYmVyXCIgJiZcclxuICAgICAgICB0eXBlb2YgcCA9PT0gXCJudW1iZXJcIikge1xyXG4gICAgICAgIHJldHVybiBtaXhOdW1iZXIoZnJvbSwgdG8sIHApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWl4ZXIgPSBnZXRNaXhlcihmcm9tKTtcclxuICAgIHJldHVybiBtaXhlcihmcm9tLCB0byk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IG1peCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/mix/number.mjs ***!
|
||
\**************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mixNumber: function() { return /* binding */ mixNumber; }\n/* harmony export */ });\n/*\r\n Value in range from progress\r\n\r\n Given a lower limit and an upper limit, we return the value within\r\n that range as expressed by progress (usually a number from 0 to 1)\r\n\r\n So progress = 0.5 would change\r\n\r\n from -------- to\r\n\r\n to\r\n\r\n from ---- to\r\n\r\n E.g. from = 10, to = 20, progress = 0.5 => 15\r\n\r\n @param [number]: Lower limit of range\r\n @param [number]: Upper limit of range\r\n @param [number]: The progress between lower and upper limits expressed 0-1\r\n @return [number]: Value as calculated from progress within range (not limited within range)\r\n*/\r\nconst mixNumber = (from, to, progress) => {\r\n return from + (to - from) * progress;\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L251bWJlci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3FCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L251bWJlci5tanM/ODAzYiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gIFZhbHVlIGluIHJhbmdlIGZyb20gcHJvZ3Jlc3NcclxuXHJcbiAgR2l2ZW4gYSBsb3dlciBsaW1pdCBhbmQgYW4gdXBwZXIgbGltaXQsIHdlIHJldHVybiB0aGUgdmFsdWUgd2l0aGluXHJcbiAgdGhhdCByYW5nZSBhcyBleHByZXNzZWQgYnkgcHJvZ3Jlc3MgKHVzdWFsbHkgYSBudW1iZXIgZnJvbSAwIHRvIDEpXHJcblxyXG4gIFNvIHByb2dyZXNzID0gMC41IHdvdWxkIGNoYW5nZVxyXG5cclxuICBmcm9tIC0tLS0tLS0tIHRvXHJcblxyXG4gIHRvXHJcblxyXG4gIGZyb20gLS0tLSB0b1xyXG5cclxuICBFLmcuIGZyb20gPSAxMCwgdG8gPSAyMCwgcHJvZ3Jlc3MgPSAwLjUgPT4gMTVcclxuXHJcbiAgQHBhcmFtIFtudW1iZXJdOiBMb3dlciBsaW1pdCBvZiByYW5nZVxyXG4gIEBwYXJhbSBbbnVtYmVyXTogVXBwZXIgbGltaXQgb2YgcmFuZ2VcclxuICBAcGFyYW0gW251bWJlcl06IFRoZSBwcm9ncmVzcyBiZXR3ZWVuIGxvd2VyIGFuZCB1cHBlciBsaW1pdHMgZXhwcmVzc2VkIDAtMVxyXG4gIEByZXR1cm4gW251bWJlcl06IFZhbHVlIGFzIGNhbGN1bGF0ZWQgZnJvbSBwcm9ncmVzcyB3aXRoaW4gcmFuZ2UgKG5vdCBsaW1pdGVkIHdpdGhpbiByYW5nZSlcclxuKi9cclxuY29uc3QgbWl4TnVtYmVyID0gKGZyb20sIHRvLCBwcm9ncmVzcykgPT4ge1xyXG4gICAgcmV0dXJuIGZyb20gKyAodG8gLSBmcm9tKSAqIHByb2dyZXNzO1xyXG59O1xyXG5cclxuZXhwb3J0IHsgbWl4TnVtYmVyIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ invisibleValues: function() { return /* binding */ invisibleValues; },\n/* harmony export */ mixVisibility: function() { return /* binding */ mixVisibility; }\n/* harmony export */ });\nconst invisibleValues = new Set([\"none\", \"hidden\"]);\r\n/**\r\n * Returns a function that, when provided a progress value between 0 and 1,\r\n * will return the \"none\" or \"hidden\" string only when the progress is that of\r\n * the origin or target.\r\n */\r\nfunction mixVisibility(origin, target) {\r\n if (invisibleValues.has(origin)) {\r\n return (p) => (p <= 0 ? origin : target);\r\n }\r\n else {\r\n return (p) => (p >= 1 ? target : origin);\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L3Zpc2liaWxpdHkubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQzBDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L3Zpc2liaWxpdHkubWpzP2QwM2QiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaW52aXNpYmxlVmFsdWVzID0gbmV3IFNldChbXCJub25lXCIsIFwiaGlkZGVuXCJdKTtcclxuLyoqXHJcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0aGF0LCB3aGVuIHByb3ZpZGVkIGEgcHJvZ3Jlc3MgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLFxyXG4gKiB3aWxsIHJldHVybiB0aGUgXCJub25lXCIgb3IgXCJoaWRkZW5cIiBzdHJpbmcgb25seSB3aGVuIHRoZSBwcm9ncmVzcyBpcyB0aGF0IG9mXHJcbiAqIHRoZSBvcmlnaW4gb3IgdGFyZ2V0LlxyXG4gKi9cclxuZnVuY3Rpb24gbWl4VmlzaWJpbGl0eShvcmlnaW4sIHRhcmdldCkge1xyXG4gICAgaWYgKGludmlzaWJsZVZhbHVlcy5oYXMob3JpZ2luKSkge1xyXG4gICAgICAgIHJldHVybiAocCkgPT4gKHAgPD0gMCA/IG9yaWdpbiA6IHRhcmdldCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gKHApID0+IChwID49IDEgPyB0YXJnZXQgOiBvcmlnaW4pO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgeyBpbnZpc2libGVWYWx1ZXMsIG1peFZpc2liaWxpdHkgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveElements: function() { return /* binding */ resolveElements; }\n/* harmony export */ });\nfunction resolveElements(elementOrSelector, scope, selectorCache) {\r\n if (elementOrSelector instanceof EventTarget) {\r\n return [elementOrSelector];\r\n }\r\n else if (typeof elementOrSelector === \"string\") {\r\n let root = document;\r\n if (scope) {\r\n root = scope.current;\r\n }\r\n const elements = selectorCache?.[elementOrSelector] ??\r\n root.querySelectorAll(elementOrSelector);\r\n return elements ? Array.from(elements) : [];\r\n }\r\n return Array.from(elementOrSelector);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvcmVzb2x2ZS1lbGVtZW50cy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQzJCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvcmVzb2x2ZS1lbGVtZW50cy5tanM/MjNiOSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiByZXNvbHZlRWxlbWVudHMoZWxlbWVudE9yU2VsZWN0b3IsIHNjb3BlLCBzZWxlY3RvckNhY2hlKSB7XHJcbiAgICBpZiAoZWxlbWVudE9yU2VsZWN0b3IgaW5zdGFuY2VvZiBFdmVudFRhcmdldCkge1xyXG4gICAgICAgIHJldHVybiBbZWxlbWVudE9yU2VsZWN0b3JdO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIGVsZW1lbnRPclNlbGVjdG9yID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgbGV0IHJvb3QgPSBkb2N1bWVudDtcclxuICAgICAgICBpZiAoc2NvcGUpIHtcclxuICAgICAgICAgICAgcm9vdCA9IHNjb3BlLmN1cnJlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gc2VsZWN0b3JDYWNoZT8uW2VsZW1lbnRPclNlbGVjdG9yXSA/P1xyXG4gICAgICAgICAgICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoZWxlbWVudE9yU2VsZWN0b3IpO1xyXG4gICAgICAgIHJldHVybiBlbGVtZW50cyA/IEFycmF5LmZyb20oZWxlbWVudHMpIDogW107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbShlbGVtZW50T3JTZWxlY3Rvcik7XHJcbn1cclxuXHJcbmV4cG9ydCB7IHJlc29sdmVFbGVtZW50cyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/flags.mjs":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/supports/flags.mjs ***!
|
||
\******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportsFlags: function() { return /* binding */ supportsFlags; }\n/* harmony export */ });\n/**\r\n * Add the ability for test suites to manually set support flags\r\n * to better test more environments.\r\n */\r\nconst supportsFlags = {};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvZmxhZ3MubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9zdXBwb3J0cy9mbGFncy5tanM/MjVjYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQWRkIHRoZSBhYmlsaXR5IGZvciB0ZXN0IHN1aXRlcyB0byBtYW51YWxseSBzZXQgc3VwcG9ydCBmbGFnc1xyXG4gKiB0byBiZXR0ZXIgdGVzdCBtb3JlIGVudmlyb25tZW50cy5cclxuICovXHJcbmNvbnN0IHN1cHBvcnRzRmxhZ3MgPSB7fTtcclxuXHJcbmV4cG9ydCB7IHN1cHBvcnRzRmxhZ3MgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/flags.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs ***!
|
||
\**************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportsLinearEasing: function() { return /* binding */ supportsLinearEasing; }\n/* harmony export */ });\n/* harmony import */ var _memo_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./memo.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs\");\n\r\n\r\nconst supportsLinearEasing = /*@__PURE__*/ (0,_memo_mjs__WEBPACK_IMPORTED_MODULE_0__.memoSupports)(() => {\r\n try {\r\n document\r\n .createElement(\"div\")\r\n .animate({ opacity: 0 }, { easing: \"linear(0, 1)\" });\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n return true;\r\n}, \"linearEasing\");\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvbGluZWFyLWVhc2luZy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBMEM7QUFDMUM7QUFDQSwyQ0FBMkMsdURBQVk7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLFlBQVksSUFBSSx3QkFBd0I7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNnQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3N1cHBvcnRzL2xpbmVhci1lYXNpbmcubWpzPzAyNGYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtb1N1cHBvcnRzIH0gZnJvbSAnLi9tZW1vLm1qcyc7XHJcblxyXG5jb25zdCBzdXBwb3J0c0xpbmVhckVhc2luZyA9IC8qQF9fUFVSRV9fKi8gbWVtb1N1cHBvcnRzKCgpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgZG9jdW1lbnRcclxuICAgICAgICAgICAgLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIilcclxuICAgICAgICAgICAgLmFuaW1hdGUoeyBvcGFjaXR5OiAwIH0sIHsgZWFzaW5nOiBcImxpbmVhcigwLCAxKVwiIH0pO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufSwgXCJsaW5lYXJFYXNpbmdcIik7XHJcblxyXG5leHBvcnQgeyBzdXBwb3J0c0xpbmVhckVhc2luZyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/supports/memo.mjs ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ memoSupports: function() { return /* binding */ memoSupports; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/memo.mjs\");\n/* harmony import */ var _flags_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flags.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/flags.mjs\");\n\r\n\r\n\r\nfunction memoSupports(callback, supportsFlag) {\r\n const memoized = (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.memo)(callback);\r\n return () => _flags_mjs__WEBPACK_IMPORTED_MODULE_1__.supportsFlags[supportsFlag] ?? memoized();\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvbWVtby5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9DO0FBQ1E7QUFDNUM7QUFDQTtBQUNBLHFCQUFxQixrREFBSTtBQUN6QixpQkFBaUIscURBQWE7QUFDOUI7QUFDQTtBQUN3QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3N1cHBvcnRzL21lbW8ubWpzP2QxOTIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtbyB9IGZyb20gJ21vdGlvbi11dGlscyc7XHJcbmltcG9ydCB7IHN1cHBvcnRzRmxhZ3MgfSBmcm9tICcuL2ZsYWdzLm1qcyc7XHJcblxyXG5mdW5jdGlvbiBtZW1vU3VwcG9ydHMoY2FsbGJhY2ssIHN1cHBvcnRzRmxhZykge1xyXG4gICAgY29uc3QgbWVtb2l6ZWQgPSBtZW1vKGNhbGxiYWNrKTtcclxuICAgIHJldHVybiAoKSA9PiBzdXBwb3J0c0ZsYWdzW3N1cHBvcnRzRmxhZ10gPz8gbWVtb2l6ZWQoKTtcclxufVxyXG5cclxuZXhwb3J0IHsgbWVtb1N1cHBvcnRzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportsScrollTimeline: function() { return /* binding */ supportsScrollTimeline; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/memo.mjs\");\n\r\n\r\nconst supportsScrollTimeline = /* @__PURE__ */ (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.memo)(() => window.ScrollTimeline !== undefined);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvc2Nyb2xsLXRpbWVsaW5lLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFvQztBQUNwQztBQUNBLCtDQUErQyxrREFBSTtBQUNuRDtBQUNrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3N1cHBvcnRzL3Njcm9sbC10aW1lbGluZS5tanM/NTA0OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtZW1vIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcclxuXHJcbmNvbnN0IHN1cHBvcnRzU2Nyb2xsVGltZWxpbmUgPSAvKiBAX19QVVJFX18gKi8gbWVtbygoKSA9PiB3aW5kb3cuU2Nyb2xsVGltZWxpbmUgIT09IHVuZGVmaW5lZCk7XHJcblxyXG5leHBvcnQgeyBzdXBwb3J0c1Njcm9sbFRpbWVsaW5lIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/transform.mjs":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/utils/transform.mjs ***!
|
||
\*************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ transform: function() { return /* binding */ transform; }\n/* harmony export */ });\n/* harmony import */ var _interpolate_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interpolate.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/interpolate.mjs\");\n\r\n\r\nfunction transform(...args) {\r\n const useImmediate = !Array.isArray(args[0]);\r\n const argOffset = useImmediate ? 0 : -1;\r\n const inputValue = args[0 + argOffset];\r\n const inputRange = args[1 + argOffset];\r\n const outputRange = args[2 + argOffset];\r\n const options = args[3 + argOffset];\r\n const interpolator = (0,_interpolate_mjs__WEBPACK_IMPORTED_MODULE_0__.interpolate)(inputRange, outputRange, options);\r\n return useImmediate ? interpolator(inputValue) : interpolator;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFnRDtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLDZEQUFXO0FBQ3BDO0FBQ0E7QUFDQTtBQUNxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3RyYW5zZm9ybS5tanM/N2NhNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnRlcnBvbGF0ZSB9IGZyb20gJy4vaW50ZXJwb2xhdGUubWpzJztcclxuXHJcbmZ1bmN0aW9uIHRyYW5zZm9ybSguLi5hcmdzKSB7XHJcbiAgICBjb25zdCB1c2VJbW1lZGlhdGUgPSAhQXJyYXkuaXNBcnJheShhcmdzWzBdKTtcclxuICAgIGNvbnN0IGFyZ09mZnNldCA9IHVzZUltbWVkaWF0ZSA/IDAgOiAtMTtcclxuICAgIGNvbnN0IGlucHV0VmFsdWUgPSBhcmdzWzAgKyBhcmdPZmZzZXRdO1xyXG4gICAgY29uc3QgaW5wdXRSYW5nZSA9IGFyZ3NbMSArIGFyZ09mZnNldF07XHJcbiAgICBjb25zdCBvdXRwdXRSYW5nZSA9IGFyZ3NbMiArIGFyZ09mZnNldF07XHJcbiAgICBjb25zdCBvcHRpb25zID0gYXJnc1szICsgYXJnT2Zmc2V0XTtcclxuICAgIGNvbnN0IGludGVycG9sYXRvciA9IGludGVycG9sYXRlKGlucHV0UmFuZ2UsIG91dHB1dFJhbmdlLCBvcHRpb25zKTtcclxuICAgIHJldHVybiB1c2VJbW1lZGlhdGUgPyBpbnRlcnBvbGF0b3IoaW5wdXRWYWx1ZSkgOiBpbnRlcnBvbGF0b3I7XHJcbn1cclxuXHJcbmV4cG9ydCB7IHRyYW5zZm9ybSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/transform.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs":
|
||
/*!*********************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/index.mjs ***!
|
||
\*********************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MotionValue: function() { return /* binding */ MotionValue; },\n/* harmony export */ collectMotionValues: function() { return /* binding */ collectMotionValues; },\n/* harmony export */ motionValue: function() { return /* binding */ motionValue; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\r\n\r\n\r\n\r\n/**\r\n * Maximum time between the value of two frames, beyond which we\r\n * assume the velocity has since been 0.\r\n */\r\nconst MAX_VELOCITY_DELTA = 30;\r\nconst isFloat = (value) => {\r\n return !isNaN(parseFloat(value));\r\n};\r\nconst collectMotionValues = {\r\n current: undefined,\r\n};\r\n/**\r\n * `MotionValue` is used to track the state and velocity of motion values.\r\n *\r\n * @public\r\n */\r\nclass MotionValue {\r\n /**\r\n * @param init - The initiating value\r\n * @param config - Optional configuration options\r\n *\r\n * - `transformer`: A function to transform incoming values with.\r\n */\r\n constructor(init, options = {}) {\r\n /**\r\n * Tracks whether this value can output a velocity. Currently this is only true\r\n * if the value is numerical, but we might be able to widen the scope here and support\r\n * other value types.\r\n *\r\n * @internal\r\n */\r\n this.canTrackVelocity = null;\r\n /**\r\n * An object containing a SubscriptionManager for each active event.\r\n */\r\n this.events = {};\r\n this.updateAndNotify = (v) => {\r\n const currentTime = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\r\n /**\r\n * If we're updating the value during another frame or eventloop\r\n * than the previous frame, then the we set the previous frame value\r\n * to current.\r\n */\r\n if (this.updatedAt !== currentTime) {\r\n this.setPrevFrameValue();\r\n }\r\n this.prev = this.current;\r\n this.setCurrent(v);\r\n // Update update subscribers\r\n if (this.current !== this.prev) {\r\n this.events.change?.notify(this.current);\r\n if (this.dependents) {\r\n for (const dependent of this.dependents) {\r\n dependent.dirty();\r\n }\r\n }\r\n }\r\n };\r\n this.hasAnimated = false;\r\n this.setCurrent(init);\r\n this.owner = options.owner;\r\n }\r\n setCurrent(current) {\r\n this.current = current;\r\n this.updatedAt = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\r\n if (this.canTrackVelocity === null && current !== undefined) {\r\n this.canTrackVelocity = isFloat(this.current);\r\n }\r\n }\r\n setPrevFrameValue(prevFrameValue = this.current) {\r\n this.prevFrameValue = prevFrameValue;\r\n this.prevUpdatedAt = this.updatedAt;\r\n }\r\n /**\r\n * Adds a function that will be notified when the `MotionValue` is updated.\r\n *\r\n * It returns a function that, when called, will cancel the subscription.\r\n *\r\n * When calling `onChange` inside a React component, it should be wrapped with the\r\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\r\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\r\n *\r\n * ```jsx\r\n * export const MyComponent = () => {\r\n * const x = useMotionValue(0)\r\n * const y = useMotionValue(0)\r\n * const opacity = useMotionValue(1)\r\n *\r\n * useEffect(() => {\r\n * function updateOpacity() {\r\n * const maxXY = Math.max(x.get(), y.get())\r\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\r\n * opacity.set(newOpacity)\r\n * }\r\n *\r\n * const unsubscribeX = x.on(\"change\", updateOpacity)\r\n * const unsubscribeY = y.on(\"change\", updateOpacity)\r\n *\r\n * return () => {\r\n * unsubscribeX()\r\n * unsubscribeY()\r\n * }\r\n * }, [])\r\n *\r\n * return <motion.div style={{ x }} />\r\n * }\r\n * ```\r\n *\r\n * @param subscriber - A function that receives the latest value.\r\n * @returns A function that, when called, will cancel this subscription.\r\n *\r\n * @deprecated\r\n */\r\n onChange(subscription) {\r\n if (true) {\r\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warnOnce)(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\r\n }\r\n return this.on(\"change\", subscription);\r\n }\r\n on(eventName, callback) {\r\n if (!this.events[eventName]) {\r\n this.events[eventName] = new motion_utils__WEBPACK_IMPORTED_MODULE_2__.SubscriptionManager();\r\n }\r\n const unsubscribe = this.events[eventName].add(callback);\r\n if (eventName === \"change\") {\r\n return () => {\r\n unsubscribe();\r\n /**\r\n * If we have no more change listeners by the start\r\n * of the next frame, stop active animations.\r\n */\r\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__.frame.read(() => {\r\n if (!this.events.change.getSize()) {\r\n this.stop();\r\n }\r\n });\r\n };\r\n }\r\n return unsubscribe;\r\n }\r\n clearListeners() {\r\n for (const eventManagers in this.events) {\r\n this.events[eventManagers].clear();\r\n }\r\n }\r\n /**\r\n * Attaches a passive effect to the `MotionValue`.\r\n */\r\n attach(passiveEffect, stopPassiveEffect) {\r\n this.passiveEffect = passiveEffect;\r\n this.stopPassiveEffect = stopPassiveEffect;\r\n }\r\n /**\r\n * Sets the state of the `MotionValue`.\r\n *\r\n * @remarks\r\n *\r\n * ```jsx\r\n * const x = useMotionValue(0)\r\n * x.set(10)\r\n * ```\r\n *\r\n * @param latest - Latest value to set.\r\n * @param render - Whether to notify render subscribers. Defaults to `true`\r\n *\r\n * @public\r\n */\r\n set(v) {\r\n if (!this.passiveEffect) {\r\n this.updateAndNotify(v);\r\n }\r\n else {\r\n this.passiveEffect(v, this.updateAndNotify);\r\n }\r\n }\r\n setWithVelocity(prev, current, delta) {\r\n this.set(current);\r\n this.prev = undefined;\r\n this.prevFrameValue = prev;\r\n this.prevUpdatedAt = this.updatedAt - delta;\r\n }\r\n /**\r\n * Set the state of the `MotionValue`, stopping any active animations,\r\n * effects, and resets velocity to `0`.\r\n */\r\n jump(v, endAnimation = true) {\r\n this.updateAndNotify(v);\r\n this.prev = v;\r\n this.prevUpdatedAt = this.prevFrameValue = undefined;\r\n endAnimation && this.stop();\r\n if (this.stopPassiveEffect)\r\n this.stopPassiveEffect();\r\n }\r\n dirty() {\r\n this.events.change?.notify(this.current);\r\n }\r\n addDependent(dependent) {\r\n if (!this.dependents) {\r\n this.dependents = new Set();\r\n }\r\n this.dependents.add(dependent);\r\n }\r\n removeDependent(dependent) {\r\n if (this.dependents) {\r\n this.dependents.delete(dependent);\r\n }\r\n }\r\n /**\r\n * Returns the latest state of `MotionValue`\r\n *\r\n * @returns - The latest state of `MotionValue`\r\n *\r\n * @public\r\n */\r\n get() {\r\n if (collectMotionValues.current) {\r\n collectMotionValues.current.push(this);\r\n }\r\n return this.current;\r\n }\r\n /**\r\n * @public\r\n */\r\n getPrevious() {\r\n return this.prev;\r\n }\r\n /**\r\n * Returns the latest velocity of `MotionValue`\r\n *\r\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\r\n *\r\n * @public\r\n */\r\n getVelocity() {\r\n const currentTime = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\r\n if (!this.canTrackVelocity ||\r\n this.prevFrameValue === undefined ||\r\n currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\r\n return 0;\r\n }\r\n const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\r\n // Casts because of parseFloat's poor typing\r\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.velocityPerSecond)(parseFloat(this.current) -\r\n parseFloat(this.prevFrameValue), delta);\r\n }\r\n /**\r\n * Registers a new animation to control this `MotionValue`. Only one\r\n * animation can drive a `MotionValue` at one time.\r\n *\r\n * ```jsx\r\n * value.start()\r\n * ```\r\n *\r\n * @param animation - A function that starts the provided animation\r\n */\r\n start(startAnimation) {\r\n this.stop();\r\n return new Promise((resolve) => {\r\n this.hasAnimated = true;\r\n this.animation = startAnimation(resolve);\r\n if (this.events.animationStart) {\r\n this.events.animationStart.notify();\r\n }\r\n }).then(() => {\r\n if (this.events.animationComplete) {\r\n this.events.animationComplete.notify();\r\n }\r\n this.clearAnimation();\r\n });\r\n }\r\n /**\r\n * Stop the currently active animation.\r\n *\r\n * @public\r\n */\r\n stop() {\r\n if (this.animation) {\r\n this.animation.stop();\r\n if (this.events.animationCancel) {\r\n this.events.animationCancel.notify();\r\n }\r\n }\r\n this.clearAnimation();\r\n }\r\n /**\r\n * Returns `true` if this value is currently animating.\r\n *\r\n * @public\r\n */\r\n isAnimating() {\r\n return !!this.animation;\r\n }\r\n clearAnimation() {\r\n delete this.animation;\r\n }\r\n /**\r\n * Destroy and clean up subscribers to this `MotionValue`.\r\n *\r\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\r\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\r\n * created a `MotionValue` via the `motionValue` function.\r\n *\r\n * @public\r\n */\r\n destroy() {\r\n this.dependents?.clear();\r\n this.events.destroy?.notify();\r\n this.clearListeners();\r\n this.stop();\r\n if (this.stopPassiveEffect) {\r\n this.stopPassiveEffect();\r\n }\r\n }\r\n}\r\nfunction motionValue(init, options) {\r\n return new MotionValue(init, options);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQWdGO0FBQzlCO0FBQ0g7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLDBEQUFJO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsMERBQUk7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxxQ0FBcUMsS0FBSztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQXFDO0FBQ2pELFlBQVksc0RBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5Qyw2REFBbUI7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHVEQUFLO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLDBEQUFJO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSwrREFBaUI7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUN5RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL2luZGV4Lm1qcz8wMmIzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdhcm5PbmNlLCBTdWJzY3JpcHRpb25NYW5hZ2VyLCB2ZWxvY2l0eVBlclNlY29uZCB9IGZyb20gJ21vdGlvbi11dGlscyc7XHJcbmltcG9ydCB7IHRpbWUgfSBmcm9tICcuLi9mcmFtZWxvb3Avc3luYy10aW1lLm1qcyc7XHJcbmltcG9ydCB7IGZyYW1lIH0gZnJvbSAnLi4vZnJhbWVsb29wL2ZyYW1lLm1qcyc7XHJcblxyXG4vKipcclxuICogTWF4aW11bSB0aW1lIGJldHdlZW4gdGhlIHZhbHVlIG9mIHR3byBmcmFtZXMsIGJleW9uZCB3aGljaCB3ZVxyXG4gKiBhc3N1bWUgdGhlIHZlbG9jaXR5IGhhcyBzaW5jZSBiZWVuIDAuXHJcbiAqL1xyXG5jb25zdCBNQVhfVkVMT0NJVFlfREVMVEEgPSAzMDtcclxuY29uc3QgaXNGbG9hdCA9ICh2YWx1ZSkgPT4ge1xyXG4gICAgcmV0dXJuICFpc05hTihwYXJzZUZsb2F0KHZhbHVlKSk7XHJcbn07XHJcbmNvbnN0IGNvbGxlY3RNb3Rpb25WYWx1ZXMgPSB7XHJcbiAgICBjdXJyZW50OiB1bmRlZmluZWQsXHJcbn07XHJcbi8qKlxyXG4gKiBgTW90aW9uVmFsdWVgIGlzIHVzZWQgdG8gdHJhY2sgdGhlIHN0YXRlIGFuZCB2ZWxvY2l0eSBvZiBtb3Rpb24gdmFsdWVzLlxyXG4gKlxyXG4gKiBAcHVibGljXHJcbiAqL1xyXG5jbGFzcyBNb3Rpb25WYWx1ZSB7XHJcbiAgICAvKipcclxuICAgICAqIEBwYXJhbSBpbml0IC0gVGhlIGluaXRpYXRpbmcgdmFsdWVcclxuICAgICAqIEBwYXJhbSBjb25maWcgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnNcclxuICAgICAqXHJcbiAgICAgKiAtICBgdHJhbnNmb3JtZXJgOiBBIGZ1bmN0aW9uIHRvIHRyYW5zZm9ybSBpbmNvbWluZyB2YWx1ZXMgd2l0aC5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoaW5pdCwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVHJhY2tzIHdoZXRoZXIgdGhpcyB2YWx1ZSBjYW4gb3V0cHV0IGEgdmVsb2NpdHkuIEN1cnJlbnRseSB0aGlzIGlzIG9ubHkgdHJ1ZVxyXG4gICAgICAgICAqIGlmIHRoZSB2YWx1ZSBpcyBudW1lcmljYWwsIGJ1dCB3ZSBtaWdodCBiZSBhYmxlIHRvIHdpZGVuIHRoZSBzY29wZSBoZXJlIGFuZCBzdXBwb3J0XHJcbiAgICAgICAgICogb3RoZXIgdmFsdWUgdHlwZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAaW50ZXJuYWxcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNhblRyYWNrVmVsb2NpdHkgPSBudWxsO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIG9iamVjdCBjb250YWluaW5nIGEgU3Vic2NyaXB0aW9uTWFuYWdlciBmb3IgZWFjaCBhY3RpdmUgZXZlbnQuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5ldmVudHMgPSB7fTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUFuZE5vdGlmeSA9ICh2KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gdGltZS5ub3coKTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIElmIHdlJ3JlIHVwZGF0aW5nIHRoZSB2YWx1ZSBkdXJpbmcgYW5vdGhlciBmcmFtZSBvciBldmVudGxvb3BcclxuICAgICAgICAgICAgICogdGhhbiB0aGUgcHJldmlvdXMgZnJhbWUsIHRoZW4gdGhlIHdlIHNldCB0aGUgcHJldmlvdXMgZnJhbWUgdmFsdWVcclxuICAgICAgICAgICAgICogdG8gY3VycmVudC5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnVwZGF0ZWRBdCAhPT0gY3VycmVudFRpbWUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJldkZyYW1lVmFsdWUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnByZXYgPSB0aGlzLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudCh2KTtcclxuICAgICAgICAgICAgLy8gVXBkYXRlIHVwZGF0ZSBzdWJzY3JpYmVyc1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50ICE9PSB0aGlzLnByZXYpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRzLmNoYW5nZT8ubm90aWZ5KHRoaXMuY3VycmVudCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZXBlbmRlbnRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBkZXBlbmRlbnQgb2YgdGhpcy5kZXBlbmRlbnRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVudC5kaXJ0eSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5oYXNBbmltYXRlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudChpbml0KTtcclxuICAgICAgICB0aGlzLm93bmVyID0gb3B0aW9ucy5vd25lcjtcclxuICAgIH1cclxuICAgIHNldEN1cnJlbnQoY3VycmVudCkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudCA9IGN1cnJlbnQ7XHJcbiAgICAgICAgdGhpcy51cGRhdGVkQXQgPSB0aW1lLm5vdygpO1xyXG4gICAgICAgIGlmICh0aGlzLmNhblRyYWNrVmVsb2NpdHkgPT09IG51bGwgJiYgY3VycmVudCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FuVHJhY2tWZWxvY2l0eSA9IGlzRmxvYXQodGhpcy5jdXJyZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBzZXRQcmV2RnJhbWVWYWx1ZShwcmV2RnJhbWVWYWx1ZSA9IHRoaXMuY3VycmVudCkge1xyXG4gICAgICAgIHRoaXMucHJldkZyYW1lVmFsdWUgPSBwcmV2RnJhbWVWYWx1ZTtcclxuICAgICAgICB0aGlzLnByZXZVcGRhdGVkQXQgPSB0aGlzLnVwZGF0ZWRBdDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQWRkcyBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBub3RpZmllZCB3aGVuIHRoZSBgTW90aW9uVmFsdWVgIGlzIHVwZGF0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogSXQgcmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQsIHdoZW4gY2FsbGVkLCB3aWxsIGNhbmNlbCB0aGUgc3Vic2NyaXB0aW9uLlxyXG4gICAgICpcclxuICAgICAqIFdoZW4gY2FsbGluZyBgb25DaGFuZ2VgIGluc2lkZSBhIFJlYWN0IGNvbXBvbmVudCwgaXQgc2hvdWxkIGJlIHdyYXBwZWQgd2l0aCB0aGVcclxuICAgICAqIGB1c2VFZmZlY3RgIGhvb2suIEFzIGl0IHJldHVybnMgYW4gdW5zdWJzY3JpYmUgZnVuY3Rpb24sIHRoaXMgc2hvdWxkIGJlIHJldHVybmVkXHJcbiAgICAgKiBmcm9tIHRoZSBgdXNlRWZmZWN0YCBmdW5jdGlvbiB0byBlbnN1cmUgeW91IGRvbid0IGFkZCBkdXBsaWNhdGUgc3Vic2NyaWJlcnMuLlxyXG4gICAgICpcclxuICAgICAqIGBgYGpzeFxyXG4gICAgICogZXhwb3J0IGNvbnN0IE15Q29tcG9uZW50ID0gKCkgPT4ge1xyXG4gICAgICogICBjb25zdCB4ID0gdXNlTW90aW9uVmFsdWUoMClcclxuICAgICAqICAgY29uc3QgeSA9IHVzZU1vdGlvblZhbHVlKDApXHJcbiAgICAgKiAgIGNvbnN0IG9wYWNpdHkgPSB1c2VNb3Rpb25WYWx1ZSgxKVxyXG4gICAgICpcclxuICAgICAqICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAqICAgICBmdW5jdGlvbiB1cGRhdGVPcGFjaXR5KCkge1xyXG4gICAgICogICAgICAgY29uc3QgbWF4WFkgPSBNYXRoLm1heCh4LmdldCgpLCB5LmdldCgpKVxyXG4gICAgICogICAgICAgY29uc3QgbmV3T3BhY2l0eSA9IHRyYW5zZm9ybShtYXhYWSwgWzAsIDEwMF0sIFsxLCAwXSlcclxuICAgICAqICAgICAgIG9wYWNpdHkuc2V0KG5ld09wYWNpdHkpXHJcbiAgICAgKiAgICAgfVxyXG4gICAgICpcclxuICAgICAqICAgICBjb25zdCB1bnN1YnNjcmliZVggPSB4Lm9uKFwiY2hhbmdlXCIsIHVwZGF0ZU9wYWNpdHkpXHJcbiAgICAgKiAgICAgY29uc3QgdW5zdWJzY3JpYmVZID0geS5vbihcImNoYW5nZVwiLCB1cGRhdGVPcGFjaXR5KVxyXG4gICAgICpcclxuICAgICAqICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICogICAgICAgdW5zdWJzY3JpYmVYKClcclxuICAgICAqICAgICAgIHVuc3Vic2NyaWJlWSgpXHJcbiAgICAgKiAgICAgfVxyXG4gICAgICogICB9LCBbXSlcclxuICAgICAqXHJcbiAgICAgKiAgIHJldHVybiA8bW90aW9uLmRpdiBzdHlsZT17eyB4IH19IC8+XHJcbiAgICAgKiB9XHJcbiAgICAgKiBgYGBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gc3Vic2NyaWJlciAtIEEgZnVuY3Rpb24gdGhhdCByZWNlaXZlcyB0aGUgbGF0ZXN0IHZhbHVlLlxyXG4gICAgICogQHJldHVybnMgQSBmdW5jdGlvbiB0aGF0LCB3aGVuIGNhbGxlZCwgd2lsbCBjYW5jZWwgdGhpcyBzdWJzY3JpcHRpb24uXHJcbiAgICAgKlxyXG4gICAgICogQGRlcHJlY2F0ZWRcclxuICAgICAqL1xyXG4gICAgb25DaGFuZ2Uoc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xyXG4gICAgICAgICAgICB3YXJuT25jZShmYWxzZSwgYHZhbHVlLm9uQ2hhbmdlKGNhbGxiYWNrKSBpcyBkZXByZWNhdGVkLiBTd2l0Y2ggdG8gdmFsdWUub24oXCJjaGFuZ2VcIiwgY2FsbGJhY2spLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5vbihcImNoYW5nZVwiLCBzdWJzY3JpcHRpb24pO1xyXG4gICAgfVxyXG4gICAgb24oZXZlbnROYW1lLCBjYWxsYmFjaykge1xyXG4gICAgICAgIGlmICghdGhpcy5ldmVudHNbZXZlbnROYW1lXSkge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c1tldmVudE5hbWVdID0gbmV3IFN1YnNjcmlwdGlvbk1hbmFnZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdW5zdWJzY3JpYmUgPSB0aGlzLmV2ZW50c1tldmVudE5hbWVdLmFkZChjYWxsYmFjayk7XHJcbiAgICAgICAgaWYgKGV2ZW50TmFtZSA9PT0gXCJjaGFuZ2VcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBubyBtb3JlIGNoYW5nZSBsaXN0ZW5lcnMgYnkgdGhlIHN0YXJ0XHJcbiAgICAgICAgICAgICAgICAgKiBvZiB0aGUgbmV4dCBmcmFtZSwgc3RvcCBhY3RpdmUgYW5pbWF0aW9ucy5cclxuICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgZnJhbWUucmVhZCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmV2ZW50cy5jaGFuZ2UuZ2V0U2l6ZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdW5zdWJzY3JpYmU7XHJcbiAgICB9XHJcbiAgICBjbGVhckxpc3RlbmVycygpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGV2ZW50TWFuYWdlcnMgaW4gdGhpcy5ldmVudHMpIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNbZXZlbnRNYW5hZ2Vyc10uY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEF0dGFjaGVzIGEgcGFzc2l2ZSBlZmZlY3QgdG8gdGhlIGBNb3Rpb25WYWx1ZWAuXHJcbiAgICAgKi9cclxuICAgIGF0dGFjaChwYXNzaXZlRWZmZWN0LCBzdG9wUGFzc2l2ZUVmZmVjdCkge1xyXG4gICAgICAgIHRoaXMucGFzc2l2ZUVmZmVjdCA9IHBhc3NpdmVFZmZlY3Q7XHJcbiAgICAgICAgdGhpcy5zdG9wUGFzc2l2ZUVmZmVjdCA9IHN0b3BQYXNzaXZlRWZmZWN0O1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgYE1vdGlvblZhbHVlYC5cclxuICAgICAqXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICpcclxuICAgICAqIGBgYGpzeFxyXG4gICAgICogY29uc3QgeCA9IHVzZU1vdGlvblZhbHVlKDApXHJcbiAgICAgKiB4LnNldCgxMClcclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBsYXRlc3QgLSBMYXRlc3QgdmFsdWUgdG8gc2V0LlxyXG4gICAgICogQHBhcmFtIHJlbmRlciAtIFdoZXRoZXIgdG8gbm90aWZ5IHJlbmRlciBzdWJzY3JpYmVycy4gRGVmYXVsdHMgdG8gYHRydWVgXHJcbiAgICAgKlxyXG4gICAgICogQHB1YmxpY1xyXG4gICAgICovXHJcbiAgICBzZXQodikge1xyXG4gICAgICAgIGlmICghdGhpcy5wYXNzaXZlRWZmZWN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQW5kTm90aWZ5KHYpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5wYXNzaXZlRWZmZWN0KHYsIHRoaXMudXBkYXRlQW5kTm90aWZ5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBzZXRXaXRoVmVsb2NpdHkocHJldiwgY3VycmVudCwgZGVsdGEpIHtcclxuICAgICAgICB0aGlzLnNldChjdXJyZW50KTtcclxuICAgICAgICB0aGlzLnByZXYgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5wcmV2RnJhbWVWYWx1ZSA9IHByZXY7XHJcbiAgICAgICAgdGhpcy5wcmV2VXBkYXRlZEF0ID0gdGhpcy51cGRhdGVkQXQgLSBkZWx0YTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBzdGF0ZSBvZiB0aGUgYE1vdGlvblZhbHVlYCwgc3RvcHBpbmcgYW55IGFjdGl2ZSBhbmltYXRpb25zLFxyXG4gICAgICogZWZmZWN0cywgYW5kIHJlc2V0cyB2ZWxvY2l0eSB0byBgMGAuXHJcbiAgICAgKi9cclxuICAgIGp1bXAodiwgZW5kQW5pbWF0aW9uID0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlQW5kTm90aWZ5KHYpO1xyXG4gICAgICAgIHRoaXMucHJldiA9IHY7XHJcbiAgICAgICAgdGhpcy5wcmV2VXBkYXRlZEF0ID0gdGhpcy5wcmV2RnJhbWVWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICBlbmRBbmltYXRpb24gJiYgdGhpcy5zdG9wKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcFBhc3NpdmVFZmZlY3QpXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcFBhc3NpdmVFZmZlY3QoKTtcclxuICAgIH1cclxuICAgIGRpcnR5KCkge1xyXG4gICAgICAgIHRoaXMuZXZlbnRzLmNoYW5nZT8ubm90aWZ5KHRoaXMuY3VycmVudCk7XHJcbiAgICB9XHJcbiAgICBhZGREZXBlbmRlbnQoZGVwZW5kZW50KSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRlcGVuZGVudHMpIHtcclxuICAgICAgICAgICAgdGhpcy5kZXBlbmRlbnRzID0gbmV3IFNldCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRlcGVuZGVudHMuYWRkKGRlcGVuZGVudCk7XHJcbiAgICB9XHJcbiAgICByZW1vdmVEZXBlbmRlbnQoZGVwZW5kZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGVwZW5kZW50cykge1xyXG4gICAgICAgICAgICB0aGlzLmRlcGVuZGVudHMuZGVsZXRlKGRlcGVuZGVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBsYXRlc3Qgc3RhdGUgb2YgYE1vdGlvblZhbHVlYFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIC0gVGhlIGxhdGVzdCBzdGF0ZSBvZiBgTW90aW9uVmFsdWVgXHJcbiAgICAgKlxyXG4gICAgICogQHB1YmxpY1xyXG4gICAgICovXHJcbiAgICBnZXQoKSB7XHJcbiAgICAgICAgaWYgKGNvbGxlY3RNb3Rpb25WYWx1ZXMuY3VycmVudCkge1xyXG4gICAgICAgICAgICBjb2xsZWN0TW90aW9uVmFsdWVzLmN1cnJlbnQucHVzaCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQHB1YmxpY1xyXG4gICAgICovXHJcbiAgICBnZXRQcmV2aW91cygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcmV2O1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBsYXRlc3QgdmVsb2NpdHkgb2YgYE1vdGlvblZhbHVlYFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIC0gVGhlIGxhdGVzdCB2ZWxvY2l0eSBvZiBgTW90aW9uVmFsdWVgLiBSZXR1cm5zIGAwYCBpZiB0aGUgc3RhdGUgaXMgbm9uLW51bWVyaWNhbC5cclxuICAgICAqXHJcbiAgICAgKiBAcHVibGljXHJcbiAgICAgKi9cclxuICAgIGdldFZlbG9jaXR5KCkge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gdGltZS5ub3coKTtcclxuICAgICAgICBpZiAoIXRoaXMuY2FuVHJhY2tWZWxvY2l0eSB8fFxyXG4gICAgICAgICAgICB0aGlzLnByZXZGcmFtZVZhbHVlID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgICAgY3VycmVudFRpbWUgLSB0aGlzLnVwZGF0ZWRBdCA+IE1BWF9WRUxPQ0lUWV9ERUxUQSkge1xyXG4gICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZGVsdGEgPSBNYXRoLm1pbih0aGlzLnVwZGF0ZWRBdCAtIHRoaXMucHJldlVwZGF0ZWRBdCwgTUFYX1ZFTE9DSVRZX0RFTFRBKTtcclxuICAgICAgICAvLyBDYXN0cyBiZWNhdXNlIG9mIHBhcnNlRmxvYXQncyBwb29yIHR5cGluZ1xyXG4gICAgICAgIHJldHVybiB2ZWxvY2l0eVBlclNlY29uZChwYXJzZUZsb2F0KHRoaXMuY3VycmVudCkgLVxyXG4gICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMucHJldkZyYW1lVmFsdWUpLCBkZWx0YSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJlZ2lzdGVycyBhIG5ldyBhbmltYXRpb24gdG8gY29udHJvbCB0aGlzIGBNb3Rpb25WYWx1ZWAuIE9ubHkgb25lXHJcbiAgICAgKiBhbmltYXRpb24gY2FuIGRyaXZlIGEgYE1vdGlvblZhbHVlYCBhdCBvbmUgdGltZS5cclxuICAgICAqXHJcbiAgICAgKiBgYGBqc3hcclxuICAgICAqIHZhbHVlLnN0YXJ0KClcclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhbmltYXRpb24gLSBBIGZ1bmN0aW9uIHRoYXQgc3RhcnRzIHRoZSBwcm92aWRlZCBhbmltYXRpb25cclxuICAgICAqL1xyXG4gICAgc3RhcnQoc3RhcnRBbmltYXRpb24pIHtcclxuICAgICAgICB0aGlzLnN0b3AoKTtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oYXNBbmltYXRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uID0gc3RhcnRBbmltYXRpb24ocmVzb2x2ZSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmV2ZW50cy5hbmltYXRpb25TdGFydCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ldmVudHMuYW5pbWF0aW9uU3RhcnQubm90aWZ5KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZXZlbnRzLmFuaW1hdGlvbkNvbXBsZXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50cy5hbmltYXRpb25Db21wbGV0ZS5ub3RpZnkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmNsZWFyQW5pbWF0aW9uKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFN0b3AgdGhlIGN1cnJlbnRseSBhY3RpdmUgYW5pbWF0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEBwdWJsaWNcclxuICAgICAqL1xyXG4gICAgc3RvcCgpIHtcclxuICAgICAgICBpZiAodGhpcy5hbmltYXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24uc3RvcCgpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5ldmVudHMuYW5pbWF0aW9uQ2FuY2VsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50cy5hbmltYXRpb25DYW5jZWwubm90aWZ5KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jbGVhckFuaW1hdGlvbigpO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGlzIHZhbHVlIGlzIGN1cnJlbnRseSBhbmltYXRpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQHB1YmxpY1xyXG4gICAgICovXHJcbiAgICBpc0FuaW1hdGluZygpIHtcclxuICAgICAgICByZXR1cm4gISF0aGlzLmFuaW1hdGlvbjtcclxuICAgIH1cclxuICAgIGNsZWFyQW5pbWF0aW9uKCkge1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmFuaW1hdGlvbjtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogRGVzdHJveSBhbmQgY2xlYW4gdXAgc3Vic2NyaWJlcnMgdG8gdGhpcyBgTW90aW9uVmFsdWVgLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBgTW90aW9uVmFsdWVgIGhvb2tzIGxpa2UgYHVzZU1vdGlvblZhbHVlYCBhbmQgYHVzZVRyYW5zZm9ybWAgYXV0b21hdGljYWxseVxyXG4gICAgICogaGFuZGxlIHRoZSBsaWZlY3ljbGUgb2YgdGhlIHJldHVybmVkIGBNb3Rpb25WYWx1ZWAsIHNvIHRoaXMgbWV0aG9kIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHlvdSd2ZSBtYW51YWxseVxyXG4gICAgICogY3JlYXRlZCBhIGBNb3Rpb25WYWx1ZWAgdmlhIHRoZSBgbW90aW9uVmFsdWVgIGZ1bmN0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEBwdWJsaWNcclxuICAgICAqL1xyXG4gICAgZGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlcGVuZGVudHM/LmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5ldmVudHMuZGVzdHJveT8ubm90aWZ5KCk7XHJcbiAgICAgICAgdGhpcy5jbGVhckxpc3RlbmVycygpO1xyXG4gICAgICAgIHRoaXMuc3RvcCgpO1xyXG4gICAgICAgIGlmICh0aGlzLnN0b3BQYXNzaXZlRWZmZWN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcFBhc3NpdmVFZmZlY3QoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gbW90aW9uVmFsdWUoaW5pdCwgb3B0aW9ucykge1xyXG4gICAgcmV0dXJuIG5ldyBNb3Rpb25WYWx1ZShpbml0LCBvcHRpb25zKTtcclxufVxyXG5cclxuZXhwb3J0IHsgTW90aW9uVmFsdWUsIGNvbGxlY3RNb3Rpb25WYWx1ZXMsIG1vdGlvblZhbHVlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/auto.mjs":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/auto.mjs ***!
|
||
\**************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ auto: function() { return /* binding */ auto; }\n/* harmony export */ });\n/**\r\n * ValueType for \"auto\"\r\n */\r\nconst auto = {\r\n test: (v) => v === \"auto\",\r\n parse: (v) => v,\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvYXV0by5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZ0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9hdXRvLm1qcz8wNWYyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBWYWx1ZVR5cGUgZm9yIFwiYXV0b1wiXHJcbiAqL1xyXG5jb25zdCBhdXRvID0ge1xyXG4gICAgdGVzdDogKHYpID0+IHYgPT09IFwiYXV0b1wiLFxyXG4gICAgcGFyc2U6ICh2KSA9PiB2LFxyXG59O1xyXG5cclxuZXhwb3J0IHsgYXV0byB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/auto.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/color/hex.mjs ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hex: function() { return /* binding */ hex; }\n/* harmony export */ });\n/* harmony import */ var _rgba_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rgba.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\");\n\r\n\r\n\r\nfunction parseHex(v) {\r\n let r = \"\";\r\n let g = \"\";\r\n let b = \"\";\r\n let a = \"\";\r\n // If we have 6 characters, ie #FF0000\r\n if (v.length > 5) {\r\n r = v.substring(1, 3);\r\n g = v.substring(3, 5);\r\n b = v.substring(5, 7);\r\n a = v.substring(7, 9);\r\n // Or we have 3 characters, ie #F00\r\n }\r\n else {\r\n r = v.substring(1, 2);\r\n g = v.substring(2, 3);\r\n b = v.substring(3, 4);\r\n a = v.substring(4, 5);\r\n r += r;\r\n g += g;\r\n b += b;\r\n a += a;\r\n }\r\n return {\r\n red: parseInt(r, 16),\r\n green: parseInt(g, 16),\r\n blue: parseInt(b, 16),\r\n alpha: a ? parseInt(a, 16) / 255 : 1,\r\n };\r\n}\r\nconst hex = {\r\n test: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.isColorString)(\"#\"),\r\n parse: parseHex,\r\n transform: _rgba_mjs__WEBPACK_IMPORTED_MODULE_1__.rgba.transform,\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBa0M7QUFDVTtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHlEQUFhO0FBQ3JDO0FBQ0EsZUFBZSwyQ0FBSTtBQUNuQjtBQUNBO0FBQ2UiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9jb2xvci9oZXgubWpzPzNlMGEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmdiYSB9IGZyb20gJy4vcmdiYS5tanMnO1xyXG5pbXBvcnQgeyBpc0NvbG9yU3RyaW5nIH0gZnJvbSAnLi91dGlscy5tanMnO1xyXG5cclxuZnVuY3Rpb24gcGFyc2VIZXgodikge1xyXG4gICAgbGV0IHIgPSBcIlwiO1xyXG4gICAgbGV0IGcgPSBcIlwiO1xyXG4gICAgbGV0IGIgPSBcIlwiO1xyXG4gICAgbGV0IGEgPSBcIlwiO1xyXG4gICAgLy8gSWYgd2UgaGF2ZSA2IGNoYXJhY3RlcnMsIGllICNGRjAwMDBcclxuICAgIGlmICh2Lmxlbmd0aCA+IDUpIHtcclxuICAgICAgICByID0gdi5zdWJzdHJpbmcoMSwgMyk7XHJcbiAgICAgICAgZyA9IHYuc3Vic3RyaW5nKDMsIDUpO1xyXG4gICAgICAgIGIgPSB2LnN1YnN0cmluZyg1LCA3KTtcclxuICAgICAgICBhID0gdi5zdWJzdHJpbmcoNywgOSk7XHJcbiAgICAgICAgLy8gT3Igd2UgaGF2ZSAzIGNoYXJhY3RlcnMsIGllICNGMDBcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHIgPSB2LnN1YnN0cmluZygxLCAyKTtcclxuICAgICAgICBnID0gdi5zdWJzdHJpbmcoMiwgMyk7XHJcbiAgICAgICAgYiA9IHYuc3Vic3RyaW5nKDMsIDQpO1xyXG4gICAgICAgIGEgPSB2LnN1YnN0cmluZyg0LCA1KTtcclxuICAgICAgICByICs9IHI7XHJcbiAgICAgICAgZyArPSBnO1xyXG4gICAgICAgIGIgKz0gYjtcclxuICAgICAgICBhICs9IGE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHJlZDogcGFyc2VJbnQociwgMTYpLFxyXG4gICAgICAgIGdyZWVuOiBwYXJzZUludChnLCAxNiksXHJcbiAgICAgICAgYmx1ZTogcGFyc2VJbnQoYiwgMTYpLFxyXG4gICAgICAgIGFscGhhOiBhID8gcGFyc2VJbnQoYSwgMTYpIC8gMjU1IDogMSxcclxuICAgIH07XHJcbn1cclxuY29uc3QgaGV4ID0ge1xyXG4gICAgdGVzdDogLypAX19QVVJFX18qLyBpc0NvbG9yU3RyaW5nKFwiI1wiKSxcclxuICAgIHBhcnNlOiBwYXJzZUhleCxcclxuICAgIHRyYW5zZm9ybTogcmdiYS50cmFuc2Zvcm0sXHJcbn07XHJcblxyXG5leHBvcnQgeyBoZXggfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hslaToRgba: function() { return /* binding */ hslaToRgba; }\n/* harmony export */ });\n// Adapted from https://gist.github.com/mjackson/5311256\r\nfunction hueToRgb(p, q, t) {\r\n if (t < 0)\r\n t += 1;\r\n if (t > 1)\r\n t -= 1;\r\n if (t < 1 / 6)\r\n return p + (q - p) * 6 * t;\r\n if (t < 1 / 2)\r\n return q;\r\n if (t < 2 / 3)\r\n return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n}\r\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\r\n hue /= 360;\r\n saturation /= 100;\r\n lightness /= 100;\r\n let red = 0;\r\n let green = 0;\r\n let blue = 0;\r\n if (!saturation) {\r\n red = green = blue = lightness;\r\n }\r\n else {\r\n const q = lightness < 0.5\r\n ? lightness * (1 + saturation)\r\n : lightness + saturation - lightness * saturation;\r\n const p = 2 * lightness - q;\r\n red = hueToRgb(p, q, hue + 1 / 3);\r\n green = hueToRgb(p, q, hue);\r\n blue = hueToRgb(p, q, hue - 1 / 3);\r\n }\r\n return {\r\n red: Math.round(red * 255),\r\n green: Math.round(green * 255),\r\n blue: Math.round(blue * 255),\r\n alpha,\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaHNsYS10by1yZ2JhLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtQ0FBbUM7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL2hzbGEtdG8tcmdiYS5tanM/NGIwNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vbWphY2tzb24vNTMxMTI1NlxyXG5mdW5jdGlvbiBodWVUb1JnYihwLCBxLCB0KSB7XHJcbiAgICBpZiAodCA8IDApXHJcbiAgICAgICAgdCArPSAxO1xyXG4gICAgaWYgKHQgPiAxKVxyXG4gICAgICAgIHQgLT0gMTtcclxuICAgIGlmICh0IDwgMSAvIDYpXHJcbiAgICAgICAgcmV0dXJuIHAgKyAocSAtIHApICogNiAqIHQ7XHJcbiAgICBpZiAodCA8IDEgLyAyKVxyXG4gICAgICAgIHJldHVybiBxO1xyXG4gICAgaWYgKHQgPCAyIC8gMylcclxuICAgICAgICByZXR1cm4gcCArIChxIC0gcCkgKiAoMiAvIDMgLSB0KSAqIDY7XHJcbiAgICByZXR1cm4gcDtcclxufVxyXG5mdW5jdGlvbiBoc2xhVG9SZ2JhKHsgaHVlLCBzYXR1cmF0aW9uLCBsaWdodG5lc3MsIGFscGhhIH0pIHtcclxuICAgIGh1ZSAvPSAzNjA7XHJcbiAgICBzYXR1cmF0aW9uIC89IDEwMDtcclxuICAgIGxpZ2h0bmVzcyAvPSAxMDA7XHJcbiAgICBsZXQgcmVkID0gMDtcclxuICAgIGxldCBncmVlbiA9IDA7XHJcbiAgICBsZXQgYmx1ZSA9IDA7XHJcbiAgICBpZiAoIXNhdHVyYXRpb24pIHtcclxuICAgICAgICByZWQgPSBncmVlbiA9IGJsdWUgPSBsaWdodG5lc3M7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBxID0gbGlnaHRuZXNzIDwgMC41XHJcbiAgICAgICAgICAgID8gbGlnaHRuZXNzICogKDEgKyBzYXR1cmF0aW9uKVxyXG4gICAgICAgICAgICA6IGxpZ2h0bmVzcyArIHNhdHVyYXRpb24gLSBsaWdodG5lc3MgKiBzYXR1cmF0aW9uO1xyXG4gICAgICAgIGNvbnN0IHAgPSAyICogbGlnaHRuZXNzIC0gcTtcclxuICAgICAgICByZWQgPSBodWVUb1JnYihwLCBxLCBodWUgKyAxIC8gMyk7XHJcbiAgICAgICAgZ3JlZW4gPSBodWVUb1JnYihwLCBxLCBodWUpO1xyXG4gICAgICAgIGJsdWUgPSBodWVUb1JnYihwLCBxLCBodWUgLSAxIC8gMyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHJlZDogTWF0aC5yb3VuZChyZWQgKiAyNTUpLFxyXG4gICAgICAgIGdyZWVuOiBNYXRoLnJvdW5kKGdyZWVuICogMjU1KSxcclxuICAgICAgICBibHVlOiBNYXRoLnJvdW5kKGJsdWUgKiAyNTUpLFxyXG4gICAgICAgIGFscGhhLFxyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IHsgaHNsYVRvUmdiYSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hsla: function() { return /* binding */ hsla; }\n/* harmony export */ });\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/sanitize.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\");\n\r\n\r\n\r\n\r\n\r\nconst hsla = {\r\n test: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.isColorString)(\"hsl\", \"hue\"),\r\n parse: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.splitColor)(\"hue\", \"saturation\", \"lightness\"),\r\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\r\n return (\"hsla(\" +\r\n Math.round(hue) +\r\n \", \" +\r\n _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent.transform((0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__.sanitize)(saturation)) +\r\n \", \" +\r\n _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent.transform((0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__.sanitize)(lightness)) +\r\n \", \" +\r\n (0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__.sanitize)(_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__.alpha.transform(alpha$1)) +\r\n \")\");\r\n },\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaHNsYS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBNkM7QUFDRTtBQUNFO0FBQ087QUFDeEQ7QUFDQTtBQUNBLHdCQUF3Qix5REFBYTtBQUNyQyx5QkFBeUIsc0RBQVU7QUFDbkMsa0JBQWtCLGdEQUFnRDtBQUNsRTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHVEQUFPLFdBQVcsNkRBQVE7QUFDdEM7QUFDQSxZQUFZLHVEQUFPLFdBQVcsNkRBQVE7QUFDdEM7QUFDQSxZQUFZLDZEQUFRLENBQUMscURBQUs7QUFDMUI7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL2hzbGEubWpzP2Y2NTgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWxwaGEgfSBmcm9tICcuLi9udW1iZXJzL2luZGV4Lm1qcyc7XHJcbmltcG9ydCB7IHBlcmNlbnQgfSBmcm9tICcuLi9udW1iZXJzL3VuaXRzLm1qcyc7XHJcbmltcG9ydCB7IHNhbml0aXplIH0gZnJvbSAnLi4vdXRpbHMvc2FuaXRpemUubWpzJztcclxuaW1wb3J0IHsgaXNDb2xvclN0cmluZywgc3BsaXRDb2xvciB9IGZyb20gJy4vdXRpbHMubWpzJztcclxuXHJcbmNvbnN0IGhzbGEgPSB7XHJcbiAgICB0ZXN0OiAvKkBfX1BVUkVfXyovIGlzQ29sb3JTdHJpbmcoXCJoc2xcIiwgXCJodWVcIiksXHJcbiAgICBwYXJzZTogLypAX19QVVJFX18qLyBzcGxpdENvbG9yKFwiaHVlXCIsIFwic2F0dXJhdGlvblwiLCBcImxpZ2h0bmVzc1wiKSxcclxuICAgIHRyYW5zZm9ybTogKHsgaHVlLCBzYXR1cmF0aW9uLCBsaWdodG5lc3MsIGFscGhhOiBhbHBoYSQxID0gMSB9KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcImhzbGEoXCIgK1xyXG4gICAgICAgICAgICBNYXRoLnJvdW5kKGh1ZSkgK1xyXG4gICAgICAgICAgICBcIiwgXCIgK1xyXG4gICAgICAgICAgICBwZXJjZW50LnRyYW5zZm9ybShzYW5pdGl6ZShzYXR1cmF0aW9uKSkgK1xyXG4gICAgICAgICAgICBcIiwgXCIgK1xyXG4gICAgICAgICAgICBwZXJjZW50LnRyYW5zZm9ybShzYW5pdGl6ZShsaWdodG5lc3MpKSArXHJcbiAgICAgICAgICAgIFwiLCBcIiArXHJcbiAgICAgICAgICAgIHNhbml0aXplKGFscGhhLnRyYW5zZm9ybShhbHBoYSQxKSkgK1xyXG4gICAgICAgICAgICBcIilcIik7XHJcbiAgICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IHsgaHNsYSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/color/index.mjs ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ color: function() { return /* binding */ color; }\n/* harmony export */ });\n/* harmony import */ var _hex_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs\");\n/* harmony import */ var _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hsla.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs\");\n/* harmony import */ var _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rgba.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\");\n\r\n\r\n\r\n\r\nconst color = {\r\n test: (v) => _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.test(v) || _hex_mjs__WEBPACK_IMPORTED_MODULE_1__.hex.test(v) || _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.test(v),\r\n parse: (v) => {\r\n if (_rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.test(v)) {\r\n return _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.parse(v);\r\n }\r\n else if (_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.test(v)) {\r\n return _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.parse(v);\r\n }\r\n else {\r\n return _hex_mjs__WEBPACK_IMPORTED_MODULE_1__.hex.parse(v);\r\n }\r\n },\r\n transform: (v) => {\r\n return typeof v === \"string\"\r\n ? v\r\n : v.hasOwnProperty(\"red\")\r\n ? _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.transform(v)\r\n : _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.transform(v);\r\n },\r\n getAnimatableNone: (v) => {\r\n const parsed = color.parse(v);\r\n parsed.alpha = 0;\r\n return color.transform(parsed);\r\n },\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBZ0M7QUFDRTtBQUNBO0FBQ2xDO0FBQ0E7QUFDQSxpQkFBaUIsMkNBQUksWUFBWSx5Q0FBRyxZQUFZLDJDQUFJO0FBQ3BEO0FBQ0EsWUFBWSwyQ0FBSTtBQUNoQixtQkFBbUIsMkNBQUk7QUFDdkI7QUFDQSxpQkFBaUIsMkNBQUk7QUFDckIsbUJBQW1CLDJDQUFJO0FBQ3ZCO0FBQ0E7QUFDQSxtQkFBbUIseUNBQUc7QUFDdEI7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsMkNBQUk7QUFDdEIsa0JBQWtCLDJDQUFJO0FBQ3RCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ2lCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaW5kZXgubWpzP2JlMDUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGV4IH0gZnJvbSAnLi9oZXgubWpzJztcclxuaW1wb3J0IHsgaHNsYSB9IGZyb20gJy4vaHNsYS5tanMnO1xyXG5pbXBvcnQgeyByZ2JhIH0gZnJvbSAnLi9yZ2JhLm1qcyc7XHJcblxyXG5jb25zdCBjb2xvciA9IHtcclxuICAgIHRlc3Q6ICh2KSA9PiByZ2JhLnRlc3QodikgfHwgaGV4LnRlc3QodikgfHwgaHNsYS50ZXN0KHYpLFxyXG4gICAgcGFyc2U6ICh2KSA9PiB7XHJcbiAgICAgICAgaWYgKHJnYmEudGVzdCh2KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gcmdiYS5wYXJzZSh2KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaHNsYS50ZXN0KHYpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBoc2xhLnBhcnNlKHYpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGhleC5wYXJzZSh2KTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgdHJhbnNmb3JtOiAodikgPT4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIlxyXG4gICAgICAgICAgICA/IHZcclxuICAgICAgICAgICAgOiB2Lmhhc093blByb3BlcnR5KFwicmVkXCIpXHJcbiAgICAgICAgICAgICAgICA/IHJnYmEudHJhbnNmb3JtKHYpXHJcbiAgICAgICAgICAgICAgICA6IGhzbGEudHJhbnNmb3JtKHYpO1xyXG4gICAgfSxcclxuICAgIGdldEFuaW1hdGFibGVOb25lOiAodikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IGNvbG9yLnBhcnNlKHYpO1xyXG4gICAgICAgIHBhcnNlZC5hbHBoYSA9IDA7XHJcbiAgICAgICAgcmV0dXJuIGNvbG9yLnRyYW5zZm9ybShwYXJzZWQpO1xyXG4gICAgfSxcclxufTtcclxuXHJcbmV4cG9ydCB7IGNvbG9yIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ rgbUnit: function() { return /* binding */ rgbUnit; },\n/* harmony export */ rgba: function() { return /* binding */ rgba; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/sanitize.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\");\n\r\n\r\n\r\n\r\n\r\nconst clampRgbUnit = (v) => (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(0, 255, v);\r\nconst rgbUnit = {\r\n ..._numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.number,\r\n transform: (v) => Math.round(clampRgbUnit(v)),\r\n};\r\nconst rgba = {\r\n test: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.isColorString)(\"rgb\", \"red\"),\r\n parse: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.splitColor)(\"red\", \"green\", \"blue\"),\r\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\r\n rgbUnit.transform(red) +\r\n \", \" +\r\n rgbUnit.transform(green) +\r\n \", \" +\r\n rgbUnit.transform(blue) +\r\n \", \" +\r\n (0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__.sanitize)(_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.alpha.transform(alpha$1)) +\r\n \")\",\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvcmdiYS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQXFDO0FBQ2dCO0FBQ0o7QUFDTztBQUN4RDtBQUNBLDRCQUE0QixtREFBSztBQUNqQztBQUNBLE9BQU8sc0RBQU07QUFDYjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IseURBQWE7QUFDckMseUJBQXlCLHNEQUFVO0FBQ25DLGtCQUFrQixzQ0FBc0M7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSw2REFBUSxDQUFDLHFEQUFLO0FBQ3RCO0FBQ0E7QUFDQTtBQUN5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL3JnYmEubWpzPzU0MTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xhbXAgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBudW1iZXIsIGFscGhhIH0gZnJvbSAnLi4vbnVtYmVycy9pbmRleC5tanMnO1xyXG5pbXBvcnQgeyBzYW5pdGl6ZSB9IGZyb20gJy4uL3V0aWxzL3Nhbml0aXplLm1qcyc7XHJcbmltcG9ydCB7IGlzQ29sb3JTdHJpbmcsIHNwbGl0Q29sb3IgfSBmcm9tICcuL3V0aWxzLm1qcyc7XHJcblxyXG5jb25zdCBjbGFtcFJnYlVuaXQgPSAodikgPT4gY2xhbXAoMCwgMjU1LCB2KTtcclxuY29uc3QgcmdiVW5pdCA9IHtcclxuICAgIC4uLm51bWJlcixcclxuICAgIHRyYW5zZm9ybTogKHYpID0+IE1hdGgucm91bmQoY2xhbXBSZ2JVbml0KHYpKSxcclxufTtcclxuY29uc3QgcmdiYSA9IHtcclxuICAgIHRlc3Q6IC8qQF9fUFVSRV9fKi8gaXNDb2xvclN0cmluZyhcInJnYlwiLCBcInJlZFwiKSxcclxuICAgIHBhcnNlOiAvKkBfX1BVUkVfXyovIHNwbGl0Q29sb3IoXCJyZWRcIiwgXCJncmVlblwiLCBcImJsdWVcIiksXHJcbiAgICB0cmFuc2Zvcm06ICh7IHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhOiBhbHBoYSQxID0gMSB9KSA9PiBcInJnYmEoXCIgK1xyXG4gICAgICAgIHJnYlVuaXQudHJhbnNmb3JtKHJlZCkgK1xyXG4gICAgICAgIFwiLCBcIiArXHJcbiAgICAgICAgcmdiVW5pdC50cmFuc2Zvcm0oZ3JlZW4pICtcclxuICAgICAgICBcIiwgXCIgK1xyXG4gICAgICAgIHJnYlVuaXQudHJhbnNmb3JtKGJsdWUpICtcclxuICAgICAgICBcIiwgXCIgK1xyXG4gICAgICAgIHNhbml0aXplKGFscGhhLnRyYW5zZm9ybShhbHBoYSQxKSkgK1xyXG4gICAgICAgIFwiKVwiLFxyXG59O1xyXG5cclxuZXhwb3J0IHsgcmdiVW5pdCwgcmdiYSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/color/utils.mjs ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isColorString: function() { return /* binding */ isColorString; },\n/* harmony export */ splitColor: function() { return /* binding */ splitColor; }\n/* harmony export */ });\n/* harmony import */ var _utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/float-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\");\n/* harmony import */ var _utils_is_nullish_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/is-nullish.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs\");\n/* harmony import */ var _utils_single_color_regex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/single-color-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs\");\n\r\n\r\n\r\n\r\n/**\r\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\r\n * but false if a number or multiple colors\r\n */\r\nconst isColorString = (type, testProp) => (v) => {\r\n return Boolean((typeof v === \"string\" &&\r\n _utils_single_color_regex_mjs__WEBPACK_IMPORTED_MODULE_0__.singleColorRegex.test(v) &&\r\n v.startsWith(type)) ||\r\n (testProp &&\r\n !(0,_utils_is_nullish_mjs__WEBPACK_IMPORTED_MODULE_1__.isNullish)(v) &&\r\n Object.prototype.hasOwnProperty.call(v, testProp)));\r\n};\r\nconst splitColor = (aName, bName, cName) => (v) => {\r\n if (typeof v !== \"string\")\r\n return v;\r\n const [a, b, c, alpha] = v.match(_utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_2__.floatRegex);\r\n return {\r\n [aName]: parseFloat(a),\r\n [bName]: parseFloat(b),\r\n [cName]: parseFloat(c),\r\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\r\n };\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvdXRpbHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXNEO0FBQ0Y7QUFDZTtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsMkVBQWdCO0FBQ3hCO0FBQ0E7QUFDQSxhQUFhLGdFQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsOERBQVU7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNxQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL3V0aWxzLm1qcz8zNmRjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZsb2F0UmVnZXggfSBmcm9tICcuLi91dGlscy9mbG9hdC1yZWdleC5tanMnO1xyXG5pbXBvcnQgeyBpc051bGxpc2ggfSBmcm9tICcuLi91dGlscy9pcy1udWxsaXNoLm1qcyc7XHJcbmltcG9ydCB7IHNpbmdsZUNvbG9yUmVnZXggfSBmcm9tICcuLi91dGlscy9zaW5nbGUtY29sb3ItcmVnZXgubWpzJztcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIHN0cmluZyBpcyBhIGNvbG9yLCBpZSByZ2JhKDAsMCwwLDApIG9yICMwMDAsXHJcbiAqIGJ1dCBmYWxzZSBpZiBhIG51bWJlciBvciBtdWx0aXBsZSBjb2xvcnNcclxuICovXHJcbmNvbnN0IGlzQ29sb3JTdHJpbmcgPSAodHlwZSwgdGVzdFByb3ApID0+ICh2KSA9PiB7XHJcbiAgICByZXR1cm4gQm9vbGVhbigodHlwZW9mIHYgPT09IFwic3RyaW5nXCIgJiZcclxuICAgICAgICBzaW5nbGVDb2xvclJlZ2V4LnRlc3QodikgJiZcclxuICAgICAgICB2LnN0YXJ0c1dpdGgodHlwZSkpIHx8XHJcbiAgICAgICAgKHRlc3RQcm9wICYmXHJcbiAgICAgICAgICAgICFpc051bGxpc2godikgJiZcclxuICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHYsIHRlc3RQcm9wKSkpO1xyXG59O1xyXG5jb25zdCBzcGxpdENvbG9yID0gKGFOYW1lLCBiTmFtZSwgY05hbWUpID0+ICh2KSA9PiB7XHJcbiAgICBpZiAodHlwZW9mIHYgIT09IFwic3RyaW5nXCIpXHJcbiAgICAgICAgcmV0dXJuIHY7XHJcbiAgICBjb25zdCBbYSwgYiwgYywgYWxwaGFdID0gdi5tYXRjaChmbG9hdFJlZ2V4KTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgW2FOYW1lXTogcGFyc2VGbG9hdChhKSxcclxuICAgICAgICBbYk5hbWVdOiBwYXJzZUZsb2F0KGIpLFxyXG4gICAgICAgIFtjTmFtZV06IHBhcnNlRmxvYXQoYyksXHJcbiAgICAgICAgYWxwaGE6IGFscGhhICE9PSB1bmRlZmluZWQgPyBwYXJzZUZsb2F0KGFscGhhKSA6IDEsXHJcbiAgICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IHsgaXNDb2xvclN0cmluZywgc3BsaXRDb2xvciB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ filter: function() { return /* binding */ filter; }\n/* harmony export */ });\n/* harmony import */ var _index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/float-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\");\n\r\n\r\n\r\n/**\r\n * Properties that should default to 1 or 100%\r\n */\r\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\r\nfunction applyDefaultFilter(v) {\r\n const [name, value] = v.slice(0, -1).split(\"(\");\r\n if (name === \"drop-shadow\")\r\n return v;\r\n const [number] = value.match(_utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__.floatRegex) || [];\r\n if (!number)\r\n return v;\r\n const unit = value.replace(number, \"\");\r\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\r\n if (number !== value)\r\n defaultValue *= 100;\r\n return name + \"(\" + defaultValue + unit + \")\";\r\n}\r\nconst functionRegex = /\\b([a-z-]*)\\(.*?\\)/gu;\r\nconst filter = {\r\n ..._index_mjs__WEBPACK_IMPORTED_MODULE_1__.complex,\r\n getAnimatableNone: (v) => {\r\n const functions = v.match(functionRegex);\r\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\r\n },\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29tcGxleC9maWx0ZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFzQztBQUNnQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsOERBQVU7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLCtDQUFPO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9jb21wbGV4L2ZpbHRlci5tanM/ZDNkMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wbGV4IH0gZnJvbSAnLi9pbmRleC5tanMnO1xyXG5pbXBvcnQgeyBmbG9hdFJlZ2V4IH0gZnJvbSAnLi4vdXRpbHMvZmxvYXQtcmVnZXgubWpzJztcclxuXHJcbi8qKlxyXG4gKiBQcm9wZXJ0aWVzIHRoYXQgc2hvdWxkIGRlZmF1bHQgdG8gMSBvciAxMDAlXHJcbiAqL1xyXG5jb25zdCBtYXhEZWZhdWx0cyA9IG5ldyBTZXQoW1wiYnJpZ2h0bmVzc1wiLCBcImNvbnRyYXN0XCIsIFwic2F0dXJhdGVcIiwgXCJvcGFjaXR5XCJdKTtcclxuZnVuY3Rpb24gYXBwbHlEZWZhdWx0RmlsdGVyKHYpIHtcclxuICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSB2LnNsaWNlKDAsIC0xKS5zcGxpdChcIihcIik7XHJcbiAgICBpZiAobmFtZSA9PT0gXCJkcm9wLXNoYWRvd1wiKVxyXG4gICAgICAgIHJldHVybiB2O1xyXG4gICAgY29uc3QgW251bWJlcl0gPSB2YWx1ZS5tYXRjaChmbG9hdFJlZ2V4KSB8fCBbXTtcclxuICAgIGlmICghbnVtYmVyKVxyXG4gICAgICAgIHJldHVybiB2O1xyXG4gICAgY29uc3QgdW5pdCA9IHZhbHVlLnJlcGxhY2UobnVtYmVyLCBcIlwiKTtcclxuICAgIGxldCBkZWZhdWx0VmFsdWUgPSBtYXhEZWZhdWx0cy5oYXMobmFtZSkgPyAxIDogMDtcclxuICAgIGlmIChudW1iZXIgIT09IHZhbHVlKVxyXG4gICAgICAgIGRlZmF1bHRWYWx1ZSAqPSAxMDA7XHJcbiAgICByZXR1cm4gbmFtZSArIFwiKFwiICsgZGVmYXVsdFZhbHVlICsgdW5pdCArIFwiKVwiO1xyXG59XHJcbmNvbnN0IGZ1bmN0aW9uUmVnZXggPSAvXFxiKFthLXotXSopXFwoLio/XFwpL2d1O1xyXG5jb25zdCBmaWx0ZXIgPSB7XHJcbiAgICAuLi5jb21wbGV4LFxyXG4gICAgZ2V0QW5pbWF0YWJsZU5vbmU6ICh2KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZnVuY3Rpb25zID0gdi5tYXRjaChmdW5jdGlvblJlZ2V4KTtcclxuICAgICAgICByZXR1cm4gZnVuY3Rpb25zID8gZnVuY3Rpb25zLm1hcChhcHBseURlZmF1bHRGaWx0ZXIpLmpvaW4oXCIgXCIpIDogdjtcclxuICAgIH0sXHJcbn07XHJcblxyXG5leHBvcnQgeyBmaWx0ZXIgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/complex/index.mjs ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ analyseComplexValue: function() { return /* binding */ analyseComplexValue; },\n/* harmony export */ complex: function() { return /* binding */ complex; }\n/* harmony export */ });\n/* harmony import */ var _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../color/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _utils_color_regex_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/color-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs\");\n/* harmony import */ var _utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/float-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\");\n/* harmony import */ var _utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/sanitize.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\");\n\r\n\r\n\r\n\r\n\r\nfunction test(v) {\r\n return (isNaN(v) &&\r\n typeof v === \"string\" &&\r\n (v.match(_utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__.floatRegex)?.length || 0) +\r\n (v.match(_utils_color_regex_mjs__WEBPACK_IMPORTED_MODULE_1__.colorRegex)?.length || 0) >\r\n 0);\r\n}\r\nconst NUMBER_TOKEN = \"number\";\r\nconst COLOR_TOKEN = \"color\";\r\nconst VAR_TOKEN = \"var\";\r\nconst VAR_FUNCTION_TOKEN = \"var(\";\r\nconst SPLIT_TOKEN = \"${}\";\r\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\r\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\r\nfunction analyseComplexValue(value) {\r\n const originalValue = value.toString();\r\n const values = [];\r\n const indexes = {\r\n color: [],\r\n number: [],\r\n var: [],\r\n };\r\n const types = [];\r\n let i = 0;\r\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\r\n if (_color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.test(parsedValue)) {\r\n indexes.color.push(i);\r\n types.push(COLOR_TOKEN);\r\n values.push(_color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.parse(parsedValue));\r\n }\r\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\r\n indexes.var.push(i);\r\n types.push(VAR_TOKEN);\r\n values.push(parsedValue);\r\n }\r\n else {\r\n indexes.number.push(i);\r\n types.push(NUMBER_TOKEN);\r\n values.push(parseFloat(parsedValue));\r\n }\r\n ++i;\r\n return SPLIT_TOKEN;\r\n });\r\n const split = tokenised.split(SPLIT_TOKEN);\r\n return { values, split, indexes, types };\r\n}\r\nfunction parseComplexValue(v) {\r\n return analyseComplexValue(v).values;\r\n}\r\nfunction createTransformer(source) {\r\n const { split, types } = analyseComplexValue(source);\r\n const numSections = split.length;\r\n return (v) => {\r\n let output = \"\";\r\n for (let i = 0; i < numSections; i++) {\r\n output += split[i];\r\n if (v[i] !== undefined) {\r\n const type = types[i];\r\n if (type === NUMBER_TOKEN) {\r\n output += (0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__.sanitize)(v[i]);\r\n }\r\n else if (type === COLOR_TOKEN) {\r\n output += _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.transform(v[i]);\r\n }\r\n else {\r\n output += v[i];\r\n }\r\n }\r\n }\r\n return output;\r\n };\r\n}\r\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.test(v) ? _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.getAnimatableNone(v) : v;\r\nfunction getAnimatableNone(v) {\r\n const parsed = parseComplexValue(v);\r\n const transformer = createTransformer(v);\r\n return transformer(parsed.map(convertNumbersToZero));\r\n}\r\nconst complex = {\r\n test,\r\n parse: parseComplexValue,\r\n createTransformer,\r\n getAnimatableNone,\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29tcGxleC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTJDO0FBQ1c7QUFDQTtBQUNMO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLDhEQUFVO0FBQzNCLHFCQUFxQiw4REFBVTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQSxzSEFBc0gsSUFBSSxxQ0FBcUMsRUFBRTtBQUNqSztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxtREFBSztBQUNqQjtBQUNBO0FBQ0Esd0JBQXdCLG1EQUFLO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGVBQWU7QUFDM0I7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGlCQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qiw2REFBUTtBQUN0QztBQUNBO0FBQ0EsOEJBQThCLG1EQUFLO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdFQUFnRSxtREFBSyxXQUFXLG1EQUFLO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUN3QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbXBsZXgvaW5kZXgubWpzPzAwOTEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29sb3IgfSBmcm9tICcuLi9jb2xvci9pbmRleC5tanMnO1xyXG5pbXBvcnQgeyBjb2xvclJlZ2V4IH0gZnJvbSAnLi4vdXRpbHMvY29sb3ItcmVnZXgubWpzJztcclxuaW1wb3J0IHsgZmxvYXRSZWdleCB9IGZyb20gJy4uL3V0aWxzL2Zsb2F0LXJlZ2V4Lm1qcyc7XHJcbmltcG9ydCB7IHNhbml0aXplIH0gZnJvbSAnLi4vdXRpbHMvc2FuaXRpemUubWpzJztcclxuXHJcbmZ1bmN0aW9uIHRlc3Qodikge1xyXG4gICAgcmV0dXJuIChpc05hTih2KSAmJlxyXG4gICAgICAgIHR5cGVvZiB2ID09PSBcInN0cmluZ1wiICYmXHJcbiAgICAgICAgKHYubWF0Y2goZmxvYXRSZWdleCk/Lmxlbmd0aCB8fCAwKSArXHJcbiAgICAgICAgICAgICh2Lm1hdGNoKGNvbG9yUmVnZXgpPy5sZW5ndGggfHwgMCkgPlxyXG4gICAgICAgICAgICAwKTtcclxufVxyXG5jb25zdCBOVU1CRVJfVE9LRU4gPSBcIm51bWJlclwiO1xyXG5jb25zdCBDT0xPUl9UT0tFTiA9IFwiY29sb3JcIjtcclxuY29uc3QgVkFSX1RPS0VOID0gXCJ2YXJcIjtcclxuY29uc3QgVkFSX0ZVTkNUSU9OX1RPS0VOID0gXCJ2YXIoXCI7XHJcbmNvbnN0IFNQTElUX1RPS0VOID0gXCIke31cIjtcclxuLy8gdGhpcyByZWdleCBjb25zaXN0cyBvZiB0aGUgYHNpbmdsZUNzc1ZhcmlhYmxlUmVnZXh8cmdiSFNMVmFsdWVSZWdleHxkaWdpdFJlZ2V4YFxyXG5jb25zdCBjb21wbGV4UmVnZXggPSAvdmFyXFxzKlxcKFxccyotLSg/OltcXHctXStcXHMqfFtcXHctXStcXHMqLCg/OlxccypbXikoXFxzXXxcXHMqXFwoKD86W14pKF18XFwoW14pKF0qXFwpKSpcXCkpK1xccyopXFwpfCNbXFxkYS1mXXszLDh9fCg/OnJnYnxoc2wpYT9cXCgoPzotP1tcXGQuXSslP1ssXFxzXSspezJ9LT9bXFxkLl0rJT9cXHMqKD86WywvXVxccyopPyg/OlxcYlxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKyk/JT9cXCl8LT8oPzpcXGQrKD86XFwuXFxkKyk/fFxcLlxcZCspL2dpdTtcclxuZnVuY3Rpb24gYW5hbHlzZUNvbXBsZXhWYWx1ZSh2YWx1ZSkge1xyXG4gICAgY29uc3Qgb3JpZ2luYWxWYWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICBjb25zdCB2YWx1ZXMgPSBbXTtcclxuICAgIGNvbnN0IGluZGV4ZXMgPSB7XHJcbiAgICAgICAgY29sb3I6IFtdLFxyXG4gICAgICAgIG51bWJlcjogW10sXHJcbiAgICAgICAgdmFyOiBbXSxcclxuICAgIH07XHJcbiAgICBjb25zdCB0eXBlcyA9IFtdO1xyXG4gICAgbGV0IGkgPSAwO1xyXG4gICAgY29uc3QgdG9rZW5pc2VkID0gb3JpZ2luYWxWYWx1ZS5yZXBsYWNlKGNvbXBsZXhSZWdleCwgKHBhcnNlZFZhbHVlKSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbG9yLnRlc3QocGFyc2VkVmFsdWUpKSB7XHJcbiAgICAgICAgICAgIGluZGV4ZXMuY29sb3IucHVzaChpKTtcclxuICAgICAgICAgICAgdHlwZXMucHVzaChDT0xPUl9UT0tFTik7XHJcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKGNvbG9yLnBhcnNlKHBhcnNlZFZhbHVlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHBhcnNlZFZhbHVlLnN0YXJ0c1dpdGgoVkFSX0ZVTkNUSU9OX1RPS0VOKSkge1xyXG4gICAgICAgICAgICBpbmRleGVzLnZhci5wdXNoKGkpO1xyXG4gICAgICAgICAgICB0eXBlcy5wdXNoKFZBUl9UT0tFTik7XHJcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKHBhcnNlZFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGluZGV4ZXMubnVtYmVyLnB1c2goaSk7XHJcbiAgICAgICAgICAgIHR5cGVzLnB1c2goTlVNQkVSX1RPS0VOKTtcclxuICAgICAgICAgICAgdmFsdWVzLnB1c2gocGFyc2VGbG9hdChwYXJzZWRWYWx1ZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICArK2k7XHJcbiAgICAgICAgcmV0dXJuIFNQTElUX1RPS0VOO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBzcGxpdCA9IHRva2VuaXNlZC5zcGxpdChTUExJVF9UT0tFTik7XHJcbiAgICByZXR1cm4geyB2YWx1ZXMsIHNwbGl0LCBpbmRleGVzLCB0eXBlcyB9O1xyXG59XHJcbmZ1bmN0aW9uIHBhcnNlQ29tcGxleFZhbHVlKHYpIHtcclxuICAgIHJldHVybiBhbmFseXNlQ29tcGxleFZhbHVlKHYpLnZhbHVlcztcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVUcmFuc2Zvcm1lcihzb3VyY2UpIHtcclxuICAgIGNvbnN0IHsgc3BsaXQsIHR5cGVzIH0gPSBhbmFseXNlQ29tcGxleFZhbHVlKHNvdXJjZSk7XHJcbiAgICBjb25zdCBudW1TZWN0aW9ucyA9IHNwbGl0Lmxlbmd0aDtcclxuICAgIHJldHVybiAodikgPT4ge1xyXG4gICAgICAgIGxldCBvdXRwdXQgPSBcIlwiO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtU2VjdGlvbnM7IGkrKykge1xyXG4gICAgICAgICAgICBvdXRwdXQgKz0gc3BsaXRbaV07XHJcbiAgICAgICAgICAgIGlmICh2W2ldICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0eXBlc1tpXTtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSBOVU1CRVJfVE9LRU4pIHtcclxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gc2FuaXRpemUodltpXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlID09PSBDT0xPUl9UT0tFTikge1xyXG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSBjb2xvci50cmFuc2Zvcm0odltpXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gdltpXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb3V0cHV0O1xyXG4gICAgfTtcclxufVxyXG5jb25zdCBjb252ZXJ0TnVtYmVyc1RvWmVybyA9ICh2KSA9PiB0eXBlb2YgdiA9PT0gXCJudW1iZXJcIiA/IDAgOiBjb2xvci50ZXN0KHYpID8gY29sb3IuZ2V0QW5pbWF0YWJsZU5vbmUodikgOiB2O1xyXG5mdW5jdGlvbiBnZXRBbmltYXRhYmxlTm9uZSh2KSB7XHJcbiAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUNvbXBsZXhWYWx1ZSh2KTtcclxuICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gY3JlYXRlVHJhbnNmb3JtZXIodik7XHJcbiAgICByZXR1cm4gdHJhbnNmb3JtZXIocGFyc2VkLm1hcChjb252ZXJ0TnVtYmVyc1RvWmVybykpO1xyXG59XHJcbmNvbnN0IGNvbXBsZXggPSB7XHJcbiAgICB0ZXN0LFxyXG4gICAgcGFyc2U6IHBhcnNlQ29tcGxleFZhbHVlLFxyXG4gICAgY3JlYXRlVHJhbnNmb3JtZXIsXHJcbiAgICBnZXRBbmltYXRhYmxlTm9uZSxcclxufTtcclxuXHJcbmV4cG9ydCB7IGFuYWx5c2VDb21wbGV4VmFsdWUsIGNvbXBsZXggfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/dimensions.mjs ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ dimensionValueTypes: function() { return /* binding */ dimensionValueTypes; },\n/* harmony export */ findDimensionValueType: function() { return /* binding */ findDimensionValueType; }\n/* harmony export */ });\n/* harmony import */ var _auto_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./auto.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/auto.mjs\");\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _test_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./test.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/test.mjs\");\n\r\n\r\n\r\n\r\n\r\n/**\r\n * A list of value types commonly used for dimensions\r\n */\r\nconst dimensionValueTypes = [_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__.number, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.px, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.degrees, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.vw, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.vh, _auto_mjs__WEBPACK_IMPORTED_MODULE_2__.auto];\r\n/**\r\n * Tests a dimensional value against the list of dimension ValueTypes\r\n */\r\nconst findDimensionValueType = (v) => dimensionValueTypes.find((0,_test_mjs__WEBPACK_IMPORTED_MODULE_3__.testValueType)(v));\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvZGltZW5zaW9ucy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQWtDO0FBQ1c7QUFDc0I7QUFDeEI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsc0RBQU0sRUFBRSxrREFBRSxFQUFFLHVEQUFPLEVBQUUsdURBQU8sRUFBRSxrREFBRSxFQUFFLGtEQUFFLEVBQUUsMkNBQUk7QUFDdkU7QUFDQTtBQUNBO0FBQ0EsK0RBQStELHdEQUFhO0FBQzVFO0FBQ3VEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvZGltZW5zaW9ucy5tanM/NmI0OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhdXRvIH0gZnJvbSAnLi9hdXRvLm1qcyc7XHJcbmltcG9ydCB7IG51bWJlciB9IGZyb20gJy4vbnVtYmVycy9pbmRleC5tanMnO1xyXG5pbXBvcnQgeyBweCwgcGVyY2VudCwgZGVncmVlcywgdncsIHZoIH0gZnJvbSAnLi9udW1iZXJzL3VuaXRzLm1qcyc7XHJcbmltcG9ydCB7IHRlc3RWYWx1ZVR5cGUgfSBmcm9tICcuL3Rlc3QubWpzJztcclxuXHJcbi8qKlxyXG4gKiBBIGxpc3Qgb2YgdmFsdWUgdHlwZXMgY29tbW9ubHkgdXNlZCBmb3IgZGltZW5zaW9uc1xyXG4gKi9cclxuY29uc3QgZGltZW5zaW9uVmFsdWVUeXBlcyA9IFtudW1iZXIsIHB4LCBwZXJjZW50LCBkZWdyZWVzLCB2dywgdmgsIGF1dG9dO1xyXG4vKipcclxuICogVGVzdHMgYSBkaW1lbnNpb25hbCB2YWx1ZSBhZ2FpbnN0IHRoZSBsaXN0IG9mIGRpbWVuc2lvbiBWYWx1ZVR5cGVzXHJcbiAqL1xyXG5jb25zdCBmaW5kRGltZW5zaW9uVmFsdWVUeXBlID0gKHYpID0+IGRpbWVuc2lvblZhbHVlVHlwZXMuZmluZCh0ZXN0VmFsdWVUeXBlKHYpKTtcclxuXHJcbmV4cG9ydCB7IGRpbWVuc2lvblZhbHVlVHlwZXMsIGZpbmREaW1lbnNpb25WYWx1ZVR5cGUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/int.mjs":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/int.mjs ***!
|
||
\*************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ int: function() { return /* binding */ int; }\n/* harmony export */ });\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n\r\n\r\nconst int = {\r\n ..._numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__.number,\r\n transform: Math.round,\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvaW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE2QztBQUM3QztBQUNBO0FBQ0EsT0FBTyxzREFBTTtBQUNiO0FBQ0E7QUFDQTtBQUNlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvaW50Lm1qcz9kMTcxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG51bWJlciB9IGZyb20gJy4vbnVtYmVycy9pbmRleC5tanMnO1xyXG5cclxuY29uc3QgaW50ID0ge1xyXG4gICAgLi4ubnVtYmVyLFxyXG4gICAgdHJhbnNmb3JtOiBNYXRoLnJvdW5kLFxyXG59O1xyXG5cclxuZXhwb3J0IHsgaW50IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/int.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultValueTypes: function() { return /* binding */ defaultValueTypes; },\n/* harmony export */ getDefaultValueType: function() { return /* binding */ getDefaultValueType; }\n/* harmony export */ });\n/* harmony import */ var _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../color/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../complex/filter.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\");\n\r\n\r\n\r\n\r\n/**\r\n * A map of default value types for common values\r\n */\r\nconst defaultValueTypes = {\r\n ..._number_mjs__WEBPACK_IMPORTED_MODULE_0__.numberValueTypes,\r\n // Color props\r\n color: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\r\n backgroundColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\r\n outlineColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\r\n fill: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\r\n stroke: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\r\n // Border props\r\n borderColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\r\n borderTopColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\r\n borderRightColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\r\n borderBottomColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\r\n borderLeftColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\r\n filter: _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_2__.filter,\r\n WebkitFilter: _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_2__.filter,\r\n};\r\n/**\r\n * Gets the default ValueType for the provided value key\r\n */\r\nconst getDefaultValueType = (key) => defaultValueTypes[key];\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbWFwcy9kZWZhdWx0cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBMkM7QUFDSTtBQUNDO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLHlEQUFnQjtBQUN2QjtBQUNBLFNBQVM7QUFDVCxxQkFBcUIsbURBQUs7QUFDMUIsa0JBQWtCLG1EQUFLO0FBQ3ZCLFVBQVUsbURBQUs7QUFDZixZQUFZLG1EQUFLO0FBQ2pCO0FBQ0EsaUJBQWlCLG1EQUFLO0FBQ3RCLG9CQUFvQixtREFBSztBQUN6QixzQkFBc0IsbURBQUs7QUFDM0IsdUJBQXVCLG1EQUFLO0FBQzVCLHFCQUFxQixtREFBSztBQUMxQixVQUFVO0FBQ1Ysa0JBQWtCLHVEQUFNO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNrRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL21hcHMvZGVmYXVsdHMubWpzPzBhYmUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29sb3IgfSBmcm9tICcuLi9jb2xvci9pbmRleC5tanMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICcuLi9jb21wbGV4L2ZpbHRlci5tanMnO1xyXG5pbXBvcnQgeyBudW1iZXJWYWx1ZVR5cGVzIH0gZnJvbSAnLi9udW1iZXIubWpzJztcclxuXHJcbi8qKlxyXG4gKiBBIG1hcCBvZiBkZWZhdWx0IHZhbHVlIHR5cGVzIGZvciBjb21tb24gdmFsdWVzXHJcbiAqL1xyXG5jb25zdCBkZWZhdWx0VmFsdWVUeXBlcyA9IHtcclxuICAgIC4uLm51bWJlclZhbHVlVHlwZXMsXHJcbiAgICAvLyBDb2xvciBwcm9wc1xyXG4gICAgY29sb3IsXHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLFxyXG4gICAgb3V0bGluZUNvbG9yOiBjb2xvcixcclxuICAgIGZpbGw6IGNvbG9yLFxyXG4gICAgc3Ryb2tlOiBjb2xvcixcclxuICAgIC8vIEJvcmRlciBwcm9wc1xyXG4gICAgYm9yZGVyQ29sb3I6IGNvbG9yLFxyXG4gICAgYm9yZGVyVG9wQ29sb3I6IGNvbG9yLFxyXG4gICAgYm9yZGVyUmlnaHRDb2xvcjogY29sb3IsXHJcbiAgICBib3JkZXJCb3R0b21Db2xvcjogY29sb3IsXHJcbiAgICBib3JkZXJMZWZ0Q29sb3I6IGNvbG9yLFxyXG4gICAgZmlsdGVyLFxyXG4gICAgV2Via2l0RmlsdGVyOiBmaWx0ZXIsXHJcbn07XHJcbi8qKlxyXG4gKiBHZXRzIHRoZSBkZWZhdWx0IFZhbHVlVHlwZSBmb3IgdGhlIHByb3ZpZGVkIHZhbHVlIGtleVxyXG4gKi9cclxuY29uc3QgZ2V0RGVmYXVsdFZhbHVlVHlwZSA9IChrZXkpID0+IGRlZmF1bHRWYWx1ZVR5cGVzW2tleV07XHJcblxyXG5leHBvcnQgeyBkZWZhdWx0VmFsdWVUeXBlcywgZ2V0RGVmYXVsdFZhbHVlVHlwZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/maps/number.mjs ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ numberValueTypes: function() { return /* binding */ numberValueTypes; }\n/* harmony export */ });\n/* harmony import */ var _int_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../int.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/int.mjs\");\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _transform_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs\");\n\r\n\r\n\r\n\r\n\r\nconst numberValueTypes = {\r\n // Border props\r\n borderWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n borderTopWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n borderRightWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n borderBottomWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n borderLeftWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n borderRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n radius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n borderTopLeftRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n borderTopRightRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n borderBottomRightRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n borderBottomLeftRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n // Positioning props\r\n width: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n maxWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n height: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n maxHeight: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n top: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n right: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n bottom: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n left: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n // Spacing props\r\n padding: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n paddingTop: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n paddingRight: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n paddingBottom: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n paddingLeft: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n margin: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n marginTop: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n marginRight: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n marginBottom: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n marginLeft: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n // Misc\r\n backgroundPositionX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n backgroundPositionY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n ..._transform_mjs__WEBPACK_IMPORTED_MODULE_1__.transformValueTypes,\r\n zIndex: _int_mjs__WEBPACK_IMPORTED_MODULE_2__.int,\r\n // SVG\r\n fillOpacity: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__.alpha,\r\n strokeOpacity: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__.alpha,\r\n numOctaves: _int_mjs__WEBPACK_IMPORTED_MODULE_2__.int,\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbWFwcy9udW1iZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQWlDO0FBQ1k7QUFDSDtBQUNZO0FBQ3REO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixrREFBRTtBQUNuQixvQkFBb0Isa0RBQUU7QUFDdEIsc0JBQXNCLGtEQUFFO0FBQ3hCLHVCQUF1QixrREFBRTtBQUN6QixxQkFBcUIsa0RBQUU7QUFDdkIsa0JBQWtCLGtEQUFFO0FBQ3BCLFlBQVksa0RBQUU7QUFDZCx5QkFBeUIsa0RBQUU7QUFDM0IsMEJBQTBCLGtEQUFFO0FBQzVCLDZCQUE2QixrREFBRTtBQUMvQiw0QkFBNEIsa0RBQUU7QUFDOUI7QUFDQSxXQUFXLGtEQUFFO0FBQ2IsY0FBYyxrREFBRTtBQUNoQixZQUFZLGtEQUFFO0FBQ2QsZUFBZSxrREFBRTtBQUNqQixTQUFTLGtEQUFFO0FBQ1gsV0FBVyxrREFBRTtBQUNiLFlBQVksa0RBQUU7QUFDZCxVQUFVLGtEQUFFO0FBQ1o7QUFDQSxhQUFhLGtEQUFFO0FBQ2YsZ0JBQWdCLGtEQUFFO0FBQ2xCLGtCQUFrQixrREFBRTtBQUNwQixtQkFBbUIsa0RBQUU7QUFDckIsaUJBQWlCLGtEQUFFO0FBQ25CLFlBQVksa0RBQUU7QUFDZCxlQUFlLGtEQUFFO0FBQ2pCLGlCQUFpQixrREFBRTtBQUNuQixrQkFBa0Isa0RBQUU7QUFDcEIsZ0JBQWdCLGtEQUFFO0FBQ2xCO0FBQ0EseUJBQXlCLGtEQUFFO0FBQzNCLHlCQUF5QixrREFBRTtBQUMzQixPQUFPLCtEQUFtQjtBQUMxQixZQUFZLHlDQUFHO0FBQ2Y7QUFDQSxpQkFBaUIscURBQUs7QUFDdEIsbUJBQW1CLHFEQUFLO0FBQ3hCLGdCQUFnQix5Q0FBRztBQUNuQjtBQUNBO0FBQzRCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbWFwcy9udW1iZXIubWpzP2U2NTIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW50IH0gZnJvbSAnLi4vaW50Lm1qcyc7XHJcbmltcG9ydCB7IGFscGhhIH0gZnJvbSAnLi4vbnVtYmVycy9pbmRleC5tanMnO1xyXG5pbXBvcnQgeyBweCB9IGZyb20gJy4uL251bWJlcnMvdW5pdHMubWpzJztcclxuaW1wb3J0IHsgdHJhbnNmb3JtVmFsdWVUeXBlcyB9IGZyb20gJy4vdHJhbnNmb3JtLm1qcyc7XHJcblxyXG5jb25zdCBudW1iZXJWYWx1ZVR5cGVzID0ge1xyXG4gICAgLy8gQm9yZGVyIHByb3BzXHJcbiAgICBib3JkZXJXaWR0aDogcHgsXHJcbiAgICBib3JkZXJUb3BXaWR0aDogcHgsXHJcbiAgICBib3JkZXJSaWdodFdpZHRoOiBweCxcclxuICAgIGJvcmRlckJvdHRvbVdpZHRoOiBweCxcclxuICAgIGJvcmRlckxlZnRXaWR0aDogcHgsXHJcbiAgICBib3JkZXJSYWRpdXM6IHB4LFxyXG4gICAgcmFkaXVzOiBweCxcclxuICAgIGJvcmRlclRvcExlZnRSYWRpdXM6IHB4LFxyXG4gICAgYm9yZGVyVG9wUmlnaHRSYWRpdXM6IHB4LFxyXG4gICAgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IHB4LFxyXG4gICAgYm9yZGVyQm90dG9tTGVmdFJhZGl1czogcHgsXHJcbiAgICAvLyBQb3NpdGlvbmluZyBwcm9wc1xyXG4gICAgd2lkdGg6IHB4LFxyXG4gICAgbWF4V2lkdGg6IHB4LFxyXG4gICAgaGVpZ2h0OiBweCxcclxuICAgIG1heEhlaWdodDogcHgsXHJcbiAgICB0b3A6IHB4LFxyXG4gICAgcmlnaHQ6IHB4LFxyXG4gICAgYm90dG9tOiBweCxcclxuICAgIGxlZnQ6IHB4LFxyXG4gICAgLy8gU3BhY2luZyBwcm9wc1xyXG4gICAgcGFkZGluZzogcHgsXHJcbiAgICBwYWRkaW5nVG9wOiBweCxcclxuICAgIHBhZGRpbmdSaWdodDogcHgsXHJcbiAgICBwYWRkaW5nQm90dG9tOiBweCxcclxuICAgIHBhZGRpbmdMZWZ0OiBweCxcclxuICAgIG1hcmdpbjogcHgsXHJcbiAgICBtYXJnaW5Ub3A6IHB4LFxyXG4gICAgbWFyZ2luUmlnaHQ6IHB4LFxyXG4gICAgbWFyZ2luQm90dG9tOiBweCxcclxuICAgIG1hcmdpbkxlZnQ6IHB4LFxyXG4gICAgLy8gTWlzY1xyXG4gICAgYmFja2dyb3VuZFBvc2l0aW9uWDogcHgsXHJcbiAgICBiYWNrZ3JvdW5kUG9zaXRpb25ZOiBweCxcclxuICAgIC4uLnRyYW5zZm9ybVZhbHVlVHlwZXMsXHJcbiAgICB6SW5kZXg6IGludCxcclxuICAgIC8vIFNWR1xyXG4gICAgZmlsbE9wYWNpdHk6IGFscGhhLFxyXG4gICAgc3Ryb2tlT3BhY2l0eTogYWxwaGEsXHJcbiAgICBudW1PY3RhdmVzOiBpbnQsXHJcbn07XHJcblxyXG5leHBvcnQgeyBudW1iZXJWYWx1ZVR5cGVzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ transformValueTypes: function() { return /* binding */ transformValueTypes; }\n/* harmony export */ });\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n\r\n\r\n\r\nconst transformValueTypes = {\r\n rotate: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\r\n rotateX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\r\n rotateY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\r\n rotateZ: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\r\n scale: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\r\n scaleX: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\r\n scaleY: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\r\n scaleZ: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\r\n skew: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\r\n skewX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\r\n skewY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\r\n distance: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n translateX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n translateY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n translateZ: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n x: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n y: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n z: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n perspective: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n transformPerspective: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n opacity: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.alpha,\r\n originX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.progressPercentage,\r\n originY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.progressPercentage,\r\n originZ: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbWFwcy90cmFuc2Zvcm0ubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFvRDtBQUNtQjtBQUN2RTtBQUNBO0FBQ0EsWUFBWSx1REFBTztBQUNuQixhQUFhLHVEQUFPO0FBQ3BCLGFBQWEsdURBQU87QUFDcEIsYUFBYSx1REFBTztBQUNwQixTQUFTO0FBQ1QsWUFBWSxxREFBSztBQUNqQixZQUFZLHFEQUFLO0FBQ2pCLFlBQVkscURBQUs7QUFDakIsVUFBVSx1REFBTztBQUNqQixXQUFXLHVEQUFPO0FBQ2xCLFdBQVcsdURBQU87QUFDbEIsY0FBYyxrREFBRTtBQUNoQixnQkFBZ0Isa0RBQUU7QUFDbEIsZ0JBQWdCLGtEQUFFO0FBQ2xCLGdCQUFnQixrREFBRTtBQUNsQixPQUFPLGtEQUFFO0FBQ1QsT0FBTyxrREFBRTtBQUNULE9BQU8sa0RBQUU7QUFDVCxpQkFBaUIsa0RBQUU7QUFDbkIsMEJBQTBCLGtEQUFFO0FBQzVCLGFBQWEscURBQUs7QUFDbEIsYUFBYSxrRUFBa0I7QUFDL0IsYUFBYSxrRUFBa0I7QUFDL0IsYUFBYSxrREFBRTtBQUNmO0FBQ0E7QUFDK0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9tYXBzL3RyYW5zZm9ybS5tanM/NmNlNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzY2FsZSwgYWxwaGEgfSBmcm9tICcuLi9udW1iZXJzL2luZGV4Lm1qcyc7XHJcbmltcG9ydCB7IGRlZ3JlZXMsIHB4LCBwcm9ncmVzc1BlcmNlbnRhZ2UgfSBmcm9tICcuLi9udW1iZXJzL3VuaXRzLm1qcyc7XHJcblxyXG5jb25zdCB0cmFuc2Zvcm1WYWx1ZVR5cGVzID0ge1xyXG4gICAgcm90YXRlOiBkZWdyZWVzLFxyXG4gICAgcm90YXRlWDogZGVncmVlcyxcclxuICAgIHJvdGF0ZVk6IGRlZ3JlZXMsXHJcbiAgICByb3RhdGVaOiBkZWdyZWVzLFxyXG4gICAgc2NhbGUsXHJcbiAgICBzY2FsZVg6IHNjYWxlLFxyXG4gICAgc2NhbGVZOiBzY2FsZSxcclxuICAgIHNjYWxlWjogc2NhbGUsXHJcbiAgICBza2V3OiBkZWdyZWVzLFxyXG4gICAgc2tld1g6IGRlZ3JlZXMsXHJcbiAgICBza2V3WTogZGVncmVlcyxcclxuICAgIGRpc3RhbmNlOiBweCxcclxuICAgIHRyYW5zbGF0ZVg6IHB4LFxyXG4gICAgdHJhbnNsYXRlWTogcHgsXHJcbiAgICB0cmFuc2xhdGVaOiBweCxcclxuICAgIHg6IHB4LFxyXG4gICAgeTogcHgsXHJcbiAgICB6OiBweCxcclxuICAgIHBlcnNwZWN0aXZlOiBweCxcclxuICAgIHRyYW5zZm9ybVBlcnNwZWN0aXZlOiBweCxcclxuICAgIG9wYWNpdHk6IGFscGhhLFxyXG4gICAgb3JpZ2luWDogcHJvZ3Jlc3NQZXJjZW50YWdlLFxyXG4gICAgb3JpZ2luWTogcHJvZ3Jlc3NQZXJjZW50YWdlLFxyXG4gICAgb3JpZ2luWjogcHgsXHJcbn07XHJcblxyXG5leHBvcnQgeyB0cmFuc2Zvcm1WYWx1ZVR5cGVzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ alpha: function() { return /* binding */ alpha; },\n/* harmony export */ number: function() { return /* binding */ number; },\n/* harmony export */ scale: function() { return /* binding */ scale; }\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n\r\n\r\nconst number = {\r\n test: (v) => typeof v === \"number\",\r\n parse: parseFloat,\r\n transform: (v) => v,\r\n};\r\nconst alpha = {\r\n ...number,\r\n transform: (v) => (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(0, 1, v),\r\n};\r\nconst scale = {\r\n ...number,\r\n default: 1,\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbnVtYmVycy9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLG1EQUFLO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNnQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL251bWJlcnMvaW5kZXgubWpzPzExNGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xhbXAgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xyXG5cclxuY29uc3QgbnVtYmVyID0ge1xyXG4gICAgdGVzdDogKHYpID0+IHR5cGVvZiB2ID09PSBcIm51bWJlclwiLFxyXG4gICAgcGFyc2U6IHBhcnNlRmxvYXQsXHJcbiAgICB0cmFuc2Zvcm06ICh2KSA9PiB2LFxyXG59O1xyXG5jb25zdCBhbHBoYSA9IHtcclxuICAgIC4uLm51bWJlcixcclxuICAgIHRyYW5zZm9ybTogKHYpID0+IGNsYW1wKDAsIDEsIHYpLFxyXG59O1xyXG5jb25zdCBzY2FsZSA9IHtcclxuICAgIC4uLm51bWJlcixcclxuICAgIGRlZmF1bHQ6IDEsXHJcbn07XHJcblxyXG5leHBvcnQgeyBhbHBoYSwgbnVtYmVyLCBzY2FsZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ degrees: function() { return /* binding */ degrees; },\n/* harmony export */ percent: function() { return /* binding */ percent; },\n/* harmony export */ progressPercentage: function() { return /* binding */ progressPercentage; },\n/* harmony export */ px: function() { return /* binding */ px; },\n/* harmony export */ vh: function() { return /* binding */ vh; },\n/* harmony export */ vw: function() { return /* binding */ vw; }\n/* harmony export */ });\n/*#__NO_SIDE_EFFECTS__*/\r\nconst createUnitType = (unit) => ({\r\n test: (v) => typeof v === \"string\" && v.endsWith(unit) && v.split(\" \").length === 1,\r\n parse: parseFloat,\r\n transform: (v) => `${v}${unit}`,\r\n});\r\nconst degrees = /*@__PURE__*/ createUnitType(\"deg\");\r\nconst percent = /*@__PURE__*/ createUnitType(\"%\");\r\nconst px = /*@__PURE__*/ createUnitType(\"px\");\r\nconst vh = /*@__PURE__*/ createUnitType(\"vh\");\r\nconst vw = /*@__PURE__*/ createUnitType(\"vw\");\r\nconst progressPercentage = /*@__PURE__*/ (() => ({\r\n ...percent,\r\n parse: (v) => percent.parse(v) / 100,\r\n transform: (v) => percent.transform(v * 100),\r\n}))();\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbnVtYmVycy91bml0cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsRUFBRSxFQUFFLEtBQUs7QUFDbEMsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUM0RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL251bWJlcnMvdW5pdHMubWpzP2RjMDUiXSwic291cmNlc0NvbnRlbnQiOlsiLyojX19OT19TSURFX0VGRkVDVFNfXyovXHJcbmNvbnN0IGNyZWF0ZVVuaXRUeXBlID0gKHVuaXQpID0+ICh7XHJcbiAgICB0ZXN0OiAodikgPT4gdHlwZW9mIHYgPT09IFwic3RyaW5nXCIgJiYgdi5lbmRzV2l0aCh1bml0KSAmJiB2LnNwbGl0KFwiIFwiKS5sZW5ndGggPT09IDEsXHJcbiAgICBwYXJzZTogcGFyc2VGbG9hdCxcclxuICAgIHRyYW5zZm9ybTogKHYpID0+IGAke3Z9JHt1bml0fWAsXHJcbn0pO1xyXG5jb25zdCBkZWdyZWVzID0gLypAX19QVVJFX18qLyBjcmVhdGVVbml0VHlwZShcImRlZ1wiKTtcclxuY29uc3QgcGVyY2VudCA9IC8qQF9fUFVSRV9fKi8gY3JlYXRlVW5pdFR5cGUoXCIlXCIpO1xyXG5jb25zdCBweCA9IC8qQF9fUFVSRV9fKi8gY3JlYXRlVW5pdFR5cGUoXCJweFwiKTtcclxuY29uc3QgdmggPSAvKkBfX1BVUkVfXyovIGNyZWF0ZVVuaXRUeXBlKFwidmhcIik7XHJcbmNvbnN0IHZ3ID0gLypAX19QVVJFX18qLyBjcmVhdGVVbml0VHlwZShcInZ3XCIpO1xyXG5jb25zdCBwcm9ncmVzc1BlcmNlbnRhZ2UgPSAvKkBfX1BVUkVfXyovICgoKSA9PiAoe1xyXG4gICAgLi4ucGVyY2VudCxcclxuICAgIHBhcnNlOiAodikgPT4gcGVyY2VudC5wYXJzZSh2KSAvIDEwMCxcclxuICAgIHRyYW5zZm9ybTogKHYpID0+IHBlcmNlbnQudHJhbnNmb3JtKHYgKiAxMDApLFxyXG59KSkoKTtcclxuXHJcbmV4cG9ydCB7IGRlZ3JlZXMsIHBlcmNlbnQsIHByb2dyZXNzUGVyY2VudGFnZSwgcHgsIHZoLCB2dyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/test.mjs":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/test.mjs ***!
|
||
\**************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ testValueType: function() { return /* binding */ testValueType; }\n/* harmony export */ });\n/**\r\n * Tests a provided value against a ValueType\r\n */\r\nconst testValueType = (v) => (type) => type.test(v);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdGVzdC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy90ZXN0Lm1qcz84YzljIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUZXN0cyBhIHByb3ZpZGVkIHZhbHVlIGFnYWluc3QgYSBWYWx1ZVR5cGVcclxuICovXHJcbmNvbnN0IHRlc3RWYWx1ZVR5cGUgPSAodikgPT4gKHR5cGUpID0+IHR5cGUudGVzdCh2KTtcclxuXHJcbmV4cG9ydCB7IHRlc3RWYWx1ZVR5cGUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/test.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs ***!
|
||
\*******************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getAnimatableNone: function() { return /* binding */ getAnimatableNone; }\n/* harmony export */ });\n/* harmony import */ var _complex_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../complex/filter.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs\");\n/* harmony import */ var _maps_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../maps/defaults.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs\");\n\r\n\r\n\r\n\r\nfunction getAnimatableNone(key, value) {\r\n let defaultValueType = (0,_maps_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.getDefaultValueType)(key);\r\n if (defaultValueType !== _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_1__.filter)\r\n defaultValueType = _complex_index_mjs__WEBPACK_IMPORTED_MODULE_2__.complex;\r\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\r\n return defaultValueType.getAnimatableNone\r\n ? defaultValueType.getAnimatableNone(value)\r\n : undefined;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvYW5pbWF0YWJsZS1ub25lLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQStDO0FBQ0E7QUFDWTtBQUMzRDtBQUNBO0FBQ0EsMkJBQTJCLHVFQUFtQjtBQUM5Qyw2QkFBNkIsdURBQU07QUFDbkMsMkJBQTJCLHVEQUFPO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUM2QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2FuaW1hdGFibGUtbm9uZS5tanM/YjQ2OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wbGV4IH0gZnJvbSAnLi4vY29tcGxleC9pbmRleC5tanMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICcuLi9jb21wbGV4L2ZpbHRlci5tanMnO1xyXG5pbXBvcnQgeyBnZXREZWZhdWx0VmFsdWVUeXBlIH0gZnJvbSAnLi4vbWFwcy9kZWZhdWx0cy5tanMnO1xyXG5cclxuZnVuY3Rpb24gZ2V0QW5pbWF0YWJsZU5vbmUoa2V5LCB2YWx1ZSkge1xyXG4gICAgbGV0IGRlZmF1bHRWYWx1ZVR5cGUgPSBnZXREZWZhdWx0VmFsdWVUeXBlKGtleSk7XHJcbiAgICBpZiAoZGVmYXVsdFZhbHVlVHlwZSAhPT0gZmlsdGVyKVxyXG4gICAgICAgIGRlZmF1bHRWYWx1ZVR5cGUgPSBjb21wbGV4O1xyXG4gICAgLy8gSWYgdmFsdWUgaXMgbm90IHJlY29nbmlzZWQgYXMgYW5pbWF0YWJsZSwgaWUgXCJub25lXCIsIGNyZWF0ZSBhbiBhbmltYXRhYmxlIHZlcnNpb24gb3JpZ2luIGJhc2VkIG9uIHRoZSB0YXJnZXRcclxuICAgIHJldHVybiBkZWZhdWx0VmFsdWVUeXBlLmdldEFuaW1hdGFibGVOb25lXHJcbiAgICAgICAgPyBkZWZhdWx0VmFsdWVUeXBlLmdldEFuaW1hdGFibGVOb25lKHZhbHVlKVxyXG4gICAgICAgIDogdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgeyBnZXRBbmltYXRhYmxlTm9uZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ colorRegex: function() { return /* binding */ colorRegex; }\n/* harmony export */ });\nconst colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvY29sb3ItcmVnZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxnQ0FBZ0MsSUFBSSxxQ0FBcUMsRUFBRTtBQUMzRTtBQUNzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2NvbG9yLXJlZ2V4Lm1qcz85ZGQ3Il0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNvbG9yUmVnZXggPSAvKD86I1tcXGRhLWZdezMsOH18KD86cmdifGhzbClhP1xcKCg/Oi0/W1xcZC5dKyU/WyxcXHNdKyl7Mn0tP1tcXGQuXSslP1xccyooPzpbLC9dXFxzKik/KD86XFxiXFxkKyg/OlxcLlxcZCspP3xcXC5cXGQrKT8lP1xcKSkvZ2l1O1xyXG5cclxuZXhwb3J0IHsgY29sb3JSZWdleCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/find.mjs":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/utils/find.mjs ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ findValueType: function() { return /* binding */ findValueType; }\n/* harmony export */ });\n/* harmony import */ var _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../color/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _complex_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _dimensions_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dimensions.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs\");\n/* harmony import */ var _test_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../test.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/test.mjs\");\n\r\n\r\n\r\n\r\n\r\n/**\r\n * A list of all ValueTypes\r\n */\r\nconst valueTypes = [..._dimensions_mjs__WEBPACK_IMPORTED_MODULE_0__.dimensionValueTypes, _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color, _complex_index_mjs__WEBPACK_IMPORTED_MODULE_2__.complex];\r\n/**\r\n * Tests a value against the list of ValueTypes\r\n */\r\nconst findValueType = (v) => valueTypes.find((0,_test_mjs__WEBPACK_IMPORTED_MODULE_3__.testValueType)(v));\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvZmluZC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBMkM7QUFDSTtBQUNTO0FBQ1o7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsZ0VBQW1CLEVBQUUsbURBQUssRUFBRSx1REFBTztBQUMxRDtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkMsd0RBQWE7QUFDMUQ7QUFDeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy91dGlscy9maW5kLm1qcz85ODRmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbG9yIH0gZnJvbSAnLi4vY29sb3IvaW5kZXgubWpzJztcclxuaW1wb3J0IHsgY29tcGxleCB9IGZyb20gJy4uL2NvbXBsZXgvaW5kZXgubWpzJztcclxuaW1wb3J0IHsgZGltZW5zaW9uVmFsdWVUeXBlcyB9IGZyb20gJy4uL2RpbWVuc2lvbnMubWpzJztcclxuaW1wb3J0IHsgdGVzdFZhbHVlVHlwZSB9IGZyb20gJy4uL3Rlc3QubWpzJztcclxuXHJcbi8qKlxyXG4gKiBBIGxpc3Qgb2YgYWxsIFZhbHVlVHlwZXNcclxuICovXHJcbmNvbnN0IHZhbHVlVHlwZXMgPSBbLi4uZGltZW5zaW9uVmFsdWVUeXBlcywgY29sb3IsIGNvbXBsZXhdO1xyXG4vKipcclxuICogVGVzdHMgYSB2YWx1ZSBhZ2FpbnN0IHRoZSBsaXN0IG9mIFZhbHVlVHlwZXNcclxuICovXHJcbmNvbnN0IGZpbmRWYWx1ZVR5cGUgPSAodikgPT4gdmFsdWVUeXBlcy5maW5kKHRlc3RWYWx1ZVR5cGUodikpO1xyXG5cclxuZXhwb3J0IHsgZmluZFZhbHVlVHlwZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/find.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ floatRegex: function() { return /* binding */ floatRegex; }\n/* harmony export */ });\nconst floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvZmxvYXQtcmVnZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ3NCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvZmxvYXQtcmVnZXgubWpzPzA2ZjgiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZmxvYXRSZWdleCA9IC8tPyg/OlxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKykvZ3U7XHJcblxyXG5leHBvcnQgeyBmbG9hdFJlZ2V4IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs ***!
|
||
\***************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getValueAsType: function() { return /* binding */ getValueAsType; }\n/* harmony export */ });\n/**\r\n * Provided a value and a ValueType, returns the value as that value type.\r\n */\r\nconst getValueAsType = (value, type) => {\r\n return type && typeof value === \"number\"\r\n ? type.transform(value)\r\n : value;\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvZ2V0LWFzLXR5cGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDMEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy91dGlscy9nZXQtYXMtdHlwZS5tanM/NzVmNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogUHJvdmlkZWQgYSB2YWx1ZSBhbmQgYSBWYWx1ZVR5cGUsIHJldHVybnMgdGhlIHZhbHVlIGFzIHRoYXQgdmFsdWUgdHlwZS5cclxuICovXHJcbmNvbnN0IGdldFZhbHVlQXNUeXBlID0gKHZhbHVlLCB0eXBlKSA9PiB7XHJcbiAgICByZXR1cm4gdHlwZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCJcclxuICAgICAgICA/IHR5cGUudHJhbnNmb3JtKHZhbHVlKVxyXG4gICAgICAgIDogdmFsdWU7XHJcbn07XHJcblxyXG5leHBvcnQgeyBnZXRWYWx1ZUFzVHlwZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs ***!
|
||
\**************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNullish: function() { return /* binding */ isNullish; }\n/* harmony export */ });\nfunction isNullish(v) {\r\n return v == null;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvaXMtbnVsbGlzaC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ3FCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvaXMtbnVsbGlzaC5tanM/NDEwYyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpc051bGxpc2godikge1xyXG4gICAgcmV0dXJuIHYgPT0gbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IHsgaXNOdWxsaXNoIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ sanitize: function() { return /* binding */ sanitize; }\n/* harmony export */ });\n// If this number is a decimal, make it just five decimal places\r\n// to avoid exponents\r\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvc2FuaXRpemUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL3Nhbml0aXplLm1qcz9iOTAyIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIElmIHRoaXMgbnVtYmVyIGlzIGEgZGVjaW1hbCwgbWFrZSBpdCBqdXN0IGZpdmUgZGVjaW1hbCBwbGFjZXNcclxuLy8gdG8gYXZvaWQgZXhwb25lbnRzXHJcbmNvbnN0IHNhbml0aXplID0gKHYpID0+IE1hdGgucm91bmQodiAqIDEwMDAwMCkgLyAxMDAwMDA7XHJcblxyXG5leHBvcnQgeyBzYW5pdGl6ZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs ***!
|
||
\**********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ singleColorRegex: function() { return /* binding */ singleColorRegex; }\n/* harmony export */ });\nconst singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvc2luZ2xlLWNvbG9yLXJlZ2V4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsdUNBQXVDLElBQUkscUNBQXFDLEVBQUU7QUFDbEY7QUFDNEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy91dGlscy9zaW5nbGUtY29sb3ItcmVnZXgubWpzPzk5OWEiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgc2luZ2xlQ29sb3JSZWdleCA9IC9eKD86I1tcXGRhLWZdezMsOH18KD86cmdifGhzbClhP1xcKCg/Oi0/W1xcZC5dKyU/WyxcXHNdKyl7Mn0tP1tcXGQuXSslP1xccyooPzpbLC9dXFxzKik/KD86XFxiXFxkKyg/OlxcLlxcZCspP3xcXC5cXGQrKT8lP1xcKSkkL2l1O1xyXG5cclxuZXhwb3J0IHsgc2luZ2xlQ29sb3JSZWdleCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs ***!
|
||
\*************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isMotionValue: function() { return /* binding */ isMotionValue; }\n/* harmony export */ });\nconst isMotionValue = (value) => Boolean(value && value.getVelocity);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdXRpbHMvaXMtbW90aW9uLXZhbHVlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUN5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3V0aWxzL2lzLW1vdGlvbi12YWx1ZS5tanM/ZWRhMyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc01vdGlvblZhbHVlID0gKHZhbHVlKSA9PiBCb29sZWFuKHZhbHVlICYmIHZhbHVlLmdldFZlbG9jaXR5KTtcclxuXHJcbmV4cG9ydCB7IGlzTW90aW9uVmFsdWUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs":
|
||
/*!*****************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/array.mjs ***!
|
||
\*****************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addUniqueItem: function() { return /* binding */ addUniqueItem; },\n/* harmony export */ moveItem: function() { return /* binding */ moveItem; },\n/* harmony export */ removeItem: function() { return /* binding */ removeItem; }\n/* harmony export */ });\nfunction addUniqueItem(arr, item) {\r\n if (arr.indexOf(item) === -1)\r\n arr.push(item);\r\n}\r\nfunction removeItem(arr, item) {\r\n const index = arr.indexOf(item);\r\n if (index > -1)\r\n arr.splice(index, 1);\r\n}\r\n// Adapted from array-move\r\nfunction moveItem([...arr], fromIndex, toIndex) {\r\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\r\n if (startIndex >= 0 && startIndex < arr.length) {\r\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\r\n const [item] = arr.splice(fromIndex, 1);\r\n arr.splice(endIndex, 0, item);\r\n }\r\n return arr;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9hcnJheS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUMrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvYXJyYXkubWpzPzI0ZTciXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gYWRkVW5pcXVlSXRlbShhcnIsIGl0ZW0pIHtcclxuICAgIGlmIChhcnIuaW5kZXhPZihpdGVtKSA9PT0gLTEpXHJcbiAgICAgICAgYXJyLnB1c2goaXRlbSk7XHJcbn1cclxuZnVuY3Rpb24gcmVtb3ZlSXRlbShhcnIsIGl0ZW0pIHtcclxuICAgIGNvbnN0IGluZGV4ID0gYXJyLmluZGV4T2YoaXRlbSk7XHJcbiAgICBpZiAoaW5kZXggPiAtMSlcclxuICAgICAgICBhcnIuc3BsaWNlKGluZGV4LCAxKTtcclxufVxyXG4vLyBBZGFwdGVkIGZyb20gYXJyYXktbW92ZVxyXG5mdW5jdGlvbiBtb3ZlSXRlbShbLi4uYXJyXSwgZnJvbUluZGV4LCB0b0luZGV4KSB7XHJcbiAgICBjb25zdCBzdGFydEluZGV4ID0gZnJvbUluZGV4IDwgMCA/IGFyci5sZW5ndGggKyBmcm9tSW5kZXggOiBmcm9tSW5kZXg7XHJcbiAgICBpZiAoc3RhcnRJbmRleCA+PSAwICYmIHN0YXJ0SW5kZXggPCBhcnIubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3QgZW5kSW5kZXggPSB0b0luZGV4IDwgMCA/IGFyci5sZW5ndGggKyB0b0luZGV4IDogdG9JbmRleDtcclxuICAgICAgICBjb25zdCBbaXRlbV0gPSBhcnIuc3BsaWNlKGZyb21JbmRleCwgMSk7XHJcbiAgICAgICAgYXJyLnNwbGljZShlbmRJbmRleCwgMCwgaXRlbSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyO1xyXG59XHJcblxyXG5leHBvcnQgeyBhZGRVbmlxdWVJdGVtLCBtb3ZlSXRlbSwgcmVtb3ZlSXRlbSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs":
|
||
/*!*****************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/clamp.mjs ***!
|
||
\*****************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clamp: function() { return /* binding */ clamp; }\n/* harmony export */ });\nconst clamp = (min, max, v) => {\r\n if (v > max)\r\n return max;\r\n if (v < min)\r\n return min;\r\n return v;\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9jbGFtcC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2NsYW1wLm1qcz9iM2MwIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNsYW1wID0gKG1pbiwgbWF4LCB2KSA9PiB7XHJcbiAgICBpZiAodiA+IG1heClcclxuICAgICAgICByZXR1cm4gbWF4O1xyXG4gICAgaWYgKHYgPCBtaW4pXHJcbiAgICAgICAgcmV0dXJuIG1pbjtcclxuICAgIHJldHVybiB2O1xyXG59O1xyXG5cclxuZXhwb3J0IHsgY2xhbXAgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/easing/anticipate.mjs ***!
|
||
\*****************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ anticipate: function() { return /* binding */ anticipate; }\n/* harmony export */ });\n/* harmony import */ var _back_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./back.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs\");\n\r\n\r\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * (0,_back_mjs__WEBPACK_IMPORTED_MODULE_0__.backIn)(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvYW50aWNpcGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBb0M7QUFDcEM7QUFDQSwrQ0FBK0MsaURBQU07QUFDckQ7QUFDc0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Vhc2luZy9hbnRpY2lwYXRlLm1qcz85NDhhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJhY2tJbiB9IGZyb20gJy4vYmFjay5tanMnO1xyXG5cclxuY29uc3QgYW50aWNpcGF0ZSA9IChwKSA9PiAocCAqPSAyKSA8IDEgPyAwLjUgKiBiYWNrSW4ocCkgOiAwLjUgKiAoMiAtIE1hdGgucG93KDIsIC0xMCAqIChwIC0gMSkpKTtcclxuXHJcbmV4cG9ydCB7IGFudGljaXBhdGUgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/easing/back.mjs ***!
|
||
\***********************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ backIn: function() { return /* binding */ backIn; },\n/* harmony export */ backInOut: function() { return /* binding */ backInOut; },\n/* harmony export */ backOut: function() { return /* binding */ backOut; }\n/* harmony export */ });\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\");\n/* harmony import */ var _modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/mirror.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs\");\n/* harmony import */ var _modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/reverse.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs\");\n\r\n\r\n\r\n\r\nconst backOut = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0.33, 1.53, 0.69, 0.99);\r\nconst backIn = /*@__PURE__*/ (0,_modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_1__.reverseEasing)(backOut);\r\nconst backInOut = /*@__PURE__*/ (0,_modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_2__.mirrorEasing)(backIn);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvYmFjay5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQWlEO0FBQ0s7QUFDRTtBQUN4RDtBQUNBLDhCQUE4Qiw4REFBVztBQUN6Qyw2QkFBNkIscUVBQWE7QUFDMUMsZ0NBQWdDLG1FQUFZO0FBQzVDO0FBQ3NDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvYmFjay5tanM/M2NiYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjdWJpY0JlemllciB9IGZyb20gJy4vY3ViaWMtYmV6aWVyLm1qcyc7XHJcbmltcG9ydCB7IG1pcnJvckVhc2luZyB9IGZyb20gJy4vbW9kaWZpZXJzL21pcnJvci5tanMnO1xyXG5pbXBvcnQgeyByZXZlcnNlRWFzaW5nIH0gZnJvbSAnLi9tb2RpZmllcnMvcmV2ZXJzZS5tanMnO1xyXG5cclxuY29uc3QgYmFja091dCA9IC8qQF9fUFVSRV9fKi8gY3ViaWNCZXppZXIoMC4zMywgMS41MywgMC42OSwgMC45OSk7XHJcbmNvbnN0IGJhY2tJbiA9IC8qQF9fUFVSRV9fKi8gcmV2ZXJzZUVhc2luZyhiYWNrT3V0KTtcclxuY29uc3QgYmFja0luT3V0ID0gLypAX19QVVJFX18qLyBtaXJyb3JFYXNpbmcoYmFja0luKTtcclxuXHJcbmV4cG9ydCB7IGJhY2tJbiwgYmFja0luT3V0LCBiYWNrT3V0IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/easing/circ.mjs ***!
|
||
\***********************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ circIn: function() { return /* binding */ circIn; },\n/* harmony export */ circInOut: function() { return /* binding */ circInOut; },\n/* harmony export */ circOut: function() { return /* binding */ circOut; }\n/* harmony export */ });\n/* harmony import */ var _modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/mirror.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs\");\n/* harmony import */ var _modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modifiers/reverse.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs\");\n\r\n\r\n\r\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\r\nconst circOut = (0,_modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_0__.reverseEasing)(circIn);\r\nconst circInOut = (0,_modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_1__.mirrorEasing)(circIn);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvY2lyYy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBc0Q7QUFDRTtBQUN4RDtBQUNBO0FBQ0EsZ0JBQWdCLHFFQUFhO0FBQzdCLGtCQUFrQixtRUFBWTtBQUM5QjtBQUNzQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL2NpcmMubWpzPzIzMDciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWlycm9yRWFzaW5nIH0gZnJvbSAnLi9tb2RpZmllcnMvbWlycm9yLm1qcyc7XHJcbmltcG9ydCB7IHJldmVyc2VFYXNpbmcgfSBmcm9tICcuL21vZGlmaWVycy9yZXZlcnNlLm1qcyc7XHJcblxyXG5jb25zdCBjaXJjSW4gPSAocCkgPT4gMSAtIE1hdGguc2luKE1hdGguYWNvcyhwKSk7XHJcbmNvbnN0IGNpcmNPdXQgPSByZXZlcnNlRWFzaW5nKGNpcmNJbik7XHJcbmNvbnN0IGNpcmNJbk91dCA9IG1pcnJvckVhc2luZyhjaXJjSW4pO1xyXG5cclxuZXhwb3J0IHsgY2lyY0luLCBjaXJjSW5PdXQsIGNpcmNPdXQgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cubicBezier: function() { return /* binding */ cubicBezier; }\n/* harmony export */ });\n/* harmony import */ var _noop_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n\r\n\r\n/*\r\n Bezier function generator\r\n This has been modified from Gaëtan Renaudeau's BezierEasing\r\n https://github.com/gre/bezier-easing/blob/master/src/index.js\r\n https://github.com/gre/bezier-easing/blob/master/LICENSE\r\n \r\n I've removed the newtonRaphsonIterate algo because in benchmarking it\r\n wasn't noticeably faster than binarySubdivision, indeed removing it\r\n usually improved times, depending on the curve.\r\n I also removed the lookup table, as for the added bundle size and loop we're\r\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\r\n to 12 to compensate and this still tended to be faster for no perceivable\r\n loss in accuracy.\r\n Usage\r\n const easeOut = cubicBezier(.17,.67,.83,.67);\r\n const x = easeOut(0.5); // returns 0.627...\r\n*/\r\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\r\n t;\r\nconst subdivisionPrecision = 0.0000001;\r\nconst subdivisionMaxIterations = 12;\r\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\r\n let currentX;\r\n let currentT;\r\n let i = 0;\r\n do {\r\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - x;\r\n if (currentX > 0.0) {\r\n upperBound = currentT;\r\n }\r\n else {\r\n lowerBound = currentT;\r\n }\r\n } while (Math.abs(currentX) > subdivisionPrecision &&\r\n ++i < subdivisionMaxIterations);\r\n return currentT;\r\n}\r\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\r\n // If this is a linear gradient, return linear easing\r\n if (mX1 === mY1 && mX2 === mY2)\r\n return _noop_mjs__WEBPACK_IMPORTED_MODULE_0__.noop;\r\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\r\n // If animation is at start/end, return t without easing\r\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvY3ViaWMtYmV6aWVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFtQztBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDJDQUFJO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Vhc2luZy9jdWJpYy1iZXppZXIubWpzPzFjNTQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL25vb3AubWpzJztcclxuXHJcbi8qXHJcbiAgQmV6aWVyIGZ1bmN0aW9uIGdlbmVyYXRvclxyXG4gIFRoaXMgaGFzIGJlZW4gbW9kaWZpZWQgZnJvbSBHYcOrdGFuIFJlbmF1ZGVhdSdzIEJlemllckVhc2luZ1xyXG4gIGh0dHBzOi8vZ2l0aHViLmNvbS9ncmUvYmV6aWVyLWVhc2luZy9ibG9iL21hc3Rlci9zcmMvaW5kZXguanNcclxuICBodHRwczovL2dpdGh1Yi5jb20vZ3JlL2Jlemllci1lYXNpbmcvYmxvYi9tYXN0ZXIvTElDRU5TRVxyXG4gIFxyXG4gIEkndmUgcmVtb3ZlZCB0aGUgbmV3dG9uUmFwaHNvbkl0ZXJhdGUgYWxnbyBiZWNhdXNlIGluIGJlbmNobWFya2luZyBpdFxyXG4gIHdhc24ndCBub3RpY2VhYmx5IGZhc3RlciB0aGFuIGJpbmFyeVN1YmRpdmlzaW9uLCBpbmRlZWQgcmVtb3ZpbmcgaXRcclxuICB1c3VhbGx5IGltcHJvdmVkIHRpbWVzLCBkZXBlbmRpbmcgb24gdGhlIGN1cnZlLlxyXG4gIEkgYWxzbyByZW1vdmVkIHRoZSBsb29rdXAgdGFibGUsIGFzIGZvciB0aGUgYWRkZWQgYnVuZGxlIHNpemUgYW5kIGxvb3Agd2UncmVcclxuICBvbmx5IGN1dHRpbmcgfjQgb3Igc28gc3ViZGl2aXNpb24gaXRlcmF0aW9ucy4gSSBidW1wZWQgdGhlIG1heCBpdGVyYXRpb25zIHVwXHJcbiAgdG8gMTIgdG8gY29tcGVuc2F0ZSBhbmQgdGhpcyBzdGlsbCB0ZW5kZWQgdG8gYmUgZmFzdGVyIGZvciBubyBwZXJjZWl2YWJsZVxyXG4gIGxvc3MgaW4gYWNjdXJhY3kuXHJcbiAgVXNhZ2VcclxuICAgIGNvbnN0IGVhc2VPdXQgPSBjdWJpY0JlemllciguMTcsLjY3LC44MywuNjcpO1xyXG4gICAgY29uc3QgeCA9IGVhc2VPdXQoMC41KTsgLy8gcmV0dXJucyAwLjYyNy4uLlxyXG4qL1xyXG4vLyBSZXR1cm5zIHgodCkgZ2l2ZW4gdCwgeDEsIGFuZCB4Miwgb3IgeSh0KSBnaXZlbiB0LCB5MSwgYW5kIHkyLlxyXG5jb25zdCBjYWxjQmV6aWVyID0gKHQsIGExLCBhMikgPT4gKCgoMS4wIC0gMy4wICogYTIgKyAzLjAgKiBhMSkgKiB0ICsgKDMuMCAqIGEyIC0gNi4wICogYTEpKSAqIHQgKyAzLjAgKiBhMSkgKlxyXG4gICAgdDtcclxuY29uc3Qgc3ViZGl2aXNpb25QcmVjaXNpb24gPSAwLjAwMDAwMDE7XHJcbmNvbnN0IHN1YmRpdmlzaW9uTWF4SXRlcmF0aW9ucyA9IDEyO1xyXG5mdW5jdGlvbiBiaW5hcnlTdWJkaXZpZGUoeCwgbG93ZXJCb3VuZCwgdXBwZXJCb3VuZCwgbVgxLCBtWDIpIHtcclxuICAgIGxldCBjdXJyZW50WDtcclxuICAgIGxldCBjdXJyZW50VDtcclxuICAgIGxldCBpID0gMDtcclxuICAgIGRvIHtcclxuICAgICAgICBjdXJyZW50VCA9IGxvd2VyQm91bmQgKyAodXBwZXJCb3VuZCAtIGxvd2VyQm91bmQpIC8gMi4wO1xyXG4gICAgICAgIGN1cnJlbnRYID0gY2FsY0JlemllcihjdXJyZW50VCwgbVgxLCBtWDIpIC0geDtcclxuICAgICAgICBpZiAoY3VycmVudFggPiAwLjApIHtcclxuICAgICAgICAgICAgdXBwZXJCb3VuZCA9IGN1cnJlbnRUO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbG93ZXJCb3VuZCA9IGN1cnJlbnRUO1xyXG4gICAgICAgIH1cclxuICAgIH0gd2hpbGUgKE1hdGguYWJzKGN1cnJlbnRYKSA+IHN1YmRpdmlzaW9uUHJlY2lzaW9uICYmXHJcbiAgICAgICAgKytpIDwgc3ViZGl2aXNpb25NYXhJdGVyYXRpb25zKTtcclxuICAgIHJldHVybiBjdXJyZW50VDtcclxufVxyXG5mdW5jdGlvbiBjdWJpY0JlemllcihtWDEsIG1ZMSwgbVgyLCBtWTIpIHtcclxuICAgIC8vIElmIHRoaXMgaXMgYSBsaW5lYXIgZ3JhZGllbnQsIHJldHVybiBsaW5lYXIgZWFzaW5nXHJcbiAgICBpZiAobVgxID09PSBtWTEgJiYgbVgyID09PSBtWTIpXHJcbiAgICAgICAgcmV0dXJuIG5vb3A7XHJcbiAgICBjb25zdCBnZXRURm9yWCA9IChhWCkgPT4gYmluYXJ5U3ViZGl2aWRlKGFYLCAwLCAxLCBtWDEsIG1YMik7XHJcbiAgICAvLyBJZiBhbmltYXRpb24gaXMgYXQgc3RhcnQvZW5kLCByZXR1cm4gdCB3aXRob3V0IGVhc2luZ1xyXG4gICAgcmV0dXJuICh0KSA9PiB0ID09PSAwIHx8IHQgPT09IDEgPyB0IDogY2FsY0JlemllcihnZXRURm9yWCh0KSwgbVkxLCBtWTIpO1xyXG59XHJcblxyXG5leHBvcnQgeyBjdWJpY0JlemllciB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/ease.mjs":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/easing/ease.mjs ***!
|
||
\***********************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ easeIn: function() { return /* binding */ easeIn; },\n/* harmony export */ easeInOut: function() { return /* binding */ easeInOut; },\n/* harmony export */ easeOut: function() { return /* binding */ easeOut; }\n/* harmony export */ });\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\");\n\r\n\r\nconst easeIn = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0.42, 0, 1, 1);\r\nconst easeOut = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0, 0, 0.58, 1);\r\nconst easeInOut = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0.42, 0, 0.58, 1);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvZWFzZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFpRDtBQUNqRDtBQUNBLDZCQUE2Qiw4REFBVztBQUN4Qyw4QkFBOEIsOERBQVc7QUFDekMsZ0NBQWdDLDhEQUFXO0FBQzNDO0FBQ3NDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvZWFzZS5tanM/ZWQxZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjdWJpY0JlemllciB9IGZyb20gJy4vY3ViaWMtYmV6aWVyLm1qcyc7XHJcblxyXG5jb25zdCBlYXNlSW4gPSAvKkBfX1BVUkVfXyovIGN1YmljQmV6aWVyKDAuNDIsIDAsIDEsIDEpO1xyXG5jb25zdCBlYXNlT3V0ID0gLypAX19QVVJFX18qLyBjdWJpY0JlemllcigwLCAwLCAwLjU4LCAxKTtcclxuY29uc3QgZWFzZUluT3V0ID0gLypAX19QVVJFX18qLyBjdWJpY0JlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcclxuXHJcbmV4cG9ydCB7IGVhc2VJbiwgZWFzZUluT3V0LCBlYXNlT3V0IH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/ease.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs ***!
|
||
\***********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mirrorEasing: function() { return /* binding */ mirrorEasing; }\n/* harmony export */ });\n// Accepts an easing function and returns a new one that outputs mirrored values for\r\n// the second half of the animation. Turns easeIn into easeInOut.\r\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvbW9kaWZpZXJzL21pcnJvci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ3dCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvbW9kaWZpZXJzL21pcnJvci5tanM/MDc4MiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBY2NlcHRzIGFuIGVhc2luZyBmdW5jdGlvbiBhbmQgcmV0dXJucyBhIG5ldyBvbmUgdGhhdCBvdXRwdXRzIG1pcnJvcmVkIHZhbHVlcyBmb3JcclxuLy8gdGhlIHNlY29uZCBoYWxmIG9mIHRoZSBhbmltYXRpb24uIFR1cm5zIGVhc2VJbiBpbnRvIGVhc2VJbk91dC5cclxuY29uc3QgbWlycm9yRWFzaW5nID0gKGVhc2luZykgPT4gKHApID0+IHAgPD0gMC41ID8gZWFzaW5nKDIgKiBwKSAvIDIgOiAoMiAtIGVhc2luZygyICogKDEgLSBwKSkpIC8gMjtcclxuXHJcbmV4cG9ydCB7IG1pcnJvckVhc2luZyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs ***!
|
||
\************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ reverseEasing: function() { return /* binding */ reverseEasing; }\n/* harmony export */ });\n// Accepts an easing function and returns a new one that outputs reversed values.\r\n// Turns easeIn into easeOut.\r\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvbW9kaWZpZXJzL3JldmVyc2UubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUN5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL21vZGlmaWVycy9yZXZlcnNlLm1qcz82MjY3Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEFjY2VwdHMgYW4gZWFzaW5nIGZ1bmN0aW9uIGFuZCByZXR1cm5zIGEgbmV3IG9uZSB0aGF0IG91dHB1dHMgcmV2ZXJzZWQgdmFsdWVzLlxyXG4vLyBUdXJucyBlYXNlSW4gaW50byBlYXNlT3V0LlxyXG5jb25zdCByZXZlcnNlRWFzaW5nID0gKGVhc2luZykgPT4gKHApID0+IDEgLSBlYXNpbmcoMSAtIHApO1xyXG5cclxuZXhwb3J0IHsgcmV2ZXJzZUVhc2luZyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs ***!
|
||
\*********************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isBezierDefinition: function() { return /* binding */ isBezierDefinition; }\n/* harmony export */ });\nconst isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvaXMtYmV6aWVyLWRlZmluaXRpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQzhCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvaXMtYmV6aWVyLWRlZmluaXRpb24ubWpzP2M4MjQiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNCZXppZXJEZWZpbml0aW9uID0gKGVhc2luZykgPT4gQXJyYXkuaXNBcnJheShlYXNpbmcpICYmIHR5cGVvZiBlYXNpbmdbMF0gPT09IFwibnVtYmVyXCI7XHJcblxyXG5leHBvcnQgeyBpc0JlemllckRlZmluaXRpb24gfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs ***!
|
||
\****************************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isEasingArray: function() { return /* binding */ isEasingArray; }\n/* harmony export */ });\nconst isEasingArray = (ease) => {\r\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvaXMtZWFzaW5nLWFycmF5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Vhc2luZy91dGlscy9pcy1lYXNpbmctYXJyYXkubWpzPzk5OTciXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNFYXNpbmdBcnJheSA9IChlYXNlKSA9PiB7XHJcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShlYXNlKSAmJiB0eXBlb2YgZWFzZVswXSAhPT0gXCJudW1iZXJcIjtcclxufTtcclxuXHJcbmV4cG9ydCB7IGlzRWFzaW5nQXJyYXkgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/map.mjs":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/easing/utils/map.mjs ***!
|
||
\****************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ easingDefinitionToFunction: function() { return /* binding */ easingDefinitionToFunction; }\n/* harmony export */ });\n/* harmony import */ var _errors_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../errors.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _noop_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../noop.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _anticipate_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../anticipate.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs\");\n/* harmony import */ var _back_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../back.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs\");\n/* harmony import */ var _circ_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../circ.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs\");\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\");\n/* harmony import */ var _ease_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ease.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/ease.mjs\");\n/* harmony import */ var _is_bezier_definition_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./is-bezier-definition.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst easingLookup = {\r\n linear: _noop_mjs__WEBPACK_IMPORTED_MODULE_0__.noop,\r\n easeIn: _ease_mjs__WEBPACK_IMPORTED_MODULE_1__.easeIn,\r\n easeInOut: _ease_mjs__WEBPACK_IMPORTED_MODULE_1__.easeInOut,\r\n easeOut: _ease_mjs__WEBPACK_IMPORTED_MODULE_1__.easeOut,\r\n circIn: _circ_mjs__WEBPACK_IMPORTED_MODULE_2__.circIn,\r\n circInOut: _circ_mjs__WEBPACK_IMPORTED_MODULE_2__.circInOut,\r\n circOut: _circ_mjs__WEBPACK_IMPORTED_MODULE_2__.circOut,\r\n backIn: _back_mjs__WEBPACK_IMPORTED_MODULE_3__.backIn,\r\n backInOut: _back_mjs__WEBPACK_IMPORTED_MODULE_3__.backInOut,\r\n backOut: _back_mjs__WEBPACK_IMPORTED_MODULE_3__.backOut,\r\n anticipate: _anticipate_mjs__WEBPACK_IMPORTED_MODULE_4__.anticipate,\r\n};\r\nconst isValidEasing = (easing) => {\r\n return typeof easing === \"string\";\r\n};\r\nconst easingDefinitionToFunction = (definition) => {\r\n if ((0,_is_bezier_definition_mjs__WEBPACK_IMPORTED_MODULE_5__.isBezierDefinition)(definition)) {\r\n // If cubic bezier definition, create bezier curve\r\n (0,_errors_mjs__WEBPACK_IMPORTED_MODULE_6__.invariant)(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`, \"cubic-bezier-length\");\r\n const [x1, y1, x2, y2] = definition;\r\n return (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_7__.cubicBezier)(x1, y1, x2, y2);\r\n }\r\n else if (isValidEasing(definition)) {\r\n // Else lookup from table\r\n (0,_errors_mjs__WEBPACK_IMPORTED_MODULE_6__.invariant)(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`, \"invalid-easing-type\");\r\n return easingLookup[definition];\r\n }\r\n return definition;\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvbWFwLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBNkM7QUFDUDtBQUNTO0FBQ1U7QUFDQTtBQUNQO0FBQ087QUFDTztBQUNoRTtBQUNBO0FBQ0EsWUFBWSwyQ0FBSTtBQUNoQixVQUFVO0FBQ1YsYUFBYTtBQUNiLFdBQVc7QUFDWCxVQUFVO0FBQ1YsYUFBYTtBQUNiLFdBQVc7QUFDWCxVQUFVO0FBQ1YsYUFBYTtBQUNiLFdBQVc7QUFDWCxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsNkVBQWtCO0FBQzFCO0FBQ0EsUUFBUSxzREFBUztBQUNqQjtBQUNBLGVBQWUsOERBQVc7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsUUFBUSxzREFBUyxpRUFBaUUsV0FBVztBQUM3RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3NDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvbWFwLm1qcz9hZjhkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludmFyaWFudCB9IGZyb20gJy4uLy4uL2Vycm9ycy5tanMnO1xyXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vbm9vcC5tanMnO1xyXG5pbXBvcnQgeyBhbnRpY2lwYXRlIH0gZnJvbSAnLi4vYW50aWNpcGF0ZS5tanMnO1xyXG5pbXBvcnQgeyBiYWNrSW4sIGJhY2tJbk91dCwgYmFja091dCB9IGZyb20gJy4uL2JhY2subWpzJztcclxuaW1wb3J0IHsgY2lyY0luLCBjaXJjSW5PdXQsIGNpcmNPdXQgfSBmcm9tICcuLi9jaXJjLm1qcyc7XHJcbmltcG9ydCB7IGN1YmljQmV6aWVyIH0gZnJvbSAnLi4vY3ViaWMtYmV6aWVyLm1qcyc7XHJcbmltcG9ydCB7IGVhc2VJbiwgZWFzZUluT3V0LCBlYXNlT3V0IH0gZnJvbSAnLi4vZWFzZS5tanMnO1xyXG5pbXBvcnQgeyBpc0JlemllckRlZmluaXRpb24gfSBmcm9tICcuL2lzLWJlemllci1kZWZpbml0aW9uLm1qcyc7XHJcblxyXG5jb25zdCBlYXNpbmdMb29rdXAgPSB7XHJcbiAgICBsaW5lYXI6IG5vb3AsXHJcbiAgICBlYXNlSW4sXHJcbiAgICBlYXNlSW5PdXQsXHJcbiAgICBlYXNlT3V0LFxyXG4gICAgY2lyY0luLFxyXG4gICAgY2lyY0luT3V0LFxyXG4gICAgY2lyY091dCxcclxuICAgIGJhY2tJbixcclxuICAgIGJhY2tJbk91dCxcclxuICAgIGJhY2tPdXQsXHJcbiAgICBhbnRpY2lwYXRlLFxyXG59O1xyXG5jb25zdCBpc1ZhbGlkRWFzaW5nID0gKGVhc2luZykgPT4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiBlYXNpbmcgPT09IFwic3RyaW5nXCI7XHJcbn07XHJcbmNvbnN0IGVhc2luZ0RlZmluaXRpb25Ub0Z1bmN0aW9uID0gKGRlZmluaXRpb24pID0+IHtcclxuICAgIGlmIChpc0JlemllckRlZmluaXRpb24oZGVmaW5pdGlvbikpIHtcclxuICAgICAgICAvLyBJZiBjdWJpYyBiZXppZXIgZGVmaW5pdGlvbiwgY3JlYXRlIGJlemllciBjdXJ2ZVxyXG4gICAgICAgIGludmFyaWFudChkZWZpbml0aW9uLmxlbmd0aCA9PT0gNCwgYEN1YmljIGJlemllciBhcnJheXMgbXVzdCBjb250YWluIGZvdXIgbnVtZXJpY2FsIHZhbHVlcy5gLCBcImN1YmljLWJlemllci1sZW5ndGhcIik7XHJcbiAgICAgICAgY29uc3QgW3gxLCB5MSwgeDIsIHkyXSA9IGRlZmluaXRpb247XHJcbiAgICAgICAgcmV0dXJuIGN1YmljQmV6aWVyKHgxLCB5MSwgeDIsIHkyKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzVmFsaWRFYXNpbmcoZGVmaW5pdGlvbikpIHtcclxuICAgICAgICAvLyBFbHNlIGxvb2t1cCBmcm9tIHRhYmxlXHJcbiAgICAgICAgaW52YXJpYW50KGVhc2luZ0xvb2t1cFtkZWZpbml0aW9uXSAhPT0gdW5kZWZpbmVkLCBgSW52YWxpZCBlYXNpbmcgdHlwZSAnJHtkZWZpbml0aW9ufSdgLCBcImludmFsaWQtZWFzaW5nLXR5cGVcIik7XHJcbiAgICAgICAgcmV0dXJuIGVhc2luZ0xvb2t1cFtkZWZpbml0aW9uXTtcclxuICAgIH1cclxuICAgIHJldHVybiBkZWZpbml0aW9uO1xyXG59O1xyXG5cclxuZXhwb3J0IHsgZWFzaW5nRGVmaW5pdGlvblRvRnVuY3Rpb24gfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/map.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs":
|
||
/*!******************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/errors.mjs ***!
|
||
\******************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ invariant: function() { return /* binding */ invariant; },\n/* harmony export */ warning: function() { return /* binding */ warning; }\n/* harmony export */ });\n/* harmony import */ var _format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./format-error-message.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/format-error-message.mjs\");\n\r\n\r\nlet warning = () => { };\r\nlet invariant = () => { };\r\nif (true) {\r\n warning = (check, message, errorCode) => {\r\n if (!check && typeof console !== \"undefined\") {\r\n console.warn((0,_format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__.formatErrorMessage)(message, errorCode));\r\n }\r\n };\r\n invariant = (check, message, errorCode) => {\r\n if (!check) {\r\n throw new Error((0,_format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__.formatErrorMessage)(message, errorCode));\r\n }\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lcnJvcnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFnRTtBQUNoRTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7QUFDQSx5QkFBeUIsNkVBQWtCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLDZFQUFrQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUM4QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZXJyb3JzLm1qcz9lYzg2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4vZm9ybWF0LWVycm9yLW1lc3NhZ2UubWpzJztcclxuXHJcbmxldCB3YXJuaW5nID0gKCkgPT4geyB9O1xyXG5sZXQgaW52YXJpYW50ID0gKCkgPT4geyB9O1xyXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XHJcbiAgICB3YXJuaW5nID0gKGNoZWNrLCBtZXNzYWdlLCBlcnJvckNvZGUpID0+IHtcclxuICAgICAgICBpZiAoIWNoZWNrICYmIHR5cGVvZiBjb25zb2xlICE9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybihmb3JtYXRFcnJvck1lc3NhZ2UobWVzc2FnZSwgZXJyb3JDb2RlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGludmFyaWFudCA9IChjaGVjaywgbWVzc2FnZSwgZXJyb3JDb2RlKSA9PiB7XHJcbiAgICAgICAgaWYgKCFjaGVjaykge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZm9ybWF0RXJyb3JNZXNzYWdlKG1lc3NhZ2UsIGVycm9yQ29kZSkpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCB7IGludmFyaWFudCwgd2FybmluZyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/format-error-message.mjs":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/format-error-message.mjs ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatErrorMessage: function() { return /* binding */ formatErrorMessage; }\n/* harmony export */ });\nfunction formatErrorMessage(message, errorCode) {\r\n return errorCode\r\n ? `${message}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${errorCode}`\r\n : message;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9mb3JtYXQtZXJyb3ItbWVzc2FnZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQSxhQUFhLFFBQVEseUZBQXlGLFVBQVU7QUFDeEg7QUFDQTtBQUNBO0FBQzhCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9mb3JtYXQtZXJyb3ItbWVzc2FnZS5tanM/YzdiZSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBmb3JtYXRFcnJvck1lc3NhZ2UobWVzc2FnZSwgZXJyb3JDb2RlKSB7XHJcbiAgICByZXR1cm4gZXJyb3JDb2RlXHJcbiAgICAgICAgPyBgJHttZXNzYWdlfS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIHN0ZXBzIGZvciBzb2x2aW5nLCB2aXNpdCBodHRwczovL21vdGlvbi5kZXYvdHJvdWJsZXNob290aW5nLyR7ZXJyb3JDb2RlfWBcclxuICAgICAgICA6IG1lc3NhZ2U7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/format-error-message.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/global-config.mjs ***!
|
||
\*************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MotionGlobalConfig: function() { return /* binding */ MotionGlobalConfig; }\n/* harmony export */ });\nconst MotionGlobalConfig = {};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9nbG9iYWwtY29uZmlnLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUM4QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZ2xvYmFsLWNvbmZpZy5tanM/YjFhMiJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBNb3Rpb25HbG9iYWxDb25maWcgPSB7fTtcclxuXHJcbmV4cG9ydCB7IE1vdGlvbkdsb2JhbENvbmZpZyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/is-numerical-string.mjs ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNumericalString: function() { return /* binding */ isNumericalString; }\n/* harmony export */ });\n/**\r\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\r\n */\r\nconst isNumericalString = (v) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(v);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9pcy1udW1lcmljYWwtc3RyaW5nLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUM2QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvaXMtbnVtZXJpY2FsLXN0cmluZy5tanM/Y2NiYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ2hlY2sgaWYgdmFsdWUgaXMgYSBudW1lcmljYWwgc3RyaW5nLCBpZSBhIHN0cmluZyB0aGF0IGlzIHB1cmVseSBhIG51bWJlciBlZyBcIjEwMFwiIG9yIFwiLTEwMC4xXCJcclxuICovXHJcbmNvbnN0IGlzTnVtZXJpY2FsU3RyaW5nID0gKHYpID0+IC9eLT8oPzpcXGQrKD86XFwuXFxkKyk/fFxcLlxcZCspJC91LnRlc3Qodik7XHJcblxyXG5leHBvcnQgeyBpc051bWVyaWNhbFN0cmluZyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/is-object.mjs":
|
||
/*!*********************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/is-object.mjs ***!
|
||
\*********************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isObject: function() { return /* binding */ isObject; }\n/* harmony export */ });\nfunction isObject(value) {\r\n return typeof value === \"object\" && value !== null;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9pcy1vYmplY3QubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvaXMtb2JqZWN0Lm1qcz9lMzYyIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgeyBpc09iamVjdCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/is-object.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/is-zero-value-string.mjs ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isZeroValueString: function() { return /* binding */ isZeroValueString; }\n/* harmony export */ });\n/**\r\n * Check if the value is a zero value string like \"0px\" or \"0%\"\r\n */\r\nconst isZeroValueString = (v) => /^0[^.\\s]+$/u.test(v);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9pcy16ZXJvLXZhbHVlLXN0cmluZy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDNkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2lzLXplcm8tdmFsdWUtc3RyaW5nLm1qcz80ODg5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSB6ZXJvIHZhbHVlIHN0cmluZyBsaWtlIFwiMHB4XCIgb3IgXCIwJVwiXHJcbiAqL1xyXG5jb25zdCBpc1plcm9WYWx1ZVN0cmluZyA9ICh2KSA9PiAvXjBbXi5cXHNdKyQvdS50ZXN0KHYpO1xyXG5cclxuZXhwb3J0IHsgaXNaZXJvVmFsdWVTdHJpbmcgfTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/memo.mjs":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/memo.mjs ***!
|
||
\****************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ memo: function() { return /* binding */ memo; }\n/* harmony export */ });\n/*#__NO_SIDE_EFFECTS__*/\r\nfunction memo(callback) {\r\n let result;\r\n return () => {\r\n if (result === undefined)\r\n result = callback();\r\n return result;\r\n };\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9tZW1vLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZ0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL21lbW8ubWpzPzhkZTEiXSwic291cmNlc0NvbnRlbnQiOlsiLyojX19OT19TSURFX0VGRkVDVFNfXyovXHJcbmZ1bmN0aW9uIG1lbW8oY2FsbGJhY2spIHtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgcmVzdWx0ID0gY2FsbGJhY2soKTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IHsgbWVtbyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/memo.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/noop.mjs ***!
|
||
\****************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ noop: function() { return /* binding */ noop; }\n/* harmony export */ });\n/*#__NO_SIDE_EFFECTS__*/\r\nconst noop = (any) => any;\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9ub29wLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ2dCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9ub29wLm1qcz84MzdkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qI19fTk9fU0lERV9FRkZFQ1RTX18qL1xyXG5jb25zdCBub29wID0gKGFueSkgPT4gYW55O1xyXG5cclxuZXhwb3J0IHsgbm9vcCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/pipe.mjs ***!
|
||
\****************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ pipe: function() { return /* binding */ pipe; }\n/* harmony export */ });\n/**\r\n * Pipe\r\n * Compose other transformers to run linearily\r\n * pipe(min(20), max(40))\r\n * @param {...functions} transformers\r\n * @return {function}\r\n */\r\nconst combineFunctions = (a, b) => (v) => b(a(v));\r\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9waXBlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGNBQWM7QUFDMUIsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ2dCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9waXBlLm1qcz8wYzYyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBQaXBlXHJcbiAqIENvbXBvc2Ugb3RoZXIgdHJhbnNmb3JtZXJzIHRvIHJ1biBsaW5lYXJpbHlcclxuICogcGlwZShtaW4oMjApLCBtYXgoNDApKVxyXG4gKiBAcGFyYW0gIHsuLi5mdW5jdGlvbnN9IHRyYW5zZm9ybWVyc1xyXG4gKiBAcmV0dXJuIHtmdW5jdGlvbn1cclxuICovXHJcbmNvbnN0IGNvbWJpbmVGdW5jdGlvbnMgPSAoYSwgYikgPT4gKHYpID0+IGIoYSh2KSk7XHJcbmNvbnN0IHBpcGUgPSAoLi4udHJhbnNmb3JtZXJzKSA9PiB0cmFuc2Zvcm1lcnMucmVkdWNlKGNvbWJpbmVGdW5jdGlvbnMpO1xyXG5cclxuZXhwb3J0IHsgcGlwZSB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/progress.mjs ***!
|
||
\********************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ progress: function() { return /* binding */ progress; }\n/* harmony export */ });\n/*\r\n Progress within given range\r\n\r\n Given a lower limit and an upper limit, we return the progress\r\n (expressed as a number 0-1) represented by the given value, and\r\n limit that progress to within 0-1.\r\n\r\n @param [number]: Lower limit\r\n @param [number]: Upper limit\r\n @param [number]: Value to find progress within given range\r\n @return [number]: Progress of value within range as expressed 0-1\r\n*/\r\n/*#__NO_SIDE_EFFECTS__*/\r\nconst progress = (from, to, value) => {\r\n const toFromDifference = to - from;\r\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\r\n};\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9wcm9ncmVzcy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvcHJvZ3Jlc3MubWpzP2IzNDAiXSwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICBQcm9ncmVzcyB3aXRoaW4gZ2l2ZW4gcmFuZ2VcclxuXHJcbiAgR2l2ZW4gYSBsb3dlciBsaW1pdCBhbmQgYW4gdXBwZXIgbGltaXQsIHdlIHJldHVybiB0aGUgcHJvZ3Jlc3NcclxuICAoZXhwcmVzc2VkIGFzIGEgbnVtYmVyIDAtMSkgcmVwcmVzZW50ZWQgYnkgdGhlIGdpdmVuIHZhbHVlLCBhbmRcclxuICBsaW1pdCB0aGF0IHByb2dyZXNzIHRvIHdpdGhpbiAwLTEuXHJcblxyXG4gIEBwYXJhbSBbbnVtYmVyXTogTG93ZXIgbGltaXRcclxuICBAcGFyYW0gW251bWJlcl06IFVwcGVyIGxpbWl0XHJcbiAgQHBhcmFtIFtudW1iZXJdOiBWYWx1ZSB0byBmaW5kIHByb2dyZXNzIHdpdGhpbiBnaXZlbiByYW5nZVxyXG4gIEByZXR1cm4gW251bWJlcl06IFByb2dyZXNzIG9mIHZhbHVlIHdpdGhpbiByYW5nZSBhcyBleHByZXNzZWQgMC0xXHJcbiovXHJcbi8qI19fTk9fU0lERV9FRkZFQ1RTX18qL1xyXG5jb25zdCBwcm9ncmVzcyA9IChmcm9tLCB0bywgdmFsdWUpID0+IHtcclxuICAgIGNvbnN0IHRvRnJvbURpZmZlcmVuY2UgPSB0byAtIGZyb207XHJcbiAgICByZXR1cm4gdG9Gcm9tRGlmZmVyZW5jZSA9PT0gMCA/IDEgOiAodmFsdWUgLSBmcm9tKSAvIHRvRnJvbURpZmZlcmVuY2U7XHJcbn07XHJcblxyXG5leHBvcnQgeyBwcm9ncmVzcyB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/subscription-manager.mjs ***!
|
||
\********************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SubscriptionManager: function() { return /* binding */ SubscriptionManager; }\n/* harmony export */ });\n/* harmony import */ var _array_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs\");\n\r\n\r\nclass SubscriptionManager {\r\n constructor() {\r\n this.subscriptions = [];\r\n }\r\n add(handler) {\r\n (0,_array_mjs__WEBPACK_IMPORTED_MODULE_0__.addUniqueItem)(this.subscriptions, handler);\r\n return () => (0,_array_mjs__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.subscriptions, handler);\r\n }\r\n notify(a, b, c) {\r\n const numSubscriptions = this.subscriptions.length;\r\n if (!numSubscriptions)\r\n return;\r\n if (numSubscriptions === 1) {\r\n /**\r\n * If there's only a single handler we can just call it without invoking a loop.\r\n */\r\n this.subscriptions[0](a, b, c);\r\n }\r\n else {\r\n for (let i = 0; i < numSubscriptions; i++) {\r\n /**\r\n * Check whether the handler exists before firing as it's possible\r\n * the subscriptions were modified during this loop running.\r\n */\r\n const handler = this.subscriptions[i];\r\n handler && handler(a, b, c);\r\n }\r\n }\r\n }\r\n getSize() {\r\n return this.subscriptions.length;\r\n }\r\n clear() {\r\n this.subscriptions.length = 0;\r\n }\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9zdWJzY3JpcHRpb24tbWFuYWdlci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBd0Q7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSx5REFBYTtBQUNyQixxQkFBcUIsc0RBQVU7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHNCQUFzQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQytCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9zdWJzY3JpcHRpb24tbWFuYWdlci5tanM/YzMxOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRVbmlxdWVJdGVtLCByZW1vdmVJdGVtIH0gZnJvbSAnLi9hcnJheS5tanMnO1xyXG5cclxuY2xhc3MgU3Vic2NyaXB0aW9uTWFuYWdlciB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcclxuICAgIH1cclxuICAgIGFkZChoYW5kbGVyKSB7XHJcbiAgICAgICAgYWRkVW5pcXVlSXRlbSh0aGlzLnN1YnNjcmlwdGlvbnMsIGhhbmRsZXIpO1xyXG4gICAgICAgIHJldHVybiAoKSA9PiByZW1vdmVJdGVtKHRoaXMuc3Vic2NyaXB0aW9ucywgaGFuZGxlcik7XHJcbiAgICB9XHJcbiAgICBub3RpZnkoYSwgYiwgYykge1xyXG4gICAgICAgIGNvbnN0IG51bVN1YnNjcmlwdGlvbnMgPSB0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoO1xyXG4gICAgICAgIGlmICghbnVtU3Vic2NyaXB0aW9ucylcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGlmIChudW1TdWJzY3JpcHRpb25zID09PSAxKSB7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJZiB0aGVyZSdzIG9ubHkgYSBzaW5nbGUgaGFuZGxlciB3ZSBjYW4ganVzdCBjYWxsIGl0IHdpdGhvdXQgaW52b2tpbmcgYSBsb29wLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zWzBdKGEsIGIsIGMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1TdWJzY3JpcHRpb25zOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICogQ2hlY2sgd2hldGhlciB0aGUgaGFuZGxlciBleGlzdHMgYmVmb3JlIGZpcmluZyBhcyBpdCdzIHBvc3NpYmxlXHJcbiAgICAgICAgICAgICAgICAgKiB0aGUgc3Vic2NyaXB0aW9ucyB3ZXJlIG1vZGlmaWVkIGR1cmluZyB0aGlzIGxvb3AgcnVubmluZy5cclxuICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuc3Vic2NyaXB0aW9uc1tpXTtcclxuICAgICAgICAgICAgICAgIGhhbmRsZXIgJiYgaGFuZGxlcihhLCBiLCBjKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGdldFNpemUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBjbGVhcigpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoID0gMDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHsgU3Vic2NyaXB0aW9uTWFuYWdlciB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/time-conversion.mjs ***!
|
||
\***************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ millisecondsToSeconds: function() { return /* binding */ millisecondsToSeconds; },\n/* harmony export */ secondsToMilliseconds: function() { return /* binding */ secondsToMilliseconds; }\n/* harmony export */ });\n/**\r\n * Converts seconds to milliseconds\r\n *\r\n * @param seconds - Time in seconds.\r\n * @return milliseconds - Converted time in milliseconds.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\r\n/*#__NO_SIDE_EFFECTS__*/\r\nconst millisecondsToSeconds = (milliseconds) => milliseconds / 1000;\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy90aW1lLWNvbnZlcnNpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUN3RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvdGltZS1jb252ZXJzaW9uLm1qcz82Yjg4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDb252ZXJ0cyBzZWNvbmRzIHRvIG1pbGxpc2Vjb25kc1xyXG4gKlxyXG4gKiBAcGFyYW0gc2Vjb25kcyAtIFRpbWUgaW4gc2Vjb25kcy5cclxuICogQHJldHVybiBtaWxsaXNlY29uZHMgLSBDb252ZXJ0ZWQgdGltZSBpbiBtaWxsaXNlY29uZHMuXHJcbiAqL1xyXG4vKiNfX05PX1NJREVfRUZGRUNUU19fKi9cclxuY29uc3Qgc2Vjb25kc1RvTWlsbGlzZWNvbmRzID0gKHNlY29uZHMpID0+IHNlY29uZHMgKiAxMDAwO1xyXG4vKiNfX05PX1NJREVfRUZGRUNUU19fKi9cclxuY29uc3QgbWlsbGlzZWNvbmRzVG9TZWNvbmRzID0gKG1pbGxpc2Vjb25kcykgPT4gbWlsbGlzZWNvbmRzIC8gMTAwMDtcclxuXHJcbmV4cG9ydCB7IG1pbGxpc2Vjb25kc1RvU2Vjb25kcywgc2Vjb25kc1RvTWlsbGlzZWNvbmRzIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/velocity-per-second.mjs ***!
|
||
\*******************************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ velocityPerSecond: function() { return /* binding */ velocityPerSecond; }\n/* harmony export */ });\n/*\r\n Convert velocity into velocity per second\r\n\r\n @param [number]: Unit per frame\r\n @param [number]: Frame duration in ms\r\n*/\r\nfunction velocityPerSecond(velocity, frameDuration) {\r\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy92ZWxvY2l0eS1wZXItc2Vjb25kLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDNkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL3ZlbG9jaXR5LXBlci1zZWNvbmQubWpzP2E5YjEiXSwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICBDb252ZXJ0IHZlbG9jaXR5IGludG8gdmVsb2NpdHkgcGVyIHNlY29uZFxyXG5cclxuICBAcGFyYW0gW251bWJlcl06IFVuaXQgcGVyIGZyYW1lXHJcbiAgQHBhcmFtIFtudW1iZXJdOiBGcmFtZSBkdXJhdGlvbiBpbiBtc1xyXG4qL1xyXG5mdW5jdGlvbiB2ZWxvY2l0eVBlclNlY29uZCh2ZWxvY2l0eSwgZnJhbWVEdXJhdGlvbikge1xyXG4gICAgcmV0dXJuIGZyYW1lRHVyYXRpb24gPyB2ZWxvY2l0eSAqICgxMDAwIC8gZnJhbWVEdXJhdGlvbikgOiAwO1xyXG59XHJcblxyXG5leHBvcnQgeyB2ZWxvY2l0eVBlclNlY29uZCB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs":
|
||
/*!*********************************************************!*\
|
||
!*** ./node_modules/motion-utils/dist/es/warn-once.mjs ***!
|
||
\*********************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasWarned: function() { return /* binding */ hasWarned; },\n/* harmony export */ warnOnce: function() { return /* binding */ warnOnce; }\n/* harmony export */ });\n/* harmony import */ var _format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./format-error-message.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/format-error-message.mjs\");\n\r\n\r\nconst warned = new Set();\r\nfunction hasWarned(message) {\r\n return warned.has(message);\r\n}\r\nfunction warnOnce(condition, message, errorCode) {\r\n if (condition || warned.has(message))\r\n return;\r\n console.warn((0,_format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__.formatErrorMessage)(message, errorCode));\r\n warned.add(message);\r\n}\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy93YXJuLW9uY2UubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFnRTtBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLDZFQUFrQjtBQUNuQztBQUNBO0FBQ0E7QUFDK0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL3dhcm4tb25jZS5tanM/YTk5MCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuL2Zvcm1hdC1lcnJvci1tZXNzYWdlLm1qcyc7XHJcblxyXG5jb25zdCB3YXJuZWQgPSBuZXcgU2V0KCk7XHJcbmZ1bmN0aW9uIGhhc1dhcm5lZChtZXNzYWdlKSB7XHJcbiAgICByZXR1cm4gd2FybmVkLmhhcyhtZXNzYWdlKTtcclxufVxyXG5mdW5jdGlvbiB3YXJuT25jZShjb25kaXRpb24sIG1lc3NhZ2UsIGVycm9yQ29kZSkge1xyXG4gICAgaWYgKGNvbmRpdGlvbiB8fCB3YXJuZWQuaGFzKG1lc3NhZ2UpKVxyXG4gICAgICAgIHJldHVybjtcclxuICAgIGNvbnNvbGUud2Fybihmb3JtYXRFcnJvck1lc3NhZ2UobWVzc2FnZSwgZXJyb3JDb2RlKSk7XHJcbiAgICB3YXJuZWQuYWRkKG1lc3NhZ2UpO1xyXG59XHJcblxyXG5leHBvcnQgeyBoYXNXYXJuZWQsIHdhcm5PbmNlIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/tailwind-merge/dist/bundle-mjs.mjs":
|
||
/*!*********************************************************!*\
|
||
!*** ./node_modules/tailwind-merge/dist/bundle-mjs.mjs ***!
|
||
\*********************************************************/
|
||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createTailwindMerge: function() { return /* binding */ createTailwindMerge; },\n/* harmony export */ extendTailwindMerge: function() { return /* binding */ extendTailwindMerge; },\n/* harmony export */ fromTheme: function() { return /* binding */ fromTheme; },\n/* harmony export */ getDefaultConfig: function() { return /* binding */ getDefaultConfig; },\n/* harmony export */ mergeConfigs: function() { return /* binding */ mergeConfigs; },\n/* harmony export */ twJoin: function() { return /* binding */ twJoin; },\n/* harmony export */ twMerge: function() { return /* binding */ twMerge; },\n/* harmony export */ validators: function() { return /* binding */ validators; }\n/* harmony export */ });\nconst CLASS_PART_SEPARATOR = '-';\r\nconst createClassGroupUtils = config => {\r\n const classMap = createClassMap(config);\r\n const {\r\n conflictingClassGroups,\r\n conflictingClassGroupModifiers\r\n } = config;\r\n const getClassGroupId = className => {\r\n const classParts = className.split(CLASS_PART_SEPARATOR);\r\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\r\n if (classParts[0] === '' && classParts.length !== 1) {\r\n classParts.shift();\r\n }\r\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\r\n };\r\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\r\n const conflicts = conflictingClassGroups[classGroupId] || [];\r\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\r\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\r\n }\r\n return conflicts;\r\n };\r\n return {\r\n getClassGroupId,\r\n getConflictingClassGroupIds\r\n };\r\n};\r\nconst getGroupRecursive = (classParts, classPartObject) => {\r\n if (classParts.length === 0) {\r\n return classPartObject.classGroupId;\r\n }\r\n const currentClassPart = classParts[0];\r\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\r\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\r\n if (classGroupFromNextClassPart) {\r\n return classGroupFromNextClassPart;\r\n }\r\n if (classPartObject.validators.length === 0) {\r\n return undefined;\r\n }\r\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\r\n return classPartObject.validators.find(({\r\n validator\r\n }) => validator(classRest))?.classGroupId;\r\n};\r\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\r\nconst getGroupIdForArbitraryProperty = className => {\r\n if (arbitraryPropertyRegex.test(className)) {\r\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\r\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\r\n if (property) {\r\n // I use two dots here because one dot is used as prefix for class groups in plugins\r\n return 'arbitrary..' + property;\r\n }\r\n }\r\n};\r\n/**\r\n * Exported for testing only\r\n */\r\nconst createClassMap = config => {\r\n const {\r\n theme,\r\n prefix\r\n } = config;\r\n const classMap = {\r\n nextPart: new Map(),\r\n validators: []\r\n };\r\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\r\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\r\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\r\n });\r\n return classMap;\r\n};\r\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\r\n classGroup.forEach(classDefinition => {\r\n if (typeof classDefinition === 'string') {\r\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\r\n classPartObjectToEdit.classGroupId = classGroupId;\r\n return;\r\n }\r\n if (typeof classDefinition === 'function') {\r\n if (isThemeGetter(classDefinition)) {\r\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\r\n return;\r\n }\r\n classPartObject.validators.push({\r\n validator: classDefinition,\r\n classGroupId\r\n });\r\n return;\r\n }\r\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\r\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\r\n });\r\n });\r\n};\r\nconst getPart = (classPartObject, path) => {\r\n let currentClassPartObject = classPartObject;\r\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\r\n if (!currentClassPartObject.nextPart.has(pathPart)) {\r\n currentClassPartObject.nextPart.set(pathPart, {\r\n nextPart: new Map(),\r\n validators: []\r\n });\r\n }\r\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\r\n });\r\n return currentClassPartObject;\r\n};\r\nconst isThemeGetter = func => func.isThemeGetter;\r\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\r\n if (!prefix) {\r\n return classGroupEntries;\r\n }\r\n return classGroupEntries.map(([classGroupId, classGroup]) => {\r\n const prefixedClassGroup = classGroup.map(classDefinition => {\r\n if (typeof classDefinition === 'string') {\r\n return prefix + classDefinition;\r\n }\r\n if (typeof classDefinition === 'object') {\r\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\r\n }\r\n return classDefinition;\r\n });\r\n return [classGroupId, prefixedClassGroup];\r\n });\r\n};\r\n\r\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\r\nconst createLruCache = maxCacheSize => {\r\n if (maxCacheSize < 1) {\r\n return {\r\n get: () => undefined,\r\n set: () => {}\r\n };\r\n }\r\n let cacheSize = 0;\r\n let cache = new Map();\r\n let previousCache = new Map();\r\n const update = (key, value) => {\r\n cache.set(key, value);\r\n cacheSize++;\r\n if (cacheSize > maxCacheSize) {\r\n cacheSize = 0;\r\n previousCache = cache;\r\n cache = new Map();\r\n }\r\n };\r\n return {\r\n get(key) {\r\n let value = cache.get(key);\r\n if (value !== undefined) {\r\n return value;\r\n }\r\n if ((value = previousCache.get(key)) !== undefined) {\r\n update(key, value);\r\n return value;\r\n }\r\n },\r\n set(key, value) {\r\n if (cache.has(key)) {\r\n cache.set(key, value);\r\n } else {\r\n update(key, value);\r\n }\r\n }\r\n };\r\n};\r\nconst IMPORTANT_MODIFIER = '!';\r\nconst createParseClassName = config => {\r\n const {\r\n separator,\r\n experimentalParseClassName\r\n } = config;\r\n const isSeparatorSingleCharacter = separator.length === 1;\r\n const firstSeparatorCharacter = separator[0];\r\n const separatorLength = separator.length;\r\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\r\n const parseClassName = className => {\r\n const modifiers = [];\r\n let bracketDepth = 0;\r\n let modifierStart = 0;\r\n let postfixModifierPosition;\r\n for (let index = 0; index < className.length; index++) {\r\n let currentCharacter = className[index];\r\n if (bracketDepth === 0) {\r\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\r\n modifiers.push(className.slice(modifierStart, index));\r\n modifierStart = index + separatorLength;\r\n continue;\r\n }\r\n if (currentCharacter === '/') {\r\n postfixModifierPosition = index;\r\n continue;\r\n }\r\n }\r\n if (currentCharacter === '[') {\r\n bracketDepth++;\r\n } else if (currentCharacter === ']') {\r\n bracketDepth--;\r\n }\r\n }\r\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\r\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\r\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\r\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\r\n return {\r\n modifiers,\r\n hasImportantModifier,\r\n baseClassName,\r\n maybePostfixModifierPosition\r\n };\r\n };\r\n if (experimentalParseClassName) {\r\n return className => experimentalParseClassName({\r\n className,\r\n parseClassName\r\n });\r\n }\r\n return parseClassName;\r\n};\r\n/**\r\n * Sorts modifiers according to following schema:\r\n * - Predefined modifiers are sorted alphabetically\r\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\r\n */\r\nconst sortModifiers = modifiers => {\r\n if (modifiers.length <= 1) {\r\n return modifiers;\r\n }\r\n const sortedModifiers = [];\r\n let unsortedModifiers = [];\r\n modifiers.forEach(modifier => {\r\n const isArbitraryVariant = modifier[0] === '[';\r\n if (isArbitraryVariant) {\r\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\r\n unsortedModifiers = [];\r\n } else {\r\n unsortedModifiers.push(modifier);\r\n }\r\n });\r\n sortedModifiers.push(...unsortedModifiers.sort());\r\n return sortedModifiers;\r\n};\r\nconst createConfigUtils = config => ({\r\n cache: createLruCache(config.cacheSize),\r\n parseClassName: createParseClassName(config),\r\n ...createClassGroupUtils(config)\r\n});\r\nconst SPLIT_CLASSES_REGEX = /\\s+/;\r\nconst mergeClassList = (classList, configUtils) => {\r\n const {\r\n parseClassName,\r\n getClassGroupId,\r\n getConflictingClassGroupIds\r\n } = configUtils;\r\n /**\r\n * Set of classGroupIds in following format:\r\n * `{importantModifier}{variantModifiers}{classGroupId}`\r\n * @example 'float'\r\n * @example 'hover:focus:bg-color'\r\n * @example 'md:!pr'\r\n */\r\n const classGroupsInConflict = [];\r\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\r\n let result = '';\r\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\r\n const originalClassName = classNames[index];\r\n const {\r\n modifiers,\r\n hasImportantModifier,\r\n baseClassName,\r\n maybePostfixModifierPosition\r\n } = parseClassName(originalClassName);\r\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\r\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\r\n if (!classGroupId) {\r\n if (!hasPostfixModifier) {\r\n // Not a Tailwind class\r\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\r\n continue;\r\n }\r\n classGroupId = getClassGroupId(baseClassName);\r\n if (!classGroupId) {\r\n // Not a Tailwind class\r\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\r\n continue;\r\n }\r\n hasPostfixModifier = false;\r\n }\r\n const variantModifier = sortModifiers(modifiers).join(':');\r\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\r\n const classId = modifierId + classGroupId;\r\n if (classGroupsInConflict.includes(classId)) {\r\n // Tailwind class omitted due to conflict\r\n continue;\r\n }\r\n classGroupsInConflict.push(classId);\r\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\r\n for (let i = 0; i < conflictGroups.length; ++i) {\r\n const group = conflictGroups[i];\r\n classGroupsInConflict.push(modifierId + group);\r\n }\r\n // Tailwind class not in conflict\r\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\r\n }\r\n return result;\r\n};\r\n\r\n/**\r\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\r\n *\r\n * Specifically:\r\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\r\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\r\n *\r\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\r\n */\r\nfunction twJoin() {\r\n let index = 0;\r\n let argument;\r\n let resolvedValue;\r\n let string = '';\r\n while (index < arguments.length) {\r\n if (argument = arguments[index++]) {\r\n if (resolvedValue = toValue(argument)) {\r\n string && (string += ' ');\r\n string += resolvedValue;\r\n }\r\n }\r\n }\r\n return string;\r\n}\r\nconst toValue = mix => {\r\n if (typeof mix === 'string') {\r\n return mix;\r\n }\r\n let resolvedValue;\r\n let string = '';\r\n for (let k = 0; k < mix.length; k++) {\r\n if (mix[k]) {\r\n if (resolvedValue = toValue(mix[k])) {\r\n string && (string += ' ');\r\n string += resolvedValue;\r\n }\r\n }\r\n }\r\n return string;\r\n};\r\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\r\n let configUtils;\r\n let cacheGet;\r\n let cacheSet;\r\n let functionToCall = initTailwindMerge;\r\n function initTailwindMerge(classList) {\r\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\r\n configUtils = createConfigUtils(config);\r\n cacheGet = configUtils.cache.get;\r\n cacheSet = configUtils.cache.set;\r\n functionToCall = tailwindMerge;\r\n return tailwindMerge(classList);\r\n }\r\n function tailwindMerge(classList) {\r\n const cachedResult = cacheGet(classList);\r\n if (cachedResult) {\r\n return cachedResult;\r\n }\r\n const result = mergeClassList(classList, configUtils);\r\n cacheSet(classList, result);\r\n return result;\r\n }\r\n return function callTailwindMerge() {\r\n return functionToCall(twJoin.apply(null, arguments));\r\n };\r\n}\r\nconst fromTheme = key => {\r\n const themeGetter = theme => theme[key] || [];\r\n themeGetter.isThemeGetter = true;\r\n return themeGetter;\r\n};\r\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\r\nconst fractionRegex = /^\\d+\\/\\d+$/;\r\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\r\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\r\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\r\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\r\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\r\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\r\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\r\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\r\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\r\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\r\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\r\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\r\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\r\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\r\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\r\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\r\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\r\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\r\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\r\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\r\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\r\nconst isAny = () => true;\r\nconst getIsArbitraryValue = (value, label, testValue) => {\r\n const result = arbitraryValueRegex.exec(value);\r\n if (result) {\r\n if (result[1]) {\r\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\r\n }\r\n return testValue(result[2]);\r\n }\r\n return false;\r\n};\r\nconst isLengthOnly = value =>\r\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\r\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\r\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\r\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\r\nconst isNever = () => false;\r\nconst isShadow = value => shadowRegex.test(value);\r\nconst isImage = value => imageRegex.test(value);\r\nconst validators = /*#__PURE__*/Object.defineProperty({\r\n __proto__: null,\r\n isAny,\r\n isArbitraryImage,\r\n isArbitraryLength,\r\n isArbitraryNumber,\r\n isArbitraryPosition,\r\n isArbitraryShadow,\r\n isArbitrarySize,\r\n isArbitraryValue,\r\n isInteger,\r\n isLength,\r\n isNumber,\r\n isPercent,\r\n isTshirtSize\r\n}, Symbol.toStringTag, {\r\n value: 'Module'\r\n});\r\nconst getDefaultConfig = () => {\r\n const colors = fromTheme('colors');\r\n const spacing = fromTheme('spacing');\r\n const blur = fromTheme('blur');\r\n const brightness = fromTheme('brightness');\r\n const borderColor = fromTheme('borderColor');\r\n const borderRadius = fromTheme('borderRadius');\r\n const borderSpacing = fromTheme('borderSpacing');\r\n const borderWidth = fromTheme('borderWidth');\r\n const contrast = fromTheme('contrast');\r\n const grayscale = fromTheme('grayscale');\r\n const hueRotate = fromTheme('hueRotate');\r\n const invert = fromTheme('invert');\r\n const gap = fromTheme('gap');\r\n const gradientColorStops = fromTheme('gradientColorStops');\r\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\r\n const inset = fromTheme('inset');\r\n const margin = fromTheme('margin');\r\n const opacity = fromTheme('opacity');\r\n const padding = fromTheme('padding');\r\n const saturate = fromTheme('saturate');\r\n const scale = fromTheme('scale');\r\n const sepia = fromTheme('sepia');\r\n const skew = fromTheme('skew');\r\n const space = fromTheme('space');\r\n const translate = fromTheme('translate');\r\n const getOverscroll = () => ['auto', 'contain', 'none'];\r\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\r\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\r\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\r\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\r\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\r\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\r\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\r\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\r\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\r\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\r\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\r\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\r\n return {\r\n cacheSize: 500,\r\n separator: ':',\r\n theme: {\r\n colors: [isAny],\r\n spacing: [isLength, isArbitraryLength],\r\n blur: ['none', '', isTshirtSize, isArbitraryValue],\r\n brightness: getNumberAndArbitrary(),\r\n borderColor: [colors],\r\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\r\n borderSpacing: getSpacingWithArbitrary(),\r\n borderWidth: getLengthWithEmptyAndArbitrary(),\r\n contrast: getNumberAndArbitrary(),\r\n grayscale: getZeroAndEmpty(),\r\n hueRotate: getNumberAndArbitrary(),\r\n invert: getZeroAndEmpty(),\r\n gap: getSpacingWithArbitrary(),\r\n gradientColorStops: [colors],\r\n gradientColorStopPositions: [isPercent, isArbitraryLength],\r\n inset: getSpacingWithAutoAndArbitrary(),\r\n margin: getSpacingWithAutoAndArbitrary(),\r\n opacity: getNumberAndArbitrary(),\r\n padding: getSpacingWithArbitrary(),\r\n saturate: getNumberAndArbitrary(),\r\n scale: getNumberAndArbitrary(),\r\n sepia: getZeroAndEmpty(),\r\n skew: getNumberAndArbitrary(),\r\n space: getSpacingWithArbitrary(),\r\n translate: getSpacingWithArbitrary()\r\n },\r\n classGroups: {\r\n // Layout\r\n /**\r\n * Aspect Ratio\r\n * @see https://tailwindcss.com/docs/aspect-ratio\r\n */\r\n aspect: [{\r\n aspect: ['auto', 'square', 'video', isArbitraryValue]\r\n }],\r\n /**\r\n * Container\r\n * @see https://tailwindcss.com/docs/container\r\n */\r\n container: ['container'],\r\n /**\r\n * Columns\r\n * @see https://tailwindcss.com/docs/columns\r\n */\r\n columns: [{\r\n columns: [isTshirtSize]\r\n }],\r\n /**\r\n * Break After\r\n * @see https://tailwindcss.com/docs/break-after\r\n */\r\n 'break-after': [{\r\n 'break-after': getBreaks()\r\n }],\r\n /**\r\n * Break Before\r\n * @see https://tailwindcss.com/docs/break-before\r\n */\r\n 'break-before': [{\r\n 'break-before': getBreaks()\r\n }],\r\n /**\r\n * Break Inside\r\n * @see https://tailwindcss.com/docs/break-inside\r\n */\r\n 'break-inside': [{\r\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\r\n }],\r\n /**\r\n * Box Decoration Break\r\n * @see https://tailwindcss.com/docs/box-decoration-break\r\n */\r\n 'box-decoration': [{\r\n 'box-decoration': ['slice', 'clone']\r\n }],\r\n /**\r\n * Box Sizing\r\n * @see https://tailwindcss.com/docs/box-sizing\r\n */\r\n box: [{\r\n box: ['border', 'content']\r\n }],\r\n /**\r\n * Display\r\n * @see https://tailwindcss.com/docs/display\r\n */\r\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\r\n /**\r\n * Floats\r\n * @see https://tailwindcss.com/docs/float\r\n */\r\n float: [{\r\n float: ['right', 'left', 'none', 'start', 'end']\r\n }],\r\n /**\r\n * Clear\r\n * @see https://tailwindcss.com/docs/clear\r\n */\r\n clear: [{\r\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\r\n }],\r\n /**\r\n * Isolation\r\n * @see https://tailwindcss.com/docs/isolation\r\n */\r\n isolation: ['isolate', 'isolation-auto'],\r\n /**\r\n * Object Fit\r\n * @see https://tailwindcss.com/docs/object-fit\r\n */\r\n 'object-fit': [{\r\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\r\n }],\r\n /**\r\n * Object Position\r\n * @see https://tailwindcss.com/docs/object-position\r\n */\r\n 'object-position': [{\r\n object: [...getPositions(), isArbitraryValue]\r\n }],\r\n /**\r\n * Overflow\r\n * @see https://tailwindcss.com/docs/overflow\r\n */\r\n overflow: [{\r\n overflow: getOverflow()\r\n }],\r\n /**\r\n * Overflow X\r\n * @see https://tailwindcss.com/docs/overflow\r\n */\r\n 'overflow-x': [{\r\n 'overflow-x': getOverflow()\r\n }],\r\n /**\r\n * Overflow Y\r\n * @see https://tailwindcss.com/docs/overflow\r\n */\r\n 'overflow-y': [{\r\n 'overflow-y': getOverflow()\r\n }],\r\n /**\r\n * Overscroll Behavior\r\n * @see https://tailwindcss.com/docs/overscroll-behavior\r\n */\r\n overscroll: [{\r\n overscroll: getOverscroll()\r\n }],\r\n /**\r\n * Overscroll Behavior X\r\n * @see https://tailwindcss.com/docs/overscroll-behavior\r\n */\r\n 'overscroll-x': [{\r\n 'overscroll-x': getOverscroll()\r\n }],\r\n /**\r\n * Overscroll Behavior Y\r\n * @see https://tailwindcss.com/docs/overscroll-behavior\r\n */\r\n 'overscroll-y': [{\r\n 'overscroll-y': getOverscroll()\r\n }],\r\n /**\r\n * Position\r\n * @see https://tailwindcss.com/docs/position\r\n */\r\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\r\n /**\r\n * Top / Right / Bottom / Left\r\n * @see https://tailwindcss.com/docs/top-right-bottom-left\r\n */\r\n inset: [{\r\n inset: [inset]\r\n }],\r\n /**\r\n * Right / Left\r\n * @see https://tailwindcss.com/docs/top-right-bottom-left\r\n */\r\n 'inset-x': [{\r\n 'inset-x': [inset]\r\n }],\r\n /**\r\n * Top / Bottom\r\n * @see https://tailwindcss.com/docs/top-right-bottom-left\r\n */\r\n 'inset-y': [{\r\n 'inset-y': [inset]\r\n }],\r\n /**\r\n * Start\r\n * @see https://tailwindcss.com/docs/top-right-bottom-left\r\n */\r\n start: [{\r\n start: [inset]\r\n }],\r\n /**\r\n * End\r\n * @see https://tailwindcss.com/docs/top-right-bottom-left\r\n */\r\n end: [{\r\n end: [inset]\r\n }],\r\n /**\r\n * Top\r\n * @see https://tailwindcss.com/docs/top-right-bottom-left\r\n */\r\n top: [{\r\n top: [inset]\r\n }],\r\n /**\r\n * Right\r\n * @see https://tailwindcss.com/docs/top-right-bottom-left\r\n */\r\n right: [{\r\n right: [inset]\r\n }],\r\n /**\r\n * Bottom\r\n * @see https://tailwindcss.com/docs/top-right-bottom-left\r\n */\r\n bottom: [{\r\n bottom: [inset]\r\n }],\r\n /**\r\n * Left\r\n * @see https://tailwindcss.com/docs/top-right-bottom-left\r\n */\r\n left: [{\r\n left: [inset]\r\n }],\r\n /**\r\n * Visibility\r\n * @see https://tailwindcss.com/docs/visibility\r\n */\r\n visibility: ['visible', 'invisible', 'collapse'],\r\n /**\r\n * Z-Index\r\n * @see https://tailwindcss.com/docs/z-index\r\n */\r\n z: [{\r\n z: ['auto', isInteger, isArbitraryValue]\r\n }],\r\n // Flexbox and Grid\r\n /**\r\n * Flex Basis\r\n * @see https://tailwindcss.com/docs/flex-basis\r\n */\r\n basis: [{\r\n basis: getSpacingWithAutoAndArbitrary()\r\n }],\r\n /**\r\n * Flex Direction\r\n * @see https://tailwindcss.com/docs/flex-direction\r\n */\r\n 'flex-direction': [{\r\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\r\n }],\r\n /**\r\n * Flex Wrap\r\n * @see https://tailwindcss.com/docs/flex-wrap\r\n */\r\n 'flex-wrap': [{\r\n flex: ['wrap', 'wrap-reverse', 'nowrap']\r\n }],\r\n /**\r\n * Flex\r\n * @see https://tailwindcss.com/docs/flex\r\n */\r\n flex: [{\r\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\r\n }],\r\n /**\r\n * Flex Grow\r\n * @see https://tailwindcss.com/docs/flex-grow\r\n */\r\n grow: [{\r\n grow: getZeroAndEmpty()\r\n }],\r\n /**\r\n * Flex Shrink\r\n * @see https://tailwindcss.com/docs/flex-shrink\r\n */\r\n shrink: [{\r\n shrink: getZeroAndEmpty()\r\n }],\r\n /**\r\n * Order\r\n * @see https://tailwindcss.com/docs/order\r\n */\r\n order: [{\r\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\r\n }],\r\n /**\r\n * Grid Template Columns\r\n * @see https://tailwindcss.com/docs/grid-template-columns\r\n */\r\n 'grid-cols': [{\r\n 'grid-cols': [isAny]\r\n }],\r\n /**\r\n * Grid Column Start / End\r\n * @see https://tailwindcss.com/docs/grid-column\r\n */\r\n 'col-start-end': [{\r\n col: ['auto', {\r\n span: ['full', isInteger, isArbitraryValue]\r\n }, isArbitraryValue]\r\n }],\r\n /**\r\n * Grid Column Start\r\n * @see https://tailwindcss.com/docs/grid-column\r\n */\r\n 'col-start': [{\r\n 'col-start': getNumberWithAutoAndArbitrary()\r\n }],\r\n /**\r\n * Grid Column End\r\n * @see https://tailwindcss.com/docs/grid-column\r\n */\r\n 'col-end': [{\r\n 'col-end': getNumberWithAutoAndArbitrary()\r\n }],\r\n /**\r\n * Grid Template Rows\r\n * @see https://tailwindcss.com/docs/grid-template-rows\r\n */\r\n 'grid-rows': [{\r\n 'grid-rows': [isAny]\r\n }],\r\n /**\r\n * Grid Row Start / End\r\n * @see https://tailwindcss.com/docs/grid-row\r\n */\r\n 'row-start-end': [{\r\n row: ['auto', {\r\n span: [isInteger, isArbitraryValue]\r\n }, isArbitraryValue]\r\n }],\r\n /**\r\n * Grid Row Start\r\n * @see https://tailwindcss.com/docs/grid-row\r\n */\r\n 'row-start': [{\r\n 'row-start': getNumberWithAutoAndArbitrary()\r\n }],\r\n /**\r\n * Grid Row End\r\n * @see https://tailwindcss.com/docs/grid-row\r\n */\r\n 'row-end': [{\r\n 'row-end': getNumberWithAutoAndArbitrary()\r\n }],\r\n /**\r\n * Grid Auto Flow\r\n * @see https://tailwindcss.com/docs/grid-auto-flow\r\n */\r\n 'grid-flow': [{\r\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\r\n }],\r\n /**\r\n * Grid Auto Columns\r\n * @see https://tailwindcss.com/docs/grid-auto-columns\r\n */\r\n 'auto-cols': [{\r\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\r\n }],\r\n /**\r\n * Grid Auto Rows\r\n * @see https://tailwindcss.com/docs/grid-auto-rows\r\n */\r\n 'auto-rows': [{\r\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\r\n }],\r\n /**\r\n * Gap\r\n * @see https://tailwindcss.com/docs/gap\r\n */\r\n gap: [{\r\n gap: [gap]\r\n }],\r\n /**\r\n * Gap X\r\n * @see https://tailwindcss.com/docs/gap\r\n */\r\n 'gap-x': [{\r\n 'gap-x': [gap]\r\n }],\r\n /**\r\n * Gap Y\r\n * @see https://tailwindcss.com/docs/gap\r\n */\r\n 'gap-y': [{\r\n 'gap-y': [gap]\r\n }],\r\n /**\r\n * Justify Content\r\n * @see https://tailwindcss.com/docs/justify-content\r\n */\r\n 'justify-content': [{\r\n justify: ['normal', ...getAlign()]\r\n }],\r\n /**\r\n * Justify Items\r\n * @see https://tailwindcss.com/docs/justify-items\r\n */\r\n 'justify-items': [{\r\n 'justify-items': ['start', 'end', 'center', 'stretch']\r\n }],\r\n /**\r\n * Justify Self\r\n * @see https://tailwindcss.com/docs/justify-self\r\n */\r\n 'justify-self': [{\r\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\r\n }],\r\n /**\r\n * Align Content\r\n * @see https://tailwindcss.com/docs/align-content\r\n */\r\n 'align-content': [{\r\n content: ['normal', ...getAlign(), 'baseline']\r\n }],\r\n /**\r\n * Align Items\r\n * @see https://tailwindcss.com/docs/align-items\r\n */\r\n 'align-items': [{\r\n items: ['start', 'end', 'center', 'baseline', 'stretch']\r\n }],\r\n /**\r\n * Align Self\r\n * @see https://tailwindcss.com/docs/align-self\r\n */\r\n 'align-self': [{\r\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\r\n }],\r\n /**\r\n * Place Content\r\n * @see https://tailwindcss.com/docs/place-content\r\n */\r\n 'place-content': [{\r\n 'place-content': [...getAlign(), 'baseline']\r\n }],\r\n /**\r\n * Place Items\r\n * @see https://tailwindcss.com/docs/place-items\r\n */\r\n 'place-items': [{\r\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\r\n }],\r\n /**\r\n * Place Self\r\n * @see https://tailwindcss.com/docs/place-self\r\n */\r\n 'place-self': [{\r\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\r\n }],\r\n // Spacing\r\n /**\r\n * Padding\r\n * @see https://tailwindcss.com/docs/padding\r\n */\r\n p: [{\r\n p: [padding]\r\n }],\r\n /**\r\n * Padding X\r\n * @see https://tailwindcss.com/docs/padding\r\n */\r\n px: [{\r\n px: [padding]\r\n }],\r\n /**\r\n * Padding Y\r\n * @see https://tailwindcss.com/docs/padding\r\n */\r\n py: [{\r\n py: [padding]\r\n }],\r\n /**\r\n * Padding Start\r\n * @see https://tailwindcss.com/docs/padding\r\n */\r\n ps: [{\r\n ps: [padding]\r\n }],\r\n /**\r\n * Padding End\r\n * @see https://tailwindcss.com/docs/padding\r\n */\r\n pe: [{\r\n pe: [padding]\r\n }],\r\n /**\r\n * Padding Top\r\n * @see https://tailwindcss.com/docs/padding\r\n */\r\n pt: [{\r\n pt: [padding]\r\n }],\r\n /**\r\n * Padding Right\r\n * @see https://tailwindcss.com/docs/padding\r\n */\r\n pr: [{\r\n pr: [padding]\r\n }],\r\n /**\r\n * Padding Bottom\r\n * @see https://tailwindcss.com/docs/padding\r\n */\r\n pb: [{\r\n pb: [padding]\r\n }],\r\n /**\r\n * Padding Left\r\n * @see https://tailwindcss.com/docs/padding\r\n */\r\n pl: [{\r\n pl: [padding]\r\n }],\r\n /**\r\n * Margin\r\n * @see https://tailwindcss.com/docs/margin\r\n */\r\n m: [{\r\n m: [margin]\r\n }],\r\n /**\r\n * Margin X\r\n * @see https://tailwindcss.com/docs/margin\r\n */\r\n mx: [{\r\n mx: [margin]\r\n }],\r\n /**\r\n * Margin Y\r\n * @see https://tailwindcss.com/docs/margin\r\n */\r\n my: [{\r\n my: [margin]\r\n }],\r\n /**\r\n * Margin Start\r\n * @see https://tailwindcss.com/docs/margin\r\n */\r\n ms: [{\r\n ms: [margin]\r\n }],\r\n /**\r\n * Margin End\r\n * @see https://tailwindcss.com/docs/margin\r\n */\r\n me: [{\r\n me: [margin]\r\n }],\r\n /**\r\n * Margin Top\r\n * @see https://tailwindcss.com/docs/margin\r\n */\r\n mt: [{\r\n mt: [margin]\r\n }],\r\n /**\r\n * Margin Right\r\n * @see https://tailwindcss.com/docs/margin\r\n */\r\n mr: [{\r\n mr: [margin]\r\n }],\r\n /**\r\n * Margin Bottom\r\n * @see https://tailwindcss.com/docs/margin\r\n */\r\n mb: [{\r\n mb: [margin]\r\n }],\r\n /**\r\n * Margin Left\r\n * @see https://tailwindcss.com/docs/margin\r\n */\r\n ml: [{\r\n ml: [margin]\r\n }],\r\n /**\r\n * Space Between X\r\n * @see https://tailwindcss.com/docs/space\r\n */\r\n 'space-x': [{\r\n 'space-x': [space]\r\n }],\r\n /**\r\n * Space Between X Reverse\r\n * @see https://tailwindcss.com/docs/space\r\n */\r\n 'space-x-reverse': ['space-x-reverse'],\r\n /**\r\n * Space Between Y\r\n * @see https://tailwindcss.com/docs/space\r\n */\r\n 'space-y': [{\r\n 'space-y': [space]\r\n }],\r\n /**\r\n * Space Between Y Reverse\r\n * @see https://tailwindcss.com/docs/space\r\n */\r\n 'space-y-reverse': ['space-y-reverse'],\r\n // Sizing\r\n /**\r\n * Width\r\n * @see https://tailwindcss.com/docs/width\r\n */\r\n w: [{\r\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\r\n }],\r\n /**\r\n * Min-Width\r\n * @see https://tailwindcss.com/docs/min-width\r\n */\r\n 'min-w': [{\r\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\r\n }],\r\n /**\r\n * Max-Width\r\n * @see https://tailwindcss.com/docs/max-width\r\n */\r\n 'max-w': [{\r\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\r\n screen: [isTshirtSize]\r\n }, isTshirtSize]\r\n }],\r\n /**\r\n * Height\r\n * @see https://tailwindcss.com/docs/height\r\n */\r\n h: [{\r\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\r\n }],\r\n /**\r\n * Min-Height\r\n * @see https://tailwindcss.com/docs/min-height\r\n */\r\n 'min-h': [{\r\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\r\n }],\r\n /**\r\n * Max-Height\r\n * @see https://tailwindcss.com/docs/max-height\r\n */\r\n 'max-h': [{\r\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\r\n }],\r\n /**\r\n * Size\r\n * @see https://tailwindcss.com/docs/size\r\n */\r\n size: [{\r\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\r\n }],\r\n // Typography\r\n /**\r\n * Font Size\r\n * @see https://tailwindcss.com/docs/font-size\r\n */\r\n 'font-size': [{\r\n text: ['base', isTshirtSize, isArbitraryLength]\r\n }],\r\n /**\r\n * Font Smoothing\r\n * @see https://tailwindcss.com/docs/font-smoothing\r\n */\r\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\r\n /**\r\n * Font Style\r\n * @see https://tailwindcss.com/docs/font-style\r\n */\r\n 'font-style': ['italic', 'not-italic'],\r\n /**\r\n * Font Weight\r\n * @see https://tailwindcss.com/docs/font-weight\r\n */\r\n 'font-weight': [{\r\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\r\n }],\r\n /**\r\n * Font Family\r\n * @see https://tailwindcss.com/docs/font-family\r\n */\r\n 'font-family': [{\r\n font: [isAny]\r\n }],\r\n /**\r\n * Font Variant Numeric\r\n * @see https://tailwindcss.com/docs/font-variant-numeric\r\n */\r\n 'fvn-normal': ['normal-nums'],\r\n /**\r\n * Font Variant Numeric\r\n * @see https://tailwindcss.com/docs/font-variant-numeric\r\n */\r\n 'fvn-ordinal': ['ordinal'],\r\n /**\r\n * Font Variant Numeric\r\n * @see https://tailwindcss.com/docs/font-variant-numeric\r\n */\r\n 'fvn-slashed-zero': ['slashed-zero'],\r\n /**\r\n * Font Variant Numeric\r\n * @see https://tailwindcss.com/docs/font-variant-numeric\r\n */\r\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\r\n /**\r\n * Font Variant Numeric\r\n * @see https://tailwindcss.com/docs/font-variant-numeric\r\n */\r\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\r\n /**\r\n * Font Variant Numeric\r\n * @see https://tailwindcss.com/docs/font-variant-numeric\r\n */\r\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\r\n /**\r\n * Letter Spacing\r\n * @see https://tailwindcss.com/docs/letter-spacing\r\n */\r\n tracking: [{\r\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\r\n }],\r\n /**\r\n * Line Clamp\r\n * @see https://tailwindcss.com/docs/line-clamp\r\n */\r\n 'line-clamp': [{\r\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\r\n }],\r\n /**\r\n * Line Height\r\n * @see https://tailwindcss.com/docs/line-height\r\n */\r\n leading: [{\r\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\r\n }],\r\n /**\r\n * List Style Image\r\n * @see https://tailwindcss.com/docs/list-style-image\r\n */\r\n 'list-image': [{\r\n 'list-image': ['none', isArbitraryValue]\r\n }],\r\n /**\r\n * List Style Type\r\n * @see https://tailwindcss.com/docs/list-style-type\r\n */\r\n 'list-style-type': [{\r\n list: ['none', 'disc', 'decimal', isArbitraryValue]\r\n }],\r\n /**\r\n * List Style Position\r\n * @see https://tailwindcss.com/docs/list-style-position\r\n */\r\n 'list-style-position': [{\r\n list: ['inside', 'outside']\r\n }],\r\n /**\r\n * Placeholder Color\r\n * @deprecated since Tailwind CSS v3.0.0\r\n * @see https://tailwindcss.com/docs/placeholder-color\r\n */\r\n 'placeholder-color': [{\r\n placeholder: [colors]\r\n }],\r\n /**\r\n * Placeholder Opacity\r\n * @see https://tailwindcss.com/docs/placeholder-opacity\r\n */\r\n 'placeholder-opacity': [{\r\n 'placeholder-opacity': [opacity]\r\n }],\r\n /**\r\n * Text Alignment\r\n * @see https://tailwindcss.com/docs/text-align\r\n */\r\n 'text-alignment': [{\r\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\r\n }],\r\n /**\r\n * Text Color\r\n * @see https://tailwindcss.com/docs/text-color\r\n */\r\n 'text-color': [{\r\n text: [colors]\r\n }],\r\n /**\r\n * Text Opacity\r\n * @see https://tailwindcss.com/docs/text-opacity\r\n */\r\n 'text-opacity': [{\r\n 'text-opacity': [opacity]\r\n }],\r\n /**\r\n * Text Decoration\r\n * @see https://tailwindcss.com/docs/text-decoration\r\n */\r\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\r\n /**\r\n * Text Decoration Style\r\n * @see https://tailwindcss.com/docs/text-decoration-style\r\n */\r\n 'text-decoration-style': [{\r\n decoration: [...getLineStyles(), 'wavy']\r\n }],\r\n /**\r\n * Text Decoration Thickness\r\n * @see https://tailwindcss.com/docs/text-decoration-thickness\r\n */\r\n 'text-decoration-thickness': [{\r\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\r\n }],\r\n /**\r\n * Text Underline Offset\r\n * @see https://tailwindcss.com/docs/text-underline-offset\r\n */\r\n 'underline-offset': [{\r\n 'underline-offset': ['auto', isLength, isArbitraryValue]\r\n }],\r\n /**\r\n * Text Decoration Color\r\n * @see https://tailwindcss.com/docs/text-decoration-color\r\n */\r\n 'text-decoration-color': [{\r\n decoration: [colors]\r\n }],\r\n /**\r\n * Text Transform\r\n * @see https://tailwindcss.com/docs/text-transform\r\n */\r\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\r\n /**\r\n * Text Overflow\r\n * @see https://tailwindcss.com/docs/text-overflow\r\n */\r\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\r\n /**\r\n * Text Wrap\r\n * @see https://tailwindcss.com/docs/text-wrap\r\n */\r\n 'text-wrap': [{\r\n text: ['wrap', 'nowrap', 'balance', 'pretty']\r\n }],\r\n /**\r\n * Text Indent\r\n * @see https://tailwindcss.com/docs/text-indent\r\n */\r\n indent: [{\r\n indent: getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Vertical Alignment\r\n * @see https://tailwindcss.com/docs/vertical-align\r\n */\r\n 'vertical-align': [{\r\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\r\n }],\r\n /**\r\n * Whitespace\r\n * @see https://tailwindcss.com/docs/whitespace\r\n */\r\n whitespace: [{\r\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\r\n }],\r\n /**\r\n * Word Break\r\n * @see https://tailwindcss.com/docs/word-break\r\n */\r\n break: [{\r\n break: ['normal', 'words', 'all', 'keep']\r\n }],\r\n /**\r\n * Hyphens\r\n * @see https://tailwindcss.com/docs/hyphens\r\n */\r\n hyphens: [{\r\n hyphens: ['none', 'manual', 'auto']\r\n }],\r\n /**\r\n * Content\r\n * @see https://tailwindcss.com/docs/content\r\n */\r\n content: [{\r\n content: ['none', isArbitraryValue]\r\n }],\r\n // Backgrounds\r\n /**\r\n * Background Attachment\r\n * @see https://tailwindcss.com/docs/background-attachment\r\n */\r\n 'bg-attachment': [{\r\n bg: ['fixed', 'local', 'scroll']\r\n }],\r\n /**\r\n * Background Clip\r\n * @see https://tailwindcss.com/docs/background-clip\r\n */\r\n 'bg-clip': [{\r\n 'bg-clip': ['border', 'padding', 'content', 'text']\r\n }],\r\n /**\r\n * Background Opacity\r\n * @deprecated since Tailwind CSS v3.0.0\r\n * @see https://tailwindcss.com/docs/background-opacity\r\n */\r\n 'bg-opacity': [{\r\n 'bg-opacity': [opacity]\r\n }],\r\n /**\r\n * Background Origin\r\n * @see https://tailwindcss.com/docs/background-origin\r\n */\r\n 'bg-origin': [{\r\n 'bg-origin': ['border', 'padding', 'content']\r\n }],\r\n /**\r\n * Background Position\r\n * @see https://tailwindcss.com/docs/background-position\r\n */\r\n 'bg-position': [{\r\n bg: [...getPositions(), isArbitraryPosition]\r\n }],\r\n /**\r\n * Background Repeat\r\n * @see https://tailwindcss.com/docs/background-repeat\r\n */\r\n 'bg-repeat': [{\r\n bg: ['no-repeat', {\r\n repeat: ['', 'x', 'y', 'round', 'space']\r\n }]\r\n }],\r\n /**\r\n * Background Size\r\n * @see https://tailwindcss.com/docs/background-size\r\n */\r\n 'bg-size': [{\r\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\r\n }],\r\n /**\r\n * Background Image\r\n * @see https://tailwindcss.com/docs/background-image\r\n */\r\n 'bg-image': [{\r\n bg: ['none', {\r\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\r\n }, isArbitraryImage]\r\n }],\r\n /**\r\n * Background Color\r\n * @see https://tailwindcss.com/docs/background-color\r\n */\r\n 'bg-color': [{\r\n bg: [colors]\r\n }],\r\n /**\r\n * Gradient Color Stops From Position\r\n * @see https://tailwindcss.com/docs/gradient-color-stops\r\n */\r\n 'gradient-from-pos': [{\r\n from: [gradientColorStopPositions]\r\n }],\r\n /**\r\n * Gradient Color Stops Via Position\r\n * @see https://tailwindcss.com/docs/gradient-color-stops\r\n */\r\n 'gradient-via-pos': [{\r\n via: [gradientColorStopPositions]\r\n }],\r\n /**\r\n * Gradient Color Stops To Position\r\n * @see https://tailwindcss.com/docs/gradient-color-stops\r\n */\r\n 'gradient-to-pos': [{\r\n to: [gradientColorStopPositions]\r\n }],\r\n /**\r\n * Gradient Color Stops From\r\n * @see https://tailwindcss.com/docs/gradient-color-stops\r\n */\r\n 'gradient-from': [{\r\n from: [gradientColorStops]\r\n }],\r\n /**\r\n * Gradient Color Stops Via\r\n * @see https://tailwindcss.com/docs/gradient-color-stops\r\n */\r\n 'gradient-via': [{\r\n via: [gradientColorStops]\r\n }],\r\n /**\r\n * Gradient Color Stops To\r\n * @see https://tailwindcss.com/docs/gradient-color-stops\r\n */\r\n 'gradient-to': [{\r\n to: [gradientColorStops]\r\n }],\r\n // Borders\r\n /**\r\n * Border Radius\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n rounded: [{\r\n rounded: [borderRadius]\r\n }],\r\n /**\r\n * Border Radius Start\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n 'rounded-s': [{\r\n 'rounded-s': [borderRadius]\r\n }],\r\n /**\r\n * Border Radius End\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n 'rounded-e': [{\r\n 'rounded-e': [borderRadius]\r\n }],\r\n /**\r\n * Border Radius Top\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n 'rounded-t': [{\r\n 'rounded-t': [borderRadius]\r\n }],\r\n /**\r\n * Border Radius Right\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n 'rounded-r': [{\r\n 'rounded-r': [borderRadius]\r\n }],\r\n /**\r\n * Border Radius Bottom\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n 'rounded-b': [{\r\n 'rounded-b': [borderRadius]\r\n }],\r\n /**\r\n * Border Radius Left\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n 'rounded-l': [{\r\n 'rounded-l': [borderRadius]\r\n }],\r\n /**\r\n * Border Radius Start Start\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n 'rounded-ss': [{\r\n 'rounded-ss': [borderRadius]\r\n }],\r\n /**\r\n * Border Radius Start End\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n 'rounded-se': [{\r\n 'rounded-se': [borderRadius]\r\n }],\r\n /**\r\n * Border Radius End End\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n 'rounded-ee': [{\r\n 'rounded-ee': [borderRadius]\r\n }],\r\n /**\r\n * Border Radius End Start\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n 'rounded-es': [{\r\n 'rounded-es': [borderRadius]\r\n }],\r\n /**\r\n * Border Radius Top Left\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n 'rounded-tl': [{\r\n 'rounded-tl': [borderRadius]\r\n }],\r\n /**\r\n * Border Radius Top Right\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n 'rounded-tr': [{\r\n 'rounded-tr': [borderRadius]\r\n }],\r\n /**\r\n * Border Radius Bottom Right\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n 'rounded-br': [{\r\n 'rounded-br': [borderRadius]\r\n }],\r\n /**\r\n * Border Radius Bottom Left\r\n * @see https://tailwindcss.com/docs/border-radius\r\n */\r\n 'rounded-bl': [{\r\n 'rounded-bl': [borderRadius]\r\n }],\r\n /**\r\n * Border Width\r\n * @see https://tailwindcss.com/docs/border-width\r\n */\r\n 'border-w': [{\r\n border: [borderWidth]\r\n }],\r\n /**\r\n * Border Width X\r\n * @see https://tailwindcss.com/docs/border-width\r\n */\r\n 'border-w-x': [{\r\n 'border-x': [borderWidth]\r\n }],\r\n /**\r\n * Border Width Y\r\n * @see https://tailwindcss.com/docs/border-width\r\n */\r\n 'border-w-y': [{\r\n 'border-y': [borderWidth]\r\n }],\r\n /**\r\n * Border Width Start\r\n * @see https://tailwindcss.com/docs/border-width\r\n */\r\n 'border-w-s': [{\r\n 'border-s': [borderWidth]\r\n }],\r\n /**\r\n * Border Width End\r\n * @see https://tailwindcss.com/docs/border-width\r\n */\r\n 'border-w-e': [{\r\n 'border-e': [borderWidth]\r\n }],\r\n /**\r\n * Border Width Top\r\n * @see https://tailwindcss.com/docs/border-width\r\n */\r\n 'border-w-t': [{\r\n 'border-t': [borderWidth]\r\n }],\r\n /**\r\n * Border Width Right\r\n * @see https://tailwindcss.com/docs/border-width\r\n */\r\n 'border-w-r': [{\r\n 'border-r': [borderWidth]\r\n }],\r\n /**\r\n * Border Width Bottom\r\n * @see https://tailwindcss.com/docs/border-width\r\n */\r\n 'border-w-b': [{\r\n 'border-b': [borderWidth]\r\n }],\r\n /**\r\n * Border Width Left\r\n * @see https://tailwindcss.com/docs/border-width\r\n */\r\n 'border-w-l': [{\r\n 'border-l': [borderWidth]\r\n }],\r\n /**\r\n * Border Opacity\r\n * @see https://tailwindcss.com/docs/border-opacity\r\n */\r\n 'border-opacity': [{\r\n 'border-opacity': [opacity]\r\n }],\r\n /**\r\n * Border Style\r\n * @see https://tailwindcss.com/docs/border-style\r\n */\r\n 'border-style': [{\r\n border: [...getLineStyles(), 'hidden']\r\n }],\r\n /**\r\n * Divide Width X\r\n * @see https://tailwindcss.com/docs/divide-width\r\n */\r\n 'divide-x': [{\r\n 'divide-x': [borderWidth]\r\n }],\r\n /**\r\n * Divide Width X Reverse\r\n * @see https://tailwindcss.com/docs/divide-width\r\n */\r\n 'divide-x-reverse': ['divide-x-reverse'],\r\n /**\r\n * Divide Width Y\r\n * @see https://tailwindcss.com/docs/divide-width\r\n */\r\n 'divide-y': [{\r\n 'divide-y': [borderWidth]\r\n }],\r\n /**\r\n * Divide Width Y Reverse\r\n * @see https://tailwindcss.com/docs/divide-width\r\n */\r\n 'divide-y-reverse': ['divide-y-reverse'],\r\n /**\r\n * Divide Opacity\r\n * @see https://tailwindcss.com/docs/divide-opacity\r\n */\r\n 'divide-opacity': [{\r\n 'divide-opacity': [opacity]\r\n }],\r\n /**\r\n * Divide Style\r\n * @see https://tailwindcss.com/docs/divide-style\r\n */\r\n 'divide-style': [{\r\n divide: getLineStyles()\r\n }],\r\n /**\r\n * Border Color\r\n * @see https://tailwindcss.com/docs/border-color\r\n */\r\n 'border-color': [{\r\n border: [borderColor]\r\n }],\r\n /**\r\n * Border Color X\r\n * @see https://tailwindcss.com/docs/border-color\r\n */\r\n 'border-color-x': [{\r\n 'border-x': [borderColor]\r\n }],\r\n /**\r\n * Border Color Y\r\n * @see https://tailwindcss.com/docs/border-color\r\n */\r\n 'border-color-y': [{\r\n 'border-y': [borderColor]\r\n }],\r\n /**\r\n * Border Color S\r\n * @see https://tailwindcss.com/docs/border-color\r\n */\r\n 'border-color-s': [{\r\n 'border-s': [borderColor]\r\n }],\r\n /**\r\n * Border Color E\r\n * @see https://tailwindcss.com/docs/border-color\r\n */\r\n 'border-color-e': [{\r\n 'border-e': [borderColor]\r\n }],\r\n /**\r\n * Border Color Top\r\n * @see https://tailwindcss.com/docs/border-color\r\n */\r\n 'border-color-t': [{\r\n 'border-t': [borderColor]\r\n }],\r\n /**\r\n * Border Color Right\r\n * @see https://tailwindcss.com/docs/border-color\r\n */\r\n 'border-color-r': [{\r\n 'border-r': [borderColor]\r\n }],\r\n /**\r\n * Border Color Bottom\r\n * @see https://tailwindcss.com/docs/border-color\r\n */\r\n 'border-color-b': [{\r\n 'border-b': [borderColor]\r\n }],\r\n /**\r\n * Border Color Left\r\n * @see https://tailwindcss.com/docs/border-color\r\n */\r\n 'border-color-l': [{\r\n 'border-l': [borderColor]\r\n }],\r\n /**\r\n * Divide Color\r\n * @see https://tailwindcss.com/docs/divide-color\r\n */\r\n 'divide-color': [{\r\n divide: [borderColor]\r\n }],\r\n /**\r\n * Outline Style\r\n * @see https://tailwindcss.com/docs/outline-style\r\n */\r\n 'outline-style': [{\r\n outline: ['', ...getLineStyles()]\r\n }],\r\n /**\r\n * Outline Offset\r\n * @see https://tailwindcss.com/docs/outline-offset\r\n */\r\n 'outline-offset': [{\r\n 'outline-offset': [isLength, isArbitraryValue]\r\n }],\r\n /**\r\n * Outline Width\r\n * @see https://tailwindcss.com/docs/outline-width\r\n */\r\n 'outline-w': [{\r\n outline: [isLength, isArbitraryLength]\r\n }],\r\n /**\r\n * Outline Color\r\n * @see https://tailwindcss.com/docs/outline-color\r\n */\r\n 'outline-color': [{\r\n outline: [colors]\r\n }],\r\n /**\r\n * Ring Width\r\n * @see https://tailwindcss.com/docs/ring-width\r\n */\r\n 'ring-w': [{\r\n ring: getLengthWithEmptyAndArbitrary()\r\n }],\r\n /**\r\n * Ring Width Inset\r\n * @see https://tailwindcss.com/docs/ring-width\r\n */\r\n 'ring-w-inset': ['ring-inset'],\r\n /**\r\n * Ring Color\r\n * @see https://tailwindcss.com/docs/ring-color\r\n */\r\n 'ring-color': [{\r\n ring: [colors]\r\n }],\r\n /**\r\n * Ring Opacity\r\n * @see https://tailwindcss.com/docs/ring-opacity\r\n */\r\n 'ring-opacity': [{\r\n 'ring-opacity': [opacity]\r\n }],\r\n /**\r\n * Ring Offset Width\r\n * @see https://tailwindcss.com/docs/ring-offset-width\r\n */\r\n 'ring-offset-w': [{\r\n 'ring-offset': [isLength, isArbitraryLength]\r\n }],\r\n /**\r\n * Ring Offset Color\r\n * @see https://tailwindcss.com/docs/ring-offset-color\r\n */\r\n 'ring-offset-color': [{\r\n 'ring-offset': [colors]\r\n }],\r\n // Effects\r\n /**\r\n * Box Shadow\r\n * @see https://tailwindcss.com/docs/box-shadow\r\n */\r\n shadow: [{\r\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\r\n }],\r\n /**\r\n * Box Shadow Color\r\n * @see https://tailwindcss.com/docs/box-shadow-color\r\n */\r\n 'shadow-color': [{\r\n shadow: [isAny]\r\n }],\r\n /**\r\n * Opacity\r\n * @see https://tailwindcss.com/docs/opacity\r\n */\r\n opacity: [{\r\n opacity: [opacity]\r\n }],\r\n /**\r\n * Mix Blend Mode\r\n * @see https://tailwindcss.com/docs/mix-blend-mode\r\n */\r\n 'mix-blend': [{\r\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\r\n }],\r\n /**\r\n * Background Blend Mode\r\n * @see https://tailwindcss.com/docs/background-blend-mode\r\n */\r\n 'bg-blend': [{\r\n 'bg-blend': getBlendModes()\r\n }],\r\n // Filters\r\n /**\r\n * Filter\r\n * @deprecated since Tailwind CSS v3.0.0\r\n * @see https://tailwindcss.com/docs/filter\r\n */\r\n filter: [{\r\n filter: ['', 'none']\r\n }],\r\n /**\r\n * Blur\r\n * @see https://tailwindcss.com/docs/blur\r\n */\r\n blur: [{\r\n blur: [blur]\r\n }],\r\n /**\r\n * Brightness\r\n * @see https://tailwindcss.com/docs/brightness\r\n */\r\n brightness: [{\r\n brightness: [brightness]\r\n }],\r\n /**\r\n * Contrast\r\n * @see https://tailwindcss.com/docs/contrast\r\n */\r\n contrast: [{\r\n contrast: [contrast]\r\n }],\r\n /**\r\n * Drop Shadow\r\n * @see https://tailwindcss.com/docs/drop-shadow\r\n */\r\n 'drop-shadow': [{\r\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\r\n }],\r\n /**\r\n * Grayscale\r\n * @see https://tailwindcss.com/docs/grayscale\r\n */\r\n grayscale: [{\r\n grayscale: [grayscale]\r\n }],\r\n /**\r\n * Hue Rotate\r\n * @see https://tailwindcss.com/docs/hue-rotate\r\n */\r\n 'hue-rotate': [{\r\n 'hue-rotate': [hueRotate]\r\n }],\r\n /**\r\n * Invert\r\n * @see https://tailwindcss.com/docs/invert\r\n */\r\n invert: [{\r\n invert: [invert]\r\n }],\r\n /**\r\n * Saturate\r\n * @see https://tailwindcss.com/docs/saturate\r\n */\r\n saturate: [{\r\n saturate: [saturate]\r\n }],\r\n /**\r\n * Sepia\r\n * @see https://tailwindcss.com/docs/sepia\r\n */\r\n sepia: [{\r\n sepia: [sepia]\r\n }],\r\n /**\r\n * Backdrop Filter\r\n * @deprecated since Tailwind CSS v3.0.0\r\n * @see https://tailwindcss.com/docs/backdrop-filter\r\n */\r\n 'backdrop-filter': [{\r\n 'backdrop-filter': ['', 'none']\r\n }],\r\n /**\r\n * Backdrop Blur\r\n * @see https://tailwindcss.com/docs/backdrop-blur\r\n */\r\n 'backdrop-blur': [{\r\n 'backdrop-blur': [blur]\r\n }],\r\n /**\r\n * Backdrop Brightness\r\n * @see https://tailwindcss.com/docs/backdrop-brightness\r\n */\r\n 'backdrop-brightness': [{\r\n 'backdrop-brightness': [brightness]\r\n }],\r\n /**\r\n * Backdrop Contrast\r\n * @see https://tailwindcss.com/docs/backdrop-contrast\r\n */\r\n 'backdrop-contrast': [{\r\n 'backdrop-contrast': [contrast]\r\n }],\r\n /**\r\n * Backdrop Grayscale\r\n * @see https://tailwindcss.com/docs/backdrop-grayscale\r\n */\r\n 'backdrop-grayscale': [{\r\n 'backdrop-grayscale': [grayscale]\r\n }],\r\n /**\r\n * Backdrop Hue Rotate\r\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\r\n */\r\n 'backdrop-hue-rotate': [{\r\n 'backdrop-hue-rotate': [hueRotate]\r\n }],\r\n /**\r\n * Backdrop Invert\r\n * @see https://tailwindcss.com/docs/backdrop-invert\r\n */\r\n 'backdrop-invert': [{\r\n 'backdrop-invert': [invert]\r\n }],\r\n /**\r\n * Backdrop Opacity\r\n * @see https://tailwindcss.com/docs/backdrop-opacity\r\n */\r\n 'backdrop-opacity': [{\r\n 'backdrop-opacity': [opacity]\r\n }],\r\n /**\r\n * Backdrop Saturate\r\n * @see https://tailwindcss.com/docs/backdrop-saturate\r\n */\r\n 'backdrop-saturate': [{\r\n 'backdrop-saturate': [saturate]\r\n }],\r\n /**\r\n * Backdrop Sepia\r\n * @see https://tailwindcss.com/docs/backdrop-sepia\r\n */\r\n 'backdrop-sepia': [{\r\n 'backdrop-sepia': [sepia]\r\n }],\r\n // Tables\r\n /**\r\n * Border Collapse\r\n * @see https://tailwindcss.com/docs/border-collapse\r\n */\r\n 'border-collapse': [{\r\n border: ['collapse', 'separate']\r\n }],\r\n /**\r\n * Border Spacing\r\n * @see https://tailwindcss.com/docs/border-spacing\r\n */\r\n 'border-spacing': [{\r\n 'border-spacing': [borderSpacing]\r\n }],\r\n /**\r\n * Border Spacing X\r\n * @see https://tailwindcss.com/docs/border-spacing\r\n */\r\n 'border-spacing-x': [{\r\n 'border-spacing-x': [borderSpacing]\r\n }],\r\n /**\r\n * Border Spacing Y\r\n * @see https://tailwindcss.com/docs/border-spacing\r\n */\r\n 'border-spacing-y': [{\r\n 'border-spacing-y': [borderSpacing]\r\n }],\r\n /**\r\n * Table Layout\r\n * @see https://tailwindcss.com/docs/table-layout\r\n */\r\n 'table-layout': [{\r\n table: ['auto', 'fixed']\r\n }],\r\n /**\r\n * Caption Side\r\n * @see https://tailwindcss.com/docs/caption-side\r\n */\r\n caption: [{\r\n caption: ['top', 'bottom']\r\n }],\r\n // Transitions and Animation\r\n /**\r\n * Tranisition Property\r\n * @see https://tailwindcss.com/docs/transition-property\r\n */\r\n transition: [{\r\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\r\n }],\r\n /**\r\n * Transition Duration\r\n * @see https://tailwindcss.com/docs/transition-duration\r\n */\r\n duration: [{\r\n duration: getNumberAndArbitrary()\r\n }],\r\n /**\r\n * Transition Timing Function\r\n * @see https://tailwindcss.com/docs/transition-timing-function\r\n */\r\n ease: [{\r\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\r\n }],\r\n /**\r\n * Transition Delay\r\n * @see https://tailwindcss.com/docs/transition-delay\r\n */\r\n delay: [{\r\n delay: getNumberAndArbitrary()\r\n }],\r\n /**\r\n * Animation\r\n * @see https://tailwindcss.com/docs/animation\r\n */\r\n animate: [{\r\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\r\n }],\r\n // Transforms\r\n /**\r\n * Transform\r\n * @see https://tailwindcss.com/docs/transform\r\n */\r\n transform: [{\r\n transform: ['', 'gpu', 'none']\r\n }],\r\n /**\r\n * Scale\r\n * @see https://tailwindcss.com/docs/scale\r\n */\r\n scale: [{\r\n scale: [scale]\r\n }],\r\n /**\r\n * Scale X\r\n * @see https://tailwindcss.com/docs/scale\r\n */\r\n 'scale-x': [{\r\n 'scale-x': [scale]\r\n }],\r\n /**\r\n * Scale Y\r\n * @see https://tailwindcss.com/docs/scale\r\n */\r\n 'scale-y': [{\r\n 'scale-y': [scale]\r\n }],\r\n /**\r\n * Rotate\r\n * @see https://tailwindcss.com/docs/rotate\r\n */\r\n rotate: [{\r\n rotate: [isInteger, isArbitraryValue]\r\n }],\r\n /**\r\n * Translate X\r\n * @see https://tailwindcss.com/docs/translate\r\n */\r\n 'translate-x': [{\r\n 'translate-x': [translate]\r\n }],\r\n /**\r\n * Translate Y\r\n * @see https://tailwindcss.com/docs/translate\r\n */\r\n 'translate-y': [{\r\n 'translate-y': [translate]\r\n }],\r\n /**\r\n * Skew X\r\n * @see https://tailwindcss.com/docs/skew\r\n */\r\n 'skew-x': [{\r\n 'skew-x': [skew]\r\n }],\r\n /**\r\n * Skew Y\r\n * @see https://tailwindcss.com/docs/skew\r\n */\r\n 'skew-y': [{\r\n 'skew-y': [skew]\r\n }],\r\n /**\r\n * Transform Origin\r\n * @see https://tailwindcss.com/docs/transform-origin\r\n */\r\n 'transform-origin': [{\r\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\r\n }],\r\n // Interactivity\r\n /**\r\n * Accent Color\r\n * @see https://tailwindcss.com/docs/accent-color\r\n */\r\n accent: [{\r\n accent: ['auto', colors]\r\n }],\r\n /**\r\n * Appearance\r\n * @see https://tailwindcss.com/docs/appearance\r\n */\r\n appearance: [{\r\n appearance: ['none', 'auto']\r\n }],\r\n /**\r\n * Cursor\r\n * @see https://tailwindcss.com/docs/cursor\r\n */\r\n cursor: [{\r\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\r\n }],\r\n /**\r\n * Caret Color\r\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\r\n */\r\n 'caret-color': [{\r\n caret: [colors]\r\n }],\r\n /**\r\n * Pointer Events\r\n * @see https://tailwindcss.com/docs/pointer-events\r\n */\r\n 'pointer-events': [{\r\n 'pointer-events': ['none', 'auto']\r\n }],\r\n /**\r\n * Resize\r\n * @see https://tailwindcss.com/docs/resize\r\n */\r\n resize: [{\r\n resize: ['none', 'y', 'x', '']\r\n }],\r\n /**\r\n * Scroll Behavior\r\n * @see https://tailwindcss.com/docs/scroll-behavior\r\n */\r\n 'scroll-behavior': [{\r\n scroll: ['auto', 'smooth']\r\n }],\r\n /**\r\n * Scroll Margin\r\n * @see https://tailwindcss.com/docs/scroll-margin\r\n */\r\n 'scroll-m': [{\r\n 'scroll-m': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Margin X\r\n * @see https://tailwindcss.com/docs/scroll-margin\r\n */\r\n 'scroll-mx': [{\r\n 'scroll-mx': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Margin Y\r\n * @see https://tailwindcss.com/docs/scroll-margin\r\n */\r\n 'scroll-my': [{\r\n 'scroll-my': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Margin Start\r\n * @see https://tailwindcss.com/docs/scroll-margin\r\n */\r\n 'scroll-ms': [{\r\n 'scroll-ms': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Margin End\r\n * @see https://tailwindcss.com/docs/scroll-margin\r\n */\r\n 'scroll-me': [{\r\n 'scroll-me': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Margin Top\r\n * @see https://tailwindcss.com/docs/scroll-margin\r\n */\r\n 'scroll-mt': [{\r\n 'scroll-mt': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Margin Right\r\n * @see https://tailwindcss.com/docs/scroll-margin\r\n */\r\n 'scroll-mr': [{\r\n 'scroll-mr': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Margin Bottom\r\n * @see https://tailwindcss.com/docs/scroll-margin\r\n */\r\n 'scroll-mb': [{\r\n 'scroll-mb': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Margin Left\r\n * @see https://tailwindcss.com/docs/scroll-margin\r\n */\r\n 'scroll-ml': [{\r\n 'scroll-ml': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Padding\r\n * @see https://tailwindcss.com/docs/scroll-padding\r\n */\r\n 'scroll-p': [{\r\n 'scroll-p': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Padding X\r\n * @see https://tailwindcss.com/docs/scroll-padding\r\n */\r\n 'scroll-px': [{\r\n 'scroll-px': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Padding Y\r\n * @see https://tailwindcss.com/docs/scroll-padding\r\n */\r\n 'scroll-py': [{\r\n 'scroll-py': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Padding Start\r\n * @see https://tailwindcss.com/docs/scroll-padding\r\n */\r\n 'scroll-ps': [{\r\n 'scroll-ps': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Padding End\r\n * @see https://tailwindcss.com/docs/scroll-padding\r\n */\r\n 'scroll-pe': [{\r\n 'scroll-pe': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Padding Top\r\n * @see https://tailwindcss.com/docs/scroll-padding\r\n */\r\n 'scroll-pt': [{\r\n 'scroll-pt': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Padding Right\r\n * @see https://tailwindcss.com/docs/scroll-padding\r\n */\r\n 'scroll-pr': [{\r\n 'scroll-pr': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Padding Bottom\r\n * @see https://tailwindcss.com/docs/scroll-padding\r\n */\r\n 'scroll-pb': [{\r\n 'scroll-pb': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Padding Left\r\n * @see https://tailwindcss.com/docs/scroll-padding\r\n */\r\n 'scroll-pl': [{\r\n 'scroll-pl': getSpacingWithArbitrary()\r\n }],\r\n /**\r\n * Scroll Snap Align\r\n * @see https://tailwindcss.com/docs/scroll-snap-align\r\n */\r\n 'snap-align': [{\r\n snap: ['start', 'end', 'center', 'align-none']\r\n }],\r\n /**\r\n * Scroll Snap Stop\r\n * @see https://tailwindcss.com/docs/scroll-snap-stop\r\n */\r\n 'snap-stop': [{\r\n snap: ['normal', 'always']\r\n }],\r\n /**\r\n * Scroll Snap Type\r\n * @see https://tailwindcss.com/docs/scroll-snap-type\r\n */\r\n 'snap-type': [{\r\n snap: ['none', 'x', 'y', 'both']\r\n }],\r\n /**\r\n * Scroll Snap Type Strictness\r\n * @see https://tailwindcss.com/docs/scroll-snap-type\r\n */\r\n 'snap-strictness': [{\r\n snap: ['mandatory', 'proximity']\r\n }],\r\n /**\r\n * Touch Action\r\n * @see https://tailwindcss.com/docs/touch-action\r\n */\r\n touch: [{\r\n touch: ['auto', 'none', 'manipulation']\r\n }],\r\n /**\r\n * Touch Action X\r\n * @see https://tailwindcss.com/docs/touch-action\r\n */\r\n 'touch-x': [{\r\n 'touch-pan': ['x', 'left', 'right']\r\n }],\r\n /**\r\n * Touch Action Y\r\n * @see https://tailwindcss.com/docs/touch-action\r\n */\r\n 'touch-y': [{\r\n 'touch-pan': ['y', 'up', 'down']\r\n }],\r\n /**\r\n * Touch Action Pinch Zoom\r\n * @see https://tailwindcss.com/docs/touch-action\r\n */\r\n 'touch-pz': ['touch-pinch-zoom'],\r\n /**\r\n * User Select\r\n * @see https://tailwindcss.com/docs/user-select\r\n */\r\n select: [{\r\n select: ['none', 'text', 'all', 'auto']\r\n }],\r\n /**\r\n * Will Change\r\n * @see https://tailwindcss.com/docs/will-change\r\n */\r\n 'will-change': [{\r\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\r\n }],\r\n // SVG\r\n /**\r\n * Fill\r\n * @see https://tailwindcss.com/docs/fill\r\n */\r\n fill: [{\r\n fill: [colors, 'none']\r\n }],\r\n /**\r\n * Stroke Width\r\n * @see https://tailwindcss.com/docs/stroke-width\r\n */\r\n 'stroke-w': [{\r\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\r\n }],\r\n /**\r\n * Stroke\r\n * @see https://tailwindcss.com/docs/stroke\r\n */\r\n stroke: [{\r\n stroke: [colors, 'none']\r\n }],\r\n // Accessibility\r\n /**\r\n * Screen Readers\r\n * @see https://tailwindcss.com/docs/screen-readers\r\n */\r\n sr: ['sr-only', 'not-sr-only'],\r\n /**\r\n * Forced Color Adjust\r\n * @see https://tailwindcss.com/docs/forced-color-adjust\r\n */\r\n 'forced-color-adjust': [{\r\n 'forced-color-adjust': ['auto', 'none']\r\n }]\r\n },\r\n conflictingClassGroups: {\r\n overflow: ['overflow-x', 'overflow-y'],\r\n overscroll: ['overscroll-x', 'overscroll-y'],\r\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\r\n 'inset-x': ['right', 'left'],\r\n 'inset-y': ['top', 'bottom'],\r\n flex: ['basis', 'grow', 'shrink'],\r\n gap: ['gap-x', 'gap-y'],\r\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\r\n px: ['pr', 'pl'],\r\n py: ['pt', 'pb'],\r\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\r\n mx: ['mr', 'ml'],\r\n my: ['mt', 'mb'],\r\n size: ['w', 'h'],\r\n 'font-size': ['leading'],\r\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\r\n 'fvn-ordinal': ['fvn-normal'],\r\n 'fvn-slashed-zero': ['fvn-normal'],\r\n 'fvn-figure': ['fvn-normal'],\r\n 'fvn-spacing': ['fvn-normal'],\r\n 'fvn-fraction': ['fvn-normal'],\r\n 'line-clamp': ['display', 'overflow'],\r\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\r\n 'rounded-s': ['rounded-ss', 'rounded-es'],\r\n 'rounded-e': ['rounded-se', 'rounded-ee'],\r\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\r\n 'rounded-r': ['rounded-tr', 'rounded-br'],\r\n 'rounded-b': ['rounded-br', 'rounded-bl'],\r\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\r\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\r\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\r\n 'border-w-x': ['border-w-r', 'border-w-l'],\r\n 'border-w-y': ['border-w-t', 'border-w-b'],\r\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\r\n 'border-color-x': ['border-color-r', 'border-color-l'],\r\n 'border-color-y': ['border-color-t', 'border-color-b'],\r\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\r\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\r\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\r\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\r\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\r\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\r\n touch: ['touch-x', 'touch-y', 'touch-pz'],\r\n 'touch-x': ['touch'],\r\n 'touch-y': ['touch'],\r\n 'touch-pz': ['touch']\r\n },\r\n conflictingClassGroupModifiers: {\r\n 'font-size': ['leading']\r\n }\r\n };\r\n};\r\n\r\n/**\r\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\r\n * @param configExtension Partial config to merge into the `baseConfig`.\r\n */\r\nconst mergeConfigs = (baseConfig, {\r\n cacheSize,\r\n prefix,\r\n separator,\r\n experimentalParseClassName,\r\n extend = {},\r\n override = {}\r\n}) => {\r\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\r\n overrideProperty(baseConfig, 'prefix', prefix);\r\n overrideProperty(baseConfig, 'separator', separator);\r\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\r\n for (const configKey in override) {\r\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\r\n }\r\n for (const key in extend) {\r\n mergeConfigProperties(baseConfig[key], extend[key]);\r\n }\r\n return baseConfig;\r\n};\r\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\r\n if (overrideValue !== undefined) {\r\n baseObject[overrideKey] = overrideValue;\r\n }\r\n};\r\nconst overrideConfigProperties = (baseObject, overrideObject) => {\r\n if (overrideObject) {\r\n for (const key in overrideObject) {\r\n overrideProperty(baseObject, key, overrideObject[key]);\r\n }\r\n }\r\n};\r\nconst mergeConfigProperties = (baseObject, mergeObject) => {\r\n if (mergeObject) {\r\n for (const key in mergeObject) {\r\n const mergeValue = mergeObject[key];\r\n if (mergeValue !== undefined) {\r\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\r\n }\r\n }\r\n }\r\n};\r\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\r\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\r\n\r\n//# sourceMappingURL=bundle-mjs.mjs.map\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy90YWlsd2luZC1tZXJnZS9kaXN0L2J1bmRsZS1tanMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLDBCQUEwQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsT0FBTyxtQkFBbUIsa0JBQWtCLGFBQWE7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsWUFBWTtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsMkJBQTJCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixnQkFBZ0I7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDNEg7QUFDNUgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RhaWx3aW5kLW1lcmdlL2Rpc3QvYnVuZGxlLW1qcy5tanM/Nzg2MSJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBDTEFTU19QQVJUX1NFUEFSQVRPUiA9ICctJztcclxuY29uc3QgY3JlYXRlQ2xhc3NHcm91cFV0aWxzID0gY29uZmlnID0+IHtcclxuICBjb25zdCBjbGFzc01hcCA9IGNyZWF0ZUNsYXNzTWFwKGNvbmZpZyk7XHJcbiAgY29uc3Qge1xyXG4gICAgY29uZmxpY3RpbmdDbGFzc0dyb3VwcyxcclxuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cE1vZGlmaWVyc1xyXG4gIH0gPSBjb25maWc7XHJcbiAgY29uc3QgZ2V0Q2xhc3NHcm91cElkID0gY2xhc3NOYW1lID0+IHtcclxuICAgIGNvbnN0IGNsYXNzUGFydHMgPSBjbGFzc05hbWUuc3BsaXQoQ0xBU1NfUEFSVF9TRVBBUkFUT1IpO1xyXG4gICAgLy8gQ2xhc3NlcyBsaWtlIGAtaW5zZXQtMWAgcHJvZHVjZSBhbiBlbXB0eSBzdHJpbmcgYXMgZmlyc3QgY2xhc3NQYXJ0LiBXZSBhc3N1bWUgdGhhdCBjbGFzc2VzIGZvciBuZWdhdGl2ZSB2YWx1ZXMgYXJlIHVzZWQgY29ycmVjdGx5IGFuZCByZW1vdmUgaXQgZnJvbSBjbGFzc1BhcnRzLlxyXG4gICAgaWYgKGNsYXNzUGFydHNbMF0gPT09ICcnICYmIGNsYXNzUGFydHMubGVuZ3RoICE9PSAxKSB7XHJcbiAgICAgIGNsYXNzUGFydHMuc2hpZnQoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBnZXRHcm91cFJlY3Vyc2l2ZShjbGFzc1BhcnRzLCBjbGFzc01hcCkgfHwgZ2V0R3JvdXBJZEZvckFyYml0cmFyeVByb3BlcnR5KGNsYXNzTmFtZSk7XHJcbiAgfTtcclxuICBjb25zdCBnZXRDb25mbGljdGluZ0NsYXNzR3JvdXBJZHMgPSAoY2xhc3NHcm91cElkLCBoYXNQb3N0Zml4TW9kaWZpZXIpID0+IHtcclxuICAgIGNvbnN0IGNvbmZsaWN0cyA9IGNvbmZsaWN0aW5nQ2xhc3NHcm91cHNbY2xhc3NHcm91cElkXSB8fCBbXTtcclxuICAgIGlmIChoYXNQb3N0Zml4TW9kaWZpZXIgJiYgY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzW2NsYXNzR3JvdXBJZF0pIHtcclxuICAgICAgcmV0dXJuIFsuLi5jb25mbGljdHMsIC4uLmNvbmZsaWN0aW5nQ2xhc3NHcm91cE1vZGlmaWVyc1tjbGFzc0dyb3VwSWRdXTtcclxuICAgIH1cclxuICAgIHJldHVybiBjb25mbGljdHM7XHJcbiAgfTtcclxuICByZXR1cm4ge1xyXG4gICAgZ2V0Q2xhc3NHcm91cElkLFxyXG4gICAgZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzXHJcbiAgfTtcclxufTtcclxuY29uc3QgZ2V0R3JvdXBSZWN1cnNpdmUgPSAoY2xhc3NQYXJ0cywgY2xhc3NQYXJ0T2JqZWN0KSA9PiB7XHJcbiAgaWYgKGNsYXNzUGFydHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICByZXR1cm4gY2xhc3NQYXJ0T2JqZWN0LmNsYXNzR3JvdXBJZDtcclxuICB9XHJcbiAgY29uc3QgY3VycmVudENsYXNzUGFydCA9IGNsYXNzUGFydHNbMF07XHJcbiAgY29uc3QgbmV4dENsYXNzUGFydE9iamVjdCA9IGNsYXNzUGFydE9iamVjdC5uZXh0UGFydC5nZXQoY3VycmVudENsYXNzUGFydCk7XHJcbiAgY29uc3QgY2xhc3NHcm91cEZyb21OZXh0Q2xhc3NQYXJ0ID0gbmV4dENsYXNzUGFydE9iamVjdCA/IGdldEdyb3VwUmVjdXJzaXZlKGNsYXNzUGFydHMuc2xpY2UoMSksIG5leHRDbGFzc1BhcnRPYmplY3QpIDogdW5kZWZpbmVkO1xyXG4gIGlmIChjbGFzc0dyb3VwRnJvbU5leHRDbGFzc1BhcnQpIHtcclxuICAgIHJldHVybiBjbGFzc0dyb3VwRnJvbU5leHRDbGFzc1BhcnQ7XHJcbiAgfVxyXG4gIGlmIChjbGFzc1BhcnRPYmplY3QudmFsaWRhdG9ycy5sZW5ndGggPT09IDApIHtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG4gIGNvbnN0IGNsYXNzUmVzdCA9IGNsYXNzUGFydHMuam9pbihDTEFTU19QQVJUX1NFUEFSQVRPUik7XHJcbiAgcmV0dXJuIGNsYXNzUGFydE9iamVjdC52YWxpZGF0b3JzLmZpbmQoKHtcclxuICAgIHZhbGlkYXRvclxyXG4gIH0pID0+IHZhbGlkYXRvcihjbGFzc1Jlc3QpKT8uY2xhc3NHcm91cElkO1xyXG59O1xyXG5jb25zdCBhcmJpdHJhcnlQcm9wZXJ0eVJlZ2V4ID0gL15cXFsoLispXFxdJC87XHJcbmNvbnN0IGdldEdyb3VwSWRGb3JBcmJpdHJhcnlQcm9wZXJ0eSA9IGNsYXNzTmFtZSA9PiB7XHJcbiAgaWYgKGFyYml0cmFyeVByb3BlcnR5UmVnZXgudGVzdChjbGFzc05hbWUpKSB7XHJcbiAgICBjb25zdCBhcmJpdHJhcnlQcm9wZXJ0eUNsYXNzTmFtZSA9IGFyYml0cmFyeVByb3BlcnR5UmVnZXguZXhlYyhjbGFzc05hbWUpWzFdO1xyXG4gICAgY29uc3QgcHJvcGVydHkgPSBhcmJpdHJhcnlQcm9wZXJ0eUNsYXNzTmFtZT8uc3Vic3RyaW5nKDAsIGFyYml0cmFyeVByb3BlcnR5Q2xhc3NOYW1lLmluZGV4T2YoJzonKSk7XHJcbiAgICBpZiAocHJvcGVydHkpIHtcclxuICAgICAgLy8gSSB1c2UgdHdvIGRvdHMgaGVyZSBiZWNhdXNlIG9uZSBkb3QgaXMgdXNlZCBhcyBwcmVmaXggZm9yIGNsYXNzIGdyb3VwcyBpbiBwbHVnaW5zXHJcbiAgICAgIHJldHVybiAnYXJiaXRyYXJ5Li4nICsgcHJvcGVydHk7XHJcbiAgICB9XHJcbiAgfVxyXG59O1xyXG4vKipcclxuICogRXhwb3J0ZWQgZm9yIHRlc3Rpbmcgb25seVxyXG4gKi9cclxuY29uc3QgY3JlYXRlQ2xhc3NNYXAgPSBjb25maWcgPT4ge1xyXG4gIGNvbnN0IHtcclxuICAgIHRoZW1lLFxyXG4gICAgcHJlZml4XHJcbiAgfSA9IGNvbmZpZztcclxuICBjb25zdCBjbGFzc01hcCA9IHtcclxuICAgIG5leHRQYXJ0OiBuZXcgTWFwKCksXHJcbiAgICB2YWxpZGF0b3JzOiBbXVxyXG4gIH07XHJcbiAgY29uc3QgcHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcyA9IGdldFByZWZpeGVkQ2xhc3NHcm91cEVudHJpZXMoT2JqZWN0LmVudHJpZXMoY29uZmlnLmNsYXNzR3JvdXBzKSwgcHJlZml4KTtcclxuICBwcmVmaXhlZENsYXNzR3JvdXBFbnRyaWVzLmZvckVhY2goKFtjbGFzc0dyb3VwSWQsIGNsYXNzR3JvdXBdKSA9PiB7XHJcbiAgICBwcm9jZXNzQ2xhc3Nlc1JlY3Vyc2l2ZWx5KGNsYXNzR3JvdXAsIGNsYXNzTWFwLCBjbGFzc0dyb3VwSWQsIHRoZW1lKTtcclxuICB9KTtcclxuICByZXR1cm4gY2xhc3NNYXA7XHJcbn07XHJcbmNvbnN0IHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkgPSAoY2xhc3NHcm91cCwgY2xhc3NQYXJ0T2JqZWN0LCBjbGFzc0dyb3VwSWQsIHRoZW1lKSA9PiB7XHJcbiAgY2xhc3NHcm91cC5mb3JFYWNoKGNsYXNzRGVmaW5pdGlvbiA9PiB7XHJcbiAgICBpZiAodHlwZW9mIGNsYXNzRGVmaW5pdGlvbiA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgY29uc3QgY2xhc3NQYXJ0T2JqZWN0VG9FZGl0ID0gY2xhc3NEZWZpbml0aW9uID09PSAnJyA/IGNsYXNzUGFydE9iamVjdCA6IGdldFBhcnQoY2xhc3NQYXJ0T2JqZWN0LCBjbGFzc0RlZmluaXRpb24pO1xyXG4gICAgICBjbGFzc1BhcnRPYmplY3RUb0VkaXQuY2xhc3NHcm91cElkID0gY2xhc3NHcm91cElkO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIGNsYXNzRGVmaW5pdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBpZiAoaXNUaGVtZUdldHRlcihjbGFzc0RlZmluaXRpb24pKSB7XHJcbiAgICAgICAgcHJvY2Vzc0NsYXNzZXNSZWN1cnNpdmVseShjbGFzc0RlZmluaXRpb24odGhlbWUpLCBjbGFzc1BhcnRPYmplY3QsIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjbGFzc1BhcnRPYmplY3QudmFsaWRhdG9ycy5wdXNoKHtcclxuICAgICAgICB2YWxpZGF0b3I6IGNsYXNzRGVmaW5pdGlvbixcclxuICAgICAgICBjbGFzc0dyb3VwSWRcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIE9iamVjdC5lbnRyaWVzKGNsYXNzRGVmaW5pdGlvbikuZm9yRWFjaCgoW2tleSwgY2xhc3NHcm91cF0pID0+IHtcclxuICAgICAgcHJvY2Vzc0NsYXNzZXNSZWN1cnNpdmVseShjbGFzc0dyb3VwLCBnZXRQYXJ0KGNsYXNzUGFydE9iamVjdCwga2V5KSwgY2xhc3NHcm91cElkLCB0aGVtZSk7XHJcbiAgICB9KTtcclxuICB9KTtcclxufTtcclxuY29uc3QgZ2V0UGFydCA9IChjbGFzc1BhcnRPYmplY3QsIHBhdGgpID0+IHtcclxuICBsZXQgY3VycmVudENsYXNzUGFydE9iamVjdCA9IGNsYXNzUGFydE9iamVjdDtcclxuICBwYXRoLnNwbGl0KENMQVNTX1BBUlRfU0VQQVJBVE9SKS5mb3JFYWNoKHBhdGhQYXJ0ID0+IHtcclxuICAgIGlmICghY3VycmVudENsYXNzUGFydE9iamVjdC5uZXh0UGFydC5oYXMocGF0aFBhcnQpKSB7XHJcbiAgICAgIGN1cnJlbnRDbGFzc1BhcnRPYmplY3QubmV4dFBhcnQuc2V0KHBhdGhQYXJ0LCB7XHJcbiAgICAgICAgbmV4dFBhcnQ6IG5ldyBNYXAoKSxcclxuICAgICAgICB2YWxpZGF0b3JzOiBbXVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGN1cnJlbnRDbGFzc1BhcnRPYmplY3QgPSBjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0Lm5leHRQYXJ0LmdldChwYXRoUGFydCk7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIGN1cnJlbnRDbGFzc1BhcnRPYmplY3Q7XHJcbn07XHJcbmNvbnN0IGlzVGhlbWVHZXR0ZXIgPSBmdW5jID0+IGZ1bmMuaXNUaGVtZUdldHRlcjtcclxuY29uc3QgZ2V0UHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcyA9IChjbGFzc0dyb3VwRW50cmllcywgcHJlZml4KSA9PiB7XHJcbiAgaWYgKCFwcmVmaXgpIHtcclxuICAgIHJldHVybiBjbGFzc0dyb3VwRW50cmllcztcclxuICB9XHJcbiAgcmV0dXJuIGNsYXNzR3JvdXBFbnRyaWVzLm1hcCgoW2NsYXNzR3JvdXBJZCwgY2xhc3NHcm91cF0pID0+IHtcclxuICAgIGNvbnN0IHByZWZpeGVkQ2xhc3NHcm91cCA9IGNsYXNzR3JvdXAubWFwKGNsYXNzRGVmaW5pdGlvbiA9PiB7XHJcbiAgICAgIGlmICh0eXBlb2YgY2xhc3NEZWZpbml0aW9uID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHJldHVybiBwcmVmaXggKyBjbGFzc0RlZmluaXRpb247XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHR5cGVvZiBjbGFzc0RlZmluaXRpb24gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhjbGFzc0RlZmluaXRpb24pLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBbcHJlZml4ICsga2V5LCB2YWx1ZV0pKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gY2xhc3NEZWZpbml0aW9uO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gW2NsYXNzR3JvdXBJZCwgcHJlZml4ZWRDbGFzc0dyb3VwXTtcclxuICB9KTtcclxufTtcclxuXHJcbi8vIExSVSBjYWNoZSBpbnNwaXJlZCBmcm9tIGhhc2hscnUgKGh0dHBzOi8vZ2l0aHViLmNvbS9kb21pbmljdGFyci9oYXNobHJ1L2Jsb2IvdjEuMC40L2luZGV4LmpzKSBidXQgb2JqZWN0IHJlcGxhY2VkIHdpdGggTWFwIHRvIGltcHJvdmUgcGVyZm9ybWFuY2VcclxuY29uc3QgY3JlYXRlTHJ1Q2FjaGUgPSBtYXhDYWNoZVNpemUgPT4ge1xyXG4gIGlmIChtYXhDYWNoZVNpemUgPCAxKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBnZXQ6ICgpID0+IHVuZGVmaW5lZCxcclxuICAgICAgc2V0OiAoKSA9PiB7fVxyXG4gICAgfTtcclxuICB9XHJcbiAgbGV0IGNhY2hlU2l6ZSA9IDA7XHJcbiAgbGV0IGNhY2hlID0gbmV3IE1hcCgpO1xyXG4gIGxldCBwcmV2aW91c0NhY2hlID0gbmV3IE1hcCgpO1xyXG4gIGNvbnN0IHVwZGF0ZSA9IChrZXksIHZhbHVlKSA9PiB7XHJcbiAgICBjYWNoZS5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgICBjYWNoZVNpemUrKztcclxuICAgIGlmIChjYWNoZVNpemUgPiBtYXhDYWNoZVNpemUpIHtcclxuICAgICAgY2FjaGVTaXplID0gMDtcclxuICAgICAgcHJldmlvdXNDYWNoZSA9IGNhY2hlO1xyXG4gICAgICBjYWNoZSA9IG5ldyBNYXAoKTtcclxuICAgIH1cclxuICB9O1xyXG4gIHJldHVybiB7XHJcbiAgICBnZXQoa2V5KSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9IGNhY2hlLmdldChrZXkpO1xyXG4gICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoKHZhbHVlID0gcHJldmlvdXNDYWNoZS5nZXQoa2V5KSkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHVwZGF0ZShrZXksIHZhbHVlKTtcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzZXQoa2V5LCB2YWx1ZSkge1xyXG4gICAgICBpZiAoY2FjaGUuaGFzKGtleSkpIHtcclxuICAgICAgICBjYWNoZS5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdXBkYXRlKGtleSwgdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxufTtcclxuY29uc3QgSU1QT1JUQU5UX01PRElGSUVSID0gJyEnO1xyXG5jb25zdCBjcmVhdGVQYXJzZUNsYXNzTmFtZSA9IGNvbmZpZyA9PiB7XHJcbiAgY29uc3Qge1xyXG4gICAgc2VwYXJhdG9yLFxyXG4gICAgZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWVcclxuICB9ID0gY29uZmlnO1xyXG4gIGNvbnN0IGlzU2VwYXJhdG9yU2luZ2xlQ2hhcmFjdGVyID0gc2VwYXJhdG9yLmxlbmd0aCA9PT0gMTtcclxuICBjb25zdCBmaXJzdFNlcGFyYXRvckNoYXJhY3RlciA9IHNlcGFyYXRvclswXTtcclxuICBjb25zdCBzZXBhcmF0b3JMZW5ndGggPSBzZXBhcmF0b3IubGVuZ3RoO1xyXG4gIC8vIHBhcnNlQ2xhc3NOYW1lIGluc3BpcmVkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi92My4yLjIvc3JjL3V0aWwvc3BsaXRBdFRvcExldmVsT25seS5qc1xyXG4gIGNvbnN0IHBhcnNlQ2xhc3NOYW1lID0gY2xhc3NOYW1lID0+IHtcclxuICAgIGNvbnN0IG1vZGlmaWVycyA9IFtdO1xyXG4gICAgbGV0IGJyYWNrZXREZXB0aCA9IDA7XHJcbiAgICBsZXQgbW9kaWZpZXJTdGFydCA9IDA7XHJcbiAgICBsZXQgcG9zdGZpeE1vZGlmaWVyUG9zaXRpb247XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY2xhc3NOYW1lLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICBsZXQgY3VycmVudENoYXJhY3RlciA9IGNsYXNzTmFtZVtpbmRleF07XHJcbiAgICAgIGlmIChicmFja2V0RGVwdGggPT09IDApIHtcclxuICAgICAgICBpZiAoY3VycmVudENoYXJhY3RlciA9PT0gZmlyc3RTZXBhcmF0b3JDaGFyYWN0ZXIgJiYgKGlzU2VwYXJhdG9yU2luZ2xlQ2hhcmFjdGVyIHx8IGNsYXNzTmFtZS5zbGljZShpbmRleCwgaW5kZXggKyBzZXBhcmF0b3JMZW5ndGgpID09PSBzZXBhcmF0b3IpKSB7XHJcbiAgICAgICAgICBtb2RpZmllcnMucHVzaChjbGFzc05hbWUuc2xpY2UobW9kaWZpZXJTdGFydCwgaW5kZXgpKTtcclxuICAgICAgICAgIG1vZGlmaWVyU3RhcnQgPSBpbmRleCArIHNlcGFyYXRvckxlbmd0aDtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY3VycmVudENoYXJhY3RlciA9PT0gJy8nKSB7XHJcbiAgICAgICAgICBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiA9IGluZGV4O1xyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChjdXJyZW50Q2hhcmFjdGVyID09PSAnWycpIHtcclxuICAgICAgICBicmFja2V0RGVwdGgrKztcclxuICAgICAgfSBlbHNlIGlmIChjdXJyZW50Q2hhcmFjdGVyID09PSAnXScpIHtcclxuICAgICAgICBicmFja2V0RGVwdGgtLTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllciA9IG1vZGlmaWVycy5sZW5ndGggPT09IDAgPyBjbGFzc05hbWUgOiBjbGFzc05hbWUuc3Vic3RyaW5nKG1vZGlmaWVyU3RhcnQpO1xyXG4gICAgY29uc3QgaGFzSW1wb3J0YW50TW9kaWZpZXIgPSBiYXNlQ2xhc3NOYW1lV2l0aEltcG9ydGFudE1vZGlmaWVyLnN0YXJ0c1dpdGgoSU1QT1JUQU5UX01PRElGSUVSKTtcclxuICAgIGNvbnN0IGJhc2VDbGFzc05hbWUgPSBoYXNJbXBvcnRhbnRNb2RpZmllciA/IGJhc2VDbGFzc05hbWVXaXRoSW1wb3J0YW50TW9kaWZpZXIuc3Vic3RyaW5nKDEpIDogYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllcjtcclxuICAgIGNvbnN0IG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb24gPSBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiAmJiBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiA+IG1vZGlmaWVyU3RhcnQgPyBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiAtIG1vZGlmaWVyU3RhcnQgOiB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBtb2RpZmllcnMsXHJcbiAgICAgIGhhc0ltcG9ydGFudE1vZGlmaWVyLFxyXG4gICAgICBiYXNlQ2xhc3NOYW1lLFxyXG4gICAgICBtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uXHJcbiAgICB9O1xyXG4gIH07XHJcbiAgaWYgKGV4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lKSB7XHJcbiAgICByZXR1cm4gY2xhc3NOYW1lID0+IGV4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lKHtcclxuICAgICAgY2xhc3NOYW1lLFxyXG4gICAgICBwYXJzZUNsYXNzTmFtZVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJldHVybiBwYXJzZUNsYXNzTmFtZTtcclxufTtcclxuLyoqXHJcbiAqIFNvcnRzIG1vZGlmaWVycyBhY2NvcmRpbmcgdG8gZm9sbG93aW5nIHNjaGVtYTpcclxuICogLSBQcmVkZWZpbmVkIG1vZGlmaWVycyBhcmUgc29ydGVkIGFscGhhYmV0aWNhbGx5XHJcbiAqIC0gV2hlbiBhbiBhcmJpdHJhcnkgdmFyaWFudCBhcHBlYXJzLCBpdCBtdXN0IGJlIHByZXNlcnZlZCB3aGljaCBtb2RpZmllcnMgYXJlIGJlZm9yZSBhbmQgYWZ0ZXIgaXRcclxuICovXHJcbmNvbnN0IHNvcnRNb2RpZmllcnMgPSBtb2RpZmllcnMgPT4ge1xyXG4gIGlmIChtb2RpZmllcnMubGVuZ3RoIDw9IDEpIHtcclxuICAgIHJldHVybiBtb2RpZmllcnM7XHJcbiAgfVxyXG4gIGNvbnN0IHNvcnRlZE1vZGlmaWVycyA9IFtdO1xyXG4gIGxldCB1bnNvcnRlZE1vZGlmaWVycyA9IFtdO1xyXG4gIG1vZGlmaWVycy5mb3JFYWNoKG1vZGlmaWVyID0+IHtcclxuICAgIGNvbnN0IGlzQXJiaXRyYXJ5VmFyaWFudCA9IG1vZGlmaWVyWzBdID09PSAnWyc7XHJcbiAgICBpZiAoaXNBcmJpdHJhcnlWYXJpYW50KSB7XHJcbiAgICAgIHNvcnRlZE1vZGlmaWVycy5wdXNoKC4uLnVuc29ydGVkTW9kaWZpZXJzLnNvcnQoKSwgbW9kaWZpZXIpO1xyXG4gICAgICB1bnNvcnRlZE1vZGlmaWVycyA9IFtdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdW5zb3J0ZWRNb2RpZmllcnMucHVzaChtb2RpZmllcik7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgc29ydGVkTW9kaWZpZXJzLnB1c2goLi4udW5zb3J0ZWRNb2RpZmllcnMuc29ydCgpKTtcclxuICByZXR1cm4gc29ydGVkTW9kaWZpZXJzO1xyXG59O1xyXG5jb25zdCBjcmVhdGVDb25maWdVdGlscyA9IGNvbmZpZyA9PiAoe1xyXG4gIGNhY2hlOiBjcmVhdGVMcnVDYWNoZShjb25maWcuY2FjaGVTaXplKSxcclxuICBwYXJzZUNsYXNzTmFtZTogY3JlYXRlUGFyc2VDbGFzc05hbWUoY29uZmlnKSxcclxuICAuLi5jcmVhdGVDbGFzc0dyb3VwVXRpbHMoY29uZmlnKVxyXG59KTtcclxuY29uc3QgU1BMSVRfQ0xBU1NFU19SRUdFWCA9IC9cXHMrLztcclxuY29uc3QgbWVyZ2VDbGFzc0xpc3QgPSAoY2xhc3NMaXN0LCBjb25maWdVdGlscykgPT4ge1xyXG4gIGNvbnN0IHtcclxuICAgIHBhcnNlQ2xhc3NOYW1lLFxyXG4gICAgZ2V0Q2xhc3NHcm91cElkLFxyXG4gICAgZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzXHJcbiAgfSA9IGNvbmZpZ1V0aWxzO1xyXG4gIC8qKlxyXG4gICAqIFNldCBvZiBjbGFzc0dyb3VwSWRzIGluIGZvbGxvd2luZyBmb3JtYXQ6XHJcbiAgICogYHtpbXBvcnRhbnRNb2RpZmllcn17dmFyaWFudE1vZGlmaWVyc317Y2xhc3NHcm91cElkfWBcclxuICAgKiBAZXhhbXBsZSAnZmxvYXQnXHJcbiAgICogQGV4YW1wbGUgJ2hvdmVyOmZvY3VzOmJnLWNvbG9yJ1xyXG4gICAqIEBleGFtcGxlICdtZDohcHInXHJcbiAgICovXHJcbiAgY29uc3QgY2xhc3NHcm91cHNJbkNvbmZsaWN0ID0gW107XHJcbiAgY29uc3QgY2xhc3NOYW1lcyA9IGNsYXNzTGlzdC50cmltKCkuc3BsaXQoU1BMSVRfQ0xBU1NFU19SRUdFWCk7XHJcbiAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gIGZvciAobGV0IGluZGV4ID0gY2xhc3NOYW1lcy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleCAtPSAxKSB7XHJcbiAgICBjb25zdCBvcmlnaW5hbENsYXNzTmFtZSA9IGNsYXNzTmFtZXNbaW5kZXhdO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBtb2RpZmllcnMsXHJcbiAgICAgIGhhc0ltcG9ydGFudE1vZGlmaWVyLFxyXG4gICAgICBiYXNlQ2xhc3NOYW1lLFxyXG4gICAgICBtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uXHJcbiAgICB9ID0gcGFyc2VDbGFzc05hbWUob3JpZ2luYWxDbGFzc05hbWUpO1xyXG4gICAgbGV0IGhhc1Bvc3RmaXhNb2RpZmllciA9IEJvb2xlYW4obWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvbik7XHJcbiAgICBsZXQgY2xhc3NHcm91cElkID0gZ2V0Q2xhc3NHcm91cElkKGhhc1Bvc3RmaXhNb2RpZmllciA/IGJhc2VDbGFzc05hbWUuc3Vic3RyaW5nKDAsIG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb24pIDogYmFzZUNsYXNzTmFtZSk7XHJcbiAgICBpZiAoIWNsYXNzR3JvdXBJZCkge1xyXG4gICAgICBpZiAoIWhhc1Bvc3RmaXhNb2RpZmllcikge1xyXG4gICAgICAgIC8vIE5vdCBhIFRhaWx3aW5kIGNsYXNzXHJcbiAgICAgICAgcmVzdWx0ID0gb3JpZ2luYWxDbGFzc05hbWUgKyAocmVzdWx0Lmxlbmd0aCA+IDAgPyAnICcgKyByZXN1bHQgOiByZXN1bHQpO1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGNsYXNzR3JvdXBJZCA9IGdldENsYXNzR3JvdXBJZChiYXNlQ2xhc3NOYW1lKTtcclxuICAgICAgaWYgKCFjbGFzc0dyb3VwSWQpIHtcclxuICAgICAgICAvLyBOb3QgYSBUYWlsd2luZCBjbGFzc1xyXG4gICAgICAgIHJlc3VsdCA9IG9yaWdpbmFsQ2xhc3NOYW1lICsgKHJlc3VsdC5sZW5ndGggPiAwID8gJyAnICsgcmVzdWx0IDogcmVzdWx0KTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBoYXNQb3N0Zml4TW9kaWZpZXIgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGNvbnN0IHZhcmlhbnRNb2RpZmllciA9IHNvcnRNb2RpZmllcnMobW9kaWZpZXJzKS5qb2luKCc6Jyk7XHJcbiAgICBjb25zdCBtb2RpZmllcklkID0gaGFzSW1wb3J0YW50TW9kaWZpZXIgPyB2YXJpYW50TW9kaWZpZXIgKyBJTVBPUlRBTlRfTU9ESUZJRVIgOiB2YXJpYW50TW9kaWZpZXI7XHJcbiAgICBjb25zdCBjbGFzc0lkID0gbW9kaWZpZXJJZCArIGNsYXNzR3JvdXBJZDtcclxuICAgIGlmIChjbGFzc0dyb3Vwc0luQ29uZmxpY3QuaW5jbHVkZXMoY2xhc3NJZCkpIHtcclxuICAgICAgLy8gVGFpbHdpbmQgY2xhc3Mgb21pdHRlZCBkdWUgdG8gY29uZmxpY3RcclxuICAgICAgY29udGludWU7XHJcbiAgICB9XHJcbiAgICBjbGFzc0dyb3Vwc0luQ29uZmxpY3QucHVzaChjbGFzc0lkKTtcclxuICAgIGNvbnN0IGNvbmZsaWN0R3JvdXBzID0gZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzKGNsYXNzR3JvdXBJZCwgaGFzUG9zdGZpeE1vZGlmaWVyKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29uZmxpY3RHcm91cHMubGVuZ3RoOyArK2kpIHtcclxuICAgICAgY29uc3QgZ3JvdXAgPSBjb25mbGljdEdyb3Vwc1tpXTtcclxuICAgICAgY2xhc3NHcm91cHNJbkNvbmZsaWN0LnB1c2gobW9kaWZpZXJJZCArIGdyb3VwKTtcclxuICAgIH1cclxuICAgIC8vIFRhaWx3aW5kIGNsYXNzIG5vdCBpbiBjb25mbGljdFxyXG4gICAgcmVzdWx0ID0gb3JpZ2luYWxDbGFzc05hbWUgKyAocmVzdWx0Lmxlbmd0aCA+IDAgPyAnICcgKyByZXN1bHQgOiByZXN1bHQpO1xyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFRoZSBjb2RlIGluIHRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbHVrZWVkL2Nsc3ggYW5kIG1vZGlmaWVkIHRvIHN1aXQgdGhlIG5lZWRzIG9mIHRhaWx3aW5kLW1lcmdlIGJldHRlci5cclxuICpcclxuICogU3BlY2lmaWNhbGx5OlxyXG4gKiAtIFJ1bnRpbWUgY29kZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvY2xzeC9ibG9iL3YxLjIuMS9zcmMvaW5kZXguanNcclxuICogLSBUeXBlU2NyaXB0IHR5cGVzIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2x1a2VlZC9jbHN4L2Jsb2IvdjEuMi4xL2Nsc3guZC50c1xyXG4gKlxyXG4gKiBPcmlnaW5hbCBjb2RlIGhhcyBNSVQgbGljZW5zZTogQ29weXJpZ2h0IChjKSBMdWtlIEVkd2FyZHMgPGx1a2UuZWR3YXJkczA1QGdtYWlsLmNvbT4gKGx1a2VlZC5jb20pXHJcbiAqL1xyXG5mdW5jdGlvbiB0d0pvaW4oKSB7XHJcbiAgbGV0IGluZGV4ID0gMDtcclxuICBsZXQgYXJndW1lbnQ7XHJcbiAgbGV0IHJlc29sdmVkVmFsdWU7XHJcbiAgbGV0IHN0cmluZyA9ICcnO1xyXG4gIHdoaWxlIChpbmRleCA8IGFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgIGlmIChhcmd1bWVudCA9IGFyZ3VtZW50c1tpbmRleCsrXSkge1xyXG4gICAgICBpZiAocmVzb2x2ZWRWYWx1ZSA9IHRvVmFsdWUoYXJndW1lbnQpKSB7XHJcbiAgICAgICAgc3RyaW5nICYmIChzdHJpbmcgKz0gJyAnKTtcclxuICAgICAgICBzdHJpbmcgKz0gcmVzb2x2ZWRWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gc3RyaW5nO1xyXG59XHJcbmNvbnN0IHRvVmFsdWUgPSBtaXggPT4ge1xyXG4gIGlmICh0eXBlb2YgbWl4ID09PSAnc3RyaW5nJykge1xyXG4gICAgcmV0dXJuIG1peDtcclxuICB9XHJcbiAgbGV0IHJlc29sdmVkVmFsdWU7XHJcbiAgbGV0IHN0cmluZyA9ICcnO1xyXG4gIGZvciAobGV0IGsgPSAwOyBrIDwgbWl4Lmxlbmd0aDsgaysrKSB7XHJcbiAgICBpZiAobWl4W2tdKSB7XHJcbiAgICAgIGlmIChyZXNvbHZlZFZhbHVlID0gdG9WYWx1ZShtaXhba10pKSB7XHJcbiAgICAgICAgc3RyaW5nICYmIChzdHJpbmcgKz0gJyAnKTtcclxuICAgICAgICBzdHJpbmcgKz0gcmVzb2x2ZWRWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gc3RyaW5nO1xyXG59O1xyXG5mdW5jdGlvbiBjcmVhdGVUYWlsd2luZE1lcmdlKGNyZWF0ZUNvbmZpZ0ZpcnN0LCAuLi5jcmVhdGVDb25maWdSZXN0KSB7XHJcbiAgbGV0IGNvbmZpZ1V0aWxzO1xyXG4gIGxldCBjYWNoZUdldDtcclxuICBsZXQgY2FjaGVTZXQ7XHJcbiAgbGV0IGZ1bmN0aW9uVG9DYWxsID0gaW5pdFRhaWx3aW5kTWVyZ2U7XHJcbiAgZnVuY3Rpb24gaW5pdFRhaWx3aW5kTWVyZ2UoY2xhc3NMaXN0KSB7XHJcbiAgICBjb25zdCBjb25maWcgPSBjcmVhdGVDb25maWdSZXN0LnJlZHVjZSgocHJldmlvdXNDb25maWcsIGNyZWF0ZUNvbmZpZ0N1cnJlbnQpID0+IGNyZWF0ZUNvbmZpZ0N1cnJlbnQocHJldmlvdXNDb25maWcpLCBjcmVhdGVDb25maWdGaXJzdCgpKTtcclxuICAgIGNvbmZpZ1V0aWxzID0gY3JlYXRlQ29uZmlnVXRpbHMoY29uZmlnKTtcclxuICAgIGNhY2hlR2V0ID0gY29uZmlnVXRpbHMuY2FjaGUuZ2V0O1xyXG4gICAgY2FjaGVTZXQgPSBjb25maWdVdGlscy5jYWNoZS5zZXQ7XHJcbiAgICBmdW5jdGlvblRvQ2FsbCA9IHRhaWx3aW5kTWVyZ2U7XHJcbiAgICByZXR1cm4gdGFpbHdpbmRNZXJnZShjbGFzc0xpc3QpO1xyXG4gIH1cclxuICBmdW5jdGlvbiB0YWlsd2luZE1lcmdlKGNsYXNzTGlzdCkge1xyXG4gICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gY2FjaGVHZXQoY2xhc3NMaXN0KTtcclxuICAgIGlmIChjYWNoZWRSZXN1bHQpIHtcclxuICAgICAgcmV0dXJuIGNhY2hlZFJlc3VsdDtcclxuICAgIH1cclxuICAgIGNvbnN0IHJlc3VsdCA9IG1lcmdlQ2xhc3NMaXN0KGNsYXNzTGlzdCwgY29uZmlnVXRpbHMpO1xyXG4gICAgY2FjaGVTZXQoY2xhc3NMaXN0LCByZXN1bHQpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbiAgcmV0dXJuIGZ1bmN0aW9uIGNhbGxUYWlsd2luZE1lcmdlKCkge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uVG9DYWxsKHR3Sm9pbi5hcHBseShudWxsLCBhcmd1bWVudHMpKTtcclxuICB9O1xyXG59XHJcbmNvbnN0IGZyb21UaGVtZSA9IGtleSA9PiB7XHJcbiAgY29uc3QgdGhlbWVHZXR0ZXIgPSB0aGVtZSA9PiB0aGVtZVtrZXldIHx8IFtdO1xyXG4gIHRoZW1lR2V0dGVyLmlzVGhlbWVHZXR0ZXIgPSB0cnVlO1xyXG4gIHJldHVybiB0aGVtZUdldHRlcjtcclxufTtcclxuY29uc3QgYXJiaXRyYXJ5VmFsdWVSZWdleCA9IC9eXFxbKD86KFthLXotXSspOik/KC4rKVxcXSQvaTtcclxuY29uc3QgZnJhY3Rpb25SZWdleCA9IC9eXFxkK1xcL1xcZCskLztcclxuY29uc3Qgc3RyaW5nTGVuZ3RocyA9IC8qI19fUFVSRV9fKi9uZXcgU2V0KFsncHgnLCAnZnVsbCcsICdzY3JlZW4nXSk7XHJcbmNvbnN0IHRzaGlydFVuaXRSZWdleCA9IC9eKFxcZCsoXFwuXFxkKyk/KT8oeHN8c218bWR8bGd8eGwpJC87XHJcbmNvbnN0IGxlbmd0aFVuaXRSZWdleCA9IC9cXGQrKCV8cHh8cj9lbXxbc2RsXT92KFtod2liXXxtaW58bWF4KXxwdHxwY3xpbnxjbXxtbXxjYXB8Y2h8ZXh8cj9saHxjcSh3fGh8aXxifG1pbnxtYXgpKXxcXGIoY2FsY3xtaW58bWF4fGNsYW1wKVxcKC4rXFwpfF4wJC87XHJcbmNvbnN0IGNvbG9yRnVuY3Rpb25SZWdleCA9IC9eKHJnYmE/fGhzbGE/fGh3Ynwob2spPyhsYWJ8bGNoKSlcXCguK1xcKSQvO1xyXG4vLyBTaGFkb3cgYWx3YXlzIGJlZ2lucyB3aXRoIHggYW5kIHkgb2Zmc2V0IHNlcGFyYXRlZCBieSB1bmRlcnNjb3JlIG9wdGlvbmFsbHkgcHJlcGVuZGVkIGJ5IGluc2V0XHJcbmNvbnN0IHNoYWRvd1JlZ2V4ID0gL14oaW5zZXRfKT8tPygoXFxkKyk/XFwuPyhcXGQrKVthLXpdK3wwKV8tPygoXFxkKyk/XFwuPyhcXGQrKVthLXpdK3wwKS87XHJcbmNvbnN0IGltYWdlUmVnZXggPSAvXih1cmx8aW1hZ2V8aW1hZ2Utc2V0fGNyb3NzLWZhZGV8ZWxlbWVudHwocmVwZWF0aW5nLSk/KGxpbmVhcnxyYWRpYWx8Y29uaWMpLWdyYWRpZW50KVxcKC4rXFwpJC87XHJcbmNvbnN0IGlzTGVuZ3RoID0gdmFsdWUgPT4gaXNOdW1iZXIodmFsdWUpIHx8IHN0cmluZ0xlbmd0aHMuaGFzKHZhbHVlKSB8fCBmcmFjdGlvblJlZ2V4LnRlc3QodmFsdWUpO1xyXG5jb25zdCBpc0FyYml0cmFyeUxlbmd0aCA9IHZhbHVlID0+IGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsICdsZW5ndGgnLCBpc0xlbmd0aE9ubHkpO1xyXG5jb25zdCBpc051bWJlciA9IHZhbHVlID0+IEJvb2xlYW4odmFsdWUpICYmICFOdW1iZXIuaXNOYU4oTnVtYmVyKHZhbHVlKSk7XHJcbmNvbnN0IGlzQXJiaXRyYXJ5TnVtYmVyID0gdmFsdWUgPT4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJ251bWJlcicsIGlzTnVtYmVyKTtcclxuY29uc3QgaXNJbnRlZ2VyID0gdmFsdWUgPT4gQm9vbGVhbih2YWx1ZSkgJiYgTnVtYmVyLmlzSW50ZWdlcihOdW1iZXIodmFsdWUpKTtcclxuY29uc3QgaXNQZXJjZW50ID0gdmFsdWUgPT4gdmFsdWUuZW5kc1dpdGgoJyUnKSAmJiBpc051bWJlcih2YWx1ZS5zbGljZSgwLCAtMSkpO1xyXG5jb25zdCBpc0FyYml0cmFyeVZhbHVlID0gdmFsdWUgPT4gYXJiaXRyYXJ5VmFsdWVSZWdleC50ZXN0KHZhbHVlKTtcclxuY29uc3QgaXNUc2hpcnRTaXplID0gdmFsdWUgPT4gdHNoaXJ0VW5pdFJlZ2V4LnRlc3QodmFsdWUpO1xyXG5jb25zdCBzaXplTGFiZWxzID0gLyojX19QVVJFX18qL25ldyBTZXQoWydsZW5ndGgnLCAnc2l6ZScsICdwZXJjZW50YWdlJ10pO1xyXG5jb25zdCBpc0FyYml0cmFyeVNpemUgPSB2YWx1ZSA9PiBnZXRJc0FyYml0cmFyeVZhbHVlKHZhbHVlLCBzaXplTGFiZWxzLCBpc05ldmVyKTtcclxuY29uc3QgaXNBcmJpdHJhcnlQb3NpdGlvbiA9IHZhbHVlID0+IGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsICdwb3NpdGlvbicsIGlzTmV2ZXIpO1xyXG5jb25zdCBpbWFnZUxhYmVscyA9IC8qI19fUFVSRV9fKi9uZXcgU2V0KFsnaW1hZ2UnLCAndXJsJ10pO1xyXG5jb25zdCBpc0FyYml0cmFyeUltYWdlID0gdmFsdWUgPT4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgaW1hZ2VMYWJlbHMsIGlzSW1hZ2UpO1xyXG5jb25zdCBpc0FyYml0cmFyeVNoYWRvdyA9IHZhbHVlID0+IGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsICcnLCBpc1NoYWRvdyk7XHJcbmNvbnN0IGlzQW55ID0gKCkgPT4gdHJ1ZTtcclxuY29uc3QgZ2V0SXNBcmJpdHJhcnlWYWx1ZSA9ICh2YWx1ZSwgbGFiZWwsIHRlc3RWYWx1ZSkgPT4ge1xyXG4gIGNvbnN0IHJlc3VsdCA9IGFyYml0cmFyeVZhbHVlUmVnZXguZXhlYyh2YWx1ZSk7XHJcbiAgaWYgKHJlc3VsdCkge1xyXG4gICAgaWYgKHJlc3VsdFsxXSkge1xyXG4gICAgICByZXR1cm4gdHlwZW9mIGxhYmVsID09PSAnc3RyaW5nJyA/IHJlc3VsdFsxXSA9PT0gbGFiZWwgOiBsYWJlbC5oYXMocmVzdWx0WzFdKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0ZXN0VmFsdWUocmVzdWx0WzJdKTtcclxuICB9XHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59O1xyXG5jb25zdCBpc0xlbmd0aE9ubHkgPSB2YWx1ZSA9PlxyXG4vLyBgY29sb3JGdW5jdGlvblJlZ2V4YCBjaGVjayBpcyBuZWNlc3NhcnkgYmVjYXVzZSBjb2xvciBmdW5jdGlvbnMgY2FuIGhhdmUgcGVyY2VudGFnZXMgaW4gdGhlbSB3aGljaCB3aGljaCB3b3VsZCBiZSBpbmNvcnJlY3RseSBjbGFzc2lmaWVkIGFzIGxlbmd0aHMuXHJcbi8vIEZvciBleGFtcGxlLCBgaHNsKDAgMCUgMCUpYCB3b3VsZCBiZSBjbGFzc2lmaWVkIGFzIGEgbGVuZ3RoIHdpdGhvdXQgdGhpcyBjaGVjay5cclxuLy8gSSBjb3VsZCBhbHNvIHVzZSBsb29rYmVoaW5kIGFzc2VydGlvbiBpbiBgbGVuZ3RoVW5pdFJlZ2V4YCBidXQgdGhhdCBpc24ndCBzdXBwb3J0ZWQgd2lkZWx5IGVub3VnaC5cclxubGVuZ3RoVW5pdFJlZ2V4LnRlc3QodmFsdWUpICYmICFjb2xvckZ1bmN0aW9uUmVnZXgudGVzdCh2YWx1ZSk7XHJcbmNvbnN0IGlzTmV2ZXIgPSAoKSA9PiBmYWxzZTtcclxuY29uc3QgaXNTaGFkb3cgPSB2YWx1ZSA9PiBzaGFkb3dSZWdleC50ZXN0KHZhbHVlKTtcclxuY29uc3QgaXNJbWFnZSA9IHZhbHVlID0+IGltYWdlUmVnZXgudGVzdCh2YWx1ZSk7XHJcbmNvbnN0IHZhbGlkYXRvcnMgPSAvKiNfX1BVUkVfXyovT2JqZWN0LmRlZmluZVByb3BlcnR5KHtcclxuICBfX3Byb3RvX186IG51bGwsXHJcbiAgaXNBbnksXHJcbiAgaXNBcmJpdHJhcnlJbWFnZSxcclxuICBpc0FyYml0cmFyeUxlbmd0aCxcclxuICBpc0FyYml0cmFyeU51bWJlcixcclxuICBpc0FyYml0cmFyeVBvc2l0aW9uLFxyXG4gIGlzQXJiaXRyYXJ5U2hhZG93LFxyXG4gIGlzQXJiaXRyYXJ5U2l6ZSxcclxuICBpc0FyYml0cmFyeVZhbHVlLFxyXG4gIGlzSW50ZWdlcixcclxuICBpc0xlbmd0aCxcclxuICBpc051bWJlcixcclxuICBpc1BlcmNlbnQsXHJcbiAgaXNUc2hpcnRTaXplXHJcbn0sIFN5bWJvbC50b1N0cmluZ1RhZywge1xyXG4gIHZhbHVlOiAnTW9kdWxlJ1xyXG59KTtcclxuY29uc3QgZ2V0RGVmYXVsdENvbmZpZyA9ICgpID0+IHtcclxuICBjb25zdCBjb2xvcnMgPSBmcm9tVGhlbWUoJ2NvbG9ycycpO1xyXG4gIGNvbnN0IHNwYWNpbmcgPSBmcm9tVGhlbWUoJ3NwYWNpbmcnKTtcclxuICBjb25zdCBibHVyID0gZnJvbVRoZW1lKCdibHVyJyk7XHJcbiAgY29uc3QgYnJpZ2h0bmVzcyA9IGZyb21UaGVtZSgnYnJpZ2h0bmVzcycpO1xyXG4gIGNvbnN0IGJvcmRlckNvbG9yID0gZnJvbVRoZW1lKCdib3JkZXJDb2xvcicpO1xyXG4gIGNvbnN0IGJvcmRlclJhZGl1cyA9IGZyb21UaGVtZSgnYm9yZGVyUmFkaXVzJyk7XHJcbiAgY29uc3QgYm9yZGVyU3BhY2luZyA9IGZyb21UaGVtZSgnYm9yZGVyU3BhY2luZycpO1xyXG4gIGNvbnN0IGJvcmRlcldpZHRoID0gZnJvbVRoZW1lKCdib3JkZXJXaWR0aCcpO1xyXG4gIGNvbnN0IGNvbnRyYXN0ID0gZnJvbVRoZW1lKCdjb250cmFzdCcpO1xyXG4gIGNvbnN0IGdyYXlzY2FsZSA9IGZyb21UaGVtZSgnZ3JheXNjYWxlJyk7XHJcbiAgY29uc3QgaHVlUm90YXRlID0gZnJvbVRoZW1lKCdodWVSb3RhdGUnKTtcclxuICBjb25zdCBpbnZlcnQgPSBmcm9tVGhlbWUoJ2ludmVydCcpO1xyXG4gIGNvbnN0IGdhcCA9IGZyb21UaGVtZSgnZ2FwJyk7XHJcbiAgY29uc3QgZ3JhZGllbnRDb2xvclN0b3BzID0gZnJvbVRoZW1lKCdncmFkaWVudENvbG9yU3RvcHMnKTtcclxuICBjb25zdCBncmFkaWVudENvbG9yU3RvcFBvc2l0aW9ucyA9IGZyb21UaGVtZSgnZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnMnKTtcclxuICBjb25zdCBpbnNldCA9IGZyb21UaGVtZSgnaW5zZXQnKTtcclxuICBjb25zdCBtYXJnaW4gPSBmcm9tVGhlbWUoJ21hcmdpbicpO1xyXG4gIGNvbnN0IG9wYWNpdHkgPSBmcm9tVGhlbWUoJ29wYWNpdHknKTtcclxuICBjb25zdCBwYWRkaW5nID0gZnJvbVRoZW1lKCdwYWRkaW5nJyk7XHJcbiAgY29uc3Qgc2F0dXJhdGUgPSBmcm9tVGhlbWUoJ3NhdHVyYXRlJyk7XHJcbiAgY29uc3Qgc2NhbGUgPSBmcm9tVGhlbWUoJ3NjYWxlJyk7XHJcbiAgY29uc3Qgc2VwaWEgPSBmcm9tVGhlbWUoJ3NlcGlhJyk7XHJcbiAgY29uc3Qgc2tldyA9IGZyb21UaGVtZSgnc2tldycpO1xyXG4gIGNvbnN0IHNwYWNlID0gZnJvbVRoZW1lKCdzcGFjZScpO1xyXG4gIGNvbnN0IHRyYW5zbGF0ZSA9IGZyb21UaGVtZSgndHJhbnNsYXRlJyk7XHJcbiAgY29uc3QgZ2V0T3ZlcnNjcm9sbCA9ICgpID0+IFsnYXV0bycsICdjb250YWluJywgJ25vbmUnXTtcclxuICBjb25zdCBnZXRPdmVyZmxvdyA9ICgpID0+IFsnYXV0bycsICdoaWRkZW4nLCAnY2xpcCcsICd2aXNpYmxlJywgJ3Njcm9sbCddO1xyXG4gIGNvbnN0IGdldFNwYWNpbmdXaXRoQXV0b0FuZEFyYml0cmFyeSA9ICgpID0+IFsnYXV0bycsIGlzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmddO1xyXG4gIGNvbnN0IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5ID0gKCkgPT4gW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmddO1xyXG4gIGNvbnN0IGdldExlbmd0aFdpdGhFbXB0eUFuZEFyYml0cmFyeSA9ICgpID0+IFsnJywgaXNMZW5ndGgsIGlzQXJiaXRyYXJ5TGVuZ3RoXTtcclxuICBjb25zdCBnZXROdW1iZXJXaXRoQXV0b0FuZEFyYml0cmFyeSA9ICgpID0+IFsnYXV0bycsIGlzTnVtYmVyLCBpc0FyYml0cmFyeVZhbHVlXTtcclxuICBjb25zdCBnZXRQb3NpdGlvbnMgPSAoKSA9PiBbJ2JvdHRvbScsICdjZW50ZXInLCAnbGVmdCcsICdsZWZ0LWJvdHRvbScsICdsZWZ0LXRvcCcsICdyaWdodCcsICdyaWdodC1ib3R0b20nLCAncmlnaHQtdG9wJywgJ3RvcCddO1xyXG4gIGNvbnN0IGdldExpbmVTdHlsZXMgPSAoKSA9PiBbJ3NvbGlkJywgJ2Rhc2hlZCcsICdkb3R0ZWQnLCAnZG91YmxlJywgJ25vbmUnXTtcclxuICBjb25zdCBnZXRCbGVuZE1vZGVzID0gKCkgPT4gWydub3JtYWwnLCAnbXVsdGlwbHknLCAnc2NyZWVuJywgJ292ZXJsYXknLCAnZGFya2VuJywgJ2xpZ2h0ZW4nLCAnY29sb3ItZG9kZ2UnLCAnY29sb3ItYnVybicsICdoYXJkLWxpZ2h0JywgJ3NvZnQtbGlnaHQnLCAnZGlmZmVyZW5jZScsICdleGNsdXNpb24nLCAnaHVlJywgJ3NhdHVyYXRpb24nLCAnY29sb3InLCAnbHVtaW5vc2l0eSddO1xyXG4gIGNvbnN0IGdldEFsaWduID0gKCkgPT4gWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2JldHdlZW4nLCAnYXJvdW5kJywgJ2V2ZW5seScsICdzdHJldGNoJ107XHJcbiAgY29uc3QgZ2V0WmVyb0FuZEVtcHR5ID0gKCkgPT4gWycnLCAnMCcsIGlzQXJiaXRyYXJ5VmFsdWVdO1xyXG4gIGNvbnN0IGdldEJyZWFrcyA9ICgpID0+IFsnYXV0bycsICdhdm9pZCcsICdhbGwnLCAnYXZvaWQtcGFnZScsICdwYWdlJywgJ2xlZnQnLCAncmlnaHQnLCAnY29sdW1uJ107XHJcbiAgY29uc3QgZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5ID0gKCkgPT4gW2lzTnVtYmVyLCBpc0FyYml0cmFyeVZhbHVlXTtcclxuICByZXR1cm4ge1xyXG4gICAgY2FjaGVTaXplOiA1MDAsXHJcbiAgICBzZXBhcmF0b3I6ICc6JyxcclxuICAgIHRoZW1lOiB7XHJcbiAgICAgIGNvbG9yczogW2lzQW55XSxcclxuICAgICAgc3BhY2luZzogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF0sXHJcbiAgICAgIGJsdXI6IFsnbm9uZScsICcnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5VmFsdWVdLFxyXG4gICAgICBicmlnaHRuZXNzOiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKSxcclxuICAgICAgYm9yZGVyQ29sb3I6IFtjb2xvcnNdLFxyXG4gICAgICBib3JkZXJSYWRpdXM6IFsnbm9uZScsICcnLCAnZnVsbCcsIGlzVHNoaXJ0U2l6ZSwgaXNBcmJpdHJhcnlWYWx1ZV0sXHJcbiAgICAgIGJvcmRlclNwYWNpbmc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KCksXHJcbiAgICAgIGJvcmRlcldpZHRoOiBnZXRMZW5ndGhXaXRoRW1wdHlBbmRBcmJpdHJhcnkoKSxcclxuICAgICAgY29udHJhc3Q6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxyXG4gICAgICBncmF5c2NhbGU6IGdldFplcm9BbmRFbXB0eSgpLFxyXG4gICAgICBodWVSb3RhdGU6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxyXG4gICAgICBpbnZlcnQ6IGdldFplcm9BbmRFbXB0eSgpLFxyXG4gICAgICBnYXA6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KCksXHJcbiAgICAgIGdyYWRpZW50Q29sb3JTdG9wczogW2NvbG9yc10sXHJcbiAgICAgIGdyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zOiBbaXNQZXJjZW50LCBpc0FyYml0cmFyeUxlbmd0aF0sXHJcbiAgICAgIGluc2V0OiBnZXRTcGFjaW5nV2l0aEF1dG9BbmRBcmJpdHJhcnkoKSxcclxuICAgICAgbWFyZ2luOiBnZXRTcGFjaW5nV2l0aEF1dG9BbmRBcmJpdHJhcnkoKSxcclxuICAgICAgb3BhY2l0eTogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KCksXHJcbiAgICAgIHBhZGRpbmc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KCksXHJcbiAgICAgIHNhdHVyYXRlOiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKSxcclxuICAgICAgc2NhbGU6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxyXG4gICAgICBzZXBpYTogZ2V0WmVyb0FuZEVtcHR5KCksXHJcbiAgICAgIHNrZXc6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxyXG4gICAgICBzcGFjZTogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcclxuICAgICAgdHJhbnNsYXRlOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXHJcbiAgICB9LFxyXG4gICAgY2xhc3NHcm91cHM6IHtcclxuICAgICAgLy8gTGF5b3V0XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBBc3BlY3QgUmF0aW9cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FzcGVjdC1yYXRpb1xyXG4gICAgICAgKi9cclxuICAgICAgYXNwZWN0OiBbe1xyXG4gICAgICAgIGFzcGVjdDogWydhdXRvJywgJ3NxdWFyZScsICd2aWRlbycsIGlzQXJiaXRyYXJ5VmFsdWVdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQ29udGFpbmVyXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250YWluZXJcclxuICAgICAgICovXHJcbiAgICAgIGNvbnRhaW5lcjogWydjb250YWluZXInXSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIENvbHVtbnNcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbHVtbnNcclxuICAgICAgICovXHJcbiAgICAgIGNvbHVtbnM6IFt7XHJcbiAgICAgICAgY29sdW1uczogW2lzVHNoaXJ0U2l6ZV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCcmVhayBBZnRlclxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYnJlYWstYWZ0ZXJcclxuICAgICAgICovXHJcbiAgICAgICdicmVhay1hZnRlcic6IFt7XHJcbiAgICAgICAgJ2JyZWFrLWFmdGVyJzogZ2V0QnJlYWtzKClcclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCcmVhayBCZWZvcmVcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JyZWFrLWJlZm9yZVxyXG4gICAgICAgKi9cclxuICAgICAgJ2JyZWFrLWJlZm9yZSc6IFt7XHJcbiAgICAgICAgJ2JyZWFrLWJlZm9yZSc6IGdldEJyZWFrcygpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQnJlYWsgSW5zaWRlXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9icmVhay1pbnNpZGVcclxuICAgICAgICovXHJcbiAgICAgICdicmVhay1pbnNpZGUnOiBbe1xyXG4gICAgICAgICdicmVhay1pbnNpZGUnOiBbJ2F1dG8nLCAnYXZvaWQnLCAnYXZvaWQtcGFnZScsICdhdm9pZC1jb2x1bW4nXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJveCBEZWNvcmF0aW9uIEJyZWFrXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtZGVjb3JhdGlvbi1icmVha1xyXG4gICAgICAgKi9cclxuICAgICAgJ2JveC1kZWNvcmF0aW9uJzogW3tcclxuICAgICAgICAnYm94LWRlY29yYXRpb24nOiBbJ3NsaWNlJywgJ2Nsb25lJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCb3ggU2l6aW5nXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtc2l6aW5nXHJcbiAgICAgICAqL1xyXG4gICAgICBib3g6IFt7XHJcbiAgICAgICAgYm94OiBbJ2JvcmRlcicsICdjb250ZW50J11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBEaXNwbGF5XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXNwbGF5XHJcbiAgICAgICAqL1xyXG4gICAgICBkaXNwbGF5OiBbJ2Jsb2NrJywgJ2lubGluZS1ibG9jaycsICdpbmxpbmUnLCAnZmxleCcsICdpbmxpbmUtZmxleCcsICd0YWJsZScsICdpbmxpbmUtdGFibGUnLCAndGFibGUtY2FwdGlvbicsICd0YWJsZS1jZWxsJywgJ3RhYmxlLWNvbHVtbicsICd0YWJsZS1jb2x1bW4tZ3JvdXAnLCAndGFibGUtZm9vdGVyLWdyb3VwJywgJ3RhYmxlLWhlYWRlci1ncm91cCcsICd0YWJsZS1yb3ctZ3JvdXAnLCAndGFibGUtcm93JywgJ2Zsb3ctcm9vdCcsICdncmlkJywgJ2lubGluZS1ncmlkJywgJ2NvbnRlbnRzJywgJ2xpc3QtaXRlbScsICdoaWRkZW4nXSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEZsb2F0c1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxvYXRcclxuICAgICAgICovXHJcbiAgICAgIGZsb2F0OiBbe1xyXG4gICAgICAgIGZsb2F0OiBbJ3JpZ2h0JywgJ2xlZnQnLCAnbm9uZScsICdzdGFydCcsICdlbmQnXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIENsZWFyXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jbGVhclxyXG4gICAgICAgKi9cclxuICAgICAgY2xlYXI6IFt7XHJcbiAgICAgICAgY2xlYXI6IFsnbGVmdCcsICdyaWdodCcsICdib3RoJywgJ25vbmUnLCAnc3RhcnQnLCAnZW5kJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBJc29sYXRpb25cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2lzb2xhdGlvblxyXG4gICAgICAgKi9cclxuICAgICAgaXNvbGF0aW9uOiBbJ2lzb2xhdGUnLCAnaXNvbGF0aW9uLWF1dG8nXSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIE9iamVjdCBGaXRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL29iamVjdC1maXRcclxuICAgICAgICovXHJcbiAgICAgICdvYmplY3QtZml0JzogW3tcclxuICAgICAgICBvYmplY3Q6IFsnY29udGFpbicsICdjb3ZlcicsICdmaWxsJywgJ25vbmUnLCAnc2NhbGUtZG93biddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogT2JqZWN0IFBvc2l0aW9uXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vYmplY3QtcG9zaXRpb25cclxuICAgICAgICovXHJcbiAgICAgICdvYmplY3QtcG9zaXRpb24nOiBbe1xyXG4gICAgICAgIG9iamVjdDogWy4uLmdldFBvc2l0aW9ucygpLCBpc0FyYml0cmFyeVZhbHVlXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIE92ZXJmbG93XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdmVyZmxvd1xyXG4gICAgICAgKi9cclxuICAgICAgb3ZlcmZsb3c6IFt7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGdldE92ZXJmbG93KClcclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBPdmVyZmxvdyBYXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdmVyZmxvd1xyXG4gICAgICAgKi9cclxuICAgICAgJ292ZXJmbG93LXgnOiBbe1xyXG4gICAgICAgICdvdmVyZmxvdy14JzogZ2V0T3ZlcmZsb3coKVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIE92ZXJmbG93IFlcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJmbG93XHJcbiAgICAgICAqL1xyXG4gICAgICAnb3ZlcmZsb3cteSc6IFt7XHJcbiAgICAgICAgJ292ZXJmbG93LXknOiBnZXRPdmVyZmxvdygpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogT3ZlcnNjcm9sbCBCZWhhdmlvclxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcnNjcm9sbC1iZWhhdmlvclxyXG4gICAgICAgKi9cclxuICAgICAgb3ZlcnNjcm9sbDogW3tcclxuICAgICAgICBvdmVyc2Nyb2xsOiBnZXRPdmVyc2Nyb2xsKClcclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBPdmVyc2Nyb2xsIEJlaGF2aW9yIFhcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJzY3JvbGwtYmVoYXZpb3JcclxuICAgICAgICovXHJcbiAgICAgICdvdmVyc2Nyb2xsLXgnOiBbe1xyXG4gICAgICAgICdvdmVyc2Nyb2xsLXgnOiBnZXRPdmVyc2Nyb2xsKClcclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBPdmVyc2Nyb2xsIEJlaGF2aW9yIFlcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJzY3JvbGwtYmVoYXZpb3JcclxuICAgICAgICovXHJcbiAgICAgICdvdmVyc2Nyb2xsLXknOiBbe1xyXG4gICAgICAgICdvdmVyc2Nyb2xsLXknOiBnZXRPdmVyc2Nyb2xsKClcclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBQb3NpdGlvblxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcG9zaXRpb25cclxuICAgICAgICovXHJcbiAgICAgIHBvc2l0aW9uOiBbJ3N0YXRpYycsICdmaXhlZCcsICdhYnNvbHV0ZScsICdyZWxhdGl2ZScsICdzdGlja3knXSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFRvcCAvIFJpZ2h0IC8gQm90dG9tIC8gTGVmdFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XHJcbiAgICAgICAqL1xyXG4gICAgICBpbnNldDogW3tcclxuICAgICAgICBpbnNldDogW2luc2V0XVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFJpZ2h0IC8gTGVmdFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XHJcbiAgICAgICAqL1xyXG4gICAgICAnaW5zZXQteCc6IFt7XHJcbiAgICAgICAgJ2luc2V0LXgnOiBbaW5zZXRdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogVG9wIC8gQm90dG9tXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcclxuICAgICAgICovXHJcbiAgICAgICdpbnNldC15JzogW3tcclxuICAgICAgICAnaW5zZXQteSc6IFtpbnNldF1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTdGFydFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XHJcbiAgICAgICAqL1xyXG4gICAgICBzdGFydDogW3tcclxuICAgICAgICBzdGFydDogW2luc2V0XVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEVuZFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XHJcbiAgICAgICAqL1xyXG4gICAgICBlbmQ6IFt7XHJcbiAgICAgICAgZW5kOiBbaW5zZXRdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogVG9wXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcclxuICAgICAgICovXHJcbiAgICAgIHRvcDogW3tcclxuICAgICAgICB0b3A6IFtpbnNldF1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBSaWdodFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XHJcbiAgICAgICAqL1xyXG4gICAgICByaWdodDogW3tcclxuICAgICAgICByaWdodDogW2luc2V0XVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvdHRvbVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XHJcbiAgICAgICAqL1xyXG4gICAgICBib3R0b206IFt7XHJcbiAgICAgICAgYm90dG9tOiBbaW5zZXRdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogTGVmdFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XHJcbiAgICAgICAqL1xyXG4gICAgICBsZWZ0OiBbe1xyXG4gICAgICAgIGxlZnQ6IFtpbnNldF1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBWaXNpYmlsaXR5XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy92aXNpYmlsaXR5XHJcbiAgICAgICAqL1xyXG4gICAgICB2aXNpYmlsaXR5OiBbJ3Zpc2libGUnLCAnaW52aXNpYmxlJywgJ2NvbGxhcHNlJ10sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBaLUluZGV4XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy96LWluZGV4XHJcbiAgICAgICAqL1xyXG4gICAgICB6OiBbe1xyXG4gICAgICAgIHo6IFsnYXV0bycsIGlzSW50ZWdlciwgaXNBcmJpdHJhcnlWYWx1ZV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8vIEZsZXhib3ggYW5kIEdyaWRcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEZsZXggQmFzaXNcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtYmFzaXNcclxuICAgICAgICovXHJcbiAgICAgIGJhc2lzOiBbe1xyXG4gICAgICAgIGJhc2lzOiBnZXRTcGFjaW5nV2l0aEF1dG9BbmRBcmJpdHJhcnkoKVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEZsZXggRGlyZWN0aW9uXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mbGV4LWRpcmVjdGlvblxyXG4gICAgICAgKi9cclxuICAgICAgJ2ZsZXgtZGlyZWN0aW9uJzogW3tcclxuICAgICAgICBmbGV4OiBbJ3JvdycsICdyb3ctcmV2ZXJzZScsICdjb2wnLCAnY29sLXJldmVyc2UnXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEZsZXggV3JhcFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleC13cmFwXHJcbiAgICAgICAqL1xyXG4gICAgICAnZmxleC13cmFwJzogW3tcclxuICAgICAgICBmbGV4OiBbJ3dyYXAnLCAnd3JhcC1yZXZlcnNlJywgJ25vd3JhcCddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogRmxleFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleFxyXG4gICAgICAgKi9cclxuICAgICAgZmxleDogW3tcclxuICAgICAgICBmbGV4OiBbJzEnLCAnYXV0bycsICdpbml0aWFsJywgJ25vbmUnLCBpc0FyYml0cmFyeVZhbHVlXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEZsZXggR3Jvd1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleC1ncm93XHJcbiAgICAgICAqL1xyXG4gICAgICBncm93OiBbe1xyXG4gICAgICAgIGdyb3c6IGdldFplcm9BbmRFbXB0eSgpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogRmxleCBTaHJpbmtcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtc2hyaW5rXHJcbiAgICAgICAqL1xyXG4gICAgICBzaHJpbms6IFt7XHJcbiAgICAgICAgc2hyaW5rOiBnZXRaZXJvQW5kRW1wdHkoKVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIE9yZGVyXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vcmRlclxyXG4gICAgICAgKi9cclxuICAgICAgb3JkZXI6IFt7XHJcbiAgICAgICAgb3JkZXI6IFsnZmlyc3QnLCAnbGFzdCcsICdub25lJywgaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEdyaWQgVGVtcGxhdGUgQ29sdW1uc1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zXHJcbiAgICAgICAqL1xyXG4gICAgICAnZ3JpZC1jb2xzJzogW3tcclxuICAgICAgICAnZ3JpZC1jb2xzJzogW2lzQW55XVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEdyaWQgQ29sdW1uIFN0YXJ0IC8gRW5kXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLWNvbHVtblxyXG4gICAgICAgKi9cclxuICAgICAgJ2NvbC1zdGFydC1lbmQnOiBbe1xyXG4gICAgICAgIGNvbDogWydhdXRvJywge1xyXG4gICAgICAgICAgc3BhbjogWydmdWxsJywgaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxyXG4gICAgICAgIH0sIGlzQXJiaXRyYXJ5VmFsdWVdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogR3JpZCBDb2x1bW4gU3RhcnRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtY29sdW1uXHJcbiAgICAgICAqL1xyXG4gICAgICAnY29sLXN0YXJ0JzogW3tcclxuICAgICAgICAnY29sLXN0YXJ0JzogZ2V0TnVtYmVyV2l0aEF1dG9BbmRBcmJpdHJhcnkoKVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEdyaWQgQ29sdW1uIEVuZFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1jb2x1bW5cclxuICAgICAgICovXHJcbiAgICAgICdjb2wtZW5kJzogW3tcclxuICAgICAgICAnY29sLWVuZCc6IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5KClcclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBHcmlkIFRlbXBsYXRlIFJvd3NcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtdGVtcGxhdGUtcm93c1xyXG4gICAgICAgKi9cclxuICAgICAgJ2dyaWQtcm93cyc6IFt7XHJcbiAgICAgICAgJ2dyaWQtcm93cyc6IFtpc0FueV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBHcmlkIFJvdyBTdGFydCAvIEVuZFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1yb3dcclxuICAgICAgICovXHJcbiAgICAgICdyb3ctc3RhcnQtZW5kJzogW3tcclxuICAgICAgICByb3c6IFsnYXV0bycsIHtcclxuICAgICAgICAgIHNwYW46IFtpc0ludGVnZXIsIGlzQXJiaXRyYXJ5VmFsdWVdXHJcbiAgICAgICAgfSwgaXNBcmJpdHJhcnlWYWx1ZV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBHcmlkIFJvdyBTdGFydFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1yb3dcclxuICAgICAgICovXHJcbiAgICAgICdyb3ctc3RhcnQnOiBbe1xyXG4gICAgICAgICdyb3ctc3RhcnQnOiBnZXROdW1iZXJXaXRoQXV0b0FuZEFyYml0cmFyeSgpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogR3JpZCBSb3cgRW5kXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXJvd1xyXG4gICAgICAgKi9cclxuICAgICAgJ3Jvdy1lbmQnOiBbe1xyXG4gICAgICAgICdyb3ctZW5kJzogZ2V0TnVtYmVyV2l0aEF1dG9BbmRBcmJpdHJhcnkoKVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEdyaWQgQXV0byBGbG93XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLWF1dG8tZmxvd1xyXG4gICAgICAgKi9cclxuICAgICAgJ2dyaWQtZmxvdyc6IFt7XHJcbiAgICAgICAgJ2dyaWQtZmxvdyc6IFsncm93JywgJ2NvbCcsICdkZW5zZScsICdyb3ctZGVuc2UnLCAnY29sLWRlbnNlJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBHcmlkIEF1dG8gQ29sdW1uc1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1hdXRvLWNvbHVtbnNcclxuICAgICAgICovXHJcbiAgICAgICdhdXRvLWNvbHMnOiBbe1xyXG4gICAgICAgICdhdXRvLWNvbHMnOiBbJ2F1dG8nLCAnbWluJywgJ21heCcsICdmcicsIGlzQXJiaXRyYXJ5VmFsdWVdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogR3JpZCBBdXRvIFJvd3NcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtYXV0by1yb3dzXHJcbiAgICAgICAqL1xyXG4gICAgICAnYXV0by1yb3dzJzogW3tcclxuICAgICAgICAnYXV0by1yb3dzJzogWydhdXRvJywgJ21pbicsICdtYXgnLCAnZnInLCBpc0FyYml0cmFyeVZhbHVlXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEdhcFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ2FwXHJcbiAgICAgICAqL1xyXG4gICAgICBnYXA6IFt7XHJcbiAgICAgICAgZ2FwOiBbZ2FwXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEdhcCBYXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9nYXBcclxuICAgICAgICovXHJcbiAgICAgICdnYXAteCc6IFt7XHJcbiAgICAgICAgJ2dhcC14JzogW2dhcF1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBHYXAgWVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ2FwXHJcbiAgICAgICAqL1xyXG4gICAgICAnZ2FwLXknOiBbe1xyXG4gICAgICAgICdnYXAteSc6IFtnYXBdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogSnVzdGlmeSBDb250ZW50XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9qdXN0aWZ5LWNvbnRlbnRcclxuICAgICAgICovXHJcbiAgICAgICdqdXN0aWZ5LWNvbnRlbnQnOiBbe1xyXG4gICAgICAgIGp1c3RpZnk6IFsnbm9ybWFsJywgLi4uZ2V0QWxpZ24oKV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IEl0ZW1zXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9qdXN0aWZ5LWl0ZW1zXHJcbiAgICAgICAqL1xyXG4gICAgICAnanVzdGlmeS1pdGVtcyc6IFt7XHJcbiAgICAgICAgJ2p1c3RpZnktaXRlbXMnOiBbJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnc3RyZXRjaCddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogSnVzdGlmeSBTZWxmXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9qdXN0aWZ5LXNlbGZcclxuICAgICAgICovXHJcbiAgICAgICdqdXN0aWZ5LXNlbGYnOiBbe1xyXG4gICAgICAgICdqdXN0aWZ5LXNlbGYnOiBbJ2F1dG8nLCAnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBBbGlnbiBDb250ZW50XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbGlnbi1jb250ZW50XHJcbiAgICAgICAqL1xyXG4gICAgICAnYWxpZ24tY29udGVudCc6IFt7XHJcbiAgICAgICAgY29udGVudDogWydub3JtYWwnLCAuLi5nZXRBbGlnbigpLCAnYmFzZWxpbmUnXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEFsaWduIEl0ZW1zXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbGlnbi1pdGVtc1xyXG4gICAgICAgKi9cclxuICAgICAgJ2FsaWduLWl0ZW1zJzogW3tcclxuICAgICAgICBpdGVtczogWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2Jhc2VsaW5lJywgJ3N0cmV0Y2gnXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEFsaWduIFNlbGZcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FsaWduLXNlbGZcclxuICAgICAgICovXHJcbiAgICAgICdhbGlnbi1zZWxmJzogW3tcclxuICAgICAgICBzZWxmOiBbJ2F1dG8nLCAnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJywgJ2Jhc2VsaW5lJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBQbGFjZSBDb250ZW50XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wbGFjZS1jb250ZW50XHJcbiAgICAgICAqL1xyXG4gICAgICAncGxhY2UtY29udGVudCc6IFt7XHJcbiAgICAgICAgJ3BsYWNlLWNvbnRlbnQnOiBbLi4uZ2V0QWxpZ24oKSwgJ2Jhc2VsaW5lJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBQbGFjZSBJdGVtc1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGxhY2UtaXRlbXNcclxuICAgICAgICovXHJcbiAgICAgICdwbGFjZS1pdGVtcyc6IFt7XHJcbiAgICAgICAgJ3BsYWNlLWl0ZW1zJzogWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2Jhc2VsaW5lJywgJ3N0cmV0Y2gnXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFBsYWNlIFNlbGZcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BsYWNlLXNlbGZcclxuICAgICAgICovXHJcbiAgICAgICdwbGFjZS1zZWxmJzogW3tcclxuICAgICAgICAncGxhY2Utc2VsZic6IFsnYXV0bycsICdzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ3N0cmV0Y2gnXVxyXG4gICAgICB9XSxcclxuICAgICAgLy8gU3BhY2luZ1xyXG4gICAgICAvKipcclxuICAgICAgICogUGFkZGluZ1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xyXG4gICAgICAgKi9cclxuICAgICAgcDogW3tcclxuICAgICAgICBwOiBbcGFkZGluZ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBQYWRkaW5nIFhcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcclxuICAgICAgICovXHJcbiAgICAgIHB4OiBbe1xyXG4gICAgICAgIHB4OiBbcGFkZGluZ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBQYWRkaW5nIFlcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcclxuICAgICAgICovXHJcbiAgICAgIHB5OiBbe1xyXG4gICAgICAgIHB5OiBbcGFkZGluZ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBQYWRkaW5nIFN0YXJ0XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXHJcbiAgICAgICAqL1xyXG4gICAgICBwczogW3tcclxuICAgICAgICBwczogW3BhZGRpbmddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogUGFkZGluZyBFbmRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcclxuICAgICAgICovXHJcbiAgICAgIHBlOiBbe1xyXG4gICAgICAgIHBlOiBbcGFkZGluZ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBQYWRkaW5nIFRvcFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xyXG4gICAgICAgKi9cclxuICAgICAgcHQ6IFt7XHJcbiAgICAgICAgcHQ6IFtwYWRkaW5nXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFBhZGRpbmcgUmlnaHRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcclxuICAgICAgICovXHJcbiAgICAgIHByOiBbe1xyXG4gICAgICAgIHByOiBbcGFkZGluZ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBQYWRkaW5nIEJvdHRvbVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xyXG4gICAgICAgKi9cclxuICAgICAgcGI6IFt7XHJcbiAgICAgICAgcGI6IFtwYWRkaW5nXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFBhZGRpbmcgTGVmdFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xyXG4gICAgICAgKi9cclxuICAgICAgcGw6IFt7XHJcbiAgICAgICAgcGw6IFtwYWRkaW5nXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIE1hcmdpblxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXHJcbiAgICAgICAqL1xyXG4gICAgICBtOiBbe1xyXG4gICAgICAgIG06IFttYXJnaW5dXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogTWFyZ2luIFhcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxyXG4gICAgICAgKi9cclxuICAgICAgbXg6IFt7XHJcbiAgICAgICAgbXg6IFttYXJnaW5dXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogTWFyZ2luIFlcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxyXG4gICAgICAgKi9cclxuICAgICAgbXk6IFt7XHJcbiAgICAgICAgbXk6IFttYXJnaW5dXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogTWFyZ2luIFN0YXJ0XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cclxuICAgICAgICovXHJcbiAgICAgIG1zOiBbe1xyXG4gICAgICAgIG1zOiBbbWFyZ2luXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIE1hcmdpbiBFbmRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxyXG4gICAgICAgKi9cclxuICAgICAgbWU6IFt7XHJcbiAgICAgICAgbWU6IFttYXJnaW5dXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogTWFyZ2luIFRvcFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXHJcbiAgICAgICAqL1xyXG4gICAgICBtdDogW3tcclxuICAgICAgICBtdDogW21hcmdpbl1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBNYXJnaW4gUmlnaHRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxyXG4gICAgICAgKi9cclxuICAgICAgbXI6IFt7XHJcbiAgICAgICAgbXI6IFttYXJnaW5dXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogTWFyZ2luIEJvdHRvbVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXHJcbiAgICAgICAqL1xyXG4gICAgICBtYjogW3tcclxuICAgICAgICBtYjogW21hcmdpbl1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBNYXJnaW4gTGVmdFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXHJcbiAgICAgICAqL1xyXG4gICAgICBtbDogW3tcclxuICAgICAgICBtbDogW21hcmdpbl1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTcGFjZSBCZXR3ZWVuIFhcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NwYWNlXHJcbiAgICAgICAqL1xyXG4gICAgICAnc3BhY2UteCc6IFt7XHJcbiAgICAgICAgJ3NwYWNlLXgnOiBbc3BhY2VdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU3BhY2UgQmV0d2VlbiBYIFJldmVyc2VcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NwYWNlXHJcbiAgICAgICAqL1xyXG4gICAgICAnc3BhY2UteC1yZXZlcnNlJzogWydzcGFjZS14LXJldmVyc2UnXSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFNwYWNlIEJldHdlZW4gWVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3BhY2VcclxuICAgICAgICovXHJcbiAgICAgICdzcGFjZS15JzogW3tcclxuICAgICAgICAnc3BhY2UteSc6IFtzcGFjZV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTcGFjZSBCZXR3ZWVuIFkgUmV2ZXJzZVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3BhY2VcclxuICAgICAgICovXHJcbiAgICAgICdzcGFjZS15LXJldmVyc2UnOiBbJ3NwYWNlLXktcmV2ZXJzZSddLFxyXG4gICAgICAvLyBTaXppbmdcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFdpZHRoXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy93aWR0aFxyXG4gICAgICAgKi9cclxuICAgICAgdzogW3tcclxuICAgICAgICB3OiBbJ2F1dG8nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3Z3JywgJ2x2dycsICdkdncnLCBpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIE1pbi1XaWR0aFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWluLXdpZHRoXHJcbiAgICAgICAqL1xyXG4gICAgICAnbWluLXcnOiBbe1xyXG4gICAgICAgICdtaW4tdyc6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnbWluJywgJ21heCcsICdmaXQnXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIE1heC1XaWR0aFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWF4LXdpZHRoXHJcbiAgICAgICAqL1xyXG4gICAgICAnbWF4LXcnOiBbe1xyXG4gICAgICAgICdtYXgtdyc6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnbm9uZScsICdmdWxsJywgJ21pbicsICdtYXgnLCAnZml0JywgJ3Byb3NlJywge1xyXG4gICAgICAgICAgc2NyZWVuOiBbaXNUc2hpcnRTaXplXVxyXG4gICAgICAgIH0sIGlzVHNoaXJ0U2l6ZV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBIZWlnaHRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2hlaWdodFxyXG4gICAgICAgKi9cclxuICAgICAgaDogW3tcclxuICAgICAgICBoOiBbaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZywgJ2F1dG8nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3ZoJywgJ2x2aCcsICdkdmgnXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIE1pbi1IZWlnaHRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21pbi1oZWlnaHRcclxuICAgICAgICovXHJcbiAgICAgICdtaW4taCc6IFt7XHJcbiAgICAgICAgJ21pbi1oJzogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdtaW4nLCAnbWF4JywgJ2ZpdCcsICdzdmgnLCAnbHZoJywgJ2R2aCddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogTWF4LUhlaWdodFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWF4LWhlaWdodFxyXG4gICAgICAgKi9cclxuICAgICAgJ21heC1oJzogW3tcclxuICAgICAgICAnbWF4LWgnOiBbaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZywgJ21pbicsICdtYXgnLCAnZml0JywgJ3N2aCcsICdsdmgnLCAnZHZoJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTaXplXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zaXplXHJcbiAgICAgICAqL1xyXG4gICAgICBzaXplOiBbe1xyXG4gICAgICAgIHNpemU6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZpdCddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvLyBUeXBvZ3JhcGh5XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBGb250IFNpemVcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtc2l6ZVxyXG4gICAgICAgKi9cclxuICAgICAgJ2ZvbnQtc2l6ZSc6IFt7XHJcbiAgICAgICAgdGV4dDogWydiYXNlJywgaXNUc2hpcnRTaXplLCBpc0FyYml0cmFyeUxlbmd0aF1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBGb250IFNtb290aGluZ1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC1zbW9vdGhpbmdcclxuICAgICAgICovXHJcbiAgICAgICdmb250LXNtb290aGluZyc6IFsnYW50aWFsaWFzZWQnLCAnc3VicGl4ZWwtYW50aWFsaWFzZWQnXSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEZvbnQgU3R5bGVcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtc3R5bGVcclxuICAgICAgICovXHJcbiAgICAgICdmb250LXN0eWxlJzogWydpdGFsaWMnLCAnbm90LWl0YWxpYyddLFxyXG4gICAgICAvKipcclxuICAgICAgICogRm9udCBXZWlnaHRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtd2VpZ2h0XHJcbiAgICAgICAqL1xyXG4gICAgICAnZm9udC13ZWlnaHQnOiBbe1xyXG4gICAgICAgIGZvbnQ6IFsndGhpbicsICdleHRyYWxpZ2h0JywgJ2xpZ2h0JywgJ25vcm1hbCcsICdtZWRpdW0nLCAnc2VtaWJvbGQnLCAnYm9sZCcsICdleHRyYWJvbGQnLCAnYmxhY2snLCBpc0FyYml0cmFyeU51bWJlcl1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBGb250IEZhbWlseVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC1mYW1pbHlcclxuICAgICAgICovXHJcbiAgICAgICdmb250LWZhbWlseSc6IFt7XHJcbiAgICAgICAgZm9udDogW2lzQW55XVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEZvbnQgVmFyaWFudCBOdW1lcmljXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xyXG4gICAgICAgKi9cclxuICAgICAgJ2Z2bi1ub3JtYWwnOiBbJ25vcm1hbC1udW1zJ10sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC12YXJpYW50LW51bWVyaWNcclxuICAgICAgICovXHJcbiAgICAgICdmdm4tb3JkaW5hbCc6IFsnb3JkaW5hbCddLFxyXG4gICAgICAvKipcclxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXHJcbiAgICAgICAqL1xyXG4gICAgICAnZnZuLXNsYXNoZWQtemVybyc6IFsnc2xhc2hlZC16ZXJvJ10sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC12YXJpYW50LW51bWVyaWNcclxuICAgICAgICovXHJcbiAgICAgICdmdm4tZmlndXJlJzogWydsaW5pbmctbnVtcycsICdvbGRzdHlsZS1udW1zJ10sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC12YXJpYW50LW51bWVyaWNcclxuICAgICAgICovXHJcbiAgICAgICdmdm4tc3BhY2luZyc6IFsncHJvcG9ydGlvbmFsLW51bXMnLCAndGFidWxhci1udW1zJ10sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC12YXJpYW50LW51bWVyaWNcclxuICAgICAgICovXHJcbiAgICAgICdmdm4tZnJhY3Rpb24nOiBbJ2RpYWdvbmFsLWZyYWN0aW9ucycsICdzdGFja2VkLWZyYWN0aW9ucyddLFxyXG4gICAgICAvKipcclxuICAgICAgICogTGV0dGVyIFNwYWNpbmdcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xldHRlci1zcGFjaW5nXHJcbiAgICAgICAqL1xyXG4gICAgICB0cmFja2luZzogW3tcclxuICAgICAgICB0cmFja2luZzogWyd0aWdodGVyJywgJ3RpZ2h0JywgJ25vcm1hbCcsICd3aWRlJywgJ3dpZGVyJywgJ3dpZGVzdCcsIGlzQXJiaXRyYXJ5VmFsdWVdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogTGluZSBDbGFtcFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbGluZS1jbGFtcFxyXG4gICAgICAgKi9cclxuICAgICAgJ2xpbmUtY2xhbXAnOiBbe1xyXG4gICAgICAgICdsaW5lLWNsYW1wJzogWydub25lJywgaXNOdW1iZXIsIGlzQXJiaXRyYXJ5TnVtYmVyXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIExpbmUgSGVpZ2h0XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9saW5lLWhlaWdodFxyXG4gICAgICAgKi9cclxuICAgICAgbGVhZGluZzogW3tcclxuICAgICAgICBsZWFkaW5nOiBbJ25vbmUnLCAndGlnaHQnLCAnc251ZycsICdub3JtYWwnLCAncmVsYXhlZCcsICdsb29zZScsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeVZhbHVlXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIExpc3QgU3R5bGUgSW1hZ2VcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpc3Qtc3R5bGUtaW1hZ2VcclxuICAgICAgICovXHJcbiAgICAgICdsaXN0LWltYWdlJzogW3tcclxuICAgICAgICAnbGlzdC1pbWFnZSc6IFsnbm9uZScsIGlzQXJiaXRyYXJ5VmFsdWVdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogTGlzdCBTdHlsZSBUeXBlXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9saXN0LXN0eWxlLXR5cGVcclxuICAgICAgICovXHJcbiAgICAgICdsaXN0LXN0eWxlLXR5cGUnOiBbe1xyXG4gICAgICAgIGxpc3Q6IFsnbm9uZScsICdkaXNjJywgJ2RlY2ltYWwnLCBpc0FyYml0cmFyeVZhbHVlXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIExpc3QgU3R5bGUgUG9zaXRpb25cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpc3Qtc3R5bGUtcG9zaXRpb25cclxuICAgICAgICovXHJcbiAgICAgICdsaXN0LXN0eWxlLXBvc2l0aW9uJzogW3tcclxuICAgICAgICBsaXN0OiBbJ2luc2lkZScsICdvdXRzaWRlJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBQbGFjZWhvbGRlciBDb2xvclxyXG4gICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBUYWlsd2luZCBDU1MgdjMuMC4wXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wbGFjZWhvbGRlci1jb2xvclxyXG4gICAgICAgKi9cclxuICAgICAgJ3BsYWNlaG9sZGVyLWNvbG9yJzogW3tcclxuICAgICAgICBwbGFjZWhvbGRlcjogW2NvbG9yc11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBQbGFjZWhvbGRlciBPcGFjaXR5XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wbGFjZWhvbGRlci1vcGFjaXR5XHJcbiAgICAgICAqL1xyXG4gICAgICAncGxhY2Vob2xkZXItb3BhY2l0eSc6IFt7XHJcbiAgICAgICAgJ3BsYWNlaG9sZGVyLW9wYWNpdHknOiBbb3BhY2l0eV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBUZXh0IEFsaWdubWVudFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1hbGlnblxyXG4gICAgICAgKi9cclxuICAgICAgJ3RleHQtYWxpZ25tZW50JzogW3tcclxuICAgICAgICB0ZXh0OiBbJ2xlZnQnLCAnY2VudGVyJywgJ3JpZ2h0JywgJ2p1c3RpZnknLCAnc3RhcnQnLCAnZW5kJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBUZXh0IENvbG9yXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWNvbG9yXHJcbiAgICAgICAqL1xyXG4gICAgICAndGV4dC1jb2xvcic6IFt7XHJcbiAgICAgICAgdGV4dDogW2NvbG9yc11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBUZXh0IE9wYWNpdHlcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtb3BhY2l0eVxyXG4gICAgICAgKi9cclxuICAgICAgJ3RleHQtb3BhY2l0eSc6IFt7XHJcbiAgICAgICAgJ3RleHQtb3BhY2l0eSc6IFtvcGFjaXR5XVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFRleHQgRGVjb3JhdGlvblxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1kZWNvcmF0aW9uXHJcbiAgICAgICAqL1xyXG4gICAgICAndGV4dC1kZWNvcmF0aW9uJzogWyd1bmRlcmxpbmUnLCAnb3ZlcmxpbmUnLCAnbGluZS10aHJvdWdoJywgJ25vLXVuZGVybGluZSddLFxyXG4gICAgICAvKipcclxuICAgICAgICogVGV4dCBEZWNvcmF0aW9uIFN0eWxlXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWRlY29yYXRpb24tc3R5bGVcclxuICAgICAgICovXHJcbiAgICAgICd0ZXh0LWRlY29yYXRpb24tc3R5bGUnOiBbe1xyXG4gICAgICAgIGRlY29yYXRpb246IFsuLi5nZXRMaW5lU3R5bGVzKCksICd3YXZ5J11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBUZXh0IERlY29yYXRpb24gVGhpY2tuZXNzXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzXHJcbiAgICAgICAqL1xyXG4gICAgICAndGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcyc6IFt7XHJcbiAgICAgICAgZGVjb3JhdGlvbjogWydhdXRvJywgJ2Zyb20tZm9udCcsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBUZXh0IFVuZGVybGluZSBPZmZzZXRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtdW5kZXJsaW5lLW9mZnNldFxyXG4gICAgICAgKi9cclxuICAgICAgJ3VuZGVybGluZS1vZmZzZXQnOiBbe1xyXG4gICAgICAgICd1bmRlcmxpbmUtb2Zmc2V0JzogWydhdXRvJywgaXNMZW5ndGgsIGlzQXJiaXRyYXJ5VmFsdWVdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogVGV4dCBEZWNvcmF0aW9uIENvbG9yXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWRlY29yYXRpb24tY29sb3JcclxuICAgICAgICovXHJcbiAgICAgICd0ZXh0LWRlY29yYXRpb24tY29sb3InOiBbe1xyXG4gICAgICAgIGRlY29yYXRpb246IFtjb2xvcnNdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogVGV4dCBUcmFuc2Zvcm1cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtdHJhbnNmb3JtXHJcbiAgICAgICAqL1xyXG4gICAgICAndGV4dC10cmFuc2Zvcm0nOiBbJ3VwcGVyY2FzZScsICdsb3dlcmNhc2UnLCAnY2FwaXRhbGl6ZScsICdub3JtYWwtY2FzZSddLFxyXG4gICAgICAvKipcclxuICAgICAgICogVGV4dCBPdmVyZmxvd1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1vdmVyZmxvd1xyXG4gICAgICAgKi9cclxuICAgICAgJ3RleHQtb3ZlcmZsb3cnOiBbJ3RydW5jYXRlJywgJ3RleHQtZWxsaXBzaXMnLCAndGV4dC1jbGlwJ10sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBUZXh0IFdyYXBcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtd3JhcFxyXG4gICAgICAgKi9cclxuICAgICAgJ3RleHQtd3JhcCc6IFt7XHJcbiAgICAgICAgdGV4dDogWyd3cmFwJywgJ25vd3JhcCcsICdiYWxhbmNlJywgJ3ByZXR0eSddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogVGV4dCBJbmRlbnRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtaW5kZW50XHJcbiAgICAgICAqL1xyXG4gICAgICBpbmRlbnQ6IFt7XHJcbiAgICAgICAgaW5kZW50OiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogVmVydGljYWwgQWxpZ25tZW50XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy92ZXJ0aWNhbC1hbGlnblxyXG4gICAgICAgKi9cclxuICAgICAgJ3ZlcnRpY2FsLWFsaWduJzogW3tcclxuICAgICAgICBhbGlnbjogWydiYXNlbGluZScsICd0b3AnLCAnbWlkZGxlJywgJ2JvdHRvbScsICd0ZXh0LXRvcCcsICd0ZXh0LWJvdHRvbScsICdzdWInLCAnc3VwZXInLCBpc0FyYml0cmFyeVZhbHVlXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFdoaXRlc3BhY2VcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3doaXRlc3BhY2VcclxuICAgICAgICovXHJcbiAgICAgIHdoaXRlc3BhY2U6IFt7XHJcbiAgICAgICAgd2hpdGVzcGFjZTogWydub3JtYWwnLCAnbm93cmFwJywgJ3ByZScsICdwcmUtbGluZScsICdwcmUtd3JhcCcsICdicmVhay1zcGFjZXMnXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFdvcmQgQnJlYWtcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3dvcmQtYnJlYWtcclxuICAgICAgICovXHJcbiAgICAgIGJyZWFrOiBbe1xyXG4gICAgICAgIGJyZWFrOiBbJ25vcm1hbCcsICd3b3JkcycsICdhbGwnLCAna2VlcCddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogSHlwaGVuc1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaHlwaGVuc1xyXG4gICAgICAgKi9cclxuICAgICAgaHlwaGVuczogW3tcclxuICAgICAgICBoeXBoZW5zOiBbJ25vbmUnLCAnbWFudWFsJywgJ2F1dG8nXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIENvbnRlbnRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbnRlbnRcclxuICAgICAgICovXHJcbiAgICAgIGNvbnRlbnQ6IFt7XHJcbiAgICAgICAgY29udGVudDogWydub25lJywgaXNBcmJpdHJhcnlWYWx1ZV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8vIEJhY2tncm91bmRzXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCYWNrZ3JvdW5kIEF0dGFjaG1lbnRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtYXR0YWNobWVudFxyXG4gICAgICAgKi9cclxuICAgICAgJ2JnLWF0dGFjaG1lbnQnOiBbe1xyXG4gICAgICAgIGJnOiBbJ2ZpeGVkJywgJ2xvY2FsJywgJ3Njcm9sbCddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQmFja2dyb3VuZCBDbGlwXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLWNsaXBcclxuICAgICAgICovXHJcbiAgICAgICdiZy1jbGlwJzogW3tcclxuICAgICAgICAnYmctY2xpcCc6IFsnYm9yZGVyJywgJ3BhZGRpbmcnLCAnY29udGVudCcsICd0ZXh0J11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCYWNrZ3JvdW5kIE9wYWNpdHlcclxuICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgVGFpbHdpbmQgQ1NTIHYzLjAuMFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1vcGFjaXR5XHJcbiAgICAgICAqL1xyXG4gICAgICAnYmctb3BhY2l0eSc6IFt7XHJcbiAgICAgICAgJ2JnLW9wYWNpdHknOiBbb3BhY2l0eV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCYWNrZ3JvdW5kIE9yaWdpblxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1vcmlnaW5cclxuICAgICAgICovXHJcbiAgICAgICdiZy1vcmlnaW4nOiBbe1xyXG4gICAgICAgICdiZy1vcmlnaW4nOiBbJ2JvcmRlcicsICdwYWRkaW5nJywgJ2NvbnRlbnQnXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJhY2tncm91bmQgUG9zaXRpb25cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtcG9zaXRpb25cclxuICAgICAgICovXHJcbiAgICAgICdiZy1wb3NpdGlvbic6IFt7XHJcbiAgICAgICAgYmc6IFsuLi5nZXRQb3NpdGlvbnMoKSwgaXNBcmJpdHJhcnlQb3NpdGlvbl1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCYWNrZ3JvdW5kIFJlcGVhdFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1yZXBlYXRcclxuICAgICAgICovXHJcbiAgICAgICdiZy1yZXBlYXQnOiBbe1xyXG4gICAgICAgIGJnOiBbJ25vLXJlcGVhdCcsIHtcclxuICAgICAgICAgIHJlcGVhdDogWycnLCAneCcsICd5JywgJ3JvdW5kJywgJ3NwYWNlJ11cclxuICAgICAgICB9XVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJhY2tncm91bmQgU2l6ZVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1zaXplXHJcbiAgICAgICAqL1xyXG4gICAgICAnYmctc2l6ZSc6IFt7XHJcbiAgICAgICAgYmc6IFsnYXV0bycsICdjb3ZlcicsICdjb250YWluJywgaXNBcmJpdHJhcnlTaXplXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJhY2tncm91bmQgSW1hZ2VcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtaW1hZ2VcclxuICAgICAgICovXHJcbiAgICAgICdiZy1pbWFnZSc6IFt7XHJcbiAgICAgICAgYmc6IFsnbm9uZScsIHtcclxuICAgICAgICAgICdncmFkaWVudC10byc6IFsndCcsICd0cicsICdyJywgJ2JyJywgJ2InLCAnYmwnLCAnbCcsICd0bCddXHJcbiAgICAgICAgfSwgaXNBcmJpdHJhcnlJbWFnZV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCYWNrZ3JvdW5kIENvbG9yXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLWNvbG9yXHJcbiAgICAgICAqL1xyXG4gICAgICAnYmctY29sb3InOiBbe1xyXG4gICAgICAgIGJnOiBbY29sb3JzXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIEZyb20gUG9zaXRpb25cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXHJcbiAgICAgICAqL1xyXG4gICAgICAnZ3JhZGllbnQtZnJvbS1wb3MnOiBbe1xyXG4gICAgICAgIGZyb206IFtncmFkaWVudENvbG9yU3RvcFBvc2l0aW9uc11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBWaWEgUG9zaXRpb25cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXHJcbiAgICAgICAqL1xyXG4gICAgICAnZ3JhZGllbnQtdmlhLXBvcyc6IFt7XHJcbiAgICAgICAgdmlhOiBbZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnNdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgVG8gUG9zaXRpb25cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXHJcbiAgICAgICAqL1xyXG4gICAgICAnZ3JhZGllbnQtdG8tcG9zJzogW3tcclxuICAgICAgICB0bzogW2dyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIEZyb21cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXHJcbiAgICAgICAqL1xyXG4gICAgICAnZ3JhZGllbnQtZnJvbSc6IFt7XHJcbiAgICAgICAgZnJvbTogW2dyYWRpZW50Q29sb3JTdG9wc11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBWaWFcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXHJcbiAgICAgICAqL1xyXG4gICAgICAnZ3JhZGllbnQtdmlhJzogW3tcclxuICAgICAgICB2aWE6IFtncmFkaWVudENvbG9yU3RvcHNdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgVG9cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXHJcbiAgICAgICAqL1xyXG4gICAgICAnZ3JhZGllbnQtdG8nOiBbe1xyXG4gICAgICAgIHRvOiBbZ3JhZGllbnRDb2xvclN0b3BzXVxyXG4gICAgICB9XSxcclxuICAgICAgLy8gQm9yZGVyc1xyXG4gICAgICAvKipcclxuICAgICAgICogQm9yZGVyIFJhZGl1c1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xyXG4gICAgICAgKi9cclxuICAgICAgcm91bmRlZDogW3tcclxuICAgICAgICByb3VuZGVkOiBbYm9yZGVyUmFkaXVzXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgU3RhcnRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcclxuICAgICAgICovXHJcbiAgICAgICdyb3VuZGVkLXMnOiBbe1xyXG4gICAgICAgICdyb3VuZGVkLXMnOiBbYm9yZGVyUmFkaXVzXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgRW5kXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXHJcbiAgICAgICAqL1xyXG4gICAgICAncm91bmRlZC1lJzogW3tcclxuICAgICAgICAncm91bmRlZC1lJzogW2JvcmRlclJhZGl1c11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFRvcFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xyXG4gICAgICAgKi9cclxuICAgICAgJ3JvdW5kZWQtdCc6IFt7XHJcbiAgICAgICAgJ3JvdW5kZWQtdCc6IFtib3JkZXJSYWRpdXNdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQm9yZGVyIFJhZGl1cyBSaWdodFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xyXG4gICAgICAgKi9cclxuICAgICAgJ3JvdW5kZWQtcic6IFt7XHJcbiAgICAgICAgJ3JvdW5kZWQtcic6IFtib3JkZXJSYWRpdXNdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQm9yZGVyIFJhZGl1cyBCb3R0b21cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcclxuICAgICAgICovXHJcbiAgICAgICdyb3VuZGVkLWInOiBbe1xyXG4gICAgICAgICdyb3VuZGVkLWInOiBbYm9yZGVyUmFkaXVzXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgTGVmdFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xyXG4gICAgICAgKi9cclxuICAgICAgJ3JvdW5kZWQtbCc6IFt7XHJcbiAgICAgICAgJ3JvdW5kZWQtbCc6IFtib3JkZXJSYWRpdXNdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQm9yZGVyIFJhZGl1cyBTdGFydCBTdGFydFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xyXG4gICAgICAgKi9cclxuICAgICAgJ3JvdW5kZWQtc3MnOiBbe1xyXG4gICAgICAgICdyb3VuZGVkLXNzJzogW2JvcmRlclJhZGl1c11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFN0YXJ0IEVuZFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xyXG4gICAgICAgKi9cclxuICAgICAgJ3JvdW5kZWQtc2UnOiBbe1xyXG4gICAgICAgICdyb3VuZGVkLXNlJzogW2JvcmRlclJhZGl1c11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEVuZCBFbmRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcclxuICAgICAgICovXHJcbiAgICAgICdyb3VuZGVkLWVlJzogW3tcclxuICAgICAgICAncm91bmRlZC1lZSc6IFtib3JkZXJSYWRpdXNdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQm9yZGVyIFJhZGl1cyBFbmQgU3RhcnRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcclxuICAgICAgICovXHJcbiAgICAgICdyb3VuZGVkLWVzJzogW3tcclxuICAgICAgICAncm91bmRlZC1lcyc6IFtib3JkZXJSYWRpdXNdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQm9yZGVyIFJhZGl1cyBUb3AgTGVmdFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xyXG4gICAgICAgKi9cclxuICAgICAgJ3JvdW5kZWQtdGwnOiBbe1xyXG4gICAgICAgICdyb3VuZGVkLXRsJzogW2JvcmRlclJhZGl1c11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFRvcCBSaWdodFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xyXG4gICAgICAgKi9cclxuICAgICAgJ3JvdW5kZWQtdHInOiBbe1xyXG4gICAgICAgICdyb3VuZGVkLXRyJzogW2JvcmRlclJhZGl1c11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEJvdHRvbSBSaWdodFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xyXG4gICAgICAgKi9cclxuICAgICAgJ3JvdW5kZWQtYnInOiBbe1xyXG4gICAgICAgICdyb3VuZGVkLWJyJzogW2JvcmRlclJhZGl1c11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEJvdHRvbSBMZWZ0XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXHJcbiAgICAgICAqL1xyXG4gICAgICAncm91bmRlZC1ibCc6IFt7XHJcbiAgICAgICAgJ3JvdW5kZWQtYmwnOiBbYm9yZGVyUmFkaXVzXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBXaWR0aFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXHJcbiAgICAgICAqL1xyXG4gICAgICAnYm9yZGVyLXcnOiBbe1xyXG4gICAgICAgIGJvcmRlcjogW2JvcmRlcldpZHRoXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBXaWR0aCBYXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcclxuICAgICAgICovXHJcbiAgICAgICdib3JkZXItdy14JzogW3tcclxuICAgICAgICAnYm9yZGVyLXgnOiBbYm9yZGVyV2lkdGhdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQm9yZGVyIFdpZHRoIFlcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxyXG4gICAgICAgKi9cclxuICAgICAgJ2JvcmRlci13LXknOiBbe1xyXG4gICAgICAgICdib3JkZXIteSc6IFtib3JkZXJXaWR0aF1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCb3JkZXIgV2lkdGggU3RhcnRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxyXG4gICAgICAgKi9cclxuICAgICAgJ2JvcmRlci13LXMnOiBbe1xyXG4gICAgICAgICdib3JkZXItcyc6IFtib3JkZXJXaWR0aF1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCb3JkZXIgV2lkdGggRW5kXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcclxuICAgICAgICovXHJcbiAgICAgICdib3JkZXItdy1lJzogW3tcclxuICAgICAgICAnYm9yZGVyLWUnOiBbYm9yZGVyV2lkdGhdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQm9yZGVyIFdpZHRoIFRvcFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXHJcbiAgICAgICAqL1xyXG4gICAgICAnYm9yZGVyLXctdCc6IFt7XHJcbiAgICAgICAgJ2JvcmRlci10JzogW2JvcmRlcldpZHRoXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBXaWR0aCBSaWdodFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXHJcbiAgICAgICAqL1xyXG4gICAgICAnYm9yZGVyLXctcic6IFt7XHJcbiAgICAgICAgJ2JvcmRlci1yJzogW2JvcmRlcldpZHRoXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBXaWR0aCBCb3R0b21cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxyXG4gICAgICAgKi9cclxuICAgICAgJ2JvcmRlci13LWInOiBbe1xyXG4gICAgICAgICdib3JkZXItYic6IFtib3JkZXJXaWR0aF1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCb3JkZXIgV2lkdGggTGVmdFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXHJcbiAgICAgICAqL1xyXG4gICAgICAnYm9yZGVyLXctbCc6IFt7XHJcbiAgICAgICAgJ2JvcmRlci1sJzogW2JvcmRlcldpZHRoXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBPcGFjaXR5XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItb3BhY2l0eVxyXG4gICAgICAgKi9cclxuICAgICAgJ2JvcmRlci1vcGFjaXR5JzogW3tcclxuICAgICAgICAnYm9yZGVyLW9wYWNpdHknOiBbb3BhY2l0eV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCb3JkZXIgU3R5bGVcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1zdHlsZVxyXG4gICAgICAgKi9cclxuICAgICAgJ2JvcmRlci1zdHlsZSc6IFt7XHJcbiAgICAgICAgYm9yZGVyOiBbLi4uZ2V0TGluZVN0eWxlcygpLCAnaGlkZGVuJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBEaXZpZGUgV2lkdGggWFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXdpZHRoXHJcbiAgICAgICAqL1xyXG4gICAgICAnZGl2aWRlLXgnOiBbe1xyXG4gICAgICAgICdkaXZpZGUteCc6IFtib3JkZXJXaWR0aF1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBEaXZpZGUgV2lkdGggWCBSZXZlcnNlXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtd2lkdGhcclxuICAgICAgICovXHJcbiAgICAgICdkaXZpZGUteC1yZXZlcnNlJzogWydkaXZpZGUteC1yZXZlcnNlJ10sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBEaXZpZGUgV2lkdGggWVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXdpZHRoXHJcbiAgICAgICAqL1xyXG4gICAgICAnZGl2aWRlLXknOiBbe1xyXG4gICAgICAgICdkaXZpZGUteSc6IFtib3JkZXJXaWR0aF1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBEaXZpZGUgV2lkdGggWSBSZXZlcnNlXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtd2lkdGhcclxuICAgICAgICovXHJcbiAgICAgICdkaXZpZGUteS1yZXZlcnNlJzogWydkaXZpZGUteS1yZXZlcnNlJ10sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBEaXZpZGUgT3BhY2l0eVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLW9wYWNpdHlcclxuICAgICAgICovXHJcbiAgICAgICdkaXZpZGUtb3BhY2l0eSc6IFt7XHJcbiAgICAgICAgJ2RpdmlkZS1vcGFjaXR5JzogW29wYWNpdHldXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogRGl2aWRlIFN0eWxlXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtc3R5bGVcclxuICAgICAgICovXHJcbiAgICAgICdkaXZpZGUtc3R5bGUnOiBbe1xyXG4gICAgICAgIGRpdmlkZTogZ2V0TGluZVN0eWxlcygpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQm9yZGVyIENvbG9yXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcclxuICAgICAgICovXHJcbiAgICAgICdib3JkZXItY29sb3InOiBbe1xyXG4gICAgICAgIGJvcmRlcjogW2JvcmRlckNvbG9yXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBDb2xvciBYXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcclxuICAgICAgICovXHJcbiAgICAgICdib3JkZXItY29sb3IteCc6IFt7XHJcbiAgICAgICAgJ2JvcmRlci14JzogW2JvcmRlckNvbG9yXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBDb2xvciBZXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcclxuICAgICAgICovXHJcbiAgICAgICdib3JkZXItY29sb3IteSc6IFt7XHJcbiAgICAgICAgJ2JvcmRlci15JzogW2JvcmRlckNvbG9yXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBDb2xvciBTXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcclxuICAgICAgICovXHJcbiAgICAgICdib3JkZXItY29sb3Itcyc6IFt7XHJcbiAgICAgICAgJ2JvcmRlci1zJzogW2JvcmRlckNvbG9yXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBDb2xvciBFXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcclxuICAgICAgICovXHJcbiAgICAgICdib3JkZXItY29sb3ItZSc6IFt7XHJcbiAgICAgICAgJ2JvcmRlci1lJzogW2JvcmRlckNvbG9yXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBDb2xvciBUb3BcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxyXG4gICAgICAgKi9cclxuICAgICAgJ2JvcmRlci1jb2xvci10JzogW3tcclxuICAgICAgICAnYm9yZGVyLXQnOiBbYm9yZGVyQ29sb3JdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQm9yZGVyIENvbG9yIFJpZ2h0XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcclxuICAgICAgICovXHJcbiAgICAgICdib3JkZXItY29sb3Itcic6IFt7XHJcbiAgICAgICAgJ2JvcmRlci1yJzogW2JvcmRlckNvbG9yXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBDb2xvciBCb3R0b21cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxyXG4gICAgICAgKi9cclxuICAgICAgJ2JvcmRlci1jb2xvci1iJzogW3tcclxuICAgICAgICAnYm9yZGVyLWInOiBbYm9yZGVyQ29sb3JdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQm9yZGVyIENvbG9yIExlZnRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxyXG4gICAgICAgKi9cclxuICAgICAgJ2JvcmRlci1jb2xvci1sJzogW3tcclxuICAgICAgICAnYm9yZGVyLWwnOiBbYm9yZGVyQ29sb3JdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogRGl2aWRlIENvbG9yXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtY29sb3JcclxuICAgICAgICovXHJcbiAgICAgICdkaXZpZGUtY29sb3InOiBbe1xyXG4gICAgICAgIGRpdmlkZTogW2JvcmRlckNvbG9yXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIE91dGxpbmUgU3R5bGVcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL291dGxpbmUtc3R5bGVcclxuICAgICAgICovXHJcbiAgICAgICdvdXRsaW5lLXN0eWxlJzogW3tcclxuICAgICAgICBvdXRsaW5lOiBbJycsIC4uLmdldExpbmVTdHlsZXMoKV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBPdXRsaW5lIE9mZnNldFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3V0bGluZS1vZmZzZXRcclxuICAgICAgICovXHJcbiAgICAgICdvdXRsaW5lLW9mZnNldCc6IFt7XHJcbiAgICAgICAgJ291dGxpbmUtb2Zmc2V0JzogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeVZhbHVlXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIE91dGxpbmUgV2lkdGhcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL291dGxpbmUtd2lkdGhcclxuICAgICAgICovXHJcbiAgICAgICdvdXRsaW5lLXcnOiBbe1xyXG4gICAgICAgIG91dGxpbmU6IFtpc0xlbmd0aCwgaXNBcmJpdHJhcnlMZW5ndGhdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogT3V0bGluZSBDb2xvclxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3V0bGluZS1jb2xvclxyXG4gICAgICAgKi9cclxuICAgICAgJ291dGxpbmUtY29sb3InOiBbe1xyXG4gICAgICAgIG91dGxpbmU6IFtjb2xvcnNdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogUmluZyBXaWR0aFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy13aWR0aFxyXG4gICAgICAgKi9cclxuICAgICAgJ3Jpbmctdyc6IFt7XHJcbiAgICAgICAgcmluZzogZ2V0TGVuZ3RoV2l0aEVtcHR5QW5kQXJiaXRyYXJ5KClcclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBSaW5nIFdpZHRoIEluc2V0XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLXdpZHRoXHJcbiAgICAgICAqL1xyXG4gICAgICAncmluZy13LWluc2V0JzogWydyaW5nLWluc2V0J10sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBSaW5nIENvbG9yXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLWNvbG9yXHJcbiAgICAgICAqL1xyXG4gICAgICAncmluZy1jb2xvcic6IFt7XHJcbiAgICAgICAgcmluZzogW2NvbG9yc11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBSaW5nIE9wYWNpdHlcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Jpbmctb3BhY2l0eVxyXG4gICAgICAgKi9cclxuICAgICAgJ3Jpbmctb3BhY2l0eSc6IFt7XHJcbiAgICAgICAgJ3Jpbmctb3BhY2l0eSc6IFtvcGFjaXR5XVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFJpbmcgT2Zmc2V0IFdpZHRoXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLW9mZnNldC13aWR0aFxyXG4gICAgICAgKi9cclxuICAgICAgJ3Jpbmctb2Zmc2V0LXcnOiBbe1xyXG4gICAgICAgICdyaW5nLW9mZnNldCc6IFtpc0xlbmd0aCwgaXNBcmJpdHJhcnlMZW5ndGhdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogUmluZyBPZmZzZXQgQ29sb3JcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Jpbmctb2Zmc2V0LWNvbG9yXHJcbiAgICAgICAqL1xyXG4gICAgICAncmluZy1vZmZzZXQtY29sb3InOiBbe1xyXG4gICAgICAgICdyaW5nLW9mZnNldCc6IFtjb2xvcnNdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvLyBFZmZlY3RzXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCb3ggU2hhZG93XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtc2hhZG93XHJcbiAgICAgICAqL1xyXG4gICAgICBzaGFkb3c6IFt7XHJcbiAgICAgICAgc2hhZG93OiBbJycsICdpbm5lcicsICdub25lJywgaXNUc2hpcnRTaXplLCBpc0FyYml0cmFyeVNoYWRvd11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCb3ggU2hhZG93IENvbG9yXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtc2hhZG93LWNvbG9yXHJcbiAgICAgICAqL1xyXG4gICAgICAnc2hhZG93LWNvbG9yJzogW3tcclxuICAgICAgICBzaGFkb3c6IFtpc0FueV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBPcGFjaXR5XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vcGFjaXR5XHJcbiAgICAgICAqL1xyXG4gICAgICBvcGFjaXR5OiBbe1xyXG4gICAgICAgIG9wYWNpdHk6IFtvcGFjaXR5XVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIE1peCBCbGVuZCBNb2RlXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9taXgtYmxlbmQtbW9kZVxyXG4gICAgICAgKi9cclxuICAgICAgJ21peC1ibGVuZCc6IFt7XHJcbiAgICAgICAgJ21peC1ibGVuZCc6IFsuLi5nZXRCbGVuZE1vZGVzKCksICdwbHVzLWxpZ2h0ZXInLCAncGx1cy1kYXJrZXInXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJhY2tncm91bmQgQmxlbmQgTW9kZVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1ibGVuZC1tb2RlXHJcbiAgICAgICAqL1xyXG4gICAgICAnYmctYmxlbmQnOiBbe1xyXG4gICAgICAgICdiZy1ibGVuZCc6IGdldEJsZW5kTW9kZXMoKVxyXG4gICAgICB9XSxcclxuICAgICAgLy8gRmlsdGVyc1xyXG4gICAgICAvKipcclxuICAgICAgICogRmlsdGVyXHJcbiAgICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIFRhaWx3aW5kIENTUyB2My4wLjBcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZpbHRlclxyXG4gICAgICAgKi9cclxuICAgICAgZmlsdGVyOiBbe1xyXG4gICAgICAgIGZpbHRlcjogWycnLCAnbm9uZSddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQmx1clxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmx1clxyXG4gICAgICAgKi9cclxuICAgICAgYmx1cjogW3tcclxuICAgICAgICBibHVyOiBbYmx1cl1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCcmlnaHRuZXNzXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9icmlnaHRuZXNzXHJcbiAgICAgICAqL1xyXG4gICAgICBicmlnaHRuZXNzOiBbe1xyXG4gICAgICAgIGJyaWdodG5lc3M6IFticmlnaHRuZXNzXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIENvbnRyYXN0XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250cmFzdFxyXG4gICAgICAgKi9cclxuICAgICAgY29udHJhc3Q6IFt7XHJcbiAgICAgICAgY29udHJhc3Q6IFtjb250cmFzdF1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBEcm9wIFNoYWRvd1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZHJvcC1zaGFkb3dcclxuICAgICAgICovXHJcbiAgICAgICdkcm9wLXNoYWRvdyc6IFt7XHJcbiAgICAgICAgJ2Ryb3Atc2hhZG93JzogWycnLCAnbm9uZScsIGlzVHNoaXJ0U2l6ZSwgaXNBcmJpdHJhcnlWYWx1ZV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBHcmF5c2NhbGVcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYXlzY2FsZVxyXG4gICAgICAgKi9cclxuICAgICAgZ3JheXNjYWxlOiBbe1xyXG4gICAgICAgIGdyYXlzY2FsZTogW2dyYXlzY2FsZV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBIdWUgUm90YXRlXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9odWUtcm90YXRlXHJcbiAgICAgICAqL1xyXG4gICAgICAnaHVlLXJvdGF0ZSc6IFt7XHJcbiAgICAgICAgJ2h1ZS1yb3RhdGUnOiBbaHVlUm90YXRlXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEludmVydFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaW52ZXJ0XHJcbiAgICAgICAqL1xyXG4gICAgICBpbnZlcnQ6IFt7XHJcbiAgICAgICAgaW52ZXJ0OiBbaW52ZXJ0XVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFNhdHVyYXRlXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zYXR1cmF0ZVxyXG4gICAgICAgKi9cclxuICAgICAgc2F0dXJhdGU6IFt7XHJcbiAgICAgICAgc2F0dXJhdGU6IFtzYXR1cmF0ZV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTZXBpYVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2VwaWFcclxuICAgICAgICovXHJcbiAgICAgIHNlcGlhOiBbe1xyXG4gICAgICAgIHNlcGlhOiBbc2VwaWFdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQmFja2Ryb3AgRmlsdGVyXHJcbiAgICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIFRhaWx3aW5kIENTUyB2My4wLjBcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWZpbHRlclxyXG4gICAgICAgKi9cclxuICAgICAgJ2JhY2tkcm9wLWZpbHRlcic6IFt7XHJcbiAgICAgICAgJ2JhY2tkcm9wLWZpbHRlcic6IFsnJywgJ25vbmUnXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJhY2tkcm9wIEJsdXJcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWJsdXJcclxuICAgICAgICovXHJcbiAgICAgICdiYWNrZHJvcC1ibHVyJzogW3tcclxuICAgICAgICAnYmFja2Ryb3AtYmx1cic6IFtibHVyXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJhY2tkcm9wIEJyaWdodG5lc3NcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWJyaWdodG5lc3NcclxuICAgICAgICovXHJcbiAgICAgICdiYWNrZHJvcC1icmlnaHRuZXNzJzogW3tcclxuICAgICAgICAnYmFja2Ryb3AtYnJpZ2h0bmVzcyc6IFticmlnaHRuZXNzXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJhY2tkcm9wIENvbnRyYXN0XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1jb250cmFzdFxyXG4gICAgICAgKi9cclxuICAgICAgJ2JhY2tkcm9wLWNvbnRyYXN0JzogW3tcclxuICAgICAgICAnYmFja2Ryb3AtY29udHJhc3QnOiBbY29udHJhc3RdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQmFja2Ryb3AgR3JheXNjYWxlXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1ncmF5c2NhbGVcclxuICAgICAgICovXHJcbiAgICAgICdiYWNrZHJvcC1ncmF5c2NhbGUnOiBbe1xyXG4gICAgICAgICdiYWNrZHJvcC1ncmF5c2NhbGUnOiBbZ3JheXNjYWxlXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJhY2tkcm9wIEh1ZSBSb3RhdGVcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWh1ZS1yb3RhdGVcclxuICAgICAgICovXHJcbiAgICAgICdiYWNrZHJvcC1odWUtcm90YXRlJzogW3tcclxuICAgICAgICAnYmFja2Ryb3AtaHVlLXJvdGF0ZSc6IFtodWVSb3RhdGVdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQmFja2Ryb3AgSW52ZXJ0XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1pbnZlcnRcclxuICAgICAgICovXHJcbiAgICAgICdiYWNrZHJvcC1pbnZlcnQnOiBbe1xyXG4gICAgICAgICdiYWNrZHJvcC1pbnZlcnQnOiBbaW52ZXJ0XVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJhY2tkcm9wIE9wYWNpdHlcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLW9wYWNpdHlcclxuICAgICAgICovXHJcbiAgICAgICdiYWNrZHJvcC1vcGFjaXR5JzogW3tcclxuICAgICAgICAnYmFja2Ryb3Atb3BhY2l0eSc6IFtvcGFjaXR5XVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJhY2tkcm9wIFNhdHVyYXRlXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1zYXR1cmF0ZVxyXG4gICAgICAgKi9cclxuICAgICAgJ2JhY2tkcm9wLXNhdHVyYXRlJzogW3tcclxuICAgICAgICAnYmFja2Ryb3Atc2F0dXJhdGUnOiBbc2F0dXJhdGVdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQmFja2Ryb3AgU2VwaWFcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLXNlcGlhXHJcbiAgICAgICAqL1xyXG4gICAgICAnYmFja2Ryb3Atc2VwaWEnOiBbe1xyXG4gICAgICAgICdiYWNrZHJvcC1zZXBpYSc6IFtzZXBpYV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8vIFRhYmxlc1xyXG4gICAgICAvKipcclxuICAgICAgICogQm9yZGVyIENvbGxhcHNlXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sbGFwc2VcclxuICAgICAgICovXHJcbiAgICAgICdib3JkZXItY29sbGFwc2UnOiBbe1xyXG4gICAgICAgIGJvcmRlcjogWydjb2xsYXBzZScsICdzZXBhcmF0ZSddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQm9yZGVyIFNwYWNpbmdcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1zcGFjaW5nXHJcbiAgICAgICAqL1xyXG4gICAgICAnYm9yZGVyLXNwYWNpbmcnOiBbe1xyXG4gICAgICAgICdib3JkZXItc3BhY2luZyc6IFtib3JkZXJTcGFjaW5nXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJvcmRlciBTcGFjaW5nIFhcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1zcGFjaW5nXHJcbiAgICAgICAqL1xyXG4gICAgICAnYm9yZGVyLXNwYWNpbmcteCc6IFt7XHJcbiAgICAgICAgJ2JvcmRlci1zcGFjaW5nLXgnOiBbYm9yZGVyU3BhY2luZ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBCb3JkZXIgU3BhY2luZyBZXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItc3BhY2luZ1xyXG4gICAgICAgKi9cclxuICAgICAgJ2JvcmRlci1zcGFjaW5nLXknOiBbe1xyXG4gICAgICAgICdib3JkZXItc3BhY2luZy15JzogW2JvcmRlclNwYWNpbmddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogVGFibGUgTGF5b3V0XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90YWJsZS1sYXlvdXRcclxuICAgICAgICovXHJcbiAgICAgICd0YWJsZS1sYXlvdXQnOiBbe1xyXG4gICAgICAgIHRhYmxlOiBbJ2F1dG8nLCAnZml4ZWQnXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIENhcHRpb24gU2lkZVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY2FwdGlvbi1zaWRlXHJcbiAgICAgICAqL1xyXG4gICAgICBjYXB0aW9uOiBbe1xyXG4gICAgICAgIGNhcHRpb246IFsndG9wJywgJ2JvdHRvbSddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvLyBUcmFuc2l0aW9ucyBhbmQgQW5pbWF0aW9uXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBUcmFuaXNpdGlvbiBQcm9wZXJ0eVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNpdGlvbi1wcm9wZXJ0eVxyXG4gICAgICAgKi9cclxuICAgICAgdHJhbnNpdGlvbjogW3tcclxuICAgICAgICB0cmFuc2l0aW9uOiBbJ25vbmUnLCAnYWxsJywgJycsICdjb2xvcnMnLCAnb3BhY2l0eScsICdzaGFkb3cnLCAndHJhbnNmb3JtJywgaXNBcmJpdHJhcnlWYWx1ZV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBUcmFuc2l0aW9uIER1cmF0aW9uXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2l0aW9uLWR1cmF0aW9uXHJcbiAgICAgICAqL1xyXG4gICAgICBkdXJhdGlvbjogW3tcclxuICAgICAgICBkdXJhdGlvbjogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KClcclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBUcmFuc2l0aW9uIFRpbWluZyBGdW5jdGlvblxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb25cclxuICAgICAgICovXHJcbiAgICAgIGVhc2U6IFt7XHJcbiAgICAgICAgZWFzZTogWydsaW5lYXInLCAnaW4nLCAnb3V0JywgJ2luLW91dCcsIGlzQXJiaXRyYXJ5VmFsdWVdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogVHJhbnNpdGlvbiBEZWxheVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNpdGlvbi1kZWxheVxyXG4gICAgICAgKi9cclxuICAgICAgZGVsYXk6IFt7XHJcbiAgICAgICAgZGVsYXk6IGdldE51bWJlckFuZEFyYml0cmFyeSgpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQW5pbWF0aW9uXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbmltYXRpb25cclxuICAgICAgICovXHJcbiAgICAgIGFuaW1hdGU6IFt7XHJcbiAgICAgICAgYW5pbWF0ZTogWydub25lJywgJ3NwaW4nLCAncGluZycsICdwdWxzZScsICdib3VuY2UnLCBpc0FyYml0cmFyeVZhbHVlXVxyXG4gICAgICB9XSxcclxuICAgICAgLy8gVHJhbnNmb3Jtc1xyXG4gICAgICAvKipcclxuICAgICAgICogVHJhbnNmb3JtXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2Zvcm1cclxuICAgICAgICovXHJcbiAgICAgIHRyYW5zZm9ybTogW3tcclxuICAgICAgICB0cmFuc2Zvcm06IFsnJywgJ2dwdScsICdub25lJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTY2FsZVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NhbGVcclxuICAgICAgICovXHJcbiAgICAgIHNjYWxlOiBbe1xyXG4gICAgICAgIHNjYWxlOiBbc2NhbGVdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU2NhbGUgWFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NhbGVcclxuICAgICAgICovXHJcbiAgICAgICdzY2FsZS14JzogW3tcclxuICAgICAgICAnc2NhbGUteCc6IFtzY2FsZV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTY2FsZSBZXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY2FsZVxyXG4gICAgICAgKi9cclxuICAgICAgJ3NjYWxlLXknOiBbe1xyXG4gICAgICAgICdzY2FsZS15JzogW3NjYWxlXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFJvdGF0ZVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvcm90YXRlXHJcbiAgICAgICAqL1xyXG4gICAgICByb3RhdGU6IFt7XHJcbiAgICAgICAgcm90YXRlOiBbaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFRyYW5zbGF0ZSBYXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2xhdGVcclxuICAgICAgICovXHJcbiAgICAgICd0cmFuc2xhdGUteCc6IFt7XHJcbiAgICAgICAgJ3RyYW5zbGF0ZS14JzogW3RyYW5zbGF0ZV1cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBUcmFuc2xhdGUgWVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNsYXRlXHJcbiAgICAgICAqL1xyXG4gICAgICAndHJhbnNsYXRlLXknOiBbe1xyXG4gICAgICAgICd0cmFuc2xhdGUteSc6IFt0cmFuc2xhdGVdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU2tldyBYXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9za2V3XHJcbiAgICAgICAqL1xyXG4gICAgICAnc2tldy14JzogW3tcclxuICAgICAgICAnc2tldy14JzogW3NrZXddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU2tldyBZXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9za2V3XHJcbiAgICAgICAqL1xyXG4gICAgICAnc2tldy15JzogW3tcclxuICAgICAgICAnc2tldy15JzogW3NrZXddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogVHJhbnNmb3JtIE9yaWdpblxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNmb3JtLW9yaWdpblxyXG4gICAgICAgKi9cclxuICAgICAgJ3RyYW5zZm9ybS1vcmlnaW4nOiBbe1xyXG4gICAgICAgIG9yaWdpbjogWydjZW50ZXInLCAndG9wJywgJ3RvcC1yaWdodCcsICdyaWdodCcsICdib3R0b20tcmlnaHQnLCAnYm90dG9tJywgJ2JvdHRvbS1sZWZ0JywgJ2xlZnQnLCAndG9wLWxlZnQnLCBpc0FyYml0cmFyeVZhbHVlXVxyXG4gICAgICB9XSxcclxuICAgICAgLy8gSW50ZXJhY3Rpdml0eVxyXG4gICAgICAvKipcclxuICAgICAgICogQWNjZW50IENvbG9yXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hY2NlbnQtY29sb3JcclxuICAgICAgICovXHJcbiAgICAgIGFjY2VudDogW3tcclxuICAgICAgICBhY2NlbnQ6IFsnYXV0bycsIGNvbG9yc11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBBcHBlYXJhbmNlXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hcHBlYXJhbmNlXHJcbiAgICAgICAqL1xyXG4gICAgICBhcHBlYXJhbmNlOiBbe1xyXG4gICAgICAgIGFwcGVhcmFuY2U6IFsnbm9uZScsICdhdXRvJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBDdXJzb3JcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2N1cnNvclxyXG4gICAgICAgKi9cclxuICAgICAgY3Vyc29yOiBbe1xyXG4gICAgICAgIGN1cnNvcjogWydhdXRvJywgJ2RlZmF1bHQnLCAncG9pbnRlcicsICd3YWl0JywgJ3RleHQnLCAnbW92ZScsICdoZWxwJywgJ25vdC1hbGxvd2VkJywgJ25vbmUnLCAnY29udGV4dC1tZW51JywgJ3Byb2dyZXNzJywgJ2NlbGwnLCAnY3Jvc3NoYWlyJywgJ3ZlcnRpY2FsLXRleHQnLCAnYWxpYXMnLCAnY29weScsICduby1kcm9wJywgJ2dyYWInLCAnZ3JhYmJpbmcnLCAnYWxsLXNjcm9sbCcsICdjb2wtcmVzaXplJywgJ3Jvdy1yZXNpemUnLCAnbi1yZXNpemUnLCAnZS1yZXNpemUnLCAncy1yZXNpemUnLCAndy1yZXNpemUnLCAnbmUtcmVzaXplJywgJ253LXJlc2l6ZScsICdzZS1yZXNpemUnLCAnc3ctcmVzaXplJywgJ2V3LXJlc2l6ZScsICducy1yZXNpemUnLCAnbmVzdy1yZXNpemUnLCAnbndzZS1yZXNpemUnLCAnem9vbS1pbicsICd6b29tLW91dCcsIGlzQXJiaXRyYXJ5VmFsdWVdXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogQ2FyZXQgQ29sb3JcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2p1c3QtaW4tdGltZS1tb2RlI2NhcmV0LWNvbG9yLXV0aWxpdGllc1xyXG4gICAgICAgKi9cclxuICAgICAgJ2NhcmV0LWNvbG9yJzogW3tcclxuICAgICAgICBjYXJldDogW2NvbG9yc11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBQb2ludGVyIEV2ZW50c1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcG9pbnRlci1ldmVudHNcclxuICAgICAgICovXHJcbiAgICAgICdwb2ludGVyLWV2ZW50cyc6IFt7XHJcbiAgICAgICAgJ3BvaW50ZXItZXZlbnRzJzogWydub25lJywgJ2F1dG8nXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFJlc2l6ZVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmVzaXplXHJcbiAgICAgICAqL1xyXG4gICAgICByZXNpemU6IFt7XHJcbiAgICAgICAgcmVzaXplOiBbJ25vbmUnLCAneScsICd4JywgJyddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU2Nyb2xsIEJlaGF2aW9yXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtYmVoYXZpb3JcclxuICAgICAgICovXHJcbiAgICAgICdzY3JvbGwtYmVoYXZpb3InOiBbe1xyXG4gICAgICAgIHNjcm9sbDogWydhdXRvJywgJ3Ntb290aCddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU2Nyb2xsIE1hcmdpblxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxyXG4gICAgICAgKi9cclxuICAgICAgJ3Njcm9sbC1tJzogW3tcclxuICAgICAgICAnc2Nyb2xsLW0nOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBYXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXHJcbiAgICAgICAqL1xyXG4gICAgICAnc2Nyb2xsLW14JzogW3tcclxuICAgICAgICAnc2Nyb2xsLW14JzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gWVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxyXG4gICAgICAgKi9cclxuICAgICAgJ3Njcm9sbC1teSc6IFt7XHJcbiAgICAgICAgJ3Njcm9sbC1teSc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIFN0YXJ0XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXHJcbiAgICAgICAqL1xyXG4gICAgICAnc2Nyb2xsLW1zJzogW3tcclxuICAgICAgICAnc2Nyb2xsLW1zJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gRW5kXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXHJcbiAgICAgICAqL1xyXG4gICAgICAnc2Nyb2xsLW1lJzogW3tcclxuICAgICAgICAnc2Nyb2xsLW1lJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gVG9wXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXHJcbiAgICAgICAqL1xyXG4gICAgICAnc2Nyb2xsLW10JzogW3tcclxuICAgICAgICAnc2Nyb2xsLW10JzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gUmlnaHRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cclxuICAgICAgICovXHJcbiAgICAgICdzY3JvbGwtbXInOiBbe1xyXG4gICAgICAgICdzY3JvbGwtbXInOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBCb3R0b21cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cclxuICAgICAgICovXHJcbiAgICAgICdzY3JvbGwtbWInOiBbe1xyXG4gICAgICAgICdzY3JvbGwtbWInOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBMZWZ0XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXHJcbiAgICAgICAqL1xyXG4gICAgICAnc2Nyb2xsLW1sJzogW3tcclxuICAgICAgICAnc2Nyb2xsLW1sJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xyXG4gICAgICAgKi9cclxuICAgICAgJ3Njcm9sbC1wJzogW3tcclxuICAgICAgICAnc2Nyb2xsLXAnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgWFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcclxuICAgICAgICovXHJcbiAgICAgICdzY3JvbGwtcHgnOiBbe1xyXG4gICAgICAgICdzY3JvbGwtcHgnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgWVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcclxuICAgICAgICovXHJcbiAgICAgICdzY3JvbGwtcHknOiBbe1xyXG4gICAgICAgICdzY3JvbGwtcHknOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgU3RhcnRcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXHJcbiAgICAgICAqL1xyXG4gICAgICAnc2Nyb2xsLXBzJzogW3tcclxuICAgICAgICAnc2Nyb2xsLXBzJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nIEVuZFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcclxuICAgICAgICovXHJcbiAgICAgICdzY3JvbGwtcGUnOiBbe1xyXG4gICAgICAgICdzY3JvbGwtcGUnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgVG9wXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xyXG4gICAgICAgKi9cclxuICAgICAgJ3Njcm9sbC1wdCc6IFt7XHJcbiAgICAgICAgJ3Njcm9sbC1wdCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBSaWdodFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcclxuICAgICAgICovXHJcbiAgICAgICdzY3JvbGwtcHInOiBbe1xyXG4gICAgICAgICdzY3JvbGwtcHInOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgQm90dG9tXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xyXG4gICAgICAgKi9cclxuICAgICAgJ3Njcm9sbC1wYic6IFt7XHJcbiAgICAgICAgJ3Njcm9sbC1wYic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBMZWZ0XHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xyXG4gICAgICAgKi9cclxuICAgICAgJ3Njcm9sbC1wbCc6IFt7XHJcbiAgICAgICAgJ3Njcm9sbC1wbCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTY3JvbGwgU25hcCBBbGlnblxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXNuYXAtYWxpZ25cclxuICAgICAgICovXHJcbiAgICAgICdzbmFwLWFsaWduJzogW3tcclxuICAgICAgICBzbmFwOiBbJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnYWxpZ24tbm9uZSddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogU2Nyb2xsIFNuYXAgU3RvcFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXNuYXAtc3RvcFxyXG4gICAgICAgKi9cclxuICAgICAgJ3NuYXAtc3RvcCc6IFt7XHJcbiAgICAgICAgc25hcDogWydub3JtYWwnLCAnYWx3YXlzJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTY3JvbGwgU25hcCBUeXBlXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC10eXBlXHJcbiAgICAgICAqL1xyXG4gICAgICAnc25hcC10eXBlJzogW3tcclxuICAgICAgICBzbmFwOiBbJ25vbmUnLCAneCcsICd5JywgJ2JvdGgnXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFNjcm9sbCBTbmFwIFR5cGUgU3RyaWN0bmVzc1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXNuYXAtdHlwZVxyXG4gICAgICAgKi9cclxuICAgICAgJ3NuYXAtc3RyaWN0bmVzcyc6IFt7XHJcbiAgICAgICAgc25hcDogWydtYW5kYXRvcnknLCAncHJveGltaXR5J11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBUb3VjaCBBY3Rpb25cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxyXG4gICAgICAgKi9cclxuICAgICAgdG91Y2g6IFt7XHJcbiAgICAgICAgdG91Y2g6IFsnYXV0bycsICdub25lJywgJ21hbmlwdWxhdGlvbiddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogVG91Y2ggQWN0aW9uIFhcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxyXG4gICAgICAgKi9cclxuICAgICAgJ3RvdWNoLXgnOiBbe1xyXG4gICAgICAgICd0b3VjaC1wYW4nOiBbJ3gnLCAnbGVmdCcsICdyaWdodCddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogVG91Y2ggQWN0aW9uIFlcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxyXG4gICAgICAgKi9cclxuICAgICAgJ3RvdWNoLXknOiBbe1xyXG4gICAgICAgICd0b3VjaC1wYW4nOiBbJ3knLCAndXAnLCAnZG93biddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvKipcclxuICAgICAgICogVG91Y2ggQWN0aW9uIFBpbmNoIFpvb21cclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxyXG4gICAgICAgKi9cclxuICAgICAgJ3RvdWNoLXB6JzogWyd0b3VjaC1waW5jaC16b29tJ10sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBVc2VyIFNlbGVjdFxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdXNlci1zZWxlY3RcclxuICAgICAgICovXHJcbiAgICAgIHNlbGVjdDogW3tcclxuICAgICAgICBzZWxlY3Q6IFsnbm9uZScsICd0ZXh0JywgJ2FsbCcsICdhdXRvJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBXaWxsIENoYW5nZVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd2lsbC1jaGFuZ2VcclxuICAgICAgICovXHJcbiAgICAgICd3aWxsLWNoYW5nZSc6IFt7XHJcbiAgICAgICAgJ3dpbGwtY2hhbmdlJzogWydhdXRvJywgJ3Njcm9sbCcsICdjb250ZW50cycsICd0cmFuc2Zvcm0nLCBpc0FyYml0cmFyeVZhbHVlXVxyXG4gICAgICB9XSxcclxuICAgICAgLy8gU1ZHXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBGaWxsXHJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9maWxsXHJcbiAgICAgICAqL1xyXG4gICAgICBmaWxsOiBbe1xyXG4gICAgICAgIGZpbGw6IFtjb2xvcnMsICdub25lJ11cclxuICAgICAgfV0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTdHJva2UgV2lkdGhcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3N0cm9rZS13aWR0aFxyXG4gICAgICAgKi9cclxuICAgICAgJ3N0cm9rZS13JzogW3tcclxuICAgICAgICBzdHJva2U6IFtpc0xlbmd0aCwgaXNBcmJpdHJhcnlMZW5ndGgsIGlzQXJiaXRyYXJ5TnVtYmVyXVxyXG4gICAgICB9XSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIFN0cm9rZVxyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3Ryb2tlXHJcbiAgICAgICAqL1xyXG4gICAgICBzdHJva2U6IFt7XHJcbiAgICAgICAgc3Ryb2tlOiBbY29sb3JzLCAnbm9uZSddXHJcbiAgICAgIH1dLFxyXG4gICAgICAvLyBBY2Nlc3NpYmlsaXR5XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBTY3JlZW4gUmVhZGVyc1xyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NyZWVuLXJlYWRlcnNcclxuICAgICAgICovXHJcbiAgICAgIHNyOiBbJ3NyLW9ubHknLCAnbm90LXNyLW9ubHknXSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEZvcmNlZCBDb2xvciBBZGp1c3RcclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvcmNlZC1jb2xvci1hZGp1c3RcclxuICAgICAgICovXHJcbiAgICAgICdmb3JjZWQtY29sb3ItYWRqdXN0JzogW3tcclxuICAgICAgICAnZm9yY2VkLWNvbG9yLWFkanVzdCc6IFsnYXV0bycsICdub25lJ11cclxuICAgICAgfV1cclxuICAgIH0sXHJcbiAgICBjb25mbGljdGluZ0NsYXNzR3JvdXBzOiB7XHJcbiAgICAgIG92ZXJmbG93OiBbJ292ZXJmbG93LXgnLCAnb3ZlcmZsb3cteSddLFxyXG4gICAgICBvdmVyc2Nyb2xsOiBbJ292ZXJzY3JvbGwteCcsICdvdmVyc2Nyb2xsLXknXSxcclxuICAgICAgaW5zZXQ6IFsnaW5zZXQteCcsICdpbnNldC15JywgJ3N0YXJ0JywgJ2VuZCcsICd0b3AnLCAncmlnaHQnLCAnYm90dG9tJywgJ2xlZnQnXSxcclxuICAgICAgJ2luc2V0LXgnOiBbJ3JpZ2h0JywgJ2xlZnQnXSxcclxuICAgICAgJ2luc2V0LXknOiBbJ3RvcCcsICdib3R0b20nXSxcclxuICAgICAgZmxleDogWydiYXNpcycsICdncm93JywgJ3NocmluayddLFxyXG4gICAgICBnYXA6IFsnZ2FwLXgnLCAnZ2FwLXknXSxcclxuICAgICAgcDogWydweCcsICdweScsICdwcycsICdwZScsICdwdCcsICdwcicsICdwYicsICdwbCddLFxyXG4gICAgICBweDogWydwcicsICdwbCddLFxyXG4gICAgICBweTogWydwdCcsICdwYiddLFxyXG4gICAgICBtOiBbJ214JywgJ215JywgJ21zJywgJ21lJywgJ210JywgJ21yJywgJ21iJywgJ21sJ10sXHJcbiAgICAgIG14OiBbJ21yJywgJ21sJ10sXHJcbiAgICAgIG15OiBbJ210JywgJ21iJ10sXHJcbiAgICAgIHNpemU6IFsndycsICdoJ10sXHJcbiAgICAgICdmb250LXNpemUnOiBbJ2xlYWRpbmcnXSxcclxuICAgICAgJ2Z2bi1ub3JtYWwnOiBbJ2Z2bi1vcmRpbmFsJywgJ2Z2bi1zbGFzaGVkLXplcm8nLCAnZnZuLWZpZ3VyZScsICdmdm4tc3BhY2luZycsICdmdm4tZnJhY3Rpb24nXSxcclxuICAgICAgJ2Z2bi1vcmRpbmFsJzogWydmdm4tbm9ybWFsJ10sXHJcbiAgICAgICdmdm4tc2xhc2hlZC16ZXJvJzogWydmdm4tbm9ybWFsJ10sXHJcbiAgICAgICdmdm4tZmlndXJlJzogWydmdm4tbm9ybWFsJ10sXHJcbiAgICAgICdmdm4tc3BhY2luZyc6IFsnZnZuLW5vcm1hbCddLFxyXG4gICAgICAnZnZuLWZyYWN0aW9uJzogWydmdm4tbm9ybWFsJ10sXHJcbiAgICAgICdsaW5lLWNsYW1wJzogWydkaXNwbGF5JywgJ292ZXJmbG93J10sXHJcbiAgICAgIHJvdW5kZWQ6IFsncm91bmRlZC1zJywgJ3JvdW5kZWQtZScsICdyb3VuZGVkLXQnLCAncm91bmRlZC1yJywgJ3JvdW5kZWQtYicsICdyb3VuZGVkLWwnLCAncm91bmRlZC1zcycsICdyb3VuZGVkLXNlJywgJ3JvdW5kZWQtZWUnLCAncm91bmRlZC1lcycsICdyb3VuZGVkLXRsJywgJ3JvdW5kZWQtdHInLCAncm91bmRlZC1icicsICdyb3VuZGVkLWJsJ10sXHJcbiAgICAgICdyb3VuZGVkLXMnOiBbJ3JvdW5kZWQtc3MnLCAncm91bmRlZC1lcyddLFxyXG4gICAgICAncm91bmRlZC1lJzogWydyb3VuZGVkLXNlJywgJ3JvdW5kZWQtZWUnXSxcclxuICAgICAgJ3JvdW5kZWQtdCc6IFsncm91bmRlZC10bCcsICdyb3VuZGVkLXRyJ10sXHJcbiAgICAgICdyb3VuZGVkLXInOiBbJ3JvdW5kZWQtdHInLCAncm91bmRlZC1iciddLFxyXG4gICAgICAncm91bmRlZC1iJzogWydyb3VuZGVkLWJyJywgJ3JvdW5kZWQtYmwnXSxcclxuICAgICAgJ3JvdW5kZWQtbCc6IFsncm91bmRlZC10bCcsICdyb3VuZGVkLWJsJ10sXHJcbiAgICAgICdib3JkZXItc3BhY2luZyc6IFsnYm9yZGVyLXNwYWNpbmcteCcsICdib3JkZXItc3BhY2luZy15J10sXHJcbiAgICAgICdib3JkZXItdyc6IFsnYm9yZGVyLXctcycsICdib3JkZXItdy1lJywgJ2JvcmRlci13LXQnLCAnYm9yZGVyLXctcicsICdib3JkZXItdy1iJywgJ2JvcmRlci13LWwnXSxcclxuICAgICAgJ2JvcmRlci13LXgnOiBbJ2JvcmRlci13LXInLCAnYm9yZGVyLXctbCddLFxyXG4gICAgICAnYm9yZGVyLXcteSc6IFsnYm9yZGVyLXctdCcsICdib3JkZXItdy1iJ10sXHJcbiAgICAgICdib3JkZXItY29sb3InOiBbJ2JvcmRlci1jb2xvci1zJywgJ2JvcmRlci1jb2xvci1lJywgJ2JvcmRlci1jb2xvci10JywgJ2JvcmRlci1jb2xvci1yJywgJ2JvcmRlci1jb2xvci1iJywgJ2JvcmRlci1jb2xvci1sJ10sXHJcbiAgICAgICdib3JkZXItY29sb3IteCc6IFsnYm9yZGVyLWNvbG9yLXInLCAnYm9yZGVyLWNvbG9yLWwnXSxcclxuICAgICAgJ2JvcmRlci1jb2xvci15JzogWydib3JkZXItY29sb3ItdCcsICdib3JkZXItY29sb3ItYiddLFxyXG4gICAgICAnc2Nyb2xsLW0nOiBbJ3Njcm9sbC1teCcsICdzY3JvbGwtbXknLCAnc2Nyb2xsLW1zJywgJ3Njcm9sbC1tZScsICdzY3JvbGwtbXQnLCAnc2Nyb2xsLW1yJywgJ3Njcm9sbC1tYicsICdzY3JvbGwtbWwnXSxcclxuICAgICAgJ3Njcm9sbC1teCc6IFsnc2Nyb2xsLW1yJywgJ3Njcm9sbC1tbCddLFxyXG4gICAgICAnc2Nyb2xsLW15JzogWydzY3JvbGwtbXQnLCAnc2Nyb2xsLW1iJ10sXHJcbiAgICAgICdzY3JvbGwtcCc6IFsnc2Nyb2xsLXB4JywgJ3Njcm9sbC1weScsICdzY3JvbGwtcHMnLCAnc2Nyb2xsLXBlJywgJ3Njcm9sbC1wdCcsICdzY3JvbGwtcHInLCAnc2Nyb2xsLXBiJywgJ3Njcm9sbC1wbCddLFxyXG4gICAgICAnc2Nyb2xsLXB4JzogWydzY3JvbGwtcHInLCAnc2Nyb2xsLXBsJ10sXHJcbiAgICAgICdzY3JvbGwtcHknOiBbJ3Njcm9sbC1wdCcsICdzY3JvbGwtcGInXSxcclxuICAgICAgdG91Y2g6IFsndG91Y2gteCcsICd0b3VjaC15JywgJ3RvdWNoLXB6J10sXHJcbiAgICAgICd0b3VjaC14JzogWyd0b3VjaCddLFxyXG4gICAgICAndG91Y2gteSc6IFsndG91Y2gnXSxcclxuICAgICAgJ3RvdWNoLXB6JzogWyd0b3VjaCddXHJcbiAgICB9LFxyXG4gICAgY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzOiB7XHJcbiAgICAgICdmb250LXNpemUnOiBbJ2xlYWRpbmcnXVxyXG4gICAgfVxyXG4gIH07XHJcbn07XHJcblxyXG4vKipcclxuICogQHBhcmFtIGJhc2VDb25maWcgQ29uZmlnIHdoZXJlIG90aGVyIGNvbmZpZyB3aWxsIGJlIG1lcmdlZCBpbnRvLiBUaGlzIG9iamVjdCB3aWxsIGJlIG11dGF0ZWQuXHJcbiAqIEBwYXJhbSBjb25maWdFeHRlbnNpb24gUGFydGlhbCBjb25maWcgdG8gbWVyZ2UgaW50byB0aGUgYGJhc2VDb25maWdgLlxyXG4gKi9cclxuY29uc3QgbWVyZ2VDb25maWdzID0gKGJhc2VDb25maWcsIHtcclxuICBjYWNoZVNpemUsXHJcbiAgcHJlZml4LFxyXG4gIHNlcGFyYXRvcixcclxuICBleHBlcmltZW50YWxQYXJzZUNsYXNzTmFtZSxcclxuICBleHRlbmQgPSB7fSxcclxuICBvdmVycmlkZSA9IHt9XHJcbn0pID0+IHtcclxuICBvdmVycmlkZVByb3BlcnR5KGJhc2VDb25maWcsICdjYWNoZVNpemUnLCBjYWNoZVNpemUpO1xyXG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ3ByZWZpeCcsIHByZWZpeCk7XHJcbiAgb3ZlcnJpZGVQcm9wZXJ0eShiYXNlQ29uZmlnLCAnc2VwYXJhdG9yJywgc2VwYXJhdG9yKTtcclxuICBvdmVycmlkZVByb3BlcnR5KGJhc2VDb25maWcsICdleHBlcmltZW50YWxQYXJzZUNsYXNzTmFtZScsIGV4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lKTtcclxuICBmb3IgKGNvbnN0IGNvbmZpZ0tleSBpbiBvdmVycmlkZSkge1xyXG4gICAgb3ZlcnJpZGVDb25maWdQcm9wZXJ0aWVzKGJhc2VDb25maWdbY29uZmlnS2V5XSwgb3ZlcnJpZGVbY29uZmlnS2V5XSk7XHJcbiAgfVxyXG4gIGZvciAoY29uc3Qga2V5IGluIGV4dGVuZCkge1xyXG4gICAgbWVyZ2VDb25maWdQcm9wZXJ0aWVzKGJhc2VDb25maWdba2V5XSwgZXh0ZW5kW2tleV0pO1xyXG4gIH1cclxuICByZXR1cm4gYmFzZUNvbmZpZztcclxufTtcclxuY29uc3Qgb3ZlcnJpZGVQcm9wZXJ0eSA9IChiYXNlT2JqZWN0LCBvdmVycmlkZUtleSwgb3ZlcnJpZGVWYWx1ZSkgPT4ge1xyXG4gIGlmIChvdmVycmlkZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgIGJhc2VPYmplY3Rbb3ZlcnJpZGVLZXldID0gb3ZlcnJpZGVWYWx1ZTtcclxuICB9XHJcbn07XHJcbmNvbnN0IG92ZXJyaWRlQ29uZmlnUHJvcGVydGllcyA9IChiYXNlT2JqZWN0LCBvdmVycmlkZU9iamVjdCkgPT4ge1xyXG4gIGlmIChvdmVycmlkZU9iamVjdCkge1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gb3ZlcnJpZGVPYmplY3QpIHtcclxuICAgICAgb3ZlcnJpZGVQcm9wZXJ0eShiYXNlT2JqZWN0LCBrZXksIG92ZXJyaWRlT2JqZWN0W2tleV0pO1xyXG4gICAgfVxyXG4gIH1cclxufTtcclxuY29uc3QgbWVyZ2VDb25maWdQcm9wZXJ0aWVzID0gKGJhc2VPYmplY3QsIG1lcmdlT2JqZWN0KSA9PiB7XHJcbiAgaWYgKG1lcmdlT2JqZWN0KSB7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBtZXJnZU9iamVjdCkge1xyXG4gICAgICBjb25zdCBtZXJnZVZhbHVlID0gbWVyZ2VPYmplY3Rba2V5XTtcclxuICAgICAgaWYgKG1lcmdlVmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGJhc2VPYmplY3Rba2V5XSA9IChiYXNlT2JqZWN0W2tleV0gfHwgW10pLmNvbmNhdChtZXJnZVZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufTtcclxuY29uc3QgZXh0ZW5kVGFpbHdpbmRNZXJnZSA9IChjb25maWdFeHRlbnNpb24sIC4uLmNyZWF0ZUNvbmZpZykgPT4gdHlwZW9mIGNvbmZpZ0V4dGVuc2lvbiA9PT0gJ2Z1bmN0aW9uJyA/IGNyZWF0ZVRhaWx3aW5kTWVyZ2UoZ2V0RGVmYXVsdENvbmZpZywgY29uZmlnRXh0ZW5zaW9uLCAuLi5jcmVhdGVDb25maWcpIDogY3JlYXRlVGFpbHdpbmRNZXJnZSgoKSA9PiBtZXJnZUNvbmZpZ3MoZ2V0RGVmYXVsdENvbmZpZygpLCBjb25maWdFeHRlbnNpb24pLCAuLi5jcmVhdGVDb25maWcpO1xyXG5jb25zdCB0d01lcmdlID0gLyojX19QVVJFX18qL2NyZWF0ZVRhaWx3aW5kTWVyZ2UoZ2V0RGVmYXVsdENvbmZpZyk7XHJcbmV4cG9ydCB7IGNyZWF0ZVRhaWx3aW5kTWVyZ2UsIGV4dGVuZFRhaWx3aW5kTWVyZ2UsIGZyb21UaGVtZSwgZ2V0RGVmYXVsdENvbmZpZywgbWVyZ2VDb25maWdzLCB0d0pvaW4sIHR3TWVyZ2UsIHZhbGlkYXRvcnMgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVuZGxlLW1qcy5tanMubWFwXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/tailwind-merge/dist/bundle-mjs.mjs\n"));
|
||
|
||
/***/ })
|
||
|
||
},
|
||
/******/ function(__webpack_require__) { // webpackRuntimeModules
|
||
/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
|
||
/******/ __webpack_require__.O(0, ["main-app"], function() { return __webpack_exec__("(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=C%3A%5CUsers%5Candre%5CDocuments%5CGitHub%5CWebklar.com%5Capp%5Cpage.tsx&server=false!"); });
|
||
/******/ var __webpack_exports__ = __webpack_require__.O();
|
||
/******/ _N_E = __webpack_exports__;
|
||
/******/ }
|
||
]); |